Back to Devoured - August 27, 2026
DEVOURED
WeChat released Family of Embedding Models (GitHub Repo)

WeChat released Family of Embedding Models (GitHub Repo)

AI GitHub
Tencent's WeChat team has open-sourced WeMM-Embedding, a family of multimodal models that map heterogeneous inputs like video, images, and text into a shared space.
What: The WeMM-Embedding models (available in 2B, 4B, and 9B parameter sizes) support text, images, video, and visual documents. They utilize Matryoshka Representation Learning (MRL), allowing developers to truncate embeddings to smaller dimensions like 256 while retaining high performance.
Why it matters: Multimodal embedding models are becoming essential for building Retrieval-Augmented Generation (RAG) pipelines that need to index non-text assets like video content effectively.
Takeaway: Developers can integrate these into vLLM or SGLang environments using the provided model weights on Hugging Face.
Deep dive
  • Provides unified representations for text, images, video, and visual documents.
  • Supports dynamic dimensionality via Matryoshka Representation Learning (MRL).
  • Compatible with vLLM 0.27.0 and SGLang 0.5.9.
  • Outperforms previous models like VLM2Vec and E5-Omni on the MMEB-v2/v3 benchmarks.
  • 2B model retains 98.7% performance at 256 dimensions.
  • Inference requires L2 normalization of output embeddings.
Decoder
  • Matryoshka Representation Learning (MRL): A technique where a model learns embeddings such that the initial prefixes of the vector contain useful information, allowing developers to trade off accuracy for storage/speed by using smaller vector sizes.
  • Multimodal Embedding: A mathematical representation that maps different types of data (like images and text) into the same coordinate space so that related items are mathematically close to one another.
Original article

WeMM-Embedding: WeChat Multi-Modal Embedding

WeMM-Embedding is a family of universal multimodal embedding models developed by the WeChat Vision team. It provides unified representations for text, images, videos, visual documents, and interleaved multimodal inputs, achieving state-of-the-art performance across multiple benchmarks covering diverse tasks and domains.

Model Zoo

Model Matryoshka dimensions Hugging Face
WeMM-Embedding-2B 64, 128, 256, 512, 1024, 2048 🤗 Link
WeMM-Embedding-4B 64, 128, 256, 512, 1024, 2560 🤗 Link
WeMM-Embedding-9B 64, 128, 256, 512, 1024, 2048, 4096 🤗 Link

All models support text, images, videos, visual documents, and interleaved multimodal inputs. Embeddings are obtained from the last-layer hidden state at the dedicated <embedding> token position, followed by L2 normalization. Audio input is not currently supported.

Installation

pip install -r requirements.txt

Transformers

We recommend using transformers==5.2.0 for inference and reproducibility, as newer versions may differ in preprocessing behavior.

python examples/transformers_inference.py \
  --model /path/to/WeMM-Embedding-2B \
  --image /path/to/image.jpg \
  --video /path/to/video.mp4 \
  --dimension 2048

The example produces independent text, image, and video embeddings. Omit --dimension for the full embedding 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 loads the model directly, so a Hugging Face model id such as tencent/WeMM-Embedding-2B also works in place of a local path. Text, image, and video inputs go through SentenceTransformer.encode(), and MRL is selected with --dimension.

Serving

Tested versions: vLLM 0.27.0 and 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

Equivalent one-command wrappers are available in scripts/serve_vllm.sh and scripts/serve_sglang.sh.

Matryoshka Embeddings

For a supported dimension d, truncate the full embedding and normalize it again:

embedding = torch.nn.functional.normalize(embedding[..., :d], dim=-1)

On MMEB-v2, the 2B model at 256 dimensions retains 98.7% of its full-dimensional image and video performance.

Evaluation

MMEB-v2

Results on 78 datasets. Image and video tasks use Hit@1, while visual-document tasks use NDCG@5. Higher is better.

Model Size AVG Image Video VisDoc
WeMM-Embedding 2B 77.9 79.6 70.8 80.7
WeMM-Embedding 4B 79.2 80.8 72.1 82.0
WeMM-Embedding 9B 80.6 81.9 74.3 83.3

MMEB-v3

Results on 190 tasks. V3-All includes the 78 MMEB-v2 tasks, 53 text tasks, 47 agent tasks, 11 audio tasks, and MCMR.

Model Size V3-All Text Agent MCMR Audio
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
WeMM-Embedding 9B 59.5 48.8 51.0 49.3 0.0

Text results use NDCG@5; agent, MCMR, and audio results use Hit@1.

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

Citation

@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}, 
}

License

Unless otherwise noted, Tencent-authored code in this repository is released under the Apache License 2.0.

Explore all 59 articles in today's digest

Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi