3. RAG quality knobs — Databricks Generative AI Cookbook [2024/6/22時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Databricks生成AIクックブックのコンテンツです。
3. RAG品質のノブ
前のセクションでは、RAGアプリケーションのキーコンポーネントを紹介し、非構造化データに対するRAGアプリケーション開発における基本的な還俗を議論しました。このセクションでは、あなたのアプリケーションの品質を高めるためのそれぞれのコンポーネントの改善についてどのように考えることができるのかを議論します。
オフラインのデータパイプラインとオンラインのRAGチェーンの両方のすべてのポイントにおいてチューニングすべき"ノブ"が多数存在します。他に多くのものが存在していますが、あなたのRAGアプリケーションの品質に最大のインパクトをもたらす最も重要なノブにフォーカスします。Databricksではこれらのノブからスタートすることをお勧めします。
概念的な観点から、2つのキーとなるタイプの品質問題のレンズを通じてRAGの品質ノブを見ることが有益です。
-
収集の品質
- 与えられた収集クエリーに対して最も適切な情報を収集していますか?
- LLMに与えられるコンテキストで重要な情報が欠けていたり、過剰な情報が含まれていると、高品質なRAGアウトプットを生成することが困難になります。
- 与えられた収集クエリーに対して最も適切な情報を収集していますか?
-
生成の品質
- 収集された情報とオリジナルのユーザーのクエリーに対して、LLMは最も正確で、一貫性があり、有益なレスポンスを生成できていますか?
- ここでの問題は、ハルシネーション、一貫性のないアウトプット、ユーザークエリーに直接対応することに失敗するといったことが挙げられます。
- 収集された情報とオリジナルのユーザーのクエリーに対して、LLMは最も正確で、一貫性があり、有益なレスポンスを生成できていますか?
RAGアプリケーションには、品質の課題に対応すべきに試行錯誤できる二つのコンポーネントがあります: データパイプラインとチェーンです。収集の問題(シンプルにデータパイプラインをアップデートする)と生成の問題(RAGチェーンをアップデートする)の間に明確な線引きをしたいと思うかもしれません。しかし、現実はさらに微妙なものとなっています。収集の品質は、データパイプライン(パーシング/チャンキング戦略、メタデータ戦略、エンベディングモデルなど)とRAGチェーン(ユーザークエリーの変換処理、収集するチャンクの数、リランキングなど)の両方によって影響を受けることがあります。同様に、貧弱な収集(モデルのアウトプットに影響を与える不適切、あるいは不十分な情報など)のインパクトを生成の品質は避けることができません。
このオーバーラップによって、RAG品質改善に対する全体的なアプローチのニーズが高まります。データパイプラインとRAGチェーンの両方においてどのコンポーネントを変更するのか、これらの変更が全体的にどのような影響を与えるのかを理解することで、RAGのアウトプット品質を改善するためにターゲティングされたアップデートをかけることができるようになります。
- 入力データのコーパスの構成は?
- 生データはどのように抽出され、利用可能なフォーマットに変換されているのか(PDFドキュメントのパースなど)
- ドキュメントがどのように小さなチャンクに分割され、それらのチャンクがどのようにフォーマットされるのか(チャンキング戦略、チャンクサイズなど)
- それぞれのドキュメント/チャンクからどのようにメタデータ(セクションタイトル、ドキュメントタイトルなど)が抽出されるのか?このメタデータはそれぞれのチャンクにどのように含まれているのか(含まれていないのか)?
- 類似検索のために、テキストをベクトル表現に変換するためにどのエンベディングモデルが使われているのか
- 使用するLLMとパラメーター(温度、最大トークン数など)
- 収集パラメーター(収集するチャンク/ドキュメントの数など)
- 収集アプローチ(キーワード vs ハイブリッド vs セマンティック検索、ユーザークエリーの書き換え、ユーザークエリーをフィルターに変換、リランキングなど)
- 期待するアウトプットに向けてLLMをガイドするために、収集したコンテキストをどのようにプロンプトにフォーマットしているのか
- 目次
- 前のセクション: 2.4. ガバナンスとLLMOps
- 次のセクション: 3.1. データパイプライン