🚀 モダリティの壁を打ち破る:マルチモーダルLLMによる普遍的な埋め込み学習
UniMEは、336×336の画像解像度で学習することで、MMEBリーダーボードでトップランキングを達成しました。(スクリーンショットは2025年5月6日UTC+8 08:00に撮影されました。)
🏡 プロジェクトページ | 📄 論文 | 💻 Github
🚀 クイックスタート
git clone https://github.com/deepglint/UniME.git
cd UniME
conda create -n uniME python=3.10 -y
conda activate uniME
pip install -r requirements.txt
import torch
from PIL import Image
from torch.nn import functional as F
from transformers import LlavaNextProcessor, LlavaNextForConditionalGeneration
base_model_path="DeepGlint-AI/UniME-LLaVA-1.6-7B"
img_prompt = "[INST] <image>\nSummary above image in one word: [/INST]"
text_prompt = "[INST] <sent>\nSummary above sentence in one word: [/INST]"
text = "A man is crossing the street with a red car parked nearby."
image_path = "figures/demo.png"
input_texts = text_prompt.replace('<sent>', text)
input_image_prompt = img_prompt
input_image = [Image.open(image_path)]
transform = LlavaNextProcessor.from_pretrained(base_model_path)
model = LlavaNextForConditionalGeneration.from_pretrained(base_model_path, device_map="cuda", torch_dtype=torch.float16, low_cpu_mem_usage=True)
transform.tokenizer.padding_side = "left"
transform.tokenizer.padding = True
inputs_text = transform(text=input_texts,
images=None,
return_tensors="pt",
padding=True)
for key in inputs_text: inputs_text[key] = inputs_text[key].to("cuda")
inputs_image = transform(text=input_image_prompt,
images=input_image,
return_tensors="pt",
padding=True).to("cuda")
with torch.no_grad():
emb_text = model(**inputs_text, output_hidden_states=True, return_dict=True).hidden_states[-1][:, -1, :]
emb_image = model(**inputs_image, output_hidden_states=True, return_dict=True).hidden_states[-1][:, -1, :]
emb_text = F.normalize(emb_text, dim=-1)
emb_image = F.normalize(emb_image, dim=-1)
Score = emb_image @ emb_text.T
print("Score: ", Score)
✨ 主な機能
テキスト判別的知識蒸留
MLLMの埋め込み能力を強化するために、テキスト判別的知識蒸留を提案します。学習プロセスでは、MLLMのLLMコンポーネントを切り離し、「上記の文章を一言で要約してください。」というプロンプトでテキストを処理し、その後、バッチ単位の類似度分布に対するKLダイバージェンスを介して、学生(MLLM)と教師(NV-Embed V2)の埋め込みをアライメントします。このプロセスでは、LLMコンポーネントのみが微調整され、他のすべてのパラメータは凍結されたままです。
ハードネガティブ強化命令微調整
その後、ハードネガティブ強化命令微調整を提案します。これは、視覚的な感度を向上させ、クロスモーダルアライメントを強化し、命令追従能力を向上させることで、マルチモーダルシステムを強化します。その核心には2つの重要な革新があります。1つは、類似度閾値を使用して誤ったネガティブサンプルをフィルタリングする機構で、もう1つは、トップkの類似しているが一致しない例を選択して学習の難易度を上げる自動ハードネガティブサンプリング戦略です。
🔢 結果
多様な検索
MMEB
📚 ドキュメント
著者
Tiancheng Gu*、
Kaicheng Yang*、
Ziyong Feng、
Xingjun Wang、
Yanzhao Zhang、
Dingkun Long、
Yingda Chen、
Weidong Cai、
Jiankang Deng
引用
このリポジトリが役に立った場合は、以下のBibTeXエントリを使用して引用してください。
@misc{gu2025breakingmodalitybarrieruniversal,
title={Breaking the Modality Barrier: Universal Embedding Learning with Multimodal LLMs},
author={Tiancheng Gu and Kaicheng Yang and Ziyong Feng and Xingjun Wang and Yanzhao Zhang and Dingkun Long and Yingda Chen and Weidong Cai and Jiankang Deng},
year={2025},
eprint={2504.17432},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2504.17432},
}
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。
詳細情報
属性 |
详情 |
モデルタイプ |
image-text-to-text |
訓練データ |
TIGER-Lab/MMEB-train |
評価指標 |
recall |
ベースモデル |
llava-hf/llava-v1.6-mistral-7b-hf |
ライブラリ名 |
transformers |