Sentence Transformers v5.4: マルチモーダル埋め込みとリランカー モデル
Hugging Face は、Sentence Transformers v5.4 がマルチモーダル機能を追加し、統一された API を使用してテキスト、画像、オーディオ、ビデオのエンコードと比較を可能にし、埋め込みとリランカー タスクをサポートすることを発表しました。これにより、クロスモーダル検索、視覚的ドキュメント検索、マルチモーダル RAG パイプラインをサポートするライブラリが拡張され、ユーザーが新しい API を学ぶ必要がなくなりました。
インストール
Sentence Transformers v5.4 でマルチモーダル モデルを使用するには、pip を使って必要なモダリティ(画像、オーディオ、ビデオ)の追加依存関係をインストールしてください。VLM ベースのモデルは実用的な使用のために十分な VRAM を備えた GPU が必要であることに注意してください。
画像サポートをインストールするには pip install -U "sentence-transformers[image]"、オーディオ サポートをインストールするには pip install -U "sentence-transformers[audio]"、ビデオ サポートをインストールするには pip install -U "sentence-transformers[video]" を実行します。必要に応じて組み合わせて使用できます。たとえば pip install -U "sentence-transformers[image,video,train]" とします。Qwen3-VL-2B などの VLM ベースのモデルは、少なくとも ~8 GB の VRAM を備えた GPU が必要です。8B バリアントの場合は ~20 GB が見込まれます。ローカル GPU がない場合は、クラウド GPU サービスまたは Google Colab を検討してください。これらのモデルでは CPU 推論が極端に遅いためです。
マルチモーダル 埋め込み モデル
マルチモーダル 埋め込み モデルは、異なるモダリティからの入力を共有埋め込み空間にマッピングし、テキスト専用モデルと同じ API を使用してクロスモーダル類似度比較を可能にします。
モデルの読み込み
マルチモーダル 埋め込み モデルの読み込みは、SentenceTransformer("model_name\) を使用してテキスト専用モデルを読み込むのとまったく同じで、モデルは自動的にサポートされるモダリティを検出します。一部のモデルでは、統合プル リクエストが行われるまでの間、revision 引数を一時的に必要とする場合があります。その後は必要なくなります。
画像のエンコード
マルチモーダル モデルが読み込まれたら、model.encode() はテキストとともに画像を受け入れることができます。画像は URL、ローカル ファイル パス、または PIL Image オブジェクトとして提供されます。たとえば、2 つの画像をエンコードすると、Qwen/Qwen3-VL-Embedding-2B モデルの場合、形状 (2, 2048) の埋め込みが返されます。
クロスモーダル類似度
テキストと画像の埋め込みは同じ空間に存在するため、直接比較できます。ただし、モダリティ ギャップのため、絶対的な類似度スコアは通常、同じモダリティ内での比較よりも低くなります。ただし、相対的な順序は保持されるため、検索は依然として効果的です。たとえば、画像に一致するテキスト クエリは、不一致のペアよりも高い類似度スコアを返します。
クエリとドキュメントのエンコード
検索タスクでは、encode_query() と encode_document() を使用して、クエリとドキュメントに対してモデル固有のプロンプトを自動的に適用します。これらのメソッドは encode() の薄いラッパーで、プロンプト選択を処理し、同じ入力タイプとパラメータを受け入れます。専用のプロンプトが存在しない場合は、encode() と同じ動作をします。
マルチモーダル リランカー モデル
マルチモーダル リランカー モデルは、混合モダリティ ペアの関連性をスコアリングし、ペアワイズ処理による計算コストの増加を伴うものの、埋め込み モデルよりも品質で優れることがよくあります。
混合モダリティ ドキュメントのランキング
rank() メソッドは、クエリに対してドキュメントをスコアリングおよびランキングし、画像、テキスト、および結合されたテキスト-画像ドキュメントなどの混合モダリティをサポートします。たとえば、リランカーは最も関連性の高い画像ドキュメントを正しく特定し、その後に結合されたテキスト-画像ドキュメントを特定します。テキスト専用ドキュメントおよび関連性の低い画像ドキュメントは低いスコアになります。モダリティ サポートは、modalities プロパティと supports() メソッドで確認できます。
ペア スコアの予測
predict() を使用して、テキスト-画像の組み合わせなどの特定の入力ペアの生の関連性スコアを取得し、関連性を示す数値スコアを返します。
検索とリランカー
一般的なパイプラインでは、埋め込み モデルを使用して大規模なコーパスに対する高速な初期検索を行い、その後リランカーを使用して上位の結果を絞り込んで精度を向上させます。コーパスの埋め込みを事前に計算して効率的な検索を行い、その後、初期の類似度検索から得られた上位 k 候補にのみリランカーを適用します。
入力形式と構成
マルチモーダル モデルは、モダリティごとにさまざまな入力形式を受け入れ、前処理とモデルの読み込みのための構成オプションがあります。
サポートされている入力タイプ
テキスト入力は文字列です。画像は PIL オブジェクト、ファイル パス、URL、numpy 配列、または torch テンソルを受け入れます。オーディオはファイル パス、URL、numpy/torch 配列、array と sampling_rate を持つ辞書、または torchcodec.AudioDecoder インスタンスを受け入れます。ビデオはファイル パス、URL、numpy/torch 配列、array と video_metadata を持つ辞書、または torchcodec.VideoDecoder インスタンスを受け入れます。マルチモーダル入力は、テキスト、画像、オーディオ、ビデオなどのモダリティ名をキーとし、値を対応させた辞書です。メッセージ入力は、role と content キーを持つメッセージ辞書のリストで、構造化(タイプドまたはフラット形式)をサポートします。
モダリティ サポートの確認
support() メソッドを使用して特定のモダリティまたはモダリティ ペアをチェックし、modalities プロパティを使用してサポートされているモダリティのリストを取得できます。たとえば、model.supports("image\) は、ビジョン対応モデルに対して True を返します。
プロセッサとモデルの kwargs
processor_kwargs(AutoProcessor に渡される)と model_kwargs(適切な AutoModel クラスに渡される)を使用して、画像解像度とモデル精度を制御します。たとえば、processor_kwargs で min_pixels と max_pixels を設定して画像処理を調整し、model_kwargs で attn_implementation または torch_dtype を指定します。v5.4 では、tokenizer_kwargs が processor_kwargs に名前変更されました(古い名前は依然として受け入れられますが、非推奨となります)。
サポートされているモデル
Sentence Transformers v5.4 は、マルチモーダル埋め込みモデルとリランカー モデルの範囲、新しいテキスト専用リランカー、および継続的な CLIP モデル サポートをサポートしています。
サポートされているマルチモーダル 埋め込み モデル
サポートされている埋め込みモデルには、Qwen/Qwen3-VL-Embedding-2B(2B パラメータ、テキスト/画像/ビデオ)、Qwen/Qwen3-VL-Embedding-8B(8B)、nvidia/llama-nemotron-embed-vl-1b-v2(1.7B、テキスト/画像)、nvidia/omni-embed-nemotron-3b(4.7B、テキスト/画像)、テキスト/画像/オーディオ/ビデオをカバーする LCO-Embedding モデル(5B と 9B)、BidirLM/BidirLM-Omni-2.5B-Embedding(2.5B、テキスト/画像/オーディオ)、およびさまざまな BAAI/BGE-VL モデル(0.1B から 8B パラメータ、テキスト/画像)が含まれます。eagerworks/eager-embed-v1 や nomic-ai/nomic-embed-multimodal-3b/7b などの一部のモデルは、特定のリビジョン(たとえば revision="refs/pr/2")を必要とします。また、テキスト/画像/オーディオ/ビデオ向けの Haon-Chen/e5-omni モデルもリビジョンを必要とします。
サポートされているマルチモーダル リランカー モデル
サポートされているリランカー モデルには、Qwen/Qwen3-VL-Reranker-2B(2B、テキスト/画像/ビデオ)、Qwen/Qwen3-VL-Reranker-8B(8B)、nvidia/llama-nemotron-rerank-vl-1b-v2(2B、テキスト/画像)、および jinaai/jina-reranker-m0(2B、テキスト/画像)が含まれます。
テキスト専用リランカー モデル(v5.4 でも新規)
v5.4 の新しいテキスト専用リランカーには、Qwen/Qwen3-Reranker-0.6B(0.6B)、Qwen/Qwen3-Reranker-4B(4B)、Qwen/Qwen3-Reranker-8B(8B)、mixedbread-ai/mxbai-rerank-base-v2(0.5B)、mixedbread-ai/mxbai-rerank-large-v2(2B)、および ContextualAI/ctxl-rerank-v2-instruct-multilingual モデル(1B、3B、6B のリビジョンが必要な場合あり)が含まれます。
CLIP モデル
古い CLIP モデルは引き続きサポートされており、sentence-transformers/clip-ViT-L-14(ImageNet ゼロショット トップ-1 精度 75.4%)、sentence-transformers/clip-ViT-B-16(68.1%)、sentence-transformers/clip-ViT-B-32(63.3%)、および sentence-transformers/clip-ViT-B-32-multilingual-v1(多言語テキスト エンコーダ、50 以上の言語)が含まれます。
追加リソース
さらに学習するには、使用方法、事前学習済みモデル、およびインストールに関する公式ドキュメントを参照してください。トレーニングのガイダンスは、コンパニオン ブログ投稿 "Training and Finetuning Multimodal Embedding & Reranker Models with Sentence Transformers" および、埋め込み、リランカー、スパース エンコーダ、Matryoshka、静的埋め込み、および量子化技術に関する関連ガイドで利用できます。モデル、データセット、および v5.4 統合コレクションは、Hugging Face Hub を通じてアクセスできます。
Sources
関連
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch