言語AIガイド

BM25 と語彙検索

BM25 は、用語の希少性と文書の長さを調整して、クエリ用語が出現する頻度によって文書にスコアを付ける、古典的なキーワード ベースのランキング関数です。

概要

BM25 は、用語の希少性と文書の長さを調整して、クエリ用語が出現する頻度によって文書にスコアを付ける、古典的なキーワード ベースのランキング関数です。何十年も前から存在しているが、今でも非常に強力で遍在する検索のベースラインとなっている。

BM25 と語彙検索は、テキストと音声を大規模に読み取り、生成、分類、変換するために使用される言語 AI スタックの一部です。

ディープダイブ

BM25 (ベスト マッチング 25) は、1990 年代の確率論的なオカピ フレームワークのバッグオブワード ランキング関数です。クエリ用語ごとに、用語頻度 (その単語が文書内に出現する頻度、パラメーター k1 によって制御される収穫逓減)、逆文書頻度 (コレクション全体で希少な単語ほど多くカウントされる)、および文書の長さの正規化 (パラメーター b、つまり長い文書が不当に優遇されない) の 3 つのシグナルが結合されます。これらの用語ごとのスコアを合計すると、ドキュメントのランクが得られます。トレーニングの必要がなく、逆インデックスによって非常に高速に実行されるため、Elasticsearch や Lucene などの検索エンジンがデフォルトで使用します。ニューラル検索の台頭にもかかわらず、BM25 は依然として、特に珍しい用語、正確な識別子、およびドメイン外クエリに関して、多くのベンチマークで勝利または同点です。

技術的な洞察

BM25 の用語頻度コンポーネントは飽和します。k1 パラメーターは、繰り返される単語のスコアを上げる上限を設定するため、50 回出現する用語の関連性が 1 回の 50 倍になるわけではありません。 b パラメータは、生の周波数と長さで正規化された周波数をブレンドします。 IDF は、「the」などの一般的な単語を重視し、特徴的な単語を重視します。各単語をそのドキュメント リストにマッピングする逆インデックスに基づいて動作するため、スコアリングはクエリ用語を含むドキュメントのみに適用され、非常に効率的になります。

BM25 と語彙検索をマスターする

BM25 は、用語の希少性と文書の長さを調整して、クエリ用語が出現する頻度によって文書にスコアを付ける、古典的なキーワード ベースのランキング関数です。何十年も前から存在しているが、今でも非常に強力で遍在する検索のベースラインとなっている。 BM25 と語彙検索は、テキストと音声を大規模に読み取り、生成、分類、変換するために使用される言語 AI スタックの一部です。深い理解を構築するには、BM25 と語彙検索を単一の機能ではなくオペレーティング モデルとして扱います。望ましい結果を定義し、前提条件を明確にし、システムが確実に実行できることと、依然として専門家の判断が必要なことを分離します。

実際、BM25 と語彙検索を使用する強力なチームは、プロンプト、検索、およびレビューのループを 1 つの統合コミュニケーション システムとして設計します。明示的な成功基準を文書化し、現実的なデータとワークフローに対してテストし、一度限りのベンチマークの成功ではなく、観察された失敗パターンに基づいて反復します。ここで、理論的な理解が、製品、ポリシー、運用全体にわたる永続的な機能に変わります。

言語ワークフローは、一貫性を犠牲にすることなく、より高速に移行できます。同時に、幻覚の事実がレポート、サポート フロー、または研究成果に静かに入力される可能性があります。最も回復力のあるアプローチは、実験のスピードとガバナンスの規律を組み合わせることであり、パイロットを実行し、証拠を取得し、意思決定ログを公開し、モデルの動作、ユーザーの期待、規制要件の進化に応じて安全対策を継続的に更新します。

戦略的影響

言語ワークフローは、一貫性を犠牲にすることなく、より高速に移行できます。

言語ワークフローは、一貫性を犠牲にすることなく、より高速に移行できます。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

言語やコミュニケーション スタイルを超えてアクセスが拡張されます。

言語やコミュニケーション スタイルを超えてアクセスが拡張されます。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

自動化が繰り返しを処理する間、チームは判断により多くの時間を費やすことができます。

自動化が繰り返しを処理する間、チームは判断により多くの時間を費やすことができます。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

BM25 と語彙検索の将来

BM25 が消滅する可能性は低いです。その代わりに、語彙スコアと密スコアが(しばしば相互ランク融合を介して)融合されるハイブリッド検索におけるニューラル手法と組み合わせられることが増えています。 SPLADE のような学習されたスパース モデルは、BM25 スタイルのスパース性とニューラル用語の重み付けをブレンドし、BM25 はニューラル リランカーの前の第 1 段階の取得者として機能することがよくあります。その速度、解釈可能性、トレーニング費用ゼロにより、実稼働検索における永続的な役割が保証されます。

現実世界の実装

Elasticsearch、OpenSearch、および Apache Lucene/Solr のデフォルトの関連性ランキング

2 段階の検索で低速のニューラル リランカーにフィードを与える第 1 段階の候補検索

正確な識別子とエラーコードが正確に一致する必要があるコードとログの検索

DPR のような高密度レトリバーを訓練するための厳しいネガティブなサンプルのマイニング

実装パターン

BM25 と語彙検索の実践

Elasticsearch、OpenSearch、および Apache Lucene/Solr のデフォルトの関連性ランキング。

Elasticsearch、OpenSearch、および Apache Lucene/Solr チームのデフォルトの関連性ランキングでは、通常、品質のしきい値を事前に定義し、エッジ ケースに対する人的エスカレーション パスを維持し、生産性の向上とエラー コストの両方を長期にわたって追跡すると、より良い結果が得られます。

BM25 と語彙検索の実践

2 段階の検索で低速のニューラル リランカーにフィードを与える、第 1 段階の候補検索。

2 段階の検索で低速のニューラル リランカーにフィードを与える第 1 段階の候補取得 チームは、通常、品質のしきい値を事前に定義し、エッジ ケースに対する人間によるエスカレーション パスを維持し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

BM25 と語彙検索の実践

正確な識別子とエラー コードが正確に一致する必要があるコードとログの検索。

正確な識別子とエラー コードが正確に一致する必要があるコードとログの検索 チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対する人的エスカレーション パスを維持し、生産性の向上とエラー コストの両方を長期にわたって追跡すると、より良い結果が得られます。

BM25 と語彙検索の実践

DPR のような密度の高いレトリバーを訓練するためのハード ネガティブ サンプルのマイニング。

DPR のような密度の高いレトリーバーをトレーニングするためのハード ネガティブ サンプルのマイニング チームは、通常、品質のしきい値を事前に定義し、エッジ ケースに対する人的エスカレーション パスを維持し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

リスクとガードレール

!

幻覚のような事実が、レポート、サポート フロー、または研究結果に静かに組み込まれる可能性があります。

!

迅速な対応により、同様のリクエスト間で一貫性のない結果が生じる可能性があります。

!

アクセス制御が弱いと、機密テキスト データが漏洩する可能性があります。

実装ロードマップ

1

展開する前に、出力形式、トーン、品質基準を定義します。

展開する前に、出力形式、トーン、品質基準を定義します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

2

正確さが重要な場合は常に、信頼できる情報源を使って地上対応を行ってください。

正確さが重要な場合は常に、信頼できる情報源を使って地上対応を行ってください。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

3

一か八かの成果物については人間によるレビュー チェックポイントを維持します。

一か八かの成果物については人間によるレビュー チェックポイントを維持します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

4

失敗パターンを追跡し、プロンプトやワークフローを定期的に再トレーニングします。

失敗パターンを追跡し、プロンプトやワークフローを定期的に再トレーニングします。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

探検を続けましょう