ホームへ戻る

檢索與 RAG 工具

Sentence Transformers、多ベクトルモデルのドメイン微調整レシピを公開—ただしインデックスコストは依然として密ベクトルを大幅に上回る

Sentence Transformersは`MultiVectorEncoder`向けの完全なトレーニングフローを追加し、ColBERT型モデルをペアデータから直接ドメイン適応できるようにした。医療検索の実験では、教師あり事前調整前のチェックポイントのほうが新しいドメインに適応しやすいことが示されたが、この結論は単一のデータセットと限られたモデルファミリーに基づいている。

Daniel Jolivet · CC BY 2.0 · Image source
zh-Hant

Hugging Faceのメンテナーは、Sentence Transformersの多ベクトルモデル向けに完全な微調整レシピを公開した。v6.0で追加された`MultiVectorEncoder`を、読み込みと推論のインターフェースだけでなく、データ形式、損失関数、評価器、トレーナーまで含む形に拡張している。この種のColBERT型モデルは、文書全体を単一のベクトルに圧縮せず、各tokenの小さなベクトルを保持する。検索時には、各query tokenが最も類似するdocument tokenを探し、MaxSimによってスコアを累積する。製品番号、人名、関数名などの局所的なシグナルを保持できる一方、インデックス量とスコアリング計算量は大幅に増加する。

新しいフローは、質問と回答のペア、複数の候補文書を含む知識蒸留データ、およびフィールド単位で指定するquery/documentルーティングをサポートする。`CachedMultiVectorMultipleNegativesRankingLoss`はGradCacheを使って文書をチャンク単位でエンコードし、有効batch sizeがGPUメモリ容量に全面的に制約されないようにする。長さのばらつきが大きい文書についても、文書数ではなくtoken予算で各mini-batchを制御でき、突発的なGPUメモリ使用量のピークを抑えられる。MaxSimは複数のtoken類似度を累積するため、デフォルトのスケーリング値は、密ベクトル型のcosine lossで一般的な20.0ではなく1.0となっている。従来のレシピをそのまま流用すると、softmaxが過度に鋭くなる可能性がある。

著者は、25,000組の医療質問—パッセージペアを用いて、6種類の初期チェックポイントを比較した。50,000パッセージからなるホールドアウトテストでは、`mLateOn-unsupervised`のNDCG@10が0.9087から0.9398に上昇した。一方、すでに汎用的な教師あり微調整を終えていたGTE-ModernColBERTチェックポイントは、0.9198から0.9007へ低下した。この結果は、汎用的な教師ありアラインメントが、その後のドメイン適応を妨げる可能性があり、対照事前学習の完了後かつ汎用教師あり学習の前の重みから開始するほうが有利であることを示唆している。ただし、これは普遍的な法則ではない。実験対象は医療コーパス、主要な2つのモデルファミリー、単一の評価設計に限られている。

デプロイ時には、依然としてインデックスコストを考慮する必要がある。公式の例では、多ベクトルのfloat32インデックスはMiniLMの密ベクトルインデックスの約42倍となる。token pooling、量子化、PLAIDによって差を縮小できるほか、多ベクトルモデルを第2段階のリランキングだけに使用する方法もある。中国語RAGを開発するチームは、次のステップとして、トークン化、長文書の分割、希少語の再現率を独自に検証すべきであり、英語の医療データで得られた改善をそのまま適用することはできない。

出典

  1. Training and Finetuning Multi-Vector Embedding Models with Sentence Transformers
  2. Sentence Transformers v6.0.0 release notes