WeMM-Embedding:微信多模态嵌入模型
WeMM-Embedding 是由微信视觉团队开发的通用多模态嵌入模型家族。它为文本、图像、视频、视觉文档以及交错多模态输入提供统一表示,在覆盖多种任务和领域的多个基准上均达到最先进性能。
模型集合
| 模型 | Matryoshka 维度 | Hugging Face |
|---|---|---|
| WeMM-Embedding-2B | 64, 128, 256, 512, 1024, 2048 | 🤗 链接 |
| WeMM-Embedding-4B | 64, 128, 256, 512, 1024, 2560 | 🤗 链接 |
| WeMM-Embedding-9B | 64, 128, 256, 512, 1024, 2048, 4096 | 🤗 链接 |
所有模型均支持文本、图像、视频、视觉文档和交错多模态输入。嵌入通过专用 <embedding> 标记位置处的最后一层隐藏状态获得,并进行 L2 归一化。当前不支持音频输入。
安装
pip install -r requirements.txt
Transformers
我们建议使用 transformers==5.2.0 进行推理和结果复现,因为较新版本的预处理行为可能不同。
python examples/transformers_inference.py \
--model /path/to/WeMM-Embedding-2B \
--image /path/to/image.jpg \
--video /path/to/video.mp4 \
--dimension 2048
该示例生成独立的文本、图像和视频嵌入。省略 --dimension 可获得完整嵌入维度。
Sentence Transformers
python examples/sentence_transformers_inference.py \
--model /path/to/WeMM-Embedding-2B \
--image /path/to/image.jpg \
--video /path/to/video.mp4 \
--dimension 2048
SentenceTransformer 直接加载模型,因此也可以使用 Hugging Face 模型 ID(如 tencent/WeMM-Embedding-2B)代替本地路径。文本、图像和视频输入通过 SentenceTransformer.encode() 处理,并使用 --dimension 选择 MRL。
服务部署
已测试版本:vLLM 0.27.0 和 SGLang 0.5.9。
vLLM:
MODEL_PATH=/path/to/WeMM-Embedding-2B
vllm serve "$MODEL_PATH" \
--runner pooling \
--chat-template "$MODEL_PATH/embedding_chat_template.jinja"
SGLang:
MODEL_PATH=/path/to/WeMM-Embedding-2B
python scripts/patch_sglang_video.py
python -m sglang.launch_server \
--model-path "$MODEL_PATH" \
--is-embedding \
--enable-precise-embedding-interpolation
在 scripts/serve_vllm.sh 和 scripts/serve_sglang.sh 中提供了等效的单命令封装脚本。
Matryoshka 嵌入
对于受支持的维度 d,截断完整嵌入并再次归一化:
embedding = torch.nn.functional.normalize(embedding[..., :d], dim=-1)
在 MMEB-v2 上,2B 模型在 256 维度下仍保留其全维度图像和视频性能的 98.7%。
评估
MMEB-v2
技术报告中表1的78个数据集结果。图像和视频任务使用 Hit@1,视觉文档任务使用 NDCG@5。数值越高越好。
| 模型 | 规模 | AVG | Image | Video | VisDoc |
|---|---|---|---|---|---|
| VLM2Vec | 2B | 47.8 | 59.7 | 29.0 | 44.0 |
| GME | 2B | 55.4 | 51.9 | 33.9 | 76.8 |
| VLM2Vec-V2 | 2B | 59.3 | 64.9 | 34.9 | 69.2 |
| Qwen3-VL-Embedding | 2B | 73.2 | 75.0 | 61.9 | 79.2 |
| DME-Small† | 2B | 74.8 | 75.9 | 65.6 | 79.9 |
| WeMM-Embedding | 2B | 77.9 | 79.6 | 70.8 | 80.7 |
| WeMM-Embedding | 4B | 79.2 | 80.8 | 72.1 | 82.0 |
| VLM2Vec | 8B | 53.2 | 65.5 | 34.0 | 49.1 |
| GME | 8B | 59.2 | 56.0 | 38.6 | 79.3 |
| Qwen3-VL-Embedding | 8B | 77.8 | 80.1 | 67.1 | 82.4 |
| DME-Medium† | 9B | 78.4 | 79.8 | 70.8 | 82.0 |
| WeMM-Embedding | 9B | 80.6 | 81.9 | 74.3 | 83.3 |
† 闭源排行榜提交,未公开模型权重或公共推理端点。
MMEB-v3
技术报告中表2的全部190个任务结果。V3-All 包括 MMEB-v2 的78个任务、53个文本任务、47个智能体任务、11个音频任务和 MCMR。不支持的任务分配零分。
| 模型 | 规模 | V3-All | Text | Agent | MCMR | Audio |
|---|---|---|---|---|---|---|
| VLM2Vec-V2 | 2B | 38.3 | 24.5 | 28.7 | 4.1 | 0.0 |
| Omni-Embed-Nemotron | 3B | 43.5 | 39.2 | 36.5 | 26.1 | 36.5 |
| E5-Omni | 3B | 44.6 | 26.7 | 36.9 | 31.9 | 30.8 |
| Qwen3-VL-Embedding | 2B | 50.9 | 39.2 | 39.3 | 42.0 | 0.0 |
| WeMM-Embedding | 2B | 56.0 | 45.3 | 45.1 | 42.5 | 0.0 |
| WeMM-Embedding | 4B | 58.2 | 47.9 | 49.0 | 41.9 | 0.0 |
| WAVE | 7B | 26.3 | 13.7 | 11.3 | 8.9 | 31.8 |
| VLM2Vec | 8B | 32.9 | 22.2 | 19.7 | 0.9 | 0.0 |
| LCO-Embedding-Omni | 7B | 40.6 | 32.4 | 27.8 | 20.0 | 43.2 |
| GME | 8B | 43.6 | 37.1 | 35.6 | 27.3 | 0.0 |
| E5-Omni | 7B | 47.1 | 26.9 | 36.7 | 41.1 | 43.0 |
| Tianmu-Emb-Uni | 8B | 53.3 | 43.6 | 39.4 | 38.8 | 38.9 |
| Qwen3-VL-Embedding | 8B | 53.5 | 42.5 | 38.4 | 38.0 | 0.0 |
| WeMM-Embedding | 9B | 59.5 | 48.8 | 51.0 | 49.3 | 0.0 |
文本结果使用 NDCG@5;智能体、MCMR 和音频结果使用 Hit@1。
mmeb_v3_eval/ 包含用于生成我们报告数字的 MMEB-v3 评估代码。它是官方 TIGER-AI-Lab/VLM2Vec 流水线的最小差异版本:多节点多 GPU 推理(torchrun --nnodes=N)、实现我们预处理和批量推理的 wemm_embedding 骨干、与发布模型对齐的数据集指令,以及64帧视频采样。数据下载、单节点和多节点命令记录在 mmeb_v3_eval/README.md 中。
cd mmeb_v3_eval
DATA_ROOT=/path/to/MMEB-V3 bash scripts/download_data.sh
MODEL_PATH=/path/to/WeMM-Embedding-2B DATA_BASEDIR=/path/to/MMEB-V3 \
OUTPUT_DIR=exps/wemm_embedding bash scripts/run_eval.sh
引用
如果您觉得这个仓库有用,请考虑给一个星标 ⭐ 并引用:
@article{wemm-embedding,
title={WeMM-Embedding: WeChat Multi-Modal Embedding Technical Report},
author={Junjie Zhou and Ke Mei and Lei Li and Tianyi Wang and Fengyun Rao and Jing Lyu},
year={2026},
eprint={2608.24053},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2608.24053},
}
许可证
除非另有说明,本仓库中腾讯创作的代码根据 Apache License 2.0 发布。
第三方组件保留其原始许可证和版权声明。使用前请查看相应的源文件。
