ステップ 5 (生成)。 生成品質をデバッグする方法

このページでは、生成の問題の根本原因を特定する方法について説明します。 このページは、 根本原因分析 で根本原因 Improve Generationが示された場合に使用します。

最適な検索を行っても、RAGチェーンのLLMコンポーネントが取得したコンテキストを効果的に利用して、正確で一貫性のある適切な応答を生成できない場合、最終的な出力品質が低下します。 生成品質の問題が発生する原因としては、幻覚、不整合、またはユーザーのクエリに簡潔に対処できないことなどがあります。

指示

次の手順に従って、生成品質の問題に対処してください。

  1. B_quality_iteration/01_root_cause_quality_issues ノートブックを開きます。

  2. クエリを使用して、生成品質の問題が発生したレコードの MLflow トレースを読み込みます。

  3. レコードごとに、生成された応答を手動で調べ、取得したコンテキストおよびグラウンドトゥルース応答と比較します。

  4. 生成品質が低いクエリ間でパターンや一般的な問題を探します。 例えば:

    • 取得したコンテキストに存在しない情報を生成する。

    • 取得したコンテキストと一致しない情報を生成する(幻覚)。

    • 提供された取得コンテキストに基づいてユーザーのクエリに直接対処できなかった。

    • 冗長すぎる、理解しにくい、または論理的な一貫性に欠ける応答を生成する。

  5. 特定された問題に基づいて、潜在的な根本原因と対応する修正を仮定します。 ガイダンスについては、「 生成品質が低下する一般的な理由」を参照してください。

  6. 「変更の実装と評価」の手順に従って、潜在的な修正プログラムを実装および評価します。これには、RAGチェーンの変更(プロンプトテンプレートの調整や別のLLMの試行など)やデータパイプラインの変更(たとえば、より多くのコンテキストを提供するためのチャンク戦略の調整)が含まれる場合があります。

  7. それでも生成品質が十分でない場合は、目的のパフォーマンスが得られるまで、次に有望な修正のためにステップ 4 と 5 を繰り返します。

  8. 根本原因分析を再実行して、チェーン全体に対処すべき追加の根本原因があるかどうかを判断します。

発電品質が悪い一般的な理由

次の表に、デバッグ ステップと、一般的な生成の問題に対する潜在的な修正を示します。 修正プログラムはコンポーネントごとに分類されます。

  • チェーン設定

  • チェーンコード

このコンポーネントは、 変更の実装と評価 のステップで従うべきステップを定義します。

重要

Databricks では、プロンプト エンジニアリングを使用してアプリの出力の品質を反復処理することをお勧めします。 次のステップのほとんどはプロンプトエンジニアリングを使用します。

発電の問題

デバッグ ステップ

潜在的な修正

生成された情報は、取得されたコンテキスト (幻覚など) に存在しません。

  • 生成された応答を取得したコンテキストと比較して、幻覚情報を特定します。

  • 特定の種類のクエリまたは取得したコンテキストが幻覚に陥りやすいかどうかを評価します。

  • チェーン設定 プロンプトテンプレートを更新して、取得したコンテキストへの依存を強調します。

  • チェーン設定 より高性能な LLM を使用します。

  • チェーンコード ファクトチェックまたは検証のステップを生成後に実装します。

ユーザーのクエリに直接対処しなかった、または過度に一般的な回答を提供しなかった

  • 生成された応答をユーザークエリと比較して、関連性と特異性を評価します。

  • 特定のタイプのクエリで正しいコンテキストが取得されるが、LLM の出力が低品質になるかどうかを確認します。

  • チェーン設定 プロンプトテンプレートを改善して、直接的で具体的な回答を促します。

  • チェーン設定 取得プロセスを改善することで、よりターゲットを絞ったコンテキストを取得します。

  • チェーンコード 取得結果を再ランク付けして、最も関連性の高いチャンクを最初に配置し、これらのみを LLM に提供します。

  • チェーン設定 より高性能な LLM を使用します。

生成された応答が理解しにくい、または論理的な流れを欠いている

  • 論理的な流れ、文法の正確さ、および理解可能性について出力を評価します。

  • 特定のタイプのクエリで一貫性のない現象が発生するかどうか、または特定のタイプのコンテキストが取得されるときに、一貫性が失われないかを分析します。

  • チェーン設定 プロンプトテンプレートを変更して、一貫性があり、適切に構造化された応答を促進します。

  • チェーン設定 LLM により多くのコンテキストを提供するには、関連する追加のチャンクを取得します。

  • チェーン設定 より高性能な LLM を使用します。

生成された回答が目的の形式またはスタイルではありません

  • 出力を予想される形式とスタイルのガイドラインと比較します。

  • 特定の種類のクエリまたは取得されたコンテキストが、形式またはスタイルの逸脱を引き起こす可能性が高いかどうかを評価します。

  • チェーン設定 プロンプトテンプレートを更新して、目的の出力形式とスタイルを指定します。

  • チェーンコード 生成された応答を目的の形式に変換するための後処理ステップを実装します。

  • チェーンコード 出力の構造とスタイルを検証するステップを追加し、必要に応じてフォールバック回答を出力します。

  • チェーン設定 特定の形式またはスタイルで出力を提供するように微調整された LLM を使用します。