【バイエンコーダー】

バイエンコーダー とは?

公開:
💡 二人を別室で採点して、スコアだけ持ち寄って比べる方式
📌 このページのポイント
バイエンコーダー:別々にベクトル化して比較 クエリ エンコーダー (クエリ側) クエリ ベクトル [0.2, 0.8…] 文書 (事前に全件計算) エンコーダー (文書側) 文書 ベクトル [0.1, 0.7…] コサイン 類似度計算 0.85 ポイント:文書ベクトルは事前にベクトルDBへ保存 検索時は「クエリをベクトル化して距離計算するだけ」→ 100万件でも高速 クロスエンコーダーより精度は劣るが、第一段階の絞り込みに最適
バイエンコーダーのイメージ:クエリと文書を別々にベクトル化してコサイン類似度で比較
ひよこ ひよこ
バイエンコーダーって何をするものなの?
ペンギン先生 ペンギン先生
クエリ(質問)と文書を別々にベクトル(数値の塊)に変換して、そのベクトル同士の距離を測ることで「どれくらい似ているか」を判定するモデルだよ。
ひよこ ひよこ
クロスエンコーダーと比べて何が違うの?
ペンギン先生 ペンギン先生
クロスエンコーダーは質問と文書を一緒に処理するから精度は高いんだけど、遅い。バイエンコーダーは別々に処理するから速いんだ。ただし、2つが直接やり取りしないので精度はやや劣るよ。
ひよこ ひよこ
「別々に処理する」と何がいいの?
ペンギン先生 ペンギン先生
文書側のベクトルを事前に全部計算してベクトルDBに保存しておけるんだよ。検索するときはクエリベクトル化して距離を測るだけだから、100万件あっても一瞬で終わるんだ。
ひよこ ひよこ
じゃあ全部バイエンコーダーでよくないの?
ペンギン先生 ペンギン先生
精度が問題になる場面では不十分なことがあるんだよ。「似たキーワードを含む文書」をうまく区別できないケースがあるから、本当に重要な箇所ではクロスエンコーダーで再評価するんだ。
ひよこ ひよこ
どんな場面で使われるの?
ペンギン先生 ペンギン先生
RAGの第一段階の検索がまさにそれだよ。ベクトルDBから候補をザっと100件取ってきて、そこからクロスエンコーダーで上位10件に絞り込んでLLMに渡す、という流れが定番なんだ。
ひよこ ひよこ
バイエンコーダーが速さ担当で、クロスエンコーダーが精度担当なんだね!
ペンギン先生 ペンギン先生
その表現がぴったりだよ。セマンティック検索や類似文書検索など、大量の文書から「だいたい近いもの」を高速に探す場面ではバイエンコーダーが欠かせない存在なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「バイエンコーダー」って出てきたら「事前にベクトル化して高速検索するしくみ」と思えばだいたいOK!
📖 おまけ:英語の意味
「Bi-Encoder」 = 二方向エンコーダー
💬 クエリと文書を「2つの独立したエンコーダー(bi=二つ)」で処理することが名前の由来で、同じモデルを使って別々にベクトルを作るのが一般的なんだよ。
← 用語集にもどる