こんにちは!安藤 浩です。今回はAzure AI Studio でのプロンプトフローの構築とプロンプトフローの評価についてご説明します。
Azure AI Studio とは
Azure で提供される AI 関連のサービスを 1 つのプラットフォームにまとめたものです。 AI関連のサービスを一元管理でき、簡単にアプリ開発や AI モデルの構築、評価ができます。
プロンプトフロー とは
プロンプトフローとはLLMを含むAI アプリケーションの開発を実現できる開発ツールです。 GUIで処理と処理のつながりを可視化でき、評価も実施できます。
フローの種類には標準フロー、チャットフロー、評価フローなどがあります。
以下では、プロンプトフロー の基本的な使い方を紹介します。
プロンプトフローの実行方法
AI Studio を開き、ツール > プロンプト フローを押下します。

作成ボタンを押下します。

ローカルからアップロード の アップロードボタンを押下し、右側にアップロード画面が開くので、フォルダを参照して、アップロードします。 ここではもっとも 簡易的なチャットフロー のサンプル を例にアップロードしてみます。 また、フローの種類の選択は Chat Flow を選択します。

アップロードが完了すると、以下の画面が表示され、左側にフローが表示されます。

ここで接続の箇所で既にDeploy済のGPTを指定します。
「コンピューティング セッションを開始」を押下して、コンピューティング セッションを開始します。 コンピューティング セッションの開始は数分かかります。
コンピューティング セッション実行中のとなりのチャットボタンでチャットをすることができます。
プロンプトフローの評価方法
続いて、プロンプトフローの評価方法を説明します。
ツール > 評価 を押下します。

「+New evaluation」ボタンを押下します。

Prompt flow を選択します。

「評価するフローを選択する」で上記で作成したプロンプトフローを選択します。

「評価するデータを選択する」の箇所で「データセットの追加」で「ファイルをアップロードする」ボタンを押下して以下のdata.jsonl をアップロードします。
{"query":"What is the capital of France?", "ground_truth": "Paris","response": "","context": "","history": "[]"}
{"query":"What is the capital of Japan?", "ground_truth": "Tokyo","response": "","context": "","history": "[]"}
{"query":"What is ChatGPT?","ground_truth":"ChatGPT is a form of generative AI -- a tool that lets users enter prompts to receive humanlike images, text or videos that are created by AI.","response":"","context":"","history": "[]"}
{"query":"What is Machine learning (ML)?","ground_truth":"Machine learning (ML) is a branch of and computer science that focuses on the using data and algorithms to enable AI to imitate the way that humans learn, gradually improving its accuracy.","response":"","context":"","history": "[]"}
※Machine Learning のGround Truth は https://www.ibm.com/topics/machine-learning より引用。
プロンプトフローのデータセットマッピングで、以下のようにマッピングします。 設定したら、次へを押下します。

AI品質の箇所、マッピングは以下のように設定します。 ここではコンテキストは利用しないので、根拠性、関連性はチェックしません。
設定出来たら、次へを押下します。

内容を確認して「送信」を押下すると評価が開始されます。

実行結果が出るまで時間がかかりますが、以下のような結果が表示されます。

メトリックス
AI Studio でのプロンプトフローの評価では以下のようなメトリックスがあります。
メトリックス | 説明 |
---|---|
コヒーレンス | 生成されたテキストの一貫性と自然性を評価する。言語モデルが、スムーズに流れ、自然に読み取られ、人間のような言語に似た出力を生成できる程度を測定する。 |
流暢性 | モデルの回答の言語能力を評価するために使用されるメトリック。生成されたテキストが文法規則、構文構造、ボキャブラリの適切な使用方法にどの程度準拠しているかを評価し、言語的に正しく自然に聞こえる応答であるかを評価する。 |
類似性 | 正解の文 (またはドキュメント) と AI モデルによって生成された予測文の類似性を測定する。 |
F1スコア | モデルの予測とソース データ (グラウンド トゥルース) の間で共有される単語の数の比率を測定する。 |
グランド度 | モデルの生成された回答が入力ソースからの情報とどの程度整合しているかを評価する。 |
関連性 | モデルの生成された応答がソースのデータからの情報とどの程度関連するかを測定する。 |
評価結果の結果の解釈
上記の結果のインデックス:0,1 でコヒーレンス、流暢性、類似性はいずれも5で高い値です。Ground Truth(人間が入力した値) と一致しています。
インデックス:2,3 についてはコヒーレンス、流暢性は高いですが、上記に比べると類似性はやや少し低くなっていますが、Ground Truth(人間が入力した値)の入力よりも回答のほうがより詳細な説明になっているのでこのような値になったのだと思います。F1の値は回答のほうがより詳細な説明なので低い値になっていると推測します。
インデックス:2 の回答の冒頭の内容(翻訳済)は以下のようになっています。Ground Truth をもう少しより詳細にしたほうが良かったのではと思います。
ChatGPT は OpenAI が開発した会話型 AI モデルで、GPT (Generative Pre-trained Transformer) ファミリーの一部です。入力に基づいて人間のようなテキストを理解して生成するように設計されています。ChatGPT は会話に参加したり、質問に答えたり、説明を提供したり、自然言語を処理することで幅広いトピックを支援したりすることができます。
インデックス:3 の回答の冒頭の内容(翻訳済)は以下のようになっています。インデックス: 2と同様により詳細な説明がなされています。
機械学習 (ML) は人工知能 (AI) のサブセットであり、コンピューターがデータから学習し、特定のタスクごとに明示的にプログラムすることなく予測や決定を行えるようにするアルゴリズムとモデルの開発を伴います。 ML システムは、静的な一連のルールに従うのではなく、より多くのデータにさらされるにつれて時間の経過とともにパフォーマンスが向上します。 ### 機械学習の主要な概念: 1. **学習の種類:** - **教師あり学習:** モデルはラベル付きデータでトレーニングされます。つまり、各トレーニング例は出力ラベルとペアになっています。目標は、入力から出力へのマッピングを学習することです。
まとめ
簡単なチャットの例でしたが、Azure AI Studio でのプロンプトフローの実行とプロンプトフローの評価の方法について説明しました。 AI Studio でのプロンプトフローの評価はプレビュー版ですが、作成したプロンプトフローの妥当性を測るために有用なツールなので利用してみてはいかがでしょうか。