OWN NEWS GATHER
← 戻る
Hugging Face Blog

Sentence Transformers v6.0が公開、ColBERT型マルチベクトルモデルの学習・ファインチューニングに対応

要点

  • Hugging FaceのTom Aarsen氏が、テキスト埋め込みライブラリ「Sentence Transformers」のv6.0アップデートを公開した。

  • 4番目のモデルタイプとして「MultiVectorEncoder」が追加され、ColBERTスタイルの遅延相互作用(Late Interaction)モデルの学習に対応した。

  • トークンごとにベクトルを保持しMaxSim演算で照合することで、単一ベクトルに圧縮する手法に比べて高精度な検索を実現する。

  • 単一のRTX 3090を用いた14.5時間の学習で、医療検索ベンチマークにおいて既存の汎用検索モデルを上回る性能を実証した。

  • オープンソースAIプラットフォームを展開するHugging Faceにおいて、機械学習エンジニアのTom Aarsen氏が2026年8月26日、テキスト埋め込み・リランキング用Pythonライブラリ「Sentence Transformers」のバージョン6.0を公開したことを公式ブログで発表した。最新版では4番目となる新たなモデルタイプ「MultiVectorEncoder」が導入され、ColBERT方式のマルチベクトルモデルのトレーニングおよびファインチューニング(追加学習)が可能になったという。これにより、ユーザーは特定のデータセットに合わせて高精度な情報検索モデルを構築できるようになると説明されている。

第4のモデルタイプ「MultiVectorEncoder」の導入

Sentence Transformersは、検索拡張生成(RAG:検索で得た情報を付加して回答を生成する手法)やセマンティック検索、テキスト間の類似度計算などに広く利用されているPythonライブラリである。これまでに密埋め込み(Dense)、疎埋め込み(Sparse)、リランカー(Reranker)の3種類のモデルをサポートしてきたが、v6.0において新たに「MultiVectorEncoder」が追加された。

この新機能により、ColBERTに代表される「遅延相互作用(Late Interaction)」と呼ばれるアーキテクチャを採用したマルチベクトルモデルのトレーニングが可能となった。既存のマルチベクトルモデルを特定の用途向けにファインチューニングできるだけでなく、ベースとなるTransformerモデルからゼロベースで新しいマルチベクトルモデルを学習させることもできるという。これらの機能は、コマンドラインで pip install -U "sentence-transformers[train]" を実行することで利用できるとされている。

トークン単位で照合を行うマルチベクトルモデルの仕組み

ブログ記事では、マルチベクトルモデルの技術的な仕組みと利点についても解説されている。従来の一般的な密埋め込み(Dense Embedding)モデルは、文章全体を単一のベクトルへと圧縮し、2つのベクトル間の内積(ドット積)を計算することで類似度を判定する。これに対し、マルチベクトルモデルではテキスト全体を1つのベクトルに圧縮する処理を行わない。

その代わりに、トークン(単語や文字などテキストを分割した最小単位)ごとに1つの小さなベクトルを保持する構成をとる。クエリ(検索文)とドキュメント(文書)のスコアリングには「MaxSim」演算子が用いられる。これは、クエリ側の各トークンに対してドキュメント側で最も類似度が高いトークンを探索し、それぞれの最高スコアをすべて足し合わせる手法である。

このトークン単位でのマッチング処理により、文章全体を単一ベクトルに要約する際に平均化されて失われてしまう細かなシグナルを維持できるという。インデックス(検索用の索引データ)のサイズが大きくなるというトレードオフはあるものの、一般的な検索タスクにおいてより強力な検索精度を得られると説明されている。

モデル学習を支える包括的なコンポーネント

Sentence Transformers v6.0には、マルチベクトルモデルの学習プロセス全体を支援する各種コンポーネントが統合されている。

モデル(Model)の構築においては、既存のマルチベクトルモデルを読み込んで追加学習を行うアプローチと、汎用のベースTransformerモデルから新たにマルチベクトル構造を組み立てるアプローチの2通りが選択可能となっている。

データセット(Dataset)に関しては、Hugging Face Hub上で公開されているデータセットを直接読み込んで使用できるほか、ローカル環境にある独自のデータセットの読み込みにも対応している。また、マルチベクトル学習専用のデータセットフォーマットもサポートされる。

さらに、学習時の最適化を行う損失関数(Loss Function)や各種トレーニング引数(Training Arguments)、検証用の評価器(Evaluator)に加え、コールバック処理や複数データセットを同時に扱うマルチデータセット学習に対応した専用の「Trainer」クラスが提供されている。

RTX 3090による14.5時間の学習で実証された検索性能

ブログ記事では、実際のデータを用いた検証結果も示されている。Aarsen氏は記事の執筆と並行して、コンシューマー向けGPUであるNVIDIA GeForce RTX 3090(1基)を使用し、事前学習済みモデル「mLateOn-unsupervised」を医療ドメイン向けにファインチューニングしたモデル「multi-vector-encoder/mLateOn-medical」を作成した。この学習に要した時間は14.5時間であったという。

医療分野の大規模検索ベンチマークである「MIRIAD 200k」を用いて評価を行ったところ、検索精度の指標である「NDCG@10(上位10件の検索結果における関連性の高さを示す指標)」において大幅な性能向上が確認された。

このファインチューニングされたモデルは、同ベンチマークにおいて検証されたあらゆる汎用検索モデルのスコアを容易に上回ったと報告されている。比較対象には、従来の密埋め込み(Dense)モデル、疎埋め込み(Sparse)モデル、文字の一致に基づく字句検索(Lexical)モデル、さらには他のマルチベクトルモデルが含まれており、特定ドメインに対するファインチューニングの有効性が示された形となった。

運用の手引きと関連リソース

なお、今回の発表はマルチベクトルモデルの「学習(Training)」に焦点を当てたものであるが、モデルのロードやエンコード処理、各種ベクトルデータベースへのインデックス登録といった実際の「利用方法」については、別途公開されているコンパニオン記事で詳しく解説されているという。また、密埋め込み、疎埋め込み、リランカーの学習手法についても、過去に公開された一連のガイド記事を参照できると案内されている。

元URL