NEWVectors or files. Pick a path.Start →
    Models/Embeddings/tencent/WeMM-Embedding-9B
    HFVisual EmbeddingsApache 2.0 (repo LICENSE; the HF card tags it "other")

    WeMM-Embedding-9B

    by tencent

    Tencent's 9B multimodal embedding model: text, image, video and visual documents in one 4,096-dimension space

    385dl/month
    9.41B total (Qwen3.5-9B backbone plus vision tower)params
    Identifiers
    Model ID
    tencent/WeMM-Embedding-9B
    Feature URI
    mixpeek://multimodal_extractor@v2/tencent_wemm_embedding_9b_v1

    Overview

    WeMM-Embedding-9B is a universal multimodal embedding model from the WeChat team at Tencent, released 26 August 2026 on a Qwen3.5-9B backbone. Give it text, an image, a video, a scanned page, or several of those interleaved in one call, and it returns a single L2-normalized 4,096-dimension vector. Audio is the one input it refuses.

    It leads every axis of MMEB-v2 that Tencent reports, at 80.6 average across 78 datasets against 77.8 for Qwen3-VL-Embedding-8B and 78.4 for the closed-weights DME-Medium. The video column is where the gap is widest: 74.3 against 67.1 for Qwen3-VL-Embedding at the same rough size. On MMEB-v3, which adds 53 text tasks, 47 agent tasks and MCMR to the v2 set, it scores 59.5 overall against 53.5.

    Matryoshka training lets you pick the output width when you build the index. The published truncation points are 64, 128, 256, 512, 1,024, 2,048 and 4,096, and Tencent measured 256-dimension embeddings retaining 98.7% of full-dimension image and video performance on MMEB-v2. Storing 256 floats instead of 4,096 is roughly a 16x cut in bytes per vector, which is usually the line item that decides how much of an archive you can afford to index.

    Architecture

    Qwen3.5-9B language backbone with a 1,152-dimension vision tower, 9,407,831,280 parameters in BF16. The size in the name refers to the language model, so the safetensors total runs higher once the vision encoder is counted. Position embeddings extend to 262,144 tokens. Output is a 4,096-dimension L2-normalized vector with Matryoshka truncation at 64, 128, 256, 512, 1,024, 2,048 and 4,096. Tencent publishes serving paths for Transformers, Sentence Transformers, vLLM 0.27.0 with the pooling runner, and SGLang 0.5.9.

    Mixpeek SDK Integration

    // WeMM-Embedding has no managed Mixpeek extractor yet, so encode with the
    // model and upsert the vectors. Route verified against the live OpenAPI:
    // POST /v1/namespaces/{namespace_id}/documents/upsert (document_id + vectors
    // are the only required fields).
    const res = await fetch(
      "https://api.mixpeek.com/v1/namespaces/ns_your_namespace/documents/upsert",
      {
        method: "POST",
        headers: {
          Authorization: "Bearer API_KEY",
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          collection_id: "col_your_collection",
          documents: [
            {
              document_id: "reel-00412",
              // 4096 floats from model.embedding(...). Slice and renormalize first
              // if you are storing a truncated Matryoshka dimension.
              vectors: { "multimodal-embedding": wemmVector },
              payload: { title: "Q3 launch reel", duration_s: 94 },
              metadata: { source: "brand-archive" },
            },
          ],
        }),
      },
    );

    Capabilities

    • One vector space covering text, image, video and visual-document queries
    • Matryoshka truncation to 64, 128, 256, 512, 1,024, 2,048 and 4,096 without re-encoding
    • Interleaved inputs, so several images and a video can share a single embedding call
    • 262,144-token position range for long visual documents
    • Chinese and English
    • Published vLLM 0.27.0 and SGLang 0.5.9 serving recipes

    Use Cases on Mixpeek

    Text-to-video search over an archive, returning moments rather than filenames
    Retrieving scanned pages and slide decks without an OCR stage in front of the index
    Cross-modal dedup, where an image and its caption should land in the same neighbourhood
    Shrinking an existing index to 256 dimensions once storage cost outgrows the accuracy it buys

    Benchmarks

    DatasetMetricScoreSource
    MMEB-v2 (78 datasets)Average80.6WeMM-Embedding technical report, Table 1
    MMEB-v2 ImageHit@181.9Technical report, Table 1
    MMEB-v2 VideoHit@174.3Technical report, Table 1
    MMEB-v2 VisDocNDCG@583.3Technical report, Table 1
    MMEB-v3 (190 tasks)V3-All59.5Technical report, Table 2
    MMEB-v3 TextNDCG@548.8Technical report, Table 2
    MMEB-v3 AgentHit@151.0Technical report, Table 2
    MMEB-v3 MCMRHit@149.3Technical report, Table 2
    MMEB-v3 AudioHit@10.0Audio is unsupported and scores zero by construction

    Performance

    Input SizeText, image, video, visual document, or interleaved; 262,144-token position range
    Embedding Dim4096 (Matryoshka down to 64)
    GPU LatencyInput dependent
    GPU ThroughputBatch dependent
    GPU Memory~19 GB in BF16 for weights alone

    Tencent publishes no latency or throughput figures for this model. The memory number is computed from the 9,407,831,280 BF16 parameters in the safetensors index and covers weights only, so serving needs headroom for activations and for batched video frames.

    Frequently Asked Questions

    Can I run WeMM-Embedding on Mixpeek today?

    Not as a managed extractor. GET /v1/discovery/extractors returns 13 shipping extractors and none of them accepts an arbitrary Hugging Face model id, so a collection cannot be pointed at these weights. Two paths work now. Run the model on your own hardware and upsert the vectors through POST /v1/namespaces/{namespace_id}/documents/upsert, which takes a named-vector map and stores it in Mixpeek Vector Store alongside everything else. Or package it as a custom extractor plugin, which is available on Enterprise namespaces.

    Does WeMM-Embedding handle audio?

    No. The model card states that audio input is not supported, and on the 11 audio tasks in MMEB-v3 it scores 0.0, because the benchmark assigns zero to tasks a model cannot attempt. If audio has to live in the same index, the published omni-modal alternatives are Omni-Embed-Nemotron at 36.5 and E5-Omni-7B at 43.0 on the same tasks.

    What licence does WeMM-Embedding carry?

    Apache 2.0. The Hugging Face card sets the license field to "other", which reads as restrictive, and the LICENSE file in the repo resolves it: Tencent states the model is "licensed under Apache-2.0" except for listed third-party components, which keep their original terms. No additional restrictions are imposed beyond those.

    How much better is the 9B than the 2B?

    2.7 points of MMEB-v2 average, 80.6 against 77.9, for 3.5x the parameters. Put the other way round, the 2B recovers 96.7% of the 9B's average score on 29% of the weights. The gap is widest on video (74.3 against 70.8) and on the MMEB-v3 agent tasks (51.0 against 45.1), so the case for the 9B is strongest when video retrieval or agent-style retrieval is the workload.

    What does the 4,096-dimension output cost to store?

    4,096 float32 values is 16 KB per vector before any quantization, so a million items is roughly 16 GB. Truncating to 256 dimensions cuts that 16x to about 1 GB per million, and Tencent measured 98.7% of full-dimension image and video performance retained at 256 on MMEB-v2. Renormalize after slicing, or pass truncate_dim through Sentence Transformers and let it renormalize.

    Specification

    FrameworkHF
    Organizationtencent
    FeatureVisual Embeddings
    Output768-dim vector
    Modalitiesvideo, image
    RetrieverVector Search
    Parameters9.41B total (Qwen3.5-9B backbone plus vision tower)
    LicenseApache 2.0 (repo LICENSE; the HF card tags it "other")
    Downloads/mo385

    Research Paper

    WeMM-Embedding: WeChat Multi-Modal Embedding Technical Report

    arxiv.org

    Build a pipeline with WeMM-Embedding-9B

    Add this model to a processing pipeline alongside other extractors. Combine with retrieval stages for end-to-end search.

    Run it on your own data, free