资讯 微信开源 WeMM-Embedding:2B/4B/9B 多模态检索模型 + 仓库与部署实测

2026-09-07 15:32:48

微信开源 WeMM-Embedding:2B/4B/9B 多模态检索模型 + 仓库与部署实测

微信视觉团队将内部使用的多模态 Embedding 模型开源,项目名为 WeMM-Embedding(WeChat Multi-Modal Embedding),基于 Qwen3.5 原生多模态底座训练。

它用一个语义空间同时表达文字、图片、视频和视觉文档,支持跨模态比较与检索:输入文本可检索图片,输入图片可检索视频,也可处理任意交错的图文/图视频输入。这类模型是搜索引擎、推荐系统和 RAG 检索的基础组件。据技术报告,模型已在微信朋友圈搜索、视频号推荐、公众号推荐、微信电商中大规模部署,日调用量十亿级。

项目信息

注意别和 scenarios/WeMM(另一个多模态大模型项目)混淆,认准 Tencent/WeMM-Embedding

MMEB-v2 榜单位置:9B 第一,2B 超过开源 8B

MMEB-v2 由 TIGER-AI-Lab 发布,是目前多模态检索领域常用评测基准之一,覆盖 78 个数据集,图片与视频任务用 Hit@1、视觉文档任务用 NDCG@5。9B 版以 80.6 总分登顶,超过此前已提交的开源和闭源模型。

2B 版得 77.9 分,反超此前开源榜最高的 Qwen3-VL-Embedding 8B(77.8)——以四分之一参数量追平甚至反超,部署成本和推理速度优势是实打实的。分项拆开看(Image/Video/VisDoc):

模型尺寸AVGImageVideoVisDoc
Qwen3-VL-Embedding2B73.275.061.979.2
Qwen3-VL-Embedding8B77.880.167.182.4
WeMM-Embedding2B77.979.670.880.7
WeMM-Embedding4B79.280.872.182.0
WeMM-Embedding9B80.681.974.383.3

内部运行一年,14 次 A/B 测试正向

技术报告显示,模型在微信内部完成 14 次线上 A/B 测试,全部正向收益;在 26 个内部任务上也有显著提升。训练分两阶段:大规模多模态对齐 + 精炼(细粒度相关性监督 + 跨尺度知识迁移)。属于生产级模型,而非跑分专用。

开源内容与版本

本次开源三个版本,嵌入向量取自最后一层 hidden state 的专用 token 位置,再做 L2 归一化:

版本参数量默认输出维度Matryoshka 支持维度MMEB-v2
WeMM-2B20 亿204864…204877.9
WeMM-4B40 亿256064…256079.2
WeMM-9B90 亿409664…409680.6

代码、权重、评估代码(mmeb_v3_eval/,基于官方 VLM2Vec 管线改)和技术报告均已放出。

Matryoshka 维度截断,向量库直接省 8 倍

WeMM-Embedding 使用了 Matryoshka Representation Learning。其特点是模型输出的高维向量可截断到更小维度,性能损失很小。

以 2B 为例:默认 2048 维,截断到 256 维后仍保留 98.7% 的图像和视频检索性能。向量存储空间省 8 倍、检索更快,代价几乎可忽略。维度选择通过 model.config.matryoshka_dimensions 里列出的取值来指定(64/128/256/512/1024/2048 等)。

部署

Transformers 加载(注意钉死版本):

from transformers import AutoModel, AutoProcessor
import torch

model_id = "tencent/WeMM-Embedding-2B"
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_id, trust_remote_code=True, dtype=torch.bfloat16
).cuda().eval()

官方明确推荐 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

Sentence Transformers:

python sentence_transformers_inference.py \
--model tencent/WeMM-Embedding-2B \
--image /path/to/image.jpg \
--dimension 256   # MRL 用 --dimension 选维度

SentenceTransformer.encode() 直接兼容文本/图片/视频,MRL 维度用 --dimension 指定。

生产部署(vLLM / SGLang):

MODEL_PATH=/path/to/WeMM-Embedding-2B
vllm serve "$MODEL_PATH" \
--runner pooling \
--chat-template "$MODEL_PATH/embedding_chat_template.jinja"

仓库同时提供 SGLang 部署脚本。官方建议生产用 vLLM 0.27.0 或 SGLang 0.5.9。

边界条件与坑

  • 不支持音频。跨模态任务得分不含音频(Audio 栏为 0),纯音频场景需另选全模态模型。
  • OCR/视觉文档能力有限,它是面向检索强化的专用模型,不是通用多模态理解模型。
  • 依赖版本敏感:transformers 需钉 5.2.0,vLLM/SGLang 版本别乱升。
  • 视频输入成本高:需抽帧处理(评估管线默认 64 帧采样),吞吐前先评估算力。

如果要做多模态搜索、内容推荐或 RAG 检索,建议按业务负载在 2B/4B/9B 之间选型:够用优先 2B,官方给出 256 维可进一步压存储。

复制全文 生成海报 AI模型 多模态 Embedding 开源 检索 部署

推荐文章

程序员茄子在线接单