📐

Azure Prompt flowの評価指標とRAGASの評価指標の比較調査

2024/07/30に公開

結論

  • Azure Prompt flowの評価指標の中には、RAGASの評価指標の内容と近しいものがいくつか存在する。
  • がしかし、RAGASの評価指標は定量的評価であるのに対して、Azure Prompt flowのRAGの評価に使えそうな評価指標はほとんどがLLMベースの定性的評価(5段階評価)である。
  • プロンプトフローはあくまでRAGに特化しているわけではないので、RAGの検索側(retrieval)の性能を評価する指標が執筆時点ではない

目的

RAG(Retrieval-Augmented Generation)を活用したチャットボットシステムにおいて、回答精度を定期的に自動評価する仕組みを作りたい。

要件として、実際に精度評価をして精度が悪化したことが判明した際にRAGの生成側(generation)の問題か、検索側(retrieval)の問題か切り分けできることが求められる。

なお、RAGの評価フレームワークとして、RAGAS (Retrieval Augmented Generation Assessment)なるものが存在し、RAGにおいて定量的評価が可能な評価指標を有している。

例)RAGASには生成(generation) / 検索(retrieval)ごとに評価できる指標がある。

例)上記の他にも色々ある

RAGASの評価指標を回答精度の評価処理に採用したいが、回答精度を自動評価するシステムとしてプロンプトフローの評価フローを採用することを検討している。

時間をかけずにラクして自動評価する仕組みをつくるため、(もしあれば)以下の画像に示す評価フローで定義済みの評価指標からRAGASに近い評価指標を選定して採用したい。

調査結果

対応関連は以下となる。

Azure Prompt flowのRAGの評価に使えそうな評価指標はほとんどがLLMベースの定性的評価(5段階評価)であった。また、RAGの検索側(retrieval)の性能を評価する指標が執筆時点ではなかった。

※あくまで著者が似ていると勝手に判断して、対応づけているのでご了承ください。

RAGAS評価指標 ←の説明 ←の必要な値 プロンプトフローの評価フローで意味が近しい評価指標 ←の評価方法
Faithfulness(忠実度) 特定のコンテキストに対して生成された回答の事実上の一貫性を測定します。これは、回答と取得されたコンテキストから計算されます。答えは (0,1) の範囲にスケーリングされます。高ければ高いほど良いです。 A(pred)、context QnA Groundedness Evaluation

※RAGASとは異なり、1~5による判定で、LLMによる定性評価を行う
モデルの予測された回答がコンテキストに対してどの程度根拠があるかを測定します。LLMの応答が真であっても、文脈に照らして検証できない場合、そのような応答は根拠がないと見なされます。

この指標は 1 から 5 のスケールで採点され、1 が最悪、5 が最高です。
Answer Relevancy(回答の関連性) 生成された回答が特定のプロンプトにどの程度関連しているかを評価することに重点を置いています。スコアが低いほど、不完全な回答や冗長な情報を含む回答が割り当てられ、スコアが高いほど関連性が高いことを示します。 Q、A(pred)、context QnA Relevance Evaluation

※RAGASとは異なり、1~5による判定で、LLMによる定性評価を行う
モデルの予測された回答が、尋ねられた質問にどの程度関連しているかを測定します。

この指標は 1 から 5 のスケールでスコアリングされ、1 が最悪、5 が最高です。
Context Precision(コンテキストの精度) contextの中にground_truth関連項目が含まれ、なおかつそれが上位のチャンクとしてランキングされているかどうかを示す。
コンテキストのチャンクが回答生成に有用で、かつ上位にランキングされていると、高いスコアが割り当てられる。
Q、A(gt)、context 対応なし 対応なし
Context Recall(コンテキストの再現性) 取得したcontextがground_truthとどの程度一致しているかを測定します。これはground_truth とcontext に基づいて計算され、値の範囲は 0 から 1 で、値が大きいほどパフォーマンスが優れていることを示します。 A(gt)、context 対応なし

※ただしQnA Groundedness Evaluationに対して、A(pred)をA(gt)に置き換えれば使用できるか?
対応なし
Answer Semantic Similarity(回答の意味的類似性) 生成された回答とground_truthの間のセマンティック類似性の評価に関係します。この評価は、ground_truth と answer(pred)に基づいており、値は 0 から 1 の範囲に収まります。スコアが高いほど、生成された回答とground_truthの間の整合性が高いことを意味します。 A(gt)、A(pred) QnA GPT Similarity Evaluation

※RAGASとは異なり、1~5による判定で、LLMによる定性評価を行う
ユーザーが指定したground_truthの回答とモデルが予測した回答の類似性を測定します。

この指標は 1 から 5 のスケールで採点され、1 が最悪、5 が最高です。
Answer Correctness(回答の正確性) ground_truthと比較した場合の生成された回答の精度を測定することが含まれます。この評価は、スコアが 0 から 1 の範囲で、 ground_truthと 、answer(pred) に依存します。スコアが高いほど、生成された回答とground_truthの整合性が近いことを示し、正確性が高いことを示します。 A(gt)、A(pred)、context QnA F1 Score Evaluation

※ただし、Answer correctnessと異なり、ステートメントでなくトークンベースで指標値を計算する。また、トークンは空白区切りのため日本語ではそのままでは利用できなさそう。
F1 スコア評価フローでは、ground_truthの正規化されたバージョンと予測された回答の間の共通トークンの数を使用して f1 スコア メトリックを決定できます。

F1 スコア: 予測された回答とground_truthのトークンに基づいた f1 スコアを計算します。
F1 スコアは [0, 1] の範囲の値です。
ヘッドウォータース

Discussion