クロスエンコーダーは、各クエリと候補パッセージを同時に読み取り、トークン間の相互作用から関連性を判定することで、ホームAI検索の結果をスコアリングします。
これは一般的なリランキングよりも範囲の狭い処理です。ホームサーバーでは、数千件のノート、PDF、OCRチャンク、マニュアル、メタデータレコードを検索するために、まず高速な第1段階の検索システムが必要です。クロスエンコーダーが処理するのは、その段階で扱いやすい候補リストが作成された後だけです。その特徴的な仕組みがジョイントエンコーディングです。クエリの単語とパッセージの単語を1つのモデル入力に含めることで、別々にエンコードしたベクトルでは曖昧になりやすい関係性を、スコアリングモデルが判定できます。
高速検索とクロスエンコーディングは、検索経路の異なる部分を解決する
密なバイエンコーダーは、あらかじめドキュメントの埋め込みを作成しておくため、新しいクエリは一度だけ埋め込めば、大規模なインデックスと効率的に比較できます。そのため、第1段階の候補発見に適しています。
個別の文埋め込みによって、大規模な第1段階の類似度検索が実用的になります。ドキュメント表現をクエリの到着前に計算しておき、多数のリクエストで再利用できるためです。
クロスエンコーダーでは、この再利用可能なドキュメント表現を使用しません。候補ごとにクエリとパッセージを再び一緒に処理する必要があるため、質問のたびにプライベートなコレクション全体をスキャンする用途にはコストが高すぎます。
したがって、この2段階はファネルを形成します。低コストの検索でコーパス全体に対する再現率を確保し、その後、高コストのペアスコアリングで、最終順位を変え得る関連性判断が必要な候補だけに計算資源を使います。
クエリとパッセージのトークンを1つのジョイントシーケンスに入力する
クロスエンコーダーは、クエリと1つの候補パッセージを、通常はモデル固有の特殊トークンで区切った1つのペア入力として受け取ります。これにより、アテンションがペアの両方の部分にある語を結び付けられます。
CrossEncoderのペアでは、クエリと1つの候補パッセージをモデルへのジョイント入力に含め、関連性スコアを生成する前に、2つのテキスト間のトークン相互作用を可能にします。
このジョイント処理により、クエリの「更新日」に対してパッセージの「ポリシーの有効期限は…」が答えになっていることや、正確なモデル番号が、要求された条件と矛盾する周辺の文節を含む文に現れていることなどを検出できます。
モデルはペア全体を見るため、パッセージの長さが重要になります。長いチャンクはより多くのトークンを消費し、計算量を増やすだけでなく、実際に質問へ答えている文の周辺にある局所的な相互作用を薄める可能性があります。
出力されるのは新しいドキュメントベクトルではなく、新しい関連性スコア
1つのクエリとパッセージのペアを処理した後、クロスエンコーダーは、モデルが学習した関連性関数に基づいて、そのパッセージがクエリをどの程度満たしているかを示すスコアを出力します。
CrossEncoderの関連性スコアは、指定されたクエリとパッセージのペアごとに計算され、その候補の第1段階の順位を置き換えるために使用できます。
これらのスコアはクエリに固有です。クエリが変わればペアも変わり、計算結果も変わるため、通常は再利用可能な埋め込みとして保存されません。
そのため、クロスエンコーダーは、密ベクトルの類似度がほぼ同じだった2つの候補を大きく入れ替えられます。第2段階では、異なるスコアリング問題を解いているからです。
候補数が、ジョイントスコアリング開始前の再現率の上限を決める
クロスエンコーダーは、良いパッセージを30位から1位へ引き上げられますが、30位の候補が受け取った候補リストに含まれている場合に限られます。その範囲外にある情報は、第2段階からは見えません。
第2段階のランキングモデルとして、クロスエンコーダーはプライベートなコーパス全体を直接検索するのではなく、別の検索システムがすでに発見した候補を処理します。
候補リストを深くすると、正しいプライベートパッセージが第1段階を通過する可能性は高まりますが、ペア単位の推論処理も増加します。そのため、CPUやGPUのリソースが限られたホームサーバーでは、再現率を守りつつインタラクティブ検索を遅くしない候補数を選ぶ必要があります。
ジョイントスコアリングは、類似度だけでは見逃しやすい細かな違いに対応する
プライベートドキュメント検索には、年、モデルの末尾、家族、フォルダー、改訂版、否定、例外、要求された操作など、正確な条件が含まれることがよくあります。2つのパッセージが話題としては似ていても、そうした詳細を満たすのは一方だけかもしれません。
AI NAS上のセマンティック検索は、表現の異なるプライベートファイルから意味ベースの候補を提示します。クロスエンコーディングは、その候補のうち、正確なクエリを最もよく満たすものを判断する、より限定的な評価を加えます。
たとえば、「水濡れ損害の免責額」というクエリには、古い保険証券と現在の保険証券の両方がよく一致する可能性があります。ジョイントスコアリングは周辺の日付や表現を利用できますが、現在の状態に関する回答でどの改訂版を対象にするかは、バージョンメタデータによって決めるべきです。
この区別により、この記事の範囲が明確になります。クロスエンコーディングはペアのスコアリング方法を説明するものであり、より広い検索パイプラインは、候補生成、最新性、権限、引用元の来歴を引き続き担います。
ローカルでのクロスエンコーディングは、完全な再現率ではなく追加の計算量と引き換えにプライバシーを守る
スコアリングモデルをローカルで実行すれば、プライベートなクエリと候補テキストをホーム検索の経路内に留められますが、候補を1件追加するたびに推論ペアも1つ増えます。
クエリとドキュメントのスコアリング境界は明確です。モデルはクエリと指定されたドキュメントを受け取り、関連性スコアを返します。そのため、指定されたセットに含まれていない情報を取り戻すことはできません。
クロスエンコーダーの前段階で候補の再現率を測定し、その後のランキング品質と、リクエスト全体の合計レイテンシも測定してください。リランキング前に正しいパッセージが存在しない場合は、ペアスコアラーを責めるのではなく、抽出、検索、フィルター、候補数を改善します。
クロスエンコーダーが最も役立つのは、高速な検索システムがすでに正しい候補周辺を見つけており、残る課題が、その近い候補のうちどれが家庭内の質問に実際に答えているかを判断することである場合です。
テック&AIハブ
もっと読む

ホームカメラはクラウドの時刻サービスなしでイベントを同期できますか?
クラウドを使わないカメラ時刻の仕組みを優先した説明、共有リソースに伴うトレードオフ、クエリのファンアウトに関する3つのFAQ、そして実践的な検証手順。

ローカルAIサービスは推論前に破損したモデルレイヤーを検出できますか?
破損したモデル層の検出について、メカニズムを優先して説明し、共有リソースのトレードオフ、クエリのファンアウトに関する3つのFAQ、実践的な検証プロトコルを取り上げます。

すべての埋め込みを再生成せずにRAGシステムを復元できますか?
再埋め込みなしでRAGを復元する仕組み優先の説明、共有リソースのトレードオフ、クエリファンアウトに関する3つのFAQ、そして実践的な検証プロトコル。

