
WeMM-Embedding 是腾讯微信视觉团队的多模态嵌入模型家族——文本、图像、视频、视觉文档、交错多模态输入,统一成同一个向量表示。在 MMEB-v2(78 数据集)和 MMEB-v3(190 任务)两大基准上全面第一。
2B / 4B / 9B 三个尺寸,Apache-2.0,技术报告发在 arXiv。
RAG 的现状:文本用文本嵌入模型,图像用图像嵌入模型,视频用视频嵌入模型。跨模态检索(搜图找文、搜文找视频)要拼多个模型,语义空间还不一致。
WeMM-Embedding 的思路:一个模型,一个向量空间,所有模态。
文本 ─┐
图像 ─┤
视频 ─┼→ 同一个嵌入空间 → 检索/匹配/聚类
文档 ─┤
交错 ─┘嵌入取最后一层 <embedding> token 位置的隐藏状态,L2 归一化。目前不支持音频(MMEB-v3 的音频任务上该项目记 0 分——这一点在论文表格里如实展示)。
MMEB-v2(78 数据集,图像/视频用 Hit@1,视觉文档用 NDCG@5):
模型 | 尺寸 | 平均分 |
|---|---|---|
Qwen3-VL-Embedding | 2B | 73.2 |
WeMM-Embedding | 2B | 77.9 |
WeMM-Embedding | 9B | 80.6 |
MMEB-v3(190 任务,含文本、Agent、MCMR、音频):
模型 | 尺寸 | V3-All |
|---|---|---|
Qwen3-VL-Embedding | 8B | 53.5 |
WeMM-Embedding | 9B | 59.5 |
值得注意:MMEB-v3 里有 47 个 Agent 任务(评测嵌入在 Agent 场景下的表现)——嵌入模型正在成为 Agent 记忆层的基准对象。
这是最实用的设计。模型支持套娃式降维:
2B: 64, 128, 256, 512, 1024, 2048
4B: 64, 128, 256, 512, 1024, 2560
9B: 64, 128, 256, 512, 1024, 2048, 4096降维方式:截断 + 重新归一化。
embedding = torch.nn.functional.normalize(embedding[..., :d], dim=-1)效果:2B 模型用 256 维,图像和视频性能保留全维的 98.7%。向量库的存储和检索成本按维度线性缩放——2048 维降到 256 维,成本降到八分之一,质量几乎无损。
vLLM 和 SGLang 都支持,仓库给了封装脚本:
vllm serve "$MODEL_PATH" \
--runner pooling \
--chat-template "$MODEL_PATH/embedding_chat_template.jinja"Transformers 5.2.0 和 Sentence Transformers 都有推理示例。
pip install -r requirements.txt
python examples/transformers_inference.py \
--model tencent/WeMM-Embedding-2B \
--image /path/to/image.jpg \
--dimension 2048多模态 RAG 一直卡在「各模态各用各的模型」。WeMM-Embedding 把文本、图像、视频、文档收进一个向量空间,配上 Matryoshka 降维把存储成本打下来——98.7% 的性能保留在八分之一成本上。
对 AI Agent 尤其重要:Agent 的记忆和检索要处理的不只是文本,还有截图、视频帧、文档扫描。一个统一的嵌入空间意味着 Agent 的「记忆」终于可以跨模态了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。