Last updated
Last updated
ユーザーによる検索要求を受けたナレッジベースは、設定された検索方式に従って既存の文書から関連する情報を検索し、言語モデルがより質の高い回答を生み出すために必要な情報の断片を選び出します。これは、LLMが得られる背景情報を決定し、結果の正確さと信頼性に影響を及ぼします。
経済的安いな検索方式には、ベクトルの類似性に基づくセマンティック検索や、キーワードによる直接マッチングが含まれます。前者では、テキストブロックとクエリをベクトルに変換し、その類似性を計算してより深い意味での一致を求めます。後者では、検索エンジンで経済的安い型に利用されている逆インデックス方式を使って、問題と関連するコンテンツを結びつけます。
これらの検索方式は、Difyナレッジベースで利用可能ですが、インデックス方式によって選択できる検索方法には差異があります。
高品質インデックスモードでは、Difyは3つの検索オプションを提供します:
ベクトル検索
全文検索
ハイブリッド検索
定義:ユーザーが入力した問題をベクトル化し、クエリテキストの数学的なベクトルを作成します。クエリベクトルとナレッジベース内のテキストベクトル間の距離を比較して、近接するセグメント内容を探し出します。
Rerankモデル:ベクトル検索で見つかったセグメントに対して、第三者のRerankモデルを使い、意味的な順位を再調整し、ソート結果を最適化します。"モデルプロバイダー"ページでRerankモデルのAPIキーを設定した後、"Rerankモデル"を検索設定でオンにします。
TopK:問題と類似度が高いテキストフラグメントを選ぶ際に用います。システムは選択されたモデルのコンテキストウィンドウサイズに基づき、動的にセグメント数を調整します。デフォルトは3で、数字が大きいほど多くのテキストセグメントが選ばれます。
スコア閾値:テキストフラグメントの選択基準となる類似度の閾値を設定し、このスコアを超えるフラグメントのみを選びます。デフォルトは0.5で、数字が高いほど、テキストと問題の類似度の要求が厳しくなり、選ばれるテキストの数が減ります。
TopKとスコアの設定はRerankステップでのみ有効ですので、Rerankモデルを追加し有効にする必要があります。
定義:全文検索とは、文書内の全ての単語を索引化するキーワード検索のことです。ユーザーが質問を入力すると、そのキーワードに基づいてナレッジベースから該当するテキスト片を探し出して返します。これは、検索エンジンにおける経済的安いなテキスト検索と似ています。
Rerankモデル: 全文検索で見つかったテキスト片を意味的に再分類し、より関連性の高い結果を提供するためのモデルです。モデルプロバイダーからRerankモデルのAPIキーを設定し、検索オプションでこの機能を有効にすることができます。
TopK: ユーザーの問いに最も関連性が高いと思われるテキスト片を選択する際に使用します。システムは選択されたモデルのコンテキストウィンドウの大きさに基づき、テキスト片の数を自動調整します。デフォルトでは3つのテキスト片が選択されますが、設定値を高めることで、より多くのテキスト片が選択されるようになります。
スコア閾値: テキスト片が選択される際の類似度の最低基準を設定します。設定されたスコア以上のテキスト片のみが選択されるようになります。デフォルト値は0.5ですが、この値を高く設定すればするほど、より類似度の高いテキスト片のみが選択されます。
TopKとスコア閾値の設定は、Rerankモデルが有効になっている場合にのみ機能します。
定義:ハイブリッド検索では、全文検索とベクトル検索を同時に実行し、最適な結果をユーザーに提供するために再ランキングを行います。
重み設定: ユーザーは、セマンティック検索とキーワード検索の優先度に重みをつけることができます。セマンティック検索は、ナレッジベース内のベクトル検索を指し、キーワード検索は、全文検索を指します。
セマンティック値を最大化: セマンティック検索のみを有効にし、文書の意味を深く探求します。Embeddingモデルを利用して、検索クエリに直接的なキーワードが含まれていなくても、正確な内容を見つけ出すことができます。また、多言語間の意味を理解し、正確な多言語検索結果を提供します。
キーワード値を最大化: キーワード検索のみを有効にします。これは、ユーザーが入力した情報に基づいてナレッジベース全体から一致する情報を探し出す方法であり、特定の情報や用語を正確に知っている場合に適しています。
キーワードとセマンティックの重み調整: ユーザーは、両者の重みを調整して、ビジネスシナリオに最適なバランスを見つけることができます。
Rerankモデル: 「モデルプロバイダー」ページでRerankモデルのAPIキーを設定し、検索設定でRerankモデル機能を有効にすることで、システムは一度検索結果を得た後、外部のRerankモデルを用いてそれらを再び意味的に整理し、結果の順序を最適化します。
『重み付け設定』 と 『Rerankモデル』 の設定項目では、以下のオプションを利用することができます:
TopK:ユーザーの質問と最も類似したテキスト断片を選び出す際に役立ちます。システムは選択したモデルのコンテキストウィンドウのサイズに応じて、動的に断片の数を調整します。デフォルトでは3に設定されています。設定値を大きくすると、より多くのテキスト断片が選ばれることになります。
スコアのしきい値:テキスト断片の選出における類似度の最低基準を設定するために使用します。つまり、設定したスコア以上のテキスト断片だけを抽出します。デフォルトではこの機能はオフになっており、テキスト断片の類似度に基づいたフィルタリングは行われません。オンにした場合、デフォルト値は0.5となります。値を高く設定するほど、抽出されるテキストの数は減少します。
経済的安いインデックス方式では、転置インデックス方式のみが提供されます。これは文書内のキーワードを迅速に検索するためのインデックス構造で、オンライン検索エンジンでよく使用されます。転置インデックスはTopK設定のみをサポートしています。
TopK:ユーザーの質問との類似度が最も高いテキスト断片をフィルタリングするために使用されます。システムは同時に、選択されたモデルのコンテキストウィンドウサイズに基づいて動的に断片の数を調整します。システムのデフォルト値は3です。値が高いほど、予想される呼び出されるテキストセグメントの数が多くなります。
設定後、実際のシナリオでキーワード検索とベクトル検索の適用方法を理解しましょう。