LLM ベースのアプリケーション用にプロンプト フローを DevOps と統合する

警告

プロンプト フロー機能の開発は、2026 年 4 月 20 日に終了しました。 この機能は、2027 年 4 月 20 日に完全に廃止されます。 提供終了日に、プロンプト フローは読み取り専用モードになります。 既存のフローは、その日付まで動作し続けます。

Recommended action: 2027 年 4 月 20 日より前に、プロンプト フローワークロードを Microsoft Agent Framework に移行します。

Azure Machine Learningプロンプト フローは、大規模言語モデル (LLM) ベースのアプリケーション開発用のフローを開発および反復処理するための、開発者向けの使いやすいコード優先メソッドです。 プロンプト フローには、SDK と CLI、Visual Studio Code拡張機能、フロー作成 UI が用意されています。 これらのツールにより、ローカル フローの開発、ローカル フローの実行と評価実行のトリガー、ローカルとクラウドのワークスペース環境間のフローの移行が容易になります。

プロンプト フロー エクスペリエンスとコード機能を開発者操作 (DevOps) と組み合わせて、LLM ベースのアプリケーション開発ワークフローを強化できます。 この記事では、Azure Machine Learning LLM ベースのアプリケーションのプロンプト フローと DevOps の統合に焦点を当てます。

次の図は、DevOps を使用したローカルおよびクラウドベースのプロンプト フロー開発の相互作用を示しています。

フローの作成、フローの開発とテスト、コード リポジトリでのバージョン管理、クラウドへの実行の送信、およびデビューとイテレーションのフローを示す図。

前提 条件

  • Azure Machine Learning ワークスペース。 作成するには、「リソースを 作成して開始する」を参照してください。

  • Azure Machine Learning Python SDK v2 がインストールされているローカル Python 環境。概要の「開始手順」に従って作成

    メモ

    この環境は、フローの一部として定義したフローの実行にコンピューティング セッションが使用する環境とは別です。 詳細については、「manage prompt flow compute session in Azure Machine Learning スタジオ」を参照してください。

  • Pythonおよびプロンプト フロー拡張機能がインストールされているVisual Studio Code。

    Visual Studio Code の Python およびプロンプト フロー拡張機能のスクリーンショット

プロンプト フローでコード優先エクスペリエンスを使用する

通常、LLM ベースのアプリケーションの開発は、ソース コード リポジトリと継続的インテグレーション/継続的デプロイ (CI/CD) パイプラインを含む標準化されたアプリケーション エンジニアリング プロセスに従います。 このプロセスにより、チーム メンバー間の開発、バージョン管理、コラボレーションの合理化が促進されます。

DevOps とプロンプト フロー コード エクスペリエンスの統合により、コード開発者は、次の主な機能と利点を備えた、より効率的な GenAIOps または LLMOps 反復プロセスが提供されます。

  • コード リポジトリでのフローのバージョン管理。 フロー ファイルは YAML 形式で定義でき、同じフォルダー構造の参照元ファイルに合わせて配置されます。

  • CI/CD パイプラインとのフロー実行統合。 プロンプト フロー CLI または SDK を使用してフロー実行を自動的にトリガーすることで、プロンプト フローを CI/CD パイプラインと配信プロセスにシームレスに統合できます。

  • ローカルとクラウドの間のスムーズな移行。 フロー フォルダーをローカルまたはアップストリームのコード リポジトリに簡単にエクスポートして、バージョン管理、ローカル開発、共有を行うことができます。 また、フロー フォルダーをAzure Machine Learningに簡単にインポートして、クラウド リソースを使用してさらに作成、テスト、デプロイすることもできます。

アクセス プロンプト フロー コード

各プロンプト フローには、フローを定義する重要なコード ファイルを含むフロー フォルダー構造があります。 フォルダー構造によってフローが整理され、ローカルとクラウド間のスムーズな移行が容易になります。

Azure Machine Learningは、すべてのワークスペース ユーザーに共有ファイル システムを提供します。 フローの作成時に、対応するフロー フォルダーが自動的に生成され、 Users/<username>/promptflow ディレクトリに 格納されます。

新しいフローを示す標準フロー作成のスクリーンショット。

フロー コード ファイルを操作する

Azure Machine Learning スタジオでフローを作成したら、フロー作成ページの Files セクションでフロー ファイルを表示、編集、管理できます。 ファイルに加えた変更は、ファイル共有ストレージに直接反映されます。

[ファイル] ウィンドウが強調表示されている標準フロー作成ページのスクリーンショット。

LLM ベースのフローのフロー フォルダーには、次のキー ファイルが含まれています。

  • flow.dag.yaml は、YAML 形式のプライマリ フロー定義ファイルです。 このファイルは、プロンプト フローの作成と定義に不可欠です。 このファイルには、フローで使用される入力、出力、ノード、ツール、バリアントに関する情報が含まれています。

  • Python (.py) または Jinja 2 (.jinja2) 形式のユーザーマネージド ソース コード ファイルは、フロー内のツールとノードを構成します。 Python ツールでは、Python ファイルを使用してカスタム Python ロジックを定義します。 プロンプト ツールと LLM ツールでは、Jinja 2 ファイルを使用してプロンプト コンテキストを定義します。

  • ユーティリティ ファイルやデータ ファイルなどのソース以外のファイルは、ソース ファイルと共にフロー フォルダーに含めることができます。

ファイル エディターで flow.dag.yaml ファイルとソース ファイルの生コードを表示および編集するには、 Raw ファイル モードを有効にします。

標準フローでの Raw ファイル モードのスクリーンショット。

または、Azure Machine Learning スタジオ Notebooks ページからすべてのフロー フォルダーとファイルにアクセスして編集することもできます。

Azure Machine Learningのノートブックのスクリーンショット。プロンプト フロー フォルダーにファイルが表示されます。

プロンプト フロー コードをダウンロードしてチェックインする

フローをコード リポジトリにチェックインするには、フロー フォルダーをAzure Machine Learning スタジオからローカル コンピューターにエクスポートします。 フロー作成ページの [ ファイル ] セクションでダウンロード アイコンを選択して、すべてのフロー ファイルを含む ZIP パッケージをダウンロードします。 その後、そのファイルをコード リポジトリにチェックインするか、解凍してファイルをローカルで操作できます。

ファイル エクスプローラーのダウンロード アイコンを示すスクリーンショット。

devOps と Azure Machine Learning の統合の詳細については、Azure Machine Learning の Git 統合を参照してください。

ローカルでの開発とテスト

反復的な開発中にフローやプロンプトを調整して微調整すると、コード リポジトリ内で複数のイテレーションをローカルで実行できます。 VS Code コミュニティ バージョン、VS Code Prompt フロー拡張機能、プロンプト フロー ローカル SDK と CLI は、Azureバインドなしで純粋なローカル開発とテストを容易にします。

ローカルで作業することで、毎回メイン コード リポジトリを更新しなくても、変更をすばやく行ってテストできます。 ローカル バージョンの使用に関する詳細とガイダンスについては、Prompt フロー GitHubコミュニティを参照してください。

VS Code Prompt フロー拡張機能を使用する

プロンプト フロー VS Code 拡張機能を使用すると、クラウドと同様の UI エクスペリエンスを使用して、VS Code エディターでフローをローカルで簡単に作成できます。

プロンプト フロー拡張機能を使用して VS Code でファイルをローカルで編集するには:

  1. プロンプト フロー拡張機能が有効になっている VS Code で、プロンプト フロー フォルダーを開きます。

  2. flow.dag.yaml ファイルを開き、ファイルの上部にあるビジュアル エディターのリンクを選択します。

    VS Code のフロー定義ファイルの上部にある [ビジュアル エディター] リンクのスクリーンショット。

  3. プロンプト フロービジュアルエディターを使用して、バリエーションのプロンプトのチューニングやノードの追加など、フローに変更を加えます。

    VS Code のビジュアル プロンプト フロー エディターのスクリーンショット。

  4. フローをテストするには、ビジュアル エディターの上部にある [実行 ] アイコンを選択するか、任意のノードをテストするには、ノードの上部にある [実行 ] アイコンを選択します。

    ビジュアル エディターでのフローまたはノードの実行を示す VS Code のスクリーンショット。

プロンプト フロー SDK と CLI を使用する

コードで直接作業する場合、または Jupyter、PyCharm、Visual Studio、またはその他の統合開発環境 (IDE) を使用する場合は、flow.dag.yaml ファイル内の YAML コードを直接変更できます。

VS Code の YAML ファイルのスクリーンショット。既定の入力ディレクトリとフロー ディレクトリが強調表示されています。

その後、次のようにターミナルでプロンプト フロー CLI または SDK を使用して、テスト用に 1 つのフロー実行をトリガーできます。

作業ディレクトリから実行をトリガーするには、次のコードを実行します。

pf flow test --flow <directory-name>

戻り値はテスト ログと出力です。

PowerShell のフロー テスト出力のスクリーンショット。

ローカル リポジトリからクラウドに実行を送信する

ローカル テストの結果に満足したら、プロンプト フロー CLI または SDK を使用して、ローカル リポジトリからクラウドに実行を送信できます。 次の手順とコードは、GitHubの Web Classification デモ プロジェクトに基づいています。 プロジェクト リポジトリを複製するか、プロンプト フロー コードをローカル コンピューターにダウンロードできます。

プロンプト フロー SDK をインストールする

pip install promptflow[azure] promptflow-tools を実行して、Azure プロンプト フロー SDK/CLI をインストールします。

デモ プロジェクトを使用している場合は、requirements.txt
pip install -r <path>/requirements.txt

Azure Machine Learning ワークスペースに接続する

az login

フローを投入して実行を開始する

run.yml ファイルを 準備して、クラウドでこのフロー実行の構成を定義します。

$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path-to-flow>
data: <path-to-flow>/<data-file>.jsonl

column_mapping:
  url: ${data.url}

# Define cloud compute resource

resources:
  instance_type: <compute-type>

# If using compute instance compute type, also specify instance name
#  compute: <compute-instance-name> 

# Specify connections

  <node-name>:
    connection: <connection-name>
    deployment_name: <deployment-name>

接続を必要とするフロー内の各ツールの接続とデプロイ名を指定できます。 接続とデプロイ名を指定しない場合、ツールは flow.dag.yaml ファイル内の接続とデプロイを使用します。 接続を書式設定するには、次のコードを使用します。

...
connections:
  <node-name>:
    connection: <connection-name>
      deployment_name: <deployment-name>
...

実行プロセスを作成します。

pfazure run create --file run.yml

評価フロー実行を作成する

クラウドで実行されるこの評価フローの構成を定義するために、 run_evaluation.yml ファイルを準備します。

$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path-to-flow>
data: <path-to-flow>/<data-file>.jsonl
run: <id-of-base-flow-run>
column_mapping:
  <input-name>: ${data.<column-from-test-dataset>}
  <input-name>: ${run.outputs.<column-from-run-output>}

resources:
  instance_type: <compute-type>
  compute: <compute_instance_name> 

connections:
  <node-name>:
    connection: <connection-name>
    deployment_name: <deployment-name>
  <node-name>:
    connection: <connection-name>
    deployment_name: <deployment-name>

評価実行を作成します。

pfazure run create --file run_evaluation.yml

実行結果を表示する

フロー実行をクラウドに送信すると、実行のクラウド URL が返されます。 URL を開いて、Azure Machine Learning スタジオで実行結果を表示できます。 次の CLI または SDK コマンドを実行して、実行結果を表示することもできます。

ログをストリーミングする

pfazure run stream --name <run-name>

実行出力を表示する

pfazure run show-details --name <run-name>

評価実行メトリックを表示する

pfazure run show-metrics --name <evaluation-run-name>

DevOps との統合

通常、ローカル開発環境と Git などのバージョン管理システムの組み合わせは、反復開発に最も効果的です。 変更を加えてコードをローカルでテストし、変更を Git にコミットできます。 このプロセスにより、変更の継続的な記録が作成され、必要に応じて以前のバージョンに戻す機能が提供されます。

異なる環境間でフローを共有する必要がある場合は、GitHubやAzure Reposなどのクラウドベースのコード リポジトリにプッシュできます。 この戦略により、任意の場所から最新のコード バージョンにアクセスでき、コラボレーションとコード管理のためのツールが提供されます。

これらのプラクティスに従うことで、チームは、迅速なフロー開発のためのシームレスで効率的で生産性の高いコラボレーション環境を作成できます。

Web 分類フローを実行するエンド ツー エンドの LLMOps パイプラインの例については、「プロンプト Flow と GitHub および GitHub Web Classification デモ プロジェクト でエンド ツー エンド GenAIOps を設定する」を参照してください。

CI パイプラインでのトリガー フローの実行

フローを正常に開発してテストし、最初のバージョンとしてチェックインしたら、イテレーションのチューニングとテストを行う準備が整います。 この段階では、プロンプト フロー CLI を使用して CI パイプラインの手順を自動化することで、バッチ テストや評価の実行を含むフロー実行をトリガーできます。

フローイテレーションのライフサイクル全体を通して、CLI を使用して次の操作を自動化できます。

  • プル要求後のプロンプト フローの実行
  • 結果が高品質であることを確認するためのプロンプト フロー評価の実行
  • プロンプト フロー モデルの登録
  • プロンプト フロー モデルのデプロイ

継続的な開発に Studio UI を使用する

フロー開発のどの時点でも、Azure Machine Learning スタジオ UI に戻り、クラウド リソースとエクスペリエンスを使用してフローに変更を加えることができます。

最も up-to-date バージョンのフロー ファイルの開発と操作を続行するには、 Notebook ページのターミナルにアクセスし、リポジトリから最新のフロー ファイルをプルします。 または、ローカル フロー フォルダーを新しいドラフト フローとして直接インポートして、ローカルとクラウドの開発をシームレスに切り替えることができます。

[ローカルにアップロード] が強調表示されている [新しいフローの作成] 画面のスクリーンショット。

フローをオンライン エンドポイントとしてデプロイする

運用環境に移行する最後の手順は、フローをオンライン エンドポイントとしてAzure Machine Learningにデプロイすることです。 このプロセスにより、フローをアプリケーションに統合し、それを使用できるようになります。 フローをデプロイする方法の詳細については、「リアルタイム推論のためにAzure Machine Learningマネージド オンライン エンドポイントにフローをデプロイするを参照してください。

フロー開発で共同作業を行う

プロンプト フローを使用して LLM ベースのアプリケーションを開発する場合、チーム メンバー間のコラボレーションが不可欠になる場合があります。 チーム メンバーは、同じフローを作成してテストしたり、フローのさまざまなファセットで作業したり、反復的な変更や拡張機能を同時に行ったりすることがあります。 このコラボレーションには、コードの共有、変更の追跡、バージョンの管理、最終プロジェクトへの変更の統合を効率的かつ効率的に行うアプローチが必要です。

プロンプト フロー SDK/CLI と VS Code Prompt フロー拡張機能により、ソース コード リポジトリ内でのコードベースのフロー開発での簡単なコラボレーションが容易になります。 GitHubやAzure Reposなどのクラウドベースのソース管理システムを使用して、変更の追跡、バージョンの管理、これらの変更の最終プロジェクトへの統合を行うことができます。

コラボレーション開発のベスト プラクティスに従う

  1. 一元化されたコード リポジトリを設定します。

    コラボレーション プロセスの最初の手順では、プロンプト フロー コードを含む、プロジェクト コードのベースとしてコード リポジトリを設定します。 この一元化されたリポジトリにより、チーム メンバー間の効率的な組織、変更の追跡、コラボレーションが可能になります。

  2. プロンプト フロー拡張機能を使用して、VS Code でフローをローカルで作成して 1 回テストします。

    リポジトリが設定されると、チーム メンバーは、ローカルでの作成とフローの単一入力テストのために、プロンプト フロー拡張機能と共に VS Code を使用できます。 標準化された統合開発環境は、フローのさまざまな側面に取り組む複数のメンバー間のコラボレーションを促進します。

    ローカル開発のスクリーンショット。

  3. pfazure CLI または SDK を使用して、ローカル フローからクラウドにバッチ実行と評価実行を送信します。

    ローカルでの開発とテストの後、チーム メンバーはプロンプト フロー CLI/SDK を使用して、バッチ実行と評価実行をクラウドに送信および評価できます。 このプロセスにより、クラウド コンピューティングの使用、永続的な結果ストレージ、デプロイ用のエンドポイントの作成、Studio UI での効率的な管理が可能になります。

    クラウドに実行を送信する pfazure コマンドのスクリーンショット。

  4. Azure Machine Learning スタジオ ワークスペース UI で実行結果を表示および管理します。

    クラウドに実行を送信すると、チーム メンバーはスタジオ UI にアクセスして結果を表示し、効率的に実験を管理できます。 クラウド ワークスペースは、実行履歴、ログ、スナップショット、包括的な結果、インスタンス レベルの入力と出力を収集および管理するための一元的な場所を提供します。

    クラウド実行スナップショットのスクリーンショット。

  5. すべての実行履歴を記録する 実行 リストを使用して、さまざまな実行の結果を簡単に比較し、品質分析と必要な調整を支援します。

    ワークスペース内の実行リストのスクリーンショット。

  6. ローカルの反復開発を引き続き使用します。

    実験の結果を分析した後、チーム メンバーは、より多くの開発と微調整のためにローカル環境とコード リポジトリに戻り、その後の実行を繰り返しクラウドに送信できます。 この反復的なアプローチにより、チームが運用環境の品質に満足するまで、一貫した強化が保証されます。

  7. スタジオでのプロダクションへのワンステップ・デプロイメントを使用します。

    チームがフローの品質に完全に自信を持てたら、堅牢なクラウド環境でオンライン エンドポイントとしてシームレスにデプロイできます。 オンライン エンドポイントとしてのデプロイは、実行スナップショットに基づいて行うことができます。これにより、安定したセキュリティで保護されたサービス、リソースの割り当てと使用状況の追跡、クラウドでのログ監視が可能になります。

    実行スナップショットからのフローのデプロイのスクリーンショット。

    Azure Machine Learning スタジオ Deploy ウィザードを使用すると、デプロイを簡単に構成できます。

    展開ウィザードのスクリーンショット。