mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Dataevaluationupdated 26 Aug 2026

WeMM-Embedding review

WeMM-Embedding is Tencent's family of models for putting text, images, video, scanned documents, and mixed media into the same searchable vector space. It is aimed at retrieval systems that need one representation across media instead of separate text and vision indexes.

+842stars / 7d
Verdict

Our WeMM-Embedding install pulled 92 packages, occupied 5,047 MB, and exposed 3 known vulnerabilities before any model weights were downloaded. Trial it when one index must retrieve across text, images, video, and visual documents, and compare its vectors on your own queries. Avoid making it the default for audio, small machines, or teams that need a tagged release and repository-level test gate.

We ran it

Lab card: what happened when we ran WeMM-EmbeddingScreenshot of WeMM-Embedding (github.com/Tencent/WeMM-Embedding)
Install✓ · 76s92 packages · 5047 MB
Build✓ · 5s
Testsn/ano test script
Known vulns3(pip-audit)
Repo45 files~7,524 lines of source · 1.9 MB · 0 CI workflows

Answers from our run

Does WeMM-Embedding build from source?

Dependencies installed in 76 seconds (92 packages), and the build succeeded in 5 seconds. We cloned commit 287b222 into a clean Debian container with 3 CPUs and no project-specific setup.

Does WeMM-Embedding have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does WeMM-Embedding have known vulnerabilities in its dependencies?

pip-audit flagged 3 known advisories in the dependency tree at the time of our run.

Who should not use WeMM-Embedding?

Audio retrieval projects: the README says audio input is not supported, and its MMEB-v3 audio score is therefore zero.

What are the alternatives to WeMM-Embedding?

Qwen3-VL-Embedding, VLM2Vec. Our WeMM-Embedding install pulled 92 packages, occupied 5,047 MB, and exposed 3 known vulnerabilities before any model weights were downloaded.

Setup2/576-second install used 5,047 MB before model weights
Docs4/5Inference, serving, vector sizes, and evaluation are documented
Community2/5155 stars, one open PR, and no tagged release yet
Maturity2/5Build passed, but no test target or CI workflow was present

Who it’s for

Search teams indexing a mix of text, images, video, and visual documents.
Researchers comparing open multimodal embedding models with published evaluation code.
Engineers who need shorter Matryoshka vectors and can test the retrieval loss at each supported size.
Infrastructure teams prepared to serve a 2B, 4B, or 9B model through Transformers, Sentence Transformers, vLLM, or SGLang.

Who it’s NOT for

Audio retrieval projects: the README says audio input is not supported, and its MMEB-v3 audio score is therefore zero.
Small deployments treating the Python package install as the whole footprint: our dependency environment alone occupied 5,047 MB before any model weights.
Teams that require a repository-level automated test target and visible CI: our scan found neither a test script nor a CI workflow.
Applications that casually upgrade Transformers: the project recommends 5.2.0 because newer releases may preprocess inputs differently.
Buyers who need a tagged release history before adoption: GitHub returned no latest release for the repository.

Setup reality

Our sandbox install succeeded in 76 seconds, adding 92 packages and using 5,047 MB on disk. The build succeeded in 5 seconds. There was no test script or target, so tests were skipped. Pip-audit reported 3 known vulnerabilities.

Inference needs separately downloaded model weights and media inputs. The README recommends Transformers 5.2.0, or Sentence Transformers, and documents vLLM 0.27.0 and SGLang 0.5.9 serving paths. Evaluation needs the MMEB-v3 data plus its own output directories.

The smallest published model is 2B parameters, and the family extends to 9B. The repository has no Dockerfile or CI workflow, so deployment packaging, accelerator fit, model caching, and vulnerability review remain with the operator.

One vector space covers text, images, video, and documents

WeMM-Embedding turns several media types into normalized vectors that can be compared in one retrieval system. The model accepts text, still images, video, visual documents, and interleaved combinations. A dedicated embedding token supplies the last-layer representation, followed by L2 normalization. That is useful for product search, media archives, document discovery, or agent memory where a query and the result may use different formats. Audio is explicitly unsupported.

Tencent publishes 2B, 4B, and 9B checkpoints. Our repository checkout was much smaller than those model names imply: 45 files, about 7,524 lines of source, and 1.9 MB. Most of what an operator runs comes from Python dependencies and separately fetched weights rather than bespoke repository code. This is closer to a model release with inference and evaluation glue than a large application platform.

Six vector sizes let storage trade against retrieval quality

Each checkpoint supports Matryoshka representation learning, so an application can truncate the full vector to a documented size and normalize it again. The 2B model offers dimensions from 64 through 2,048, the 4B model reaches 2,560, and the 9B model reaches 4,096. Shorter vectors reduce index storage and comparison work, but the right dimension belongs in an application evaluation, not in a default copied from an example.

The README reports that its 2B checkpoint at 256 dimensions retained 98.7 percent of its full-dimensional image and video result on MMEB-v2. That is Tencent's benchmark statement, not our finding. Our lab did not download the weights or run retrieval tasks. A buyer should repeat the comparison on real query-to-item pairs, especially if document text, screenshots, or long videos dominate the corpus.

What happened when we ran it

Our clean Python 3.12 sandbox installed the checkout in 76 seconds. Pip added 92 packages, and the environment occupied 5,047 MB on disk before any WeMM model weights were present. The build step succeeded in 5 seconds. Those numbers make the setup command look easier than the resulting footprint: the dependency tree alone is larger than many complete services.

There was no tests script or target, so our harness skipped tests. The repository scan also found 0 CI workflow files, no Dockerfile, and no tests directory. Pip-audit reported 3 known vulnerabilities in the installed environment. This makes dependency review necessary before exposing a server.

The 76-second install and 5-second build only checked repository mechanics. We did not fetch a 2B, 4B, or 9B checkpoint, measure GPU memory, time inference, or confirm Tencent's retrieval tables. Those are separate acceptance tests. The published evaluation uses many datasets and multi-node commands, which is useful for reproduction but is not evidence that a chosen model will fit one operator's hardware.

Transformers 5.2.0 is part of the reproducible path

The simplest examples use either Transformers or Sentence Transformers. Both accept a local model directory; Sentence Transformers can also load a Tencent model ID directly from Hugging Face. Inputs for text, image, and video are encoded independently in the example, with a dimension flag selecting a supported truncated vector. A production wrapper still has to validate media, batch requests, cache weights, and decide how vectors are stored.

Version choice is unusually important here. Tencent recommends Transformers 5.2.0 because newer versions may change preprocessing behavior. That warning should be treated as an index-consistency concern: if preprocessing changes, old and new vectors may no longer be produced under the same path. Pin the library and model revision, record both beside the index, and rebuild a sample before any upgrade. Our 92-package environment does not provide that policy automatically.

vLLM and SGLang are documented, but packaging is yours

For serving, the README gives commands tested with vLLM 0.27.0 and SGLang 0.5.9. vLLM uses its pooling runner plus the model's embedding chat template. SGLang needs a supplied video patch script and a precise embedding interpolation option. One-command wrapper scripts cover both paths, which lowers the chance of omitting a required flag during an initial trial.

There is still no Dockerfile in the 45-file checkout. Teams must choose a base image, accelerator runtime, exposed API, health checks, model cache location, and request limits. The 5,047 MB Python environment is only the first layer. With video inputs, upload size, frame sampling, decoding libraries, and timeout behavior need explicit limits before the service is safe to put behind a public endpoint.

The evaluation code is useful, while the project is very young

The repository includes the MMEB-v3 evaluation changes used for the report: a WeMM backbone, batched inference, dataset instructions, 64-frame video sampling, and multi-node execution. Tencent publishes results across image, video, visual-document, text, agent, and mixed-media tasks. Unsupported audio tasks receive zero rather than being quietly removed from the overall table, which makes the limitation easy to see.

Project health is current but too young for a maturity claim. GitHub recorded the last push on August 26, 2026, and listed 155 stars with 1 combined issue and pull request. The latest-release endpoint returned no tagged release. Apache 2.0 covers Tencent-authored repository code, while third-party components keep their own terms. Check the model card and every bundled component before redistributing weights or an image.

WeMM belongs in a measured retrieval trial

WeMM-Embedding covers four practical input classes and supports six or seven vector lengths, depending on checkpoint. Our successful 5-second build shows the small repository is mechanically usable, but the missing tests and 3 audit findings leave more verification than the short install command suggests.

Start with the 2B checkpoint, pin Transformers 5.2.0, and test the smallest vector that meets retrieval targets on your corpus. Record disk use again after weights and caches arrive. If audio is required, or if 5,047 MB before weights already exceeds the budget, stop there and choose a narrower model rather than forcing this family into the wrong system.

Alternatives

ProjectWhat it isPick it when
Qwen3-VL-EmbeddingA Qwen vision-language embedding and reranking family for multimodal retrieval.pick this instead when you already use the Qwen model family or need its paired reranker.
VLM2VecTraining and evaluation code for turning vision-language models into embedding models.pick this instead when modifying the training recipe matters more than adopting Tencent's released checkpoints.

What people are saying

  1. [velocity-scout] Tencent/WeMM-Embedding

Sources

  1. WeMM-Embedding README
  2. WeMM-Embedding technical report
  3. WeMM-Embedding model collection
  4. WeMM-Embedding pull request 1

More data reviews

turso · TrackersListCollection · dash · getcontact-cli · awesome-zhuiju-free · iggy · the whole board →