RAG アプリケーションの品質を向上させる
この記事では、検索拡張生成 (RAG) アプリケーションの品質を向上させるために各コンポーネントを調整する方法の概要について説明します。
オフライン データ パイプラインとオンライン RAG チェーンには両方とも、各時点でチューニングする無数の "ノブ" があります。 他にも無数のノブがありますが、この記事では、RAGアプリケーションの品質に最も大きな影響を与える最も重要なノブに焦点を当てます。 Databricks では、これらのノブから始めることをお勧めします。
品質に関する 2 つの考慮事項
概念的な観点から、品質の問題の 2 つの主要な側面から RAG 品質ノブを表示すると便利です。
検索品質: 特定の取得クエリに対して最も関連性の高い情報を検索していますか?
LLM に提供されるコンテキストに重要な情報が欠けていたり、余分な情報が含まれていたりする場合、高品質の RAG 出力を生成することは困難です。
生成品質: 取得した情報と元のユーザー クエリを考えた場合、LLM は最も正確で一貫した役に立つ応答を生成していますか?
ここでの問題は、誤認識、一貫性のない出力、またはユーザー クエリに直接対処できないという形で現れます。
RAG アプリには、品質の課題に対処するために反復処理できる 2 つのコンポーネント、(データ パイプラインとチェーン) があります。 検索の問題 (単にデータ パイプラインを更新する) と生成の問題 (RAG チェーンを更新する) をきれいに分けたくなる場合があります。 しかし、現実はより微妙です。 検索の品質は、データ パイプライン (解析またはチャンク戦略、メタデータ戦略、埋め込みモデルなど) と RAG チェーン (ユーザー クエリ変換、検索されたチャンクの数、再ランク付けなど) の両方から影響を受ける可能性があります。 同様に、生成品質は、必ず不適切な検索の影響を受けます (たとえば、モデルの出力に影響を与える無関係な情報や不足している情報)。
この重複は、RAG 品質の向上に対する総合的なアプローチの必要性を強調しています。 データ パイプラインと RAG チェーンの両方で変更するコンポーネントと、これらの変更がソリューション全体にどのような影響を与えるかを理解することで、RAG の出力品質を向上させるためにターゲットを絞った更新を行うことができます。
データ パイプラインの品質に関する考慮事項
データ パイプラインに関する主な考慮事項:
- 入力データ コーパスの構成。
- 生データを抽出して使用可能な形式に変換する方法 (PDF ドキュメントの解析など)。
- ドキュメントをより小さなチャンクに分割する方法と、それらのチャンクの書式設定方法 (チャンク戦略、チャンク サイズなど)。
- 各ドキュメントやチャンクについて抽出されたメタデータ (セクション タイトルやドキュメント タイトルなど)。 このメタデータを各チャンクに含める (または含めない) 方法。
- 類似性検索のためにテキストをベクトル表現に変換するために使用される埋め込みモデル。
RAG チェーン
- LLM とそのパラメーターの選択 (温度と最大トークンなど)。
- 検索パラメーター (たとえば、検索されたチャンクまたはドキュメントの数)。
- 検索方法 (キーワード、ハイブリッド検索、セマンティック検索、ユーザーのクエリの書き換え、ユーザーのクエリのフィルターへの変換、再ランク付けなど)。
- LLM を質の高い出力に導くために、検索したコンテキストでプロンプトを書式設定する方法。
次へ: データ パイプラインの品質 > を向上させる