Google DeepMind's EmbeddingGemma 2 Searches Text, Video, and Audio in One 740M Model
Google DeepMind's 740M-parameter multimodal embedder unifies text, code, images, video, and audio in one 768-dim space, beating models up to 12x larger.
- Google DeepMind released EmbeddingGemma 2, a 740M open multimodal embedding model under Apache 2.0.
- Unifies text, code, images, video, and audio in one 768-dim vector space, replacing caption-then-embed pipelines.
- Modular encoders let you load 270M (text), 440M (+vision), 570M (+audio), or 740M (full).
- Beats specialist and general models up to 12x larger on multimodal benchmarks, per the tech report.
- Matryoshka dims (768/512/256/128) and int4 quantization bring active memory to ~567MB.
- 14% code-retrieval gain over v1; 8K shared context; interleaved image/video/audio inputs in one call.
Google DeepMind has released the weights and technical report for EmbeddingGemma 2, an open model that encodes text, code, images, video, and audio into a shared vector space. Across Google’s benchmark suite, it outperformed several specialist systems and multimodal models with two to 12 times as many parameters. Google describes the result as a new Pareto frontier: within its comparison set, no model delivered higher aggregate quality at the same or a smaller size.
Embedding models convert content into numerical vectors whose distances represent semantic similarity. Placing multiple media types in the same coordinate system enables a text query to retrieve matching images, recordings, videos, code, or mixed-media documents through nearest-neighbor search.
Many multimodal retrieval-augmented generation pipelines first caption images and transcribe audio, then pass that derived text to another embedding model. A native multimodal encoder removes those intermediate services, reduces indexing complexity, and preserves visual or acoustic signals that captions and transcripts can omit.
One space for text and media
EmbeddingGemma 2 produces 768-dimensional vectors for individual inputs or interleaved combinations of text, code, images, video, and audio. A text query such as waterproof shoes for trail running
can therefore be scored directly against a product record containing descriptions, photographs, and a demonstration video.
The complete model contains 740 million parameters: a 270M text path, a 170M vision encoder, and a 300M audio encoder. The text path consists of a 130M transformer backbone and a 140M embedding component.
One checkpoint, four footprints
Independent vision and audio modules can be omitted when the model loads, giving developers four deployment configurations from the same checkpoint.
| Configuration | Parameters | Supported inputs |
|---|---|---|
| Text only | 270M | Text and code |
| Text and vision | 440M | Text, code, and images or video |
| Text and audio | 570M | Text, code, and audio |
| Full multimodal | 740M | All supported inputs |
Each configuration projects into the same 768-dimensional geometry. Teams can use a smaller text-only instance for document indexing and a larger multimodal instance for queries without rebuilding the text index, provided preprocessing and instruction formats remain consistent.
The text-only configuration can be loaded through sentence-transformers by disabling both optional encoders:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer(
"google/embeddinggemma-2",
config_kwargs={
"vision_config": None,
"audio_config": None,
},
) # text-only, 270M parametersInternally, the Gemma 4-derived backbone uses 24 layers with a model width of 512 and a hidden dimension of 2,048. Attention combines grouped-query and multi-query variants to reduce cache costs, with a 5:1 ratio of local to global attention and a 1,024-token sliding window for local layers. The tokenizer has a 262,144-entry vocabulary. Mean pooling condenses the sequence representation, and a 512-to-768 projection produces the final embedding. The model accepts an 8,192-token context shared by text and media.
Smaller vectors, lower storage costs
Matryoshka Representation Learning concentrates useful information toward the beginning of each vector, allowing the 768-dimensional output to be truncated to 512, 256, or 128 dimensions without retraining. Google reports near-lossless quality at 256 dimensions, which cuts vector storage by roughly threefold. The 128-dimensional option is intended for text-only use because multimodal retrieval quality declines more sharply at that size.
With 4-bit integer weight quantization, Google reports about 567MB of active memory for the full model. Total application memory will be higher because runtimes, activations, input buffers, and vector indexes add overhead. Actual mobile viability will depend on the target chipset, runtime, sequence length, and media mix.
Benchmarks at a glance
| Modality | Benchmark | Metric or score |
|---|---|---|
| Text | MTEB Multilingual v2 | 61.36 |
| Code | MTEB Code v1 | 78.68 NDCG@10 |
| Image | MIEB Lite | 65.67 |
| Image | MMEB v2 | 57.28 Hit@1 |
| Visual documents | MMEB v2 | 67.84 NDCG@5 |
| Video | MMEB v2 | 50.67 Hit@1 |
| Audio | MSEB Retrieval | 69.54 MRR@10 |
| Audio | MAEB | 49.87 |
Higher values indicate better performance, but scores should be compared only within the same benchmark and metric. Hit@1 measures whether the correct result ranks first, MRR@10 rewards higher placement of the first relevant result within the top 10, and NDCG rewards useful ranking across multiple relevant results. These figures come from Google’s evaluation, so production teams should reproduce the relevant tests on their own corpora and query distributions.
Google reports an approximately 14% relative improvement over the previous model on code tasks. That gain targets natural-language code search, repository navigation, duplicate detection, and retrieval for coding assistants.
A staged multimodal curriculum
Shared embedding spaces can become skewed when one modality dominates training. The report attributes EmbeddingGemma 2’s balance to simplified per-layer embeddings and a curriculum that introduces modalities and objectives in stages. This progression covers unimodal retrieval, cross-modal matching, and mixed-modal inputs while preserving useful representations from multiple network depths.
Pretraining data included web documents in more than 140 languages, code, images, video, audio, and paired examples spanning multiple modalities. The reported data cutoff is January 2025.
Mixed media in one call
EmbeddingGemma 2 can encode interleaved media as one input and return a single vector for the complete sequence. Placeholder tokens specify each media item’s position, and their order must correspond to the supplied image, video, or audio values.
embedding = model.encode({
"text": (
"Waterproof running shoes. <|image|> "
"Mesh upper. <|image|> "
"Wet rock grip test: <|video|>"
),
"image": ["shoe.jpg", "mesh.jpg"],
"video": "demo.mp4",
})| Input | Default cost | Approximate maximum |
|---|---|---|
| Image | 280 tokens each | 29 images |
| Video | 140 tokens per frame at 1 FPS | 58 frames |
| Audio | 25 tokens per second | 327 seconds |
Those maxima assume the context contains little or no text, other media, or formatting overhead. A configurable vision budget can reduce the tokens assigned to each image or frame, raising capacity to roughly 114 visual items per context at the cost of detail and retrieval quality.
Deployment targets and sharp edges
- Private or edge RAG: Index and query local content without sending raw user data to a hosted embedding API.
- Cross-modal retrieval: Search audio with spoken or written queries, retrieve product text from images, or match video against descriptions.
- Code search: Retrieve functions, files, or repositories from natural-language queries.
- Content organization: Classify, cluster, and detect near-duplicates across mixed media.
| Constraint | Developer action |
|---|---|
Inference requires bfloat16 or float32. float16 can exceed the activation range and produce NaNs or degraded vectors. |
Set the inference dtype explicitly and test embeddings for finite values before indexing. |
Text tasks expect short instruction prefixes such as task: search result | query: .... |
Use Google’s task templates consistently for both evaluation and production queries. |
| Quality varies across the supported languages. | Evaluate recall and ranking quality separately for every target language and domain. |
| The small backbone may lose precision on highly nuanced retrieval tasks. | Add a reranker or route difficult queries to a larger model. |
| The pretrained encoder applies no safety policy to indexed or retrieved content. | Enforce authorization, content filtering, and retrieval policies in the surrounding application. |
Weights, mobile builds, and evaluation
Google hosts the weights on Hugging Face under the Apache 2.0 license. A LiteRT build targets mobile deployment, while the technical report documents the architecture, training curriculum, comparisons, and ablation studies.
Teams evaluating the model should test representative queries against their own corpus, then measure retrieval quality, latency, peak memory, vector storage, language coverage, and the effects of dimension truncation and quantization. Those measurements will determine whether the 270M text configuration, a partial multimodal build, or the full 740M model offers the best deployment tradeoff.