ニュース

遅延相互作用モデルが次世代 RAG の標準であるのはなぜですか?

2024-08-05

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



AIxivコラムは、マシンハートが学術的・技術的な内容を掲載するコラムです。過去数年間で、Heart of the Machine AIxiv コラムには 2,000 件を超えるレポートが寄せられ、世界中の主要な大学や企業のトップ研究室がカバーされ、学術交流と普及を効果的に促進しています。共有したい優れた作品がある場合は、お気軽に寄稿するか、報告のために当社までご連絡ください。送信メール: [email protected] [email protected]

Zhang Yingfeng: Infra の共同創設者で、検索、AI、インフラストラクチャ開発に長年の経験を持ち、現在は次世代の RAG コア製品の構築に取り組んでいます。

RAG システムの開発では、優れた Reranker モデルが不可欠なリンクであり、さまざまな評価で常に使用されます。これは、ベクトル検索で表されるクエリはヒット率が低いという問題に直面するため、これを解決するには高度な Reranker モデルが必要です。これにより、大まかなスクリーニングとしてベクトル検索を使用し、詳細なソートとしてリランカー モデルを使用する 2 段階のソート アーキテクチャが形成されます。

現在、ランク付けモデルのアーキテクチャには主に 2 つのタイプがあります。

1. デュアルエンコーダー。 BERT モデルを例に挙げると、クエリとドキュメントを別々にエンコードし、最後にプーリング層を通過して、出力にベクトルが 1 つだけ含まれるようにします。クエリのランキング段階では、次の図に示すように、2 つのベクトルの類似性を計算するだけで済みます。デュアル エンコーダはランキング ステージと再ランキング ステージの両方に使用でき、ベクトル検索は実際にはこのランキング モデルです。デュアル エンコーダーはクエリとドキュメントを別々にエンコードするため、クエリとドキュメントのトークンの間の複雑なインタラクティブな関係をキャプチャできず、大量のセマンティック損失が発生します。ただし、並べ替えと処理を完了するにはベクトル検索のみが必要です。スコア計算により実行効率が非常に高くなります。



2. クロスエンコーダー。 Cross-Encoder は、単一のエンコーダー モデルを使用してクエリとドキュメントを同時にエンコードし、クエリとドキュメント間の複雑な相互作用をキャプチャできるため、より正確な検索ランキング結果を提供できます。 Cross-Encoder はクエリとドキュメントの Token に対応するベクトルを出力せず、クエリとドキュメントの類似性スコアを直接出力する分類子を追加します。欠点は、クエリ時に各ドキュメントとクエリを一緒にエンコードする必要があるため、並べ替えが非常に遅くなり、Cross-Encoder は最終結果の並べ替えにしか使用できないことです。たとえば、事前審査結果の上位 10 位を並べ替えるには、依然として数秒かかります。



今年以来、ColBERT [参考文献 1] に代表される別のタイプの作品が RAG 開発コミュニティで広く注目を集めています。以下の図に示すように、これは上記の 2 種類のランキング モデルとは大きく異なるいくつかの特徴を持っています。

1 つは、クロス エンコーダと比較して、ColBERT は依然としてデュアル エンコーダ戦略を使用して、独立したエンコーダを使用してクエリとドキュメントをエンコードするため、エンコード中にクエリ トークンとドキュメント トークンが相互に影響を与えないことです。オフラインで処理でき、クエリ時にクエリのみをエンコードするため、Cross Encoder よりも処理速度が大幅に向上します。

2 つ目は、デュアル エンコーダーと比較して、ColBERT は Transformer の最後の出力層から直接取得される単一のベクトルではなく複数のベクトルを出力するのに対し、デュアル エンコーダーはプーリング層を通じて複数のベクトルを 1 つのベクトルに変換します。したがって、一部のセマンティクスが失われます。

ソート計算では、ColBERT は遅延対話型計算類似度関数を導入し、それを最大類似度 (MaxSim) と名付けます。計算方法は次のとおりです。各クエリ トークン ベクトルに対して、すべてのドキュメント トークンに対応するベクトルを使用して類似度が計算されます。各クエリ トークンの最大スコアを追跡します。クエリとドキュメントの合計スコアは、これらの最大コサイン スコアの合計です。たとえば、32 個のトークン ベクトルを含むクエリ (最大クエリ長は 32) と 128 個のトークンを含むドキュメントの場合、次の図に示すように、32*128 の類似性演算を実行する必要があります。

したがって、比較すると、Cross Encoder は次のように呼び出すことができます。早期インタラクションモデル、ColBERTに代表される作品はこう呼ぶことができます。後期インタラクション モデル。



次の図は、パフォーマンスと並べ替え品質の観点から上記の並べ替えモデルを比較しています。遅延対話モデルは、並べ替えプロセス中にクエリとドキュメント間の複雑な対話をキャプチャする機能を満たし、ドキュメント トークンのエンコードのオーバーヘッドも回避するため、優れた並べ替え効果を保証できるだけでなく、より高速な並べ替えパフォーマンスも実現できます。同じデータ規模でも、ColBERT の効率は Cross Encoder の 100 倍を超える可能性があります。したがって、遅延相互作用モデルは非常に有望な並べ替えモデルです。自然な考え方は次のとおりです。遅延相互作用モデルを RAG で直接使用して、ベクトル検索 + ファイン ソートの 2 段階ソート アーキテクチャを置き換えることはできますか?



この目的を達成するには、ColBERT エンジニアリングにおけるいくつかの問題を考慮する必要があります。

1. ColBERT の MaxSim 遅延対話型類似度関数は、Cross Encoder よりもはるかに高い計算効率を持っていますが、通常のベクトル検索と比較すると、計算オーバーヘッドは依然として非常に高くなります。クエリとドキュメント間の類似度は複数ベクトルの計算であるため、MaxSim のオーバーヘッドは通常のベクトル類似度計算の M * N 倍です (M はクエリ内のトークンの数、N はドキュメント内のトークンの数です)。これらに応えて、ColBERT の作者は 2021 年に ColBERT v2 をリリースしました [参考 2]。これは、Cross Encoder とモデル蒸留を通じて生成される Embedding の品質を向上させ、生成されたドキュメント ベクトルを量子化する圧縮技術を使用して、 MaxSim のパフォーマンス。 ColBERT v2 パッケージングに基づくプロジェクト RAGatouille [参考文献 3] は、高品質の RAG ソートのソリューションになります。ただし、ColBERT v2 は単なるアルゴリズム ライブラリであり、エンタープライズ レベルの RAG システムでエンドツーエンドで使用することは依然として困難です。

2. ColBERT は事前トレーニングされたモデルであり、トレーニング データは検索エンジンのクエリと返された結果から得られるため、これらのテキスト データは大きくありません。たとえば、クエリ トークンの数は 32、ドキュメント トークンの数は 128 です。 、これは一般的な長さの制限です。したがって、ColBERT を実際のデータに使用すると、制限を超える長さは切り捨てられるため、長い文書の検索には適していません。

上記の問題を踏まえ、オープンソース AI ネイティブ データベース Infinity は、最新バージョンで Tensor データ型を提供し、エンドツーエンドの ColBERT ソリューションをネイティブに提供します。 Tensor をデータ型として使用すると、ColBERT エンコーディングによって出力された複数のベクトルを 1 つの Tensor に直接格納できるため、Tensor 間の類似性から MaxSim スコアを直接導き出すことができます。 MaxSim の大量の計算の問題に対応して、Infinity は 2 つの最適化ソリューションを提供しました。1 つはバイナリ量子化です。これは、元の Tensor の空間を元のサイズの 1/32 のみにすることができますが、相対的な順序は変更しません。 MaxSim の計算結果。このソリューションは、前段階の粗いスクリーニングの結果に基づいて対応する Tensor を抽出する必要があるため、主に Reranker に使用されます。もう 1 つは Tensor Index です。ColBERTv2 は、実際には ColBERT の作成者によって開始された Tensor Index 実装です。これは、主に量子化とプレフィルタリング技術、および SIMD によって ColBERT v2 を改良したものと見なされます。導入を迅速化するために主要な操作に関する指示が導入されています。 Tensor Index は、Reranker ではなく Ranker にサービスを提供するためにのみ使用できます。さらに、トークン制限を超える長いテキストのために、Infinity は Tensor Array タイプを導入します。



ColBERT の制限を超えたドキュメントは、それぞれエンコードおよび Tensor を生成した後、複数の段落に分割され、元のドキュメントと同じ行に保存されます。 MaxSim を計算する場合、クエリとこれらの段落は別々に計算され、その最大値が文書全体のスコアとなります。以下に示すように:



したがって、Infinity を使用すると、遅延インタラクション モデルをエンドツーエンドで導入し、高品質で RAG を提供できます。では、ColBERT はランカーまたはリランカーとして使用する必要がありますか?以下では、Infinity を使用して実際のデータセットの評価を実行します。 Infinity の最新バージョンは史上最も包括的なハイブリッド検索ソリューションを実装しているため、リコール方法にはベクトル検索、全文検索、スパース ベクトル検索、上記の Tensor、およびこれらの方法の組み合わせが含まれ、さまざまな Reranker メソッドが提供されます。 、RRF、ColBERT Reranker など、ハイブリッド検索と Reranker のさまざまな組み合わせをレビューに含めます。

評価には MLDR データセットを使用します。 MLDR は、MTEB [参考文献 5] が Embedding モデルの品質を評価するために使用するベンチマーク セットです。MLDR は、Multi Long Document Retrieval と呼ばれるデータ セットの 1 つで、合計 200,000 件の長いテキスト データが含まれています。評価では、埋め込みモデルとして BGE-M3 [参考文献 6]、Tensor の生成に Jina-ColBERT [参考文献 7] を使用し、評価スクリプトも Infinity ウェアハウス [参考文献 8] に配置されます。

評価1:ColBERTはリランカーとして有効か? BGE-M3 を使用して、200,000 の MLDR データから密ベクトルと疎ベクトルを生成し、それらを Infinity データベースに挿入します。データベースには、元のテキスト、ベクトル、疎ベクトル、テンソルを保存し、対応するフルテキスト インデックスを構築する 4 つの列が含まれています。それぞれインデックス、スパース ベクトル インデックス。評価には、次のように、一方向リコール、二方向リコール、三方向リコールを含むすべてのリコールの組み合わせが含まれます。



評価指標はnDCG@10を採用。その他のパラメーター: RRF Reranker を使用する場合、粗いスクリーニングによって返される上位 N = 1000、クエリの総数は 800、平均クエリ長は約 10 トークンです。



図からわかるように、ColBERT Reranker を使用した後、すべてのリコール ソリューションの結果が大幅に向上しました。 ColBERT は遅延インタラクション モデルとして、MTEB の Reranker ランキングの上位に匹敵するランキング品質を提供できますが、パフォーマンスは 100 倍高いため、より大規模な再ランキングを実行できます。図に示した結果はTop 100 Rerankerの場合であり、Top 1000はColBERTの並べ替えに使用されるため、値は大きく変化せず、パフォーマンスが大幅に低下するため推奨されません。従来、Cross Encoder に基づく外部リランカーを使用する場合、トップ 10 には 2 番目のレベルの遅延が発生します。ただし、Infinity は、トップ 100 またはトップ 1000 が並べ替えられた場合でも、内部で高性能の ColBERT リランカーを実装します。経験値には影響しませんが、再現範囲が大幅に増加するため、最終的なランキング効果が大幅に向上します。さらに、この ColBERT Reranker 計算は純粋な CPU アーキテクチャ上でのみ実行する必要があるため、導入コストも大幅に削減されます。

評価 2: この比較は、リランカーではなくランカーとしての ColBERT に基づいています。したがって、Tensor 列データの Tensor インデックスを構築する必要があります。同時に、Tensor Index によってもたらされた精度の損失を評価するために、総当たり検索も実行されました。



Reranker と比較すると、精度を損なうことなく総当たり検索を使用しても大きな改善はなく、Tensor Index に基づくソート品質は Reranker を使用する場合よりもさらに低いことがわかります。ただし、ランカーとしてのクエリ時間ははるかに遅くなります。MLDR データ セットには 200,000 のドキュメント データが含まれており、Jina-ColBERT を使用して Tensor データに変換すると、そのデータ量は 320 G にもなります。 Tensor データ型はドキュメントです。ColBERT モデルの次元は 128 次元であるため、Tensor インデックスが構築された場合でも、デフォルトのデータ量は 2 桁増加します。 、非常に多くのデータをクエリするには平均 7 秒かかりますが、それ以上の結果は得られません。

したがって、ColBERT はランカーとしてよりもリランカーとしての方がはるかに収益性が高いことは明らかです。現在の最良の RAG 検索ソリューションは、3 方向ハイブリッド検索 (全文検索 + ベクトル + スパース ベクトル) に基づいて ColBERT Reranker を追加することです。 ColBERT Reranker を使用するには、別の Tensor 列を追加する必要があり、その列は元のデータ セットと比較して 2 桁も拡張されるのですが、それだけの価値があるのか​​と質問するパートナーもいるかもしれません。まず第一に、Infinity は Tensor にバイナリ量子化メソッドを提供します。これは Reranker としてソート結果にはあまり影響しませんが、最終的なデータは元の Tensor の 1/32 にしかならない可能性があります。第二に、たとえそうであっても、このオーバーヘッドが高すぎると考える人もいるでしょう。ただし、ユーザーの観点からすると、より高い並べ替え品質とより低いコストと引き換えに、より多くのストレージを使用することには依然として非常に価値があります (並べ替えプロセスには GPU は必要ありません)。最後に、データ インフラストラクチャとして、パフォーマンスはわずかに低下しますが、ストレージのオーバーヘッドは大幅に削減されたレイト インタラクション モデルが間もなく開始されると考えています。このモデルは、これらの変更を透過的に行うことができ、これらのトレードオフをユーザーに引き渡すことが賢明な選択であると考えています。

上記は、MLDR データセットでの Infinity のマルチチャネル リコール評価に基づいています。他のデータ セットでの評価結果は異なる場合がありますが、全体的な結論は変わりません - 3 方向ハイブリッド検索 + Tensor ベースの並べ替えが現在のリコールです。最高品質の検索結果が得られる方法です。

このことから、ColBERT とその遅延対話モデルは RAG シナリオで大きな応用価値があることがわかります。これは、最近、マルチモーダル シナリオでも遅延対話モデルが認識されるようになったテキスト対話コンテンツ生成に関する研究です。これは ColPali [参考文献 9] で、次の図に示すように RAG のワークフローを変更します。



RAG が複雑な形式の文書に直面する場合、現在の SOTA は文書認識モデルを使用して文書のレイアウトを識別し、次に、識別された図表や写真などの部分構造に対応するモデルを呼び出して、それらを対応する構造に変換します。その後、テキストはさまざまな形式で RAG サポート データベースに保存されます。 ColPali はこれらの手順を省略し、マルチモーダル モデルを直接使用して埋め込みコンテンツを生成します。質問するときは、ドキュメント内の図に基づいて直接答えることができます。



ColPali モデルのトレーニングは ColBERT と似ていますが、これもクエリとドキュメントのページ ペアの形式を使用してクエリとドキュメントのマルチモーダル データ間の意味論的な関連性を取得しますが、マルチモーダル エンベディングの生成には PaliGemma [参考文献 10] を使用します。 Late Interaction 機構を使用せず、PaliGemma を使用して Embedding を生成する BiPali と比較した場合、nDCG@5 の評価指標の比較は 81.3 対 58.8 であり、この差が「優れている」と「まったく機能していない」の差となります。



したがって、ColBERT が登場してから 4 年が経ちますが、RAG における遅延インタラクション モデルの適用は、間違いなく RAG の利用シナリオを拡張し、マルチモダリティを含む複雑な RAG シーンで高品質の意味再現を提供するでしょう。 Infinity はすでにエンドツーエンド アプリケーションの準備ができています。Star Infinity (https://github.com/infiniflow/infinity) をフォローしてください。最高の AI ネイティブ データベースになるよう取り組んでいます。

参考文献

1. Colbert: bert 上のコンテキスト化された後期インタラクションによる効率的かつ効果的なパッセージ検索、SIGIR 2020。

2. Colbertv2: 軽量な後期インタラクションによる効果的かつ効率的な検索、arXiv:2112.01488、2021。

3.RAGatouille https://github.com/bclavie/RAGatouille

4. ビットベクトルを使用した効率的なマルチベクトル高密度検索、ECIR 2024。

5. https://huggingface.co/mteb

6. https://huggingface.co/BAAI/bge-m3

7. https://huggingface.co/jinaai/jina-colbert-v1-ja

8. https://github.com/infiniflow/infinity/tree/main/python/benchmark/mldr_benchmark

9. ColPali: 視覚言語モデルによる効率的な文書検索、arXiv:2407.01449、2024。

10. https://github.com/google-research/big_vision/tree/main/big_vision/configs/proj/paligemma