为什么你必须同时维护文本、图像、视频三套检索索引?因为没人做统一的那一个——直到微信把它开源了 - 关联论文:2608.24053

作者:flyP|更新:2026-10-27

为什么重要

多模态嵌入是 2024 年以来 RAG、推荐、内容理解、Agent 系统的中枢神经。但工程现场的常态是「模型拼接」:文本用 BGE、图文用 CLIP 或 SigLIP、视频用 VideoMAE。每加一种模态就要多维护一套索引、一次重建、一次调参;不同模型的向量空间彼此不通,文本搜图、图搜视频经常莫名其妙掉点。

腾讯与微信开源的 WeMM-Embedding 试图用一个统一模型替代这堆拼装件,并且已经部署在视频号、公众号、朋友圈、电商搜索推荐等业务上。

核心机制

模型族:2B / 4B / 9B 三档,共享同一架构与训练流程。2B 面向端侧与高 QPS,9B 面向离线精排与刷榜。

统一输入:支持纯文本、图像(单图/多图/长图)、视频(采样帧)、视觉文档(截图、PDF、表格),以及任意交错组合——<text|image|text|video_clip|...>。这不是简单 concat 后过 encoder,而是对模态 token 化与位置编码做了扩展。

两阶段训练:

Stage 1: 大规模多模态对齐
   海量 图-文 / 视频-文 / 文档-文 配对数据
   InfoNCE 类对比损失 + 跨模态一致性

Stage 2: 精修
   精选数据 + 细粒度相关性监督
   跨尺度蒸馏:  9B ──> 4B ──> 2B
   灵活输出维度: Matryoshka 式多目标维度训练

灵活输出维度借鉴 Matryoshka 表征学习:训练时同时优化 64 / 256 / 1024 / 2048 等多个目标维度,推理时按需截断:

def encode(x, dim=None):
    h = projection(backbone(x))
    return h[:, :dim] if dim is not None else h

低维省存储省延迟,高维保精度——对微信这种多业务、多 QPS 等级的场景尤其合身。

证据边界

公开基准 MMEB-v2 上:2B 模型超过此前最强的 8B 开源基线(约 1/4 参数取胜);9B 模型整体拿到 80.6 的新 SOTA。内部 26 项任务全部提升,14 项线上 A/B 一致增益。

需要保留的怀疑:「此前最强 8B 开源基线」没有点名是哪个模型,领先幅度也未给出;80.6 这个分数的满分量纲、以及与 OpenAI text-embedding-v4、Cohere Embed v3 等闭源旗舰的差距,都要看 PDF 对比表才能判断;微信内部 benchmark 的标准化程度与统计显著性无法外部核实。此外,摘要未披露推理吞吐、延迟、显存占用,也未说明交错输入的 token 长度上限。

工程局限

交错输入不是万能药。 总 token 有上限,生产环境的真实输入分布往往偏重某一两种模态。建议先拿业务真实数据做灰度,对比「统一交错编码」与「单模态分别编码再拼接」的实际增益,而不是默认越灵活越好。

维度截断是截断,不是学习式压缩。 精度损失与维度不是线性关系,256 维掉 2% 还是 10%,只能实测。

视频采样策略未公开。 均匀采 8 帧还是 16 帧,embedding 质量可能差 5–10 个点,得自己在业务上找最优配置。

视觉文档依赖渲染质量。 扫描件与原生数字文档差距极大,低质量扫描件的召回率要单独测。

中文强,多语言未知。 微信业务以中文为主,低资源语种能力论文摘要未评估,出海场景需单独验证。

一个隐藏风险:精修阶段用 MLLM 蒸馏做细粒度相关性监督,Stage 1 的 MLLM 一旦升级,蒸馏出的嵌入空间可能漂移。

落地建议

纯中文的 RAG / 检索业务值得优先试点 2B;视频或文档为主的可考虑替换 BGE-M3、ColPali;纯文本且 QPS 极高的场景,先评估 2B 是否够快,别急着换。索引存储敏感选 256–512 维,延迟敏感选更低维,粗排 256、精排 1024 是常见折中。开源仓库 github.com/Tencent/WeMM-Embedding 接入前记得确认 License 是否允许商用、权重是否已上传。

标题变体

  1. 文本、图像、视频三套索引可以扔了:微信开源了一个统一多模态嵌入模型
  2. 2B 模型打赢 8B 开源 SOTA,微信把多模态嵌入做成「水电煤」
  3. 从推荐到 Agent 都缺的那块地基:一个模型吃下所有模态,还能自己切维度

小红书卡片文案

做 RAG 的同学是不是都有同一个痛点:文本一套索引、图片一套索引、视频再来一套,每加一种模态就要重建一次调一次参?

微信开源了 WeMM-Embedding,2B/4B/9B 三档,一个模型吃下文本、图像、视频、视觉文档,还能任意交错组合,还支持训好后自己切输出维度(低维省存储,高维保精度)。MMEB-v2 上 2B 直接超过此前 8B 开源 SOTA,9B 拿到 80.6 新 SOTA,微信内部 26 项任务和 14 项线上 A/B 全部提升。

泼点冷水:「此前最强 8B 基线」没点名是谁,摘要没给推理延迟和显存,交错输入的 token 上限也没说,多语言能力基本没提。

结论:中文场景可以试 2B 跑 A/B,出海或极高 QPS 的先等等验证。