Un modelo de incrustación convierte el contenido en un vector de números que captura el significado. Los objetos similares aparecen muy cerca unos de otros, por lo que es fácil buscarlos y compararlos. En una canalización de RAG, estos vectores permiten a un LLM recuperar información nueva con la que no ha sido entrenado. La generación local de incrustaciones mantiene los datos en el dispositivo, reduce la latencia
y funciona sin conexión.
Un espacio vectorial para cada modalidad
EmbeddingGemma 2 se basa en la arquitectura Gemma 4. Una consulta de texto puede recuperar una foto. Una nota de voz puede recuperar un clip de vídeo. Las entradas intercaladas, como una lista de productos con texto, imágenes y un vídeo de demostración, producen una única
incrustación.
El diseño es modular. Consta de tres partes:
Estructura troncal de texto y código: 270 millones de parámetros (130 M de transformador más 140 M de embebedor)
Codificador de visión: 170 millones de parámetros, opcional
Codificador de audio: parámetros de 300 M, opcional
Los desarrolladores solo cargan lo que necesitan: 270 M para texto, 440 M para texto y visión, 570 M para texto y audio, o 740 M para todo. Todas las configuraciones comparten un espacio vectorial. Una consulta incrustada con la configuración de solo texto puede coincidir con los documentos incrustados en el modelo completo
.
La ventana de contexto es de 8.192 fichas, cuatro veces más grande que la de la versión 1. En ella caben unas 29 imágenes, 58 fotogramas de vídeo o 5,5 minutos de audio.
Puntos de referencia
El equipo de investigación de Google informa de las puntuaciones más altas entre los integradores multimodales sub-1B en MTEB Code y MAEB. Resultados de
recuperación de código gana 9,92 puntos, aproximadamente un 14%. La calidad del texto multilingüe se mantiene estable. Los modelos más grandes siguen liderando algunas tablas. La Qwen3-VL-Embedding-2b registra 73,2 en su propia versión de MMEB-V2, con unos 2,7
veces más parámetros y sin soporte de audio.
Diseñado para teléfonos y ordenadores portátiles
Con la cuantificación en un Pixel 11 Pro, la RAM activa es de aproximadamente 191 MB para pesos de solo texto. El modelo multimodal completo necesita unos 567 MB. El entrenamiento basado en la cuantificación comprime las pesas en INT4 e INT8. El equipo de Google AI Edge midió 37,3 ms por imagen en una GPU del MacBook M5 Pro, con un presupuesto
de visión de 70 fichas.
Matryoshka Representation Learning (MRL) permite a los desarrolladores truncar vectores en 512, 256 o 128 dimensiones. Pasar de 768 a 128 dimensiones reduce el almacenamiento hasta 6 veces. Con 256 dimensiones, el MTEB multilingüe solo pasa de 61,36 a 60,41. En 128 dimensiones, el MMEB se reduce a 45,65, por lo que Google recomienda 128d principalmente para cargas de trabajo de solo
texto.
Explicador interactivo
&&&
Embedding Gemma 2 contra sus competidores más cercanos
Un modelo abierto de 740M incrusta texto, código, imágenes, vídeo y audio en un espacio compartido de 768d.
Los codificadores modulares escalan el espacio de 270 millones (texto) a 740 millones (multimodo completo)
Google DeepMind has released EmbeddingGemma 2, an open model that embeds text, code, images, video and audio into one 768-dimensional space. It has 740M parameters, an 8K token context window and an Apache 2.0 license. It targets on-device search, classification and privacy-first RAG. This article analyzes, compares and showcase how EmbeddingGemma 2 fits in the space.
An embedding model converts content into a vector of numbers that captures meaning. Similar items land close together, so they are easy to search and compare. In a RAG pipeline, these vectors let an LLM retrieve fresh information it was not trained on. Generating embeddings locally keeps data on the device, cuts latency and works offline.
One Vector Space for Every Modality
EmbeddingGemma 2 is built on the Gemma 4 architecture. A text query can retrieve a photo. A voice memo can retrieve a video clip. Interleaved inputs, like a product listing with text, images and a demo video, produce a single embedding.
The design is modular. It has three parts:
Text and code backbone: 270M parameters (130M transformer plus 140M embedder)
Vision encoder: 170M parameters, optional
Audio encoder: 300M parameters, optional
Developers load only what they need: 270M for text, 440M for text and vision, 570M for text and audio, or 740M for everything. All setups share one vector space. A query embedded with the text-only setup can match documents embedded by the full model.
The context window is 8,192 tokens, 4x larger than version 1. That fits about 29 images, 58 video frames or 5.5 minutes of audio.
Benchmarks
Google research team reports leading scores among sub-1B multimodal embedders on MTEB Code and MAEB. Full-precision results at 768 dimensions:
Code retrieval gains 9.92 points, roughly 14%. Multilingual text quality holds steady. Bigger models still lead some boards. Qwen3-VL-Embedding-2B reports 73.2 on its own MMEB-V2 run, with about 2.7x the parameters and no audio support.
Built for Phones and Laptops
With quantization on a Pixel 11 Pro, active RAM is about 191MB for text-only weights. The full multimodal model needs about 567MB. Quantization-aware training compresses weights to INT4 and INT8. The Google AI Edge team measured 37.3 ms per image on a MacBook M5 Pro GPU, using a 70-token vision budget.
Matryoshka Representation Learning (MRL) lets developers truncate vectors to 512, 256 or 128 dimensions. Moving from 768 to 128 dimensions cuts storage up to 6x. At 256 dimensions, MTEB multilingual only slips from 61.36 to 60.41. At 128 dimensions, MMEB drops to 45.65, so Google recommends 128d mainly for text-only workloads.
It runs on sentence-transformers v6.1.0+, Transformers, vLLM, SGLang, MLX, llama.cpp, Ollama, LM Studio, LiteRT and MediaPipe. Qdrant covers vector storage and Unsloth covers fine-tuning. ML Kit support for Android, with NPU acceleration, is coming within weeks.
pip install -U "sentence-transformers[image,audio,video]" transformers
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("google/embeddinggemma-2")
q = model.encode("What causes the northern lights?", prompt_name="SearchQuery")
d = model.encode("Charged particles from the sun.", prompt_name="Document")
print(model.similarity(q, d))
On Ollama, run ollama pull embeddinggemma-2. Tags range from 270m (378MB) to 740m (1.3GB). Demos live in Google AI Edge Gallery. See the developer guide for more.
Key Takeaways
One 740M open model embeds text, code, images, video and audio into a shared 768d space.
Modular encoders scale the footprint from 270M (text) to 740M (full multimodal).
Code retrieval jumps from 68.76 to 78.68 on MTEB Code.
Runs in ~191MB to ~567MB of RAM on a Pixel 11 Pro with quantization.
FAQ
Can EmbeddingGemma 2 be used commercially? Yes. It is released under the Apache 2.0 license.
How much memory does EmbeddingGemma 2 need? Google reports about 191MB of active RAM for text-only use and 567MB for full multimodal use, quantized, on a Pixel 11 Pro.