Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Prompt FlowによるLLMOps

Yuto Urushima
March 21, 2024
1.1k

Prompt FlowによるLLMOps

Yuto Urushima

March 21, 2024
Tweet

Transcript

  1. Prompt Flowとは プロンプト フローは、大規模言語モデル (LLM) によって動作する AI アプリケーションの開発サイクル全体を合理化するために設計 された開発ツールです。 プロンプト

    フローは、AI アプリケーション のプロトタイプ作成、実験、反復、デプロイのプロセスを簡素化す る包括的なソリューションを提供します。 https://learn.microsoft.com/ja-jp/azure/ai-studio/how-to/prompt-flow
  2. Prompt Flowでできること - LLM、プロンプト、Pythonコード、その他のツールを実行可能なワークフローにリンクするフローを作成で きます。 - フロー、特にLLMとのインタラクションを簡単にデバッグし、繰り返し実行できます。 - フローを評価し、より大きなデータセットで品質とパフォーマンスのメトリクスを計算します。 -

    テストと評価をCI/CDシステムに統合し、フローの品質を保証します。 - 選択したサービスプラットフォームにフローをデプロイするか、アプリのコードベースに簡単に統合できま す。 - (オプションですが、強くお勧めします) Azure AIでPromptフローのクラウド版を活用することで、チームと コラボレーションできます。 https://microsoft.github.io/promptflow/index.html
  3. 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
  4. 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
  5. 例: named_entity_recognition (prompt) system: あなたの仕事は、与えられたテキストコンテンツから特定のタイプのエンティティ を見つけることです。 複数のエンティティがある場合は、"entity1, entity2, entity3 "のようにカンマ区切りですべて返してください。

    エンティティのリストだけ を返してください。 そのようなエンティティがない場合は、"None "を返してくださ い。 user: エンティティタイプ: {{entity_type}} テキスト内容: {{text}} エンティティ:
  6. 例: 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"}
  7. 例: 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も実行されている
  8. 例: 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も実行されている
  9. 例: 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も実行されている
  10. Prompt Flowのデプロイ方法 https://github.com/microsoft/promptflow/tree/main/examples/tutorials/flow-deploy デプロイ方法は以下がある - Azure App Service - オンラインエンドポイント

    - Flowを関数として扱う - Flowをhttpエンドポイントとしてserverを立てる - Flowを実行可能アプリとする(streamlit) - Docker - k8s
  11. 弊社が採用したデプロイ方法 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
  12. まとめ、展望 - 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