Share
Embed
Transcript
27 slides
-
Prompt Flowとは プロンプト フローは、大規模言語モデル (LLM) によって動作する AI アプリケーションの開発サイクル全体を合理化するために設計 された開発ツールです。 プロンプト
フローは、AI アプリケーション のプロトタイプ作成、実験、反復、デプロイのプロセスを簡素化す る包括的なソリューションを提供します。 https://learn.microsoft.com/ja-jp/azure/ai-studio/how-to/prompt-flow -
Prompt Flowでできること - LLM、プロンプト、Pythonコード、その他のツールを実行可能なワークフローにリンクするフローを作成で きます。 - フロー、特にLLMとのインタラクションを簡単にデバッグし、繰り返し実行できます。 - フローを評価し、より大きなデータセットで品質とパフォーマンスのメトリクスを計算します。 -
テストと評価をCI/CDシステムに統合し、フローの品質を保証します。 - 選択したサービスプラットフォームにフローをデプロイするか、アプリのコードベースに簡単に統合できま す。 - (オプションですが、強くお勧めします) Azure AIでPromptフローのクラウド版を活用することで、チームと コラボレーションできます。 https://microsoft.github.io/promptflow/index.html -
LLMOpsでPrompt Flowができること LLMOps ステージ - 初期化 - 実験 - 評価・改善
- デプロイ https://learn.microsoft.com/ja-jp/azure/machine-learning/prompt-flow/how-to-end-to-end-llmops-with-prompt-flow?view=azur eml-api-2 -
LLMOpsでPrompt Flowができること 機能 - 一元化されたコード ホスティング - ライフサイクル管理 - バリアントとハイパーパラメーターの実験
- 複数のデプロイ ターゲット - A/B デプロイ - 多対多データセット/フロー リレーションシップ - 条件付きデータとモデルの登録 - 包括的なレポート https://learn.microsoft.com/ja-jp/azure/machine-learning/prompt-flow/how-to-end-to-end-llmops-with-prompt-flow?view=azureml-api-2 -
例: named_entity_recognition Prompt Flowで固定表現抽出を実装した例 処理 llm: テキストから特定のタイプのエンティティを見つけ る python: LLMから返却されたエンティティのリストを整形す
る https://github.com/microsoft/llmops-promptflow-template/tree/main/named_entity_recognition -
例: named_entity_recognition (prompt) system: あなたの仕事は、与えられたテキストコンテンツから特定のタイプのエンティティ を見つけることです。 複数のエンティティがある場合は、"entity1, entity2, entity3 "のようにカンマ区切りですべて返してください。
エンティティのリストだけ を返してください。 そのようなエンティティがない場合は、"None "を返してくださ い。 user: エンティティタイプ: {{entity_type}} テキスト内容: {{text}} エンティティ: -
例: named_entity_recognition (evaluation) プロンプトの評価 あらかじめ評価用のプロンプトとその出力を定義し ておく。 ground truthと実際の出力結果を比較する。 (完全一致、部分一致) {"text":
"The project manager and the data analyst are collaborating to interpret the project data.", "entity_type": "job title", "results": "project manager, data analyst"} -
例: named_entity_recognition (CI/CD) 以下のタイミングでgithub actionが呼ばれる(Azure DevOpsも可) - pull request作成時 -
developブランチへのmerge (dev環境へのリリース) - 本番環境リリース -
例: named_entity_recognition (pull request作成時) pr_code_validation pr_flow_validation - Register experiment data
asset - 実験データセット(jsonl)をAzure MLにData Assetとして登録する - Execute prompt flow bulk run - prompt flowの実行 ※実際はpythonの環境構築、Azureのloginも実行されている -
例: named_entity_recognition (developブランチへのmerge) CI flow-experiment-and_evaluation - Register experiment data asset
- 実験データセット(jsonl)をAzure MLにData Assetとして登録する - Execute prompt flow bulk run - フローの実行 - Register evaluation data asset - 評価用データセット(jsonl)をAzure MLにData Assetとして登録する - Execute bulk run evaluations - 評価フローの実行 ※実際はpythonの環境構築、Azureのloginも実行されている -
例: named_entity_recognition (developブランチへのmerge) Report - github action Artifactsにreportが出力 - result
- metrics result metrics -
例: named_entity_recognition (developブランチへのmerge) CD prompt flow deployment job - Register
flow as model in AzureML - Azure ML レジストリにモデルとしてフローを登録する - Deploy to AML real-time online endpoint - 今回はオンライン エンドポイントにデプロイ (他 AKS, webapp等あり) ※実際はpythonの環境構築、Azureのloginも実行されている -
Prompt Flowのデプロイ方法 https://github.com/microsoft/promptflow/tree/main/examples/tutorials/flow-deploy デプロイ方法は以下がある - Azure App Service - オンラインエンドポイント
- Flowを関数として扱う - Flowをhttpエンドポイントとしてserverを立てる - Flowを実行可能アプリとする(streamlit) - Docker - k8s -
弊社が採用したデプロイ方法 https://github.com/microsoft/promptflow/tree/main/examples/tutorials/flow-deploy デプロイ方法は以下がある - Azure App Service - オンラインエンドポイント -
Flowを関数として扱う - カスタマイズがし易い - 1 API内でflowをまたぐことができる - Flowをhttpエンドポイントとしてserverを立てる - PoC用 - Flowを実行可能アプリとする(streamlit) - PoC用 - Docker - flow1つが1 Docker fileである - k8s -
まとめ、展望 - Prompt Flowの機能が充実しているため、 LLMOpsも実現しやすくなっている - sdkをつかいガッツリcodeを書いている箇所もあった - Azureでマネージドで提供されているモデル (GPT等)を利用する前提では
Prompt Flow&LLMOps は有用かもしれない - 社内基盤としてPrompt Flowに依存しないものが望ましい場合もある - Prompt Flowでマネージドで提供されているModelは限られている - Prompt Flowで全てのユースケースをカバーすることはできない - 最近 Microsoft Mistral AIとのパートナーシップ締結を発表した - AWS Bedrock / Anthropic Claudeも盛り上がっている - その他LLMOpsが実現できるツールとの比較 - MLflow - PromptLayer - Dify - DataRobot