PythonライブラリであるSentence Transformersは、検索拡張生成(RAG)や意味的検索など、多様なアプリケーションで埋め込みおよびリランカーモデルを利用・訓練するためのツールです。
このライブラリのv6.0アップデートにより、ColBERTスタイルの遅延相互作用検索に対応する「MultiVectorEncoder」という新しいモデルタイプが導入され、これに対応する完全な訓練アプローチが提供されました。
本記事では、この新しいマルチベクトルモデルをファインチューニングする方法が解説されています。
ファインチューニングには、モデル自体、データセット、損失関数、訓練引数、評価器、およびトレーナークラスといった複数の構成要素が関わってきます。
これらの各コンポーネントについて、強力なマルチベクトルモデルをファインチューニングするための実践的な使用例が提供されています。
この手法を用いることで、既存のマルチベクトルモデルをファインチューニングすることも、基盤となるトランスフォーマーからゼロから強力な新しいマルチベクトルモデルを構築することも可能です。
マルチベクトルモデルは、従来の密な埋め込みモデル(テキスト全体を単一のベクトルに圧縮し、ドット積で類似度を測る)とは異なり、トークンごとに小さなベクトルを保持し、クエリとドキュメントをスコアリングする「遅延相互作用(late-interaction)」型のモデルです。
筆者は、この手法を用いて訓練した「multi-vector-encoder/mLateOn-medical」モデルを、単一のRTX 3090上で14.5時間かけて訓練した結果、医療検索の評価において、密な埋め込み、疎な埋め込み、辞書ベース、マルチベクトルといったあらゆる汎用検索モデルを容易に上回る性能を示したと報告しています。
このライブラリの利用には、`pip install -U "sentence-transformers[train]"`で必要なパッケージをインストールすることが前提となります。
この記事は元情報をAIで日本語に要約したものです。全文翻訳ではなく、人手による完全な検証を保証しません。詳しくは原文をご覧ください。
Hugging Face
Training and Finetuning Multi-Vector Embedding Models with Sentence Transformers
原文の記事を確認する ↗