Python · 项目报告

Tencent/WeMM-Embedding

WeMM-Embedding is a family of universal multimodal embedding models by the WeChat Vision Team at Tencent, supporting multimodal understanding and retrieval.

已完成 打开 GitHub
T
454星标
19Fork
1Issue
NOASSERTION许可证

分析结果

项目分析

WeMM-Embedding 是腾讯微信视觉团队开源的一组通用多模态向量嵌入模型,面向文本、图片、视频、视觉文档以及图文交错输入的统一表征与检索。项目提供 2B、4B、9B 三种规模模型,支持 Matryoshka Embeddings,可按 64 到 4096 等不同维度截断使用,以平衡效果、存储和检索成本。README 中给出了 Transformers、Sentence Transformers、vLLM、SGLang 推理与服务化示例,并包含 MMEB-v3 评测代码。

适用领域 多模态检索 / 向量数据库与语义搜索 / 图文视频理解 / 视觉文档理解 / Embedding 模型 / RAG 检索增强生成 / 企业内容搜索 / 推荐与相似度匹配
配置难度 中高。对于熟悉 Python、PyTorch、Hugging Face 和向量检索的开发者,跑通示例难度中等;但如果要做生产级多模态检索系统,还需要处理模型显存、视频预处理、批量离线编码、向量库选型、服务并发、维度压缩、评测集构建和许可合规等问题。
商业价值 业务价值较高,尤其适合拥有大量图片、视频、文档截图、商品素材或内容库的团队。它可以帮助企业构建跨模态搜索、内容推荐、相似内容去重、多模态 RAG 和素材资产管理能力。Matryoshka 维度截断能降低向量库存储和检索成本,使不同规模业务可以按成本选择 embedding 维度。但实际 ROI 取决于 GPU 资源、数据规模、检索质量要求、线上延迟要求和现有搜索系统集成成本。
01

技术亮点

  • 统一多模态表示:同一模型族支持文本、图片、视频、视觉文档和交错多模态输入。
  • 模型规模选择灵活:提供 2B、4B、9B 三档模型,可在效果和部署成本之间取舍。
  • 支持 Matryoshka Embeddings:可截断为 64、128、256、512、1024 等维度,降低向量存储和 ANN 检索成本。
  • README 报告的 benchmark 表现较强:在 MMEB-v2 和 MMEB-v3 多项指标上列出了优于多个公开基线的结果。
  • 工程接入方式较完整:提供 Transformers、Sentence Transformers、vLLM、SGLang 示例,方便离线推理和在线服务化。
  • 包含评测代码:mmeb_v3_eval 目录提供 MMEB-v3 评测流程,便于复现实验或做模型对比。
  • 腾讯微信视觉团队出品,项目关注度较高,当前 GitHub stars 约 454。
02

目标用户

  • 需要构建图文视频统一检索系统的算法工程师
  • 需要多模态 RAG 能力的 AI 应用开发者
  • 从事向量数据库、搜索引擎、推荐系统的后端工程师
  • 需要处理图片、短视频、文档截图、商品图、内容素材的企业研发团队
  • 研究多模态表征学习、跨模态检索和 Embedding Benchmark 的科研人员
  • 已有 Hugging Face、Transformers、Sentence Transformers 使用经验的 Python 开发者
03

配置要求

  • 主要语言为 Python。
  • 依赖 requirements.txt,README 特别建议使用 transformers==5.2.0 以保证推理和预处理可复现。
  • 模型权重需要从 Hugging Face 获取,支持本地路径或 Hugging Face model id。
  • 推理支持 Transformers 和 Sentence Transformers。
  • 服务化测试版本包括 vLLM 0.27.0 和 SGLang 0.5.9。
  • 模型规模较大,2B、4B、9B 分别需要不同级别的 GPU 显存;生产部署前需要根据 batch size、输入视频帧数、embedding 维度和并发量压测。
  • 视频输入涉及采样和预处理,评测中提到使用 64 帧视频采样,实际业务需要根据性能成本调整。
  • 支持 Matryoshka 维度截断,但截断后需要重新 L2 normalize。
  • 当前不支持音频输入;MMEB-v3 中音频任务得分为 0。
  • 第三方组件保留其原始许可证,商用前需要检查依赖、模型权重和第三方代码的许可条款。
04

适用场景

  • 文本搜图片:用自然语言查询图片库、商品图、素材库或相册
  • 文本搜视频:用文本描述检索短视频、监控片段、课程视频或媒体素材
  • 图片搜图片:以图搜图、相似商品检索、相似素材去重
  • 视频搜视频:视频相似度检索、视频聚类、内容去重
  • 视觉文档检索:对截图、扫描件、图文混排文档进行语义检索
  • 多模态 RAG:将文本、图片、视频、视觉文档编码到统一向量空间后接入向量数据库
  • 内容审核与归档:对海量多媒体内容进行语义聚类、标签召回和相似内容发现
  • Agent 多模态记忆:为多模态智能体构建可检索的长期记忆或上下文库
05

部署与配置

  • 准备 Python 环境,建议使用独立虚拟环境或 Conda 环境。
  • 克隆仓库:git clone https://github.com/Tencent/WeMM-Embedding.git
  • 进入项目目录:cd WeMM-Embedding
  • 安装依赖:pip install -r requirements.txt
  • 从 Hugging Face 下载模型,例如 tencent/WeMM-Embedding-2B、tencent/WeMM-Embedding-4B 或 tencent/WeMM-Embedding-9B,或在推理脚本中直接使用 Hugging Face model id。
  • 使用 Transformers 推理示例: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 examples/sentence_transformers_inference.py --model tencent/WeMM-Embedding-2B --image /path/to/image.jpg --video /path/to/video.mp4 --dimension 2048
  • 如需服务化,可使用 vLLM:vllm serve "$MODEL_PATH" --runner pooling --chat-template "$MODEL_PATH/embedding_chat_template.jinja"
  • 如需使用 SGLang,先执行 python scripts/patch_sglang_video.py,再启动 sglang.launch_server 并开启 embedding 相关参数。
06

风险与注意事项

  • 仓库元数据 license 显示 NOASSERTION,虽然 README 声明腾讯自研代码为 Apache 2.0,但商用前仍应核查 LICENSE、模型卡和第三方依赖许可。
  • 模型较大,对 GPU 显存、推理延迟、部署成本有较高要求,尤其是 4B 和 9B 版本。
  • README 推荐 transformers==5.2.0,较新的 Transformers 版本可能因预处理差异导致结果不一致。
  • 当前不支持音频输入,不适合需要音频、语音、音乐等模态统一检索的场景。
  • 视频处理成本通常较高,长视频、大规模视频库需要额外设计切片、抽帧、缓存和索引策略。
  • Benchmark 表现来自项目 README 和技术报告,落地到中文业务、垂直行业数据、私有数据集时仍需自行评测。
  • GitHub stars 和 forks 规模尚处于早期阶段,社区生态、issue 经验和生产案例可能不如成熟 embedding 框架丰富。
  • 模型权重托管在 Hugging Face,国内环境可能需要镜像、代理或内网制品管理方案。

历史记录

热榜历史快照

2026-08-28 第19名 新收录 · github_search