Sentence Transformers を使用したマルチモーダル エンベディングおよびリランカー モデルのトレーニングとファインチューニング

Hugging Face は、Sentence Transformers ライブラリを使用してマルチモーダル エンベディングおよびリランカー モデルのトレーニングとファインチューニング方法を示すチュートリアルをリリースし、ユーザーが Qwen3-VL-Embedding-2B のようなモデルを Visual Document Retrieval などの特定のタスクに適応できるようにしました。

Why Finetune Multimodal Models?

ファインチューニングは、汎用マルチモーダル モデルを特定のタスクに適応させ、検索パフォーマンスを大幅に向上させます。多様なデータで訓練された汎用モデルは、単一のタスクにおいて優れた性能を発揮することはほとんどありません。Visual Document Retrieval の場合、ドメイン固有のデータでファインチューニングを行うと、著者の実験では NDCG@10 が 0.888 から 0.947 に向上し、より大きなモデルをも上回りました。

Key Components for Training Multimodal Sentence Transformers

マルチモーダル Sentence Transformer モデルのトレーニングには、モデル、データセット、損失関数、トレーニング引数、評価器、トレーナーの 6 つのコンポーネントが必要です。このパイプラインは、テキスト専用トレーニングと同じ SentenceTransformerTrainer を使用しますが、重要な違いは、データセットに複数のモダリティ(テキスト、画像、オーディオ、ビデオ)が含まれ、モデルのプロセッサが前処理を自動的に処理する点です。

Model Preparation for Multimodal Training

既存のマルチモーダル エンベディング モデルをファインチューニングするには、SentenceTransformer でロードし、オプションで model_kwargs(精度と注意の実装用)および processor_kwargs(画像解像度の境界用)を指定します。あるいは、Vision-Language Model チェックポイントから開始することもできます;Sentence Transformers はモダリティを推定し、フォワード メソッドとプーリングを設定しようとします。Transformer モジュールはプロセッサを調べて利用可能なモダリティを決定し、必要に応じて Pooling を自動的に追加します。サポートされているモダリティは model.modalities と model.supports("modality) を使って確認できます。

Dataset Requirements for Multimodal Training

データセットの形式は、損失関数の入力要件に合わせる必要があります。"label" または "score" 以外の列は入力であり、その順序は損失関数の有効な入力数と一致している必要があります。入力には、テキスト(文字列)、画像(PIL 画像、ファイル パス、URL、または numpy/torch 配列)、オーディオ、ビデオ、または modality 名を値にマッピングするマルチモーダル ディクショナリを含むことができます。データ コラレータは自動的に model.preprocess() を呼び出してモダリティ固有の前処理を行い、手動のトークン化や画像処理を不要にします。

Loss Functions for Multimodal Retrieval

検索タスクでは、任意の数のハードネガティブ列を持つ (query, positive) ペアを受け入れる CachedMultipleNegativesRankingLoss を使用します。これは、各クエリのポジティブへの類似度を上げ、すべてのネガティブへの類似度を下げ、データセットからのハードネガティブおよび同じバッチ内の他のサンプルからのインバッチネガティブを使用します。「cached」バリアントは、ミニバッチサイズ パラメータで制御されるグラディエント キャッシングにより、大きな有効バッチサイズを可能にします。複数の次元で機能するエンベディングを生成するには、ベースの損失を MatryoshkaLoss でラップし、エンベディングを小さな次元に切り詰めても良好なパフォーマンスが保たれるようにモデルをトレーニングします。

Training Arguments and Configuration

SentenceTransformerTrainingArguments を使ってトレーニングを設定します。マルチモーダル トレーニングの主要な設定には、VLM の数値の安定性を向上させる bf16=True、バッチ内のネガティブが一意のサンプルとなるように batch_sampler=BatchSamplers.NO_DUPLICATES、および CachedMultipleNegativesRankingLoss のグラディエント キャッシングにより実行可能な per_device_train_batch_size を 64 などの値に設定することが含まれます。eval_strategy、save_strategy、logging_steps を分数(例: 0.1)に設定すると、エポックの 10% 毎に評価、保存、ログを記録できます。

Evaluation Setup for Multimodal Retrieval

InformationRetrievalEvaluator を使用して、NDCG@10、MAP、Recall@k などのメトリクスを計算します。データセットから評価データを構築します:整数 ID を使ってクエリとコーパスをマッピングし、オフセット ID を付けたハードネガティブをコーパスに追加して衝突を避け、各クエリと同じインデックスのポジティブ ドキュメントを関連ドキュメントとして定義します。評価器はテキスト クエリ、画像のコーパス(ハードネガティブを含む)、およびクエリから関連ドキュメントへのマッピングを取ります。大きな VLM によるメモリ不足を防ぐため、評価時には batch_size=1 を使用してください。

Training Process and Results

トレーニング スクリプトは、SentenceTransformerTrainer を介してモデル、データセット、損失、引数、評価器を統合します。テキスト専用トレーニングとの違いは、モデル ロード時に model_kwargs と processor_kwargs を渡すこと、メモリ管理のために mini_batch_size=1 の CachedMultipleNegativesRankingLoss を使用すること、およびコーパスに画像があり、クエリがテキストである評価器を使用することです。Visual Document Retrieval の例では、Qwen3-VL-Embedding-2B を 1 エポックファインチューニングすると、評価セットで NDCG@10 が 0.947 に達し、ベースモデルの 0.888 を上回り、最大で 4 倍大きいモデルを含むすべてのテスト済み VDR モデルを凌駕しました。Matryoshka トレーニングにより、低次元でも強力なパフォーマンスが可能になります:ファインチューニング済みモデルは、フル 2048 の 32 倍小さい 64 次元でもピークの NDCG@10 の 92% 以上を保持します。

Training Multimodal Reranker Models

CrossEncoderTrainer と Cross Encoder 固有の損失関数を使用して、マルチモーダル Cross Encoder(リランカー)モデルをファインチューニングします。このプロセスはエンベディング モデルのトレーニングと同様ですが、SentenceTransformer の代わりに CrossEncoder を使用し、BinaryCrossEntropyLoss などの適切な損失関数を使用します。アーキテクチャの選択肢には、マルチモーダル言語モデルを使ってトークンを生成しログオッズを計算する Any-to-Any with LogitScore、および最後のトークンの隠れ状態を抽出してスコアに射影する Feature Extraction with Pooling and Dense があります。トレーニングの例は、Sentence Transformers リポジトリで利用できます。

Additional Resources

Sentence Transformers リポジトリには、マルチモーダル トレーニングの例が提供されています:Visual Document Retrieval、Multimodal Reranker (Any-to-Any)、Multimodal Reranker (Feature Extraction)。ドキュメントでは、トレーニングの概要、損失関数、データセットの扱い、API リファレンスがカバーされます。補足ブログ投稿では、マルチモーダル推論、テキスト専用エンベディングおよびリランカー トレーニング、スパース エンコーダー トレーニング、Matryoshka エンベディング、静的エンベディング、エンベディングの量子化、多言語 Visual Document Retrieval が説明されます。

Sources

関連