RAGソリューションに関しては、多くの質問があります。
RAGベースのソリューションの開発全体を通じて明確な評価ストラテジーを立てることが、実稼働への道のりを確実に成功させるために重要です。パイロット中にはあらゆる種類の実証的評価が行われますが、再現不可能なこともあります。開発中のRAGベースのソリューションの性能を改善したり、本番の問題を適切に診断したりするには、評価タスクに再現性があり、迅速に実行できる必要があります。RAGパイプラインは、検索コンポーネントと生成コンポーネントの両方について、体系的かつ一貫して評価する必要があります。
RAGベースのソリューション・性能を理解することは、ソリューション・ライフサイクルのさまざまな段階でクリティカルな役割を果たします。
ただし、参照回答と参照コンテキストを備えたゴールデン・データセット(グラウンド・トゥルース)を作成する場合、評価エンジンを構築するための取り組みを過小評価してはなりません。
このドキュメントでは、さまざまな評価アプローチとメトリクスについて説明するとともに、これらのソリューションの評価を容易にするために提供されている再利用可能な資産をいくつか紹介します。
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トライアドは、大規模言語モデル(LLM)応答の信頼性とコンテキストの正確さを評価するための評価フレームワークです。これは、コンテキストの関連性、基盤性、回答の関連性の3つのアセスメントで構成されています。これらのアセスメントは、コンテキストの関連性、コンテキストに対する応答の信頼性、ユーザーの問い合わせとの回答の整合性を検証することで、LLM応答のハルシネーションを特定することを目的としています。
RAG評価は、自動リファレンスベースのメトリックとリファレンスレスメトリクスの両方を使用して実現できます。HuggingFaceには、オープンソースのLLM同士がどれだけ優れているかを示すリーダーボードがあります。
以下の検索メトリクスは参照ベースです。つまり、すべてのチャンクは一意に識別される(contexts_id)必要があり、すべての質問にはグラウンド・トゥルース・コンテキストの一意のIDがあります。
レコメンデーション・システムに使用されるランク認識の評価メトリクスは、RAGに適しています。
MRRはUnitxtで使用され、検索結果内の最初の関連ドキュメントの位置を測定します。MRRが1に近いほど、関連する結果が上位近くに表示されることを示しており、検索品質が高いことを反映しています。逆に、MRRが低いということは、検索性能が低下することを意味し、関連する回答が結果の下位に配置されることになります。
長所:検索シナリオでは重要なことが多い、最初の関連性の高い結果の重要性を強調しています。
短所:他のグラウンド・トゥルースに低ランクを割り当てると、検索にペナルティーが課されないという制限があります。取得した結果のリスト全体を評価する場合には適しておらず、最初の関連項目のみに焦点を当てています。
関連するすべてのアイテムが上位に配置される理想的なランキングと比較して、アイテムリストがどの程度適切に順序付けられているかを評価するランキング品質メトリクス。
NDCG@kは、DCG@kを理想的なDCG@k(IDCG@k)で割ったものとして計算され、位置kまでの完全にランク付けされたアイテムリストのスコアを表します。DCGは、リスト内のアイテムの総合的な関連性を測定します。
0から1の範囲
利点:関連アイテムの位置を考慮し、ランキングの品質をより総合的に把握できます。ランキングのさまざまなレベルに合わせて調整できます(例:NDCG@k)。
短所:MRRなどのより単純な指標と比較して、計算と解釈がより複雑です。比較には理想的なランキングが必要ですが、必ずしも利用できるとは限らず、定義も容易ではありません。
Mean Average Precision(MAP)は、結果リスト内で正しく取得された各ドキュメントのランキングを評価するメトリクスです。
これは、システムが結果の順序を考慮し、1回の実行で複数のドキュメントを取得する必要がある場合に有益です。
長所:精度と再現率の両方を考慮し、検索パフォーマンスのバランスが取れた評価を提供します。複数の関連ドキュメントとその正しい順序を必要とするタスクに適しています。
短所:単純なメトリクスと比較して、計算量が多くなる場合があります。他のメトリクスほど解釈が単純ではない場合があり、結果を完全に理解するにはより多くのコンテキストが必要です。
アウトプットが特定のコンテキストに基づいているかどうか、またはモデルがハルシネーションによる応答を生成するかどうかを測定します。
長所:生成された応答が信頼でき、提供されたコンテキストに基づいていることが保証されます。事実の正確さを最優先するアプリケーションに不可欠です。
短所:多くの場合、評価に人間の判断が必要となるため、労力がかかり、主観的になります。部分的な不正確さや微妙なハルシネーションを完全に捉えられない場合があります。
堅牢性は、一般的に、空白、小文字/大文字、タブなどのデータの大きな変動など、さまざまな入力バリエーションに適応するソリューションの能力として定義されます。
堅牢性のテストは評価プロセスの重要な側面であり、例えばUnitxtセマンティックを使用して実現できます。
長所:モデルがさまざまな入力条件にわたって確実に動作することを保証します。実世界への適用性:入力データが完全にフォーマットされていない可能性のある実用的なアプリケーションにとって重要です。
短所:多くのバリエーションにわたって徹底的なテストが必要で、時間がかかる場合があります。変動の定義:考えられるすべてのインプット変動を定義して測定することに取り組みます。
機械が生成したテキストと一連の参照テキストの間のn-grams、単語シーケンス、単語ペアの重複を比較することで、テキスト生成の品質を測定します。テキスト要約や翻訳などのタスクを評価するために広く使用されています。
長所:NLPコミュニティーで確立・認知されており、比較の基準を提供しています。すべての関連情報を収集することが重要なタスクに適しています。
n-gramのオーバーラップに焦点を当てているため、意味的な品質や流暢さを捉えられない場合があります。生成されるテキストの長さによって影響を受ける可能性があり、より短いかまたは簡潔なアウトプットにペナルティーが課される可能性があります。
機械翻訳されたテキストを1つ以上の参照翻訳と比較することで、その品質を測定します。生成されたテキスト内のn-gramの精度を参照テキストと比較して評価します。主に翻訳文を評価するために使用します。
長所:精度と正確な一致が重要なタスクに効果的です。標準測定基準:機械翻訳コミュニティーで広く採用されており、比較のベンチマークを提供します。
短所:参照テキストと完全に一致しないフレーズの正当なバリエーションを罰する場合があります。部分的な不正確さの盲点:部分的な不正確さや意味の微妙な違いを完全に捉えられないことがあります。
CPU使用率は主に検索段階に使用され、GPU使用率は主に生成段階に使用されます。
例:OpenAI API呼び出しによるコスト
ストレージ、ネットワーク、コンピューティングリソースなどによるコスト
保守、サポート、監視、ログ記録、セキュリティー対策などによるコスト
検索メトリクスが最適ではない性能を示しているにもかかわらず、生成メトリクスが良好な結果をもたらす場合は、次のことを推奨します。
逆に、検索メトリクスが強力なパフォーマンスを示しているにもかかわらず、生成結果が最適でない場合は、モデルの性能を向上させるために次のストラテジーを検討してください。
検索メトリクスと生成メトリクスの両方が標準以下の性能を示しているシナリオでは、メタデータの強化、ナレッジベースの改良、検索メカニズムの最適化など、パイプラインの初期段階を再訪問して再検討することが賢明です。
このアプローチでは、検索コンポーネントと生成コンポーネント間の相互作用と、意図した目標および目的を達成する上でのシステム全体の有効性を考慮した、RAGシステムの包括的かつ微妙な評価の重要性が強調されています。