皆さんこんにちは。データサイエンティストチームYAMALEXのSsk1029Takashiです。
YAMALEXは Acroquest 社内で発足した、会社の未来の技術を創る、機械学習がメインテーマのデータサイエンスチームです。
この記事は「Prompt Flowを使ってRAGの回答を自動評価する」記事の続きの記事になります。
acro-engineer.hatenablog.com
前回記事では、Azure Machine Learning Prompt Flowを使って手動で回答を評価することはできたので、今回はファイルから複数回答の自動評価を検証してみます。
目次
おさらい
まず、今回検証したい内容をおさらいします。
RAGのシステムがログとして蓄積した回答履歴を検証してみるというのが今回の目的になります。
前回、手動で一つの回答について質問・コンテキスト・回答をもとに評価するフローを動かしてみました。
実行した結果と出力
[ { "system_metrics": { "duration": 0.006102 }, "output": { "variant_0": { "gpt_relevance": 5, "gpt_relevance_pass_rate": 100 } } } ]
今回はPrompt Flowの一括テストという機能を使って複数回答を検証してみます。
一括テストを使ってファイルのデータを対象に実行する
そこで、フローの入力にCSVを与えてまとめて実行できるようにしてみます。
評価フローには「一括テスト」という機能があり、入力にファイルを指定してまとめてフローを実行することができます。
一括テストは以下の手順になります。
- データファイルを用意する
- 一括テストを設定・実行する
- 評価履歴から結果を確認する
データファイルを用意する
まずは、評価する対象の回答履歴のデータファイルを用意します。
以下の形式でフローの入力にヘッダーを合わせたCSVを作成します。
データとしては3行あり、2行目のレコードのみ質問とは関係ない回答を返してしまっている例を入れています。
必ずしもヘッダなどは入力に合わせる必要はないのですが、あとの設定が簡単になるので、ヘッダは合わせておきましょう。
一括テストを設定・実行する
次に一括テストを実行します。
フロー編集画面の右上実行ボタンの隣に一括テストというボタンがあるので選択します。
ここを選択すると以下の一括テストと評価という画面になり、一括テストの設定ができます。
この中にデータという項目があり、「Upload new data」からファイルをアップロードできるので、先ほど作成したCSVファイルをアップロードしてみましょう。
アップロードに成功すると、以下のようにデータのプレビューが表示されます。
次に評価の設定画面になり、どのフローを使って実行するかを設定できるので、先ほどギャラリーから作成したフローを選択します。
選択すると上のようにどのカラムをどの入力にマッピングするかまで自動で設定できます。
後は送信ボタンを押して実行するだけです。
この後、無事実行が成功すれば以下のようにフローの画面でCompletedと表示されます。
一括テストの評価結果を確認する
これで実行まではできたので、どのような結果になったのか確認しましょう。
実行結果の確認はフローの画面の時計のようなマークのボタンから可能です。
ここを選択すると一括テストの評価結果の一覧画面が表示され、各実行ごとの結果を閲覧することができます。
一括テスト結果の画面
出力タブを表示すれば各レコードごとの結果を見ることができます。
gpt_relevanceというカラムが今回評価した値です。
また、メトリックタブではフローの中のAggregationタスクで各実行ごとに集計した値を一覧で見ることができます。
gpt_relevanceが評価値の平均で、gpt_relevance_pass_rate(%)が4以上のスコアを獲得できたレコード数の割合になります。
今回の集計結果としては、最高スコアの5が2つと、2が一つだけあり全体としてはgpt_relevance_pass_rate(%)が2/3で、よい結果が得られているという集計が確認できています。
このようにPrompt Flowを使えば、会話履歴のファイルからフローを動かすだけで自動で評価結果を集計することができます。
まとめ
前後半通して、Prompt Flowを使ってRAGの回答を自動で評価する仕組みを試しました。
Prompt Flowのサンプルが充実しており、手を加えずともここまでできてしまうのはすごいですね。
Prompt Flowの中で集計方法や評価方法もカスタマイズできるので、修正・評価のサイクルも素早く回せそうです。
まだPublic Previewのサービスですが便利な使い方がまだありそうです。
それではまた。