今日のRAGソリューションをより深く理解するために、RAG Cookbookの詳細をご覧ください

Watson for Customer Careリードスペースをベースとして使用して色を変更したリードスペース。
概要

RAGソリューションに関しては、多くの質問があります。

  • 検索性能を最大化する設計選択をどのように決定すべきか?
  • どの埋め込みモデルがドキュメントの最適なベクトル表現を作成するかを確認するにはどうすればよいか?
  • エージェントによるアプローチは必要か?
  • 再ランカーは結果を向上させるか?それとも、これらのパラメーターの選択が追加効果を与えるのか?

RAGベースのソリューションの開発全体を通じて明確な評価ストラテジーを立てることが、実稼働への道のりを確実に成功させるために重要です。パイロット中にはあらゆる種類の実証的評価が行われますが、再現不可能なこともあります。開発中のRAGベースのソリューションの性能を改善したり、本番の問題を適切に診断したりするには、評価タスクに再現性があり、迅速に実行できる必要があります。RAGパイプラインは、検索コンポーネントと生成コンポーネントの両方について、体系的かつ一貫して評価する必要があります。

RAGベースのソリューション・性能を理解することは、ソリューション・ライフサイクルのさまざまな段階でクリティカルな役割を果たします。

  • 実験とチューニングフェーズ
  • モニタリング段階

ただし、参照回答と参照コンテキストを備えたゴールデン・データセット(グラウンド・トゥルース)を作成する場合、評価エンジンを構築するための取り組みを過小評価してはなりません。

このドキュメントでは、さまざまな評価アプローチとメトリクスについて説明するとともに、これらのソリューションの評価を容易にするために提供されている再利用可能な資産をいくつか紹介します。

アプローチ

AIを評価するAI

LLMaaJ(LLM as a Judge)は、参照ベースの評価エンジンを構築するという課題を克服するための主要なメトリクスとして、昨年に登場しました。この評価手法は、人間の判断と良好な相関関係を生み出すことが示されています。既存のメトリクスやベンチマークでは定量化できないが、LLMaaJでは評価できる特性をいくつか紹介します。

  • 安全性 – モデルは有害または危険なコンテンツを生成しているか?
  • 基盤性 – 要約と検索拡張生成の場合、生成されたアウトプットはインプット・コンテキストに存在する事実に基づいているか?
  • センチメント – 生成される応答は、一般的に肯定的、否定的、またはその他の規定された感情か?
  • 有害性 – モデルは侮辱的、攻撃的、または差別的なコンテンツを生成しているか?
  • 言語スタイル – モデルはカジュアルな、正式な、または一般的な声で話しているか?嫌味、ユーモア、皮肉の評価が含まれます。

例えば、スコアリング・モデルを使用して他のモデルの出力を評価する場合、スコアリング・プロンプトにはスコア付けする属性と評価スケールの説明を含め、評価対象の回答を含めるように補間する必要があります。

この例では、モデルは応答の言語スタイルを評価し、分類を返すように求められます。

あなたは公正で公平な採点者です。チャットボットの応答を感情に応じて分類するように求められます。以下の応答を評価し、対応するクラスを抽出してください。可能なクラスは、POSITIVE、NEUTRAL、NEGATIVEです。推論を説明し、分類された感情を述べて結論づけます。
{{response}}

 

または、例えば、以下は、NER(Named Entity Recognition)タスクのLLM駆動型評価のfew-shotプロンプティングの例です。

-----------------------------------プロンプト---------------------------------------------
あなたはプロの評価者であり、与えられたテキストにエンティティー抽出の精度をスコアとして評価することがあなたの任務です。テキスト、エンティティー、エンティティー値が与えられます。
0から1までの数値スコアを入力してください。1が最良のスコアで、0が最悪のスコアです。スコアリングには厳密に数値を使用します。

以下に例を示します。

テキスト:IBMのオフィスはニューヨークにありますか?
エンティティー:組織名
値:IBMの
スコア:0

テキスト:サポートが必要な場合は、1-800-555-1234のカスタマー・サービスまでお電話ください。
エンティティー:電話番号
値:+1 888 426 4409
スコア:1

テキスト:watsonxには、watsonx.ai、watsonx.data、watsonx.governanceの3つのコンポーネントがあります。
エンティティー:製品名
値:Google
スコア:0.33

テキスト:この会議は2024年8月15日に予定されています。
エンティティー:日付
値:2024年8月15日
スコア:1

テキスト:同僚のジョンとアリスが会議に参加します。
エンティティー:人の名前
値:アリス
スコア:1

-----------------------------------アウトプット---------------------------------------------スコア:0.67
--------------------------------------------------------------------------------------
メトリクス

RAGシステムの複雑さは、大規模言語モデル(LLM)の謎めいた性質や、RAGパイプライン内の複雑で相互接続されたコンポーネントの影響を大きく受けています。テクノロジーが前例のない速度で進歩し続けるにつれて、このような複雑なシステムを評価することはますます困難な作業になっています。この課題に対処するために、RAGシステム専用の無数のベンチマークと評価ツールが開発されました。これらのリソースは、これらのシステムのパフォーマンスと有効性を評価するための標準化された体系的なアプローチを提供するよう機能します。

例えば、以下の表(参考:「Evaluation of Retrieval-Augmented Generation: A Survey」)に示すように、RAG評価方法とツールは多様に存在し、それぞれに独自の強みと用途があります。この表は、網羅的なものではなく、RAG評価の現在の状況を簡潔に示すことを目的としています。

RAGソリューションの評価指標とスキームの部分的な表。

RAGシステムの検索コンポーネントのコンテキストでは、いくつかの課題が発生します。

検索コンポーネントに関しては、主に将来の知識リポジトリーの広範かつ動的な性質、データの時間的側面、および情報ソースの異種性により課題が発生します。これらの課題を考慮すると、再現率や適合率などの従来の評価メトリクスは、包括的な評価を提供するには不十分であり、不備があることが明らかになりました。その代わりに、検索プロセスの複雑さや微妙な点を効果的に捉えることができる、より微妙で文脈に依存したメトリクスが必要とされています。

生成コンポーネントに関しては、検索プロセスの精度と生成されたアウトプットの品質との複雑な関係を考慮することが重要です。これには、システムの性能の全体的かつ微妙なアセスメントを提供できる包括的な評価メトリクスの開発と実装が必要です。

さらに、RAGシステム全体を評価するには、コンポーネントが生成プロセスに与える影響を徹底的に調査し、意図した目標と目的を達成する上でのシステム全体の有効性と効果を評価する必要があります。

RAGトライアドは、大規模言語モデル(LLM)応答の信頼性とコンテキストの正確さを評価するための評価フレームワークです。これは、コンテキストの関連性、基盤性、回答の関連性の3つのアセスメントで構成されています。これらのアセスメントは、コンテキストの関連性、コンテキストに対する応答の信頼性、ユーザーの問い合わせとの回答の整合性を検証することで、LLM応答のハルシネーションを特定することを目的としています。

RAGソリューションの性能を評価するためのRAGトライアド・フレームワークのイラスト。

RAG評価は、自動リファレンスベースのメトリックとリファレンスレスメトリクスの両方を使用して実現できます。HuggingFaceには、オープンソースのLLM同士がどれだけ優れているかを示すリーダーボードがあります。

検索メトリクス

以下の検索メトリクスは参照ベースです。つまり、すべてのチャンクは一意に識別される(contexts_id)必要があり、すべての質問にはグラウンド・トゥルース・コンテキストの一意のIDがあります。

レコメンデーション・システムに使用されるランク認識の評価メトリクスは、RAGに適しています。

MRR(平均逆順位)

MRRはUnitxtで使用され、検索結果内の最初の関連ドキュメントの位置を測定します。MRRが1に近いほど、関連する結果が上位近くに表示されることを示しており、検索品質が高いことを反映しています。逆に、MRRが低いということは、検索性能が低下することを意味し、関連する回答が結果の下位に配置されることになります。

長所:検索シナリオでは重要なことが多い、最初の関連性の高い結果の重要性を強調しています。
短所:他のグラウンド・トゥルースに低ランクを割り当てると、検索にペナルティーが課されないという制限があります。取得した結果のリスト全体を評価する場合には適しておらず、最初の関連項目のみに焦点を当てています。

NDCG(正規化割引累積利益)

関連するすべてのアイテムが上位に配置される理想的なランキングと比較して、アイテムリストがどの程度適切に順序付けられているかを評価するランキング品質メトリクス。

NDCG@kは、DCG@kを理想的なDCG@k(IDCG@k)で割ったものとして計算され、位置kまでの完全にランク付けされたアイテムリストのスコアを表します。DCGは、リスト内のアイテムの総合的な関連性を測定します。

0から1の範囲

利点:関連アイテムの位置を考慮し、ランキングの品質をより総合的に把握できます。ランキングのさまざまなレベルに合わせて調整できます(例:NDCG@k)。
短所:MRRなどのより単純な指標と比較して、計算と解釈がより複雑です。比較には理想的なランキングが必要ですが、必ずしも利用できるとは限らず、定義も容易ではありません。

MAP(平均適合率)

Mean Average Precision(MAP)は、結果リスト内で正しく取得された各ドキュメントのランキングを評価するメトリクスです。

これは、システムが結果の順序を考慮し、1回の実行で複数のドキュメントを取得する必要がある場合に有益です。

長所:精度と再現率の両方を考慮し、検索パフォーマンスのバランスが取れた評価を提供します。複数の関連ドキュメントとその正しい順序を必要とするタスクに適しています。
短所:単純なメトリクスと比較して、計算量が多くなる場合があります。他のメトリクスほど解釈が単純ではない場合があり、結果を完全に理解するにはより多くのコンテキストが必要です。

生成メトリクス

忠実さ

アウトプットが特定のコンテキストに基づいているかどうか、またはモデルがハルシネーションによる応答を生成するかどうかを測定します。

長所:生成された応答が信頼でき、提供されたコンテキストに基づいていることが保証されます。事実の正確さを最優先するアプリケーションに不可欠です。
短所:多くの場合、評価に人間の判断が必要となるため、労力がかかり、主観的になります。部分的な不正確さや微妙なハルシネーションを完全に捉えられない場合があります。

堅牢性(感受性)

堅牢性は、一般的に、空白、小文字/大文字、タブなどのデータの大きな変動など、さまざまな入力バリエーションに適応するソリューションの能力として定義されます。

堅牢性のテストは評価プロセスの重要な側面であり、例えばUnitxtセマンティックを使用して実現できます。

長所:モデルがさまざまな入力条件にわたって確実に動作することを保証します。実世界への適用性:入力データが完全にフォーマットされていない可能性のある実用的なアプリケーションにとって重要です。
短所:多くのバリエーションにわたって徹底的なテストが必要で、時間がかかる場合があります。変動の定義:考えられるすべてのインプット変動を定義して測定することに取り組みます。

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)

機械が生成したテキストと一連の参照テキストの間のn-grams、単語シーケンス、単語ペアの重複を比較することで、テキスト生成の品質を測定します。テキスト要約や翻訳などのタスクを評価するために広く使用されています。

長所:NLPコミュニティーで確立・認知されており、比較の基準を提供しています。すべての関連情報を収集することが重要なタスクに適しています。
n-gramのオーバーラップに焦点を当てているため、意味的な品質や流暢さを捉えられない場合があります。生成されるテキストの長さによって影響を受ける可能性があり、より短いかまたは簡潔なアウトプットにペナルティーが課される可能性があります。

BLEU(バイリンガル評価アンダースタディ)

機械翻訳されたテキストを1つ以上の参照翻訳と比較することで、その品質を測定します。生成されたテキスト内のn-gramの精度を参照テキストと比較して評価します。主に翻訳文を評価するために使用します。

長所:精度と正確な一致が重要なタスクに効果的です。標準測定基準:機械翻訳コミュニティーで広く採用されており、比較のベンチマークを提供します。
短所:参照テキストと完全に一致しないフレーズの正当なバリエーションを罰する場合があります。部分的な不正確さの盲点:部分的な不正確さや意味の微妙な違いを完全に捉えられないことがあります。

コスト・メトリクス

GPU/CPU使用率

CPU使用率は主に検索段階に使用され、GPU使用率は主に生成段階に使用されます。

LLM呼び出しコスト

例:OpenAI API呼び出しによるコスト

インフラストラクチャー・コスト

ストレージ、ネットワーク、コンピューティングリソースなどによるコスト

オペレーション・コスト

保守、サポート、監視、ログ記録、セキュリティー対策などによるコスト

評価結果の理解

 

生成スコアと検索スコアに基づいてRAGモデルをチューニングするための修復アクションを示す四象限チャート。

検索メトリクスが最適ではない性能を示しているにもかかわらず、生成メトリクスが良好な結果をもたらす場合は、次のことを推奨します。

  1. チャンク化戦略(チャンクサイズやオーバーラップなど)を再検討して調整し、コンテキストと関連性のバランスを改善します。
  2. データをクリーニングして前処理し、ノイズや無関係な情報を除去します。
  3. 日付などのメタデータをチャンクに追加して、特定のユースケースに基づいてデータをフィルタリングして優先順位を付けます。
  4. 再ランキングの実装:これにより、検索システムはコンテキストに合わせて上位ノードを調整できます。*LangChainとLlamaIndexはどちらも、再ランク付けのための使いやすい抽象化を提供します。
  5. 人間への同様の質問は埋め込み空間では同様に見えない可能性があるため、LLMにクエリーを言い換えて再試行させます。
  6. LlamaIndexを使用して埋め込みをファイン・チューニングし、精度を向上させます。

逆に、検索メトリクスが強力なパフォーマンスを示しているにもかかわらず、生成結果が最適でない場合は、モデルの性能を向上させるために次のストラテジーを検討してください。

  1. 言語モデルをファイン・チューニングする:関連するデータセットを用いてモデルをファイン・チューニングし、ドメインに合わせてモデルをカスタマイズし、モデルの精度とコンテキストの理解を強化します。
  2. プロンプト・エンジニアリングを洗練させる:プロンプトの構造や文言を試して、モデルをより正確なアウトプットに導きます。
  3. さまざまな復号ストラテジーを使用する:ビーム検索、top-kサンプリング、核サンプリング(top-p)などの復号手法を調整して、生成された応答の品質を向上させます。
  4. 生成長の制御:アウトプットが簡潔かつ正確であることを保証するために、回答の長さに制約を設定します。
  5. フィードバック・ループを組み込む:最適とは言えない応答を特定して修正し、継続的な改善を可能にするシステムを導入します。
  6. マルチターン対話を活用する:複雑なタスクを複数ステップのやり取りに分解し、モデルが数回の反復を通じて回答を洗練させられるようにします。

検索メトリクスと生成メトリクスの両方が標準以下の性能を示しているシナリオでは、メタデータの強化、ナレッジベースの改良、検索メカニズムの最適化など、パイプラインの初期段階を再訪問して再検討することが賢明です。

このアプローチでは、検索コンポーネントと生成コンポーネント間の相互作用と、意図した目標および目的を達成する上でのシステム全体の有効性を考慮した、RAGシステムの包括的かつ微妙な評価の重要性が強調されています。

詳細はこちら

IBMから最新のテクノロジー・パターン、ソリューション・アーキテクチャー、およびアーキテクチャーに関する出版物を入手してください。

  1. IBM Architecture Centerに移動