A
返回 發現
發現2026/08/31 Bryan Chan15 分鐘閱讀

微信開源 WeMM-Embedding 深度拆解:登頂 MMEB-v2 的多模態向量模型,能在你的 Mac 上跑嗎?

從 arXiv 2608.24053 技術報告與源碼拆解 WeMM-Embedding:Qwen3.5 原生多模態 backbone、<embedding> token 池化、兩階段訓練(Semantic-ID 重採樣 + 双向 KL 蒸餾 + model merging)、MMEB-v2/v3 全榜單成績,以及 Mac Studio MPS 本地實測(47ms 文本 / 321ms 圖像 / 6GB 內存)與 BGE-m3 對比、雙通道接入方案。

一句話版本

WeMM-Embedding 是騰訊微信視覺團隊開源的通用多模態向量模型家族(2B/4B/9B,Apache 2.0),9B 版以 80.6 分登頂 MMEB-v2 官方榜單;而它的 2B 版,已經能在一台 Mac Studio 上以 47ms/條的速度本地跑起來。

這篇拆解三個層次:技術報告方法論(它為什麼強)、工程就緒度(它好不好用)、本地實測(它能不能進我們的基建)。


項目概覽

項目 數值
出品 騰訊微信視覺團隊(WeChat Vision Team)
技術報告 arXiv:2608.24053(2026-08-25)
開源協議 Apache 2.0(Tencent-authored 代碼)
模型規格 2B / 4B / 9B,基於 Qwen3.5 原生多模態 backbone
支援模態 文本、圖像、視頻、視覺文檔、任意交錯多模態(不支援音頻
輸出維度 Matryoshka 嵌套:64–4096(依規格)
榜單成績 MMEB-v2 總分 80.6(9B),官方榜單第一(截至 2026-08-24)
生產部署 微信視頻號、公眾號、朋友圈、電商推薦 + 微信搜索,14 個在線 A/B 全正增益

為什麼這件事重要

向量模型(embedding)是檢索、推薦、RAG、agent 記憶系統的地基。過去這塊地基有兩個斷層:

  1. 模態斷層:文本 embedding(BGE、E5 系列)與視覺 embedding(CLIP 系)各走各路,「圖+文+視頻」混排的檔案無法進同一個向量空間。
  2. agent 斷層:新一代 agent 系統需要對 tool 描述、GUI 截圖、memory 片段做統一檢索,傳統文本 embedding 覆蓋不到。

WeMM-Embedding 的同時登頂兩個榜單恰好踩在這兩個斷層上:MMEB-v2(圖/視頻/視覺文檔)第一,加上 MMEB-v3 的 Text 組與 Agent 組(tool/GUI/memory 檢索,47 個任務)也是第一。換句話說,它不只是「又一個多模態 CLIP」,而是目前公開模型裡最接近「agent 基建標準組件」的 embedding。


架構拆解:把 MLLM 變成一台向量機器

<embedding> token + last-token pooling

WeMM 建在 Qwen3.5 原生多模態架構上。輸入可以是任意順序交錯的文本段、圖、視頻,序列末尾追加一個專用 <embedding> token,取其最後層 hidden state 做 L2 歸一化即為輸出向量:

S = [z_1, z_2, ..., z_N, z_emb]   →   e = h_emb / ‖h_emb₂

在 causal attention 下,<embedding> token 天然 attend 到前面所有文本與視覺內容——不需要額外的 pooling 頭或投影層改造。

一個forward,多種向量

同一因果結構允許在序列中間插多個 <embedding> token。技術報告給的例子很實用:視頻後面插一個、序列末尾再插一個,一次 forward 同時產出「純視頻向量」和「視頻+ASR 文本聯合向量」,下游推薦系統各取所需。這個設計對「同一資產多種檢索口徑」的場景(我們年報的圖表 vs 全文)非常對味。

Matryoshka:一個模型,六種維度

MRL(Matryoshka Representation Learning)訓練後,取前 d 維再歸一化即得低維向量。2B 支援 64/128/256/512/1024/2048,9B 最高 4096。256 維保留 98.7% 的滿維圖/視頻性能——這意味著索引存儲可以砍到 1/8 而幾乎不掉點。


兩階段訓練:從「廣覆蓋」到「細相關」

Stage 1:數億 pair 的大規模對齊

統一 pair 格式 (instruction, query, target, hard_negatives, graded_score) 把檢索、分類、QA、grounding 全部塞進同一個多任務管線。三個目標函數並行:

  1. InfoNCE 對比 + duplicate-aware masking:batch 內近重複的 source/target 被遮掉,避免分類任務的假負例(消融 -0.5 分若移除);
  2. score-gap 加權 CoSENT:人工分級相關性標籤轉為排序約束,gap 越大權重越高;
  3. MRL 多維損失:每個 batch 在所有支援維度上同時優化。

消融裡影響最大的是 task-consistent batching(同一 batch 來自同一任務與候選空間):換成混合採樣直接 -3.4 分。這給我們的啟示很直接——對比學習的負例質量取決於 batch 內候選空間的一致性,混batch 是隱形殺手。

Stage 2:curated 數據 + 蒸餾 + merging

Stage 2 數據量只有 Stage 1 的約 1/10,但做了三件精緻的事:

  1. Semantic-ID 引導重採樣:用中間 checkpoint 編碼 pair, fit 三層 RQ-KMeans 得到 Semantic ID,按碼本密度反向採樣——壓制高頻語義模式的重複暴露;
  2. MLLM 質控 + hard-negative 擴充:多模態大模型過濾錯配 pair、修正弱監督文本的事實錯誤;文本負例由 MLLM 生成、視覺負例由中間 checkpoint 檢索挖掘,部分再經 reranker 打分;
  3. 双向 KL embedding 蒸餾:凍結 9B 當老師,對 batch 內 source→target 與 target→source 兩個方向的相似度分佈做 KL 蒸餾。這是小模型增益的最大來源——2B/4B 的強表現很大程度上是 9B 蒸出來的

9B 自己沒有更大的老師,於是訓練多個數據配比互補的專科 Stage 2 變體,最後 model merging 合成終版。

累計消融:Stage 2 策略疊加共 +2.2 分(curated → reranker → 蒸餾 → 更高視覺預算)。

另一個誠實的細節:reranker 監督並非全面有效——報告明確說 rerank 自檢索結果在多數多模態任務上收益不穩定,因此只限制在可靠子集上使用。這種「報告裡寫明什麼沒用」的態度,是技術報告品質的標杆。


基準成績全覽

MMEB-v2(78 數據集)

模型 規模 AVG Image Video VisDoc
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
Qwen3-VL-Embedding 8B 77.8 80.1 67.1 82.4
WeMM-Embedding 9B 80.6 81.9 74.3 83.3

2B 越級打 8B,9B 壓過所有開源與閉源。

MMEB-v3(190 任務,含 53 文本 + 47 agent + 11 音頻 + MCMR):2B=56.0 / 4B=58.2 / 9B=59.5,Text 組與 Agent 組均第一。音頻不支援記 0 分仍拿總分第一——可見其他模態領先幅度之大。

跨模態檢索 12 基準:2B=79.8 / 9B=81.7,與 Gemini Embedding 2、Amazon Nova MME、Voyage Multimodal 3.5 等閉源商業模型打得有來有回。

微信內部 26 任務 + 14 個在線 A/B:五類任務全勝開源基線;推薦系統用於候選召回、排序特徵、用戶序列建模、跨域理解;長尾與新發布內容收益最明顯——這對冷啟動場景(我們新歸檔的項目文件)是好消息。


本地實測:Mac Studio MPS 上的真實數字

我們在 Mac Studio(arm64,512GB RAM)上完整部署了 2B 並與本機 BGE-m3 對比(venv 隔離、未動任何系統配置):

指標 WeMM-Embedding-2B BGE-m3
向量維度 2048(MRL 64–2048) 1024
文本 latency(熱身後) 47 ms 3 ms
圖像 latency 321 ms/張 ❌ 純文本
檢索 Top-3 命中(24 條中英 corpus + 6 query) 6/6 (100%) 6/6 (100%)
MPS 內存峰值 ≈6.0 GB ≈1.0 GB
權重 5.44 GB safetensors 4.3 GB

結論很清晰:純文本場景 BGE-m3 快約 20 倍、省 6 倍內存,沒有切換理由;但多模態是 BGE-m3 永遠到不了的維度——圖像 321ms/張對非實時歸檔場景完全可接受。

實測踩坑記錄(如實)

  1. huggingface-cli 已棄用 → 改用 hf download
  2. import torchvision 觸發 libomp 重複初始化 SIGABRT → KMP_DUPLICATE_LIB_OK=TRUE 繞過(官方標記為不安全 workaround,macOS 已知問題);
  3. 裝 torchvision 連帶把 venv 內 torch 2.12.0 升到 2.13.0;
  4. flash-linear-attention/causal-conv1d 未裝 → 線性注意力走 torch 回退路徑,結果正確但非最優吞吐;
  5. bf16 內部歸一化誤差 norm≈1.0026 → fp32 再歸一化後嚴格 =1.0;
  6. README 建議 transformers==5.2.0,實測 5.9.0 已含 qwen3_5 架構、正常載入;
  7. 權重實際 5.44GB 與 HF 元數據標註 2.72GB 約差 2 倍(推測約 2.7B 參數 bf16),與「2B」命名有出入。

視頻 embedding 因缺 decord 未測,是本次實測的已知缺口。


對 Agent 基建的啟示:雙通道向量記憶

基於實測,我們給自建 agent 記憶系統的建議是雙通道架構

  1. 文本通道:繼續用 BGE-m3(3ms、1GB),承擔日常記憶檢索的主力流量;
  2. 多模態通道:按需加載 WeMM-2B(用後釋放 6GB MPS 內存),專門處理圖像、掃描文檔、視頻幀的歸檔檢索;低維部署用 256 維 MRL 截斷(已驗證 norm=1.0),存儲與距離計算成本砍 4–8 倍。

更深一層的啟示在 MMEB-v3 的 Agent 組:當 tool 描述、GUI 截圖、memory 片段需要同一空間檢索時,agent-centric embedding 會成為記憶系統的下一代地基。WeMM 是目前公開模型裡這條賽道的第一名。

若有 CUDA 伺服器,WeMM 的 flash-linear-attention 快路徑與 9B/4096 維版本才會完全體發揮;Mac 本地是「可用」,伺服器是「好用」。


許可證與風險

  • Apache 2.0:商業使用友好;第三方組件保留原許可證,使用前需自查;
  • 音頻不支援:MMEB-v3 音頻組記 0 分,全模態(omni)是官方未來工作;
  • 版本依賴:transformers 建議 5.2.0(實測 5.9.0 可用)、vLLM 0.27.0 / SGLang 0.5.9 serving 配方齊全;
  • 命名與實際參數量:2B 權重 5.44GB(約 2.7B 參數),容量規劃時以實測為準。

底線

WeMM-Embedding 把「多模態統一向量空間」從論文推進到了微信生產環境驗證 + 開源可復現 + 消費級硬體可跑的階段。對任何在做多模態檢索、agent 記憶、內容歸檔的團隊,它都是 2026 年 Q3 最值得認真評估的開源 embedding——沒有之一。

我們的下一步:雙通道架構 PoC,把年報圖表與掃描文件真正塞進同一個檢索空間。


參考:arXiv:2608.24053 · github.com/Tencent/WeMM-Embedding · huggingface.co/collections/tencent/wemm-embedding · 本地實測報告(2026-08-31,Mac Studio MPS)