Google DeepMind a publié EmbeddingGemma 2, un modèle ouvert qui embede le texte, le code, les images, la vidéo et l'audio dans un seul espace à 768 dimensions. Il compte 740M de paramètres, une fenêtre de contexte de 8K tokens et une licence Apache 2.0. Il cible la recherche sur appareil, la classification et le RAG axé sur la confidentialité. Cet article analyse, compare et présente comment EmbeddingGemma 2 s'inscrit dans ce domaine.
Déployable dès aujourd'hui ? Oui. Les poids sont disponibles sur Hugging Face et Kaggle, avec des builds Ollama, llama.cpp GGUF et LiteRT disponibles dès maintenant.
Ce que fait un modèle d'embedding
Un modèle d'embedding convertit le contenu en un vecteur de nombres qui capture le sens. Les éléments similaires se retrouvent proches les uns des autres, ce qui facilite leur recherche et leur comparaison. Dans un pipeline RAG, ces vecteurs permettent à un LLM de récupérer des informations récentes sur lesquelles il n'a pas été entraîné. Générer les embeddings localement garde les données sur l'appareil, réduit la latence et fonctionne hors ligne.
Un seul espace vectoriel pour chaque modalité
EmbeddingGemma 2 est construit sur l'architecture Gemma 4. Une requête textuelle peut récupérer une photo. Un mémo vocal peut récupérer un clip vidéo. Des entrées entrelacées, comme une fiche produit avec du texte, des images et une vidéo de démonstration, produisent un seul embedding.
La conception est modulaire. Elle comporte trois parties :
- Backbone texte et code : 270M de paramètres (130M de transformeur plus 140M d'embedder)
- Encodeur vision : 170M de paramètres, optionnel
- Encodeur audio : 300M de paramètres, optionnel
Les développeurs ne chargent que ce dont ils ont besoin : 270M pour le texte, 440M pour le texte et la vision, 570M pour le texte et l'audio, ou 740M pour tout. Toutes les configurations partagent un seul espace vectoriel. Une requête embedée avec la configuration texte seule peut correspondre à des documents embedés par le modèle complet.
La fenêtre de contexte est de 8,192 tokens, soit 4x plus grande que la version 1. Cela correspond à environ 29 images, 58 images vidéo ou 5.5 minutes d'audio.
Benchmarks
L'équipe de recherche de Google fait état de scores de premier plan parmi les embedders multimodaux de moins de 1B sur MTEB Code et MAEB. Résultats en pleine précision à 768 dimensions :
| Benchmark | EmbeddingGemma 2 | EmbeddingGemma 1 |
|---|---|---|
| MTEB multilingue v2 | 61.36 | 61.15 |
| MTEB Code v1 | 78.68 | 68.76 |
| MIEB lite (image) | 64.64 | n/a |
| MMEB v2 global | 59.01 | n/a |
| MSEB retrieval (son) | 69.54 | n/a |
| MAEB (audio) | 49.39 | n/a |
Source : Fiche modèle d'EmbeddingGemma 2
La récupération de code gagne 9.92 points, soit environ 14 %. La qualité du texte multilingue reste stable. Les modèles plus grands dominent encore certains classements. Qwen3-VL-Embedding-2B signale 73.2 lors de sa propre exécution de MMEB-V2, avec environ 2.7x plus de paramètres et aucune prise en charge audio.
Conçu pour les téléphones et les ordinateurs portables
Avec la quantification sur un Pixel 11 Pro, la RAM active est d'environ 191MB pour les poids textuels seuls. Le modèle multimodal complet nécessite environ 567MB. L'entraînement conscient de la quantification compresse les poids en INT4 et INT8. L' équipe Google AI Edge a mesuré 37.3 ms par image sur un GPU MacBook M5 Pro, en utilisant un budget vision de 70 tokens.
Le Matryoshka Representation Learning (MRL) permet aux développeurs de tronquer les vecteurs à 512, 256 ou 128 dimensions. Passer de 768 à 128 dimensions réduit le stockage jusqu'à 6x. À 256 dimensions, MTEB multilingue ne glisse que de 61.36 à 60.41. À 128 dimensions, MMEB chute à 45.65, donc Google recommande le 128d principalement pour les charges de travail textuelles seules.
Explication interactive
EmbeddingGemma 2 face aux concurrents les plus proches
| Caractéristique | EmbeddingGemma 2 | EmbeddingGemma 1 | Qwen3-VL-Embedding-2B | LCO-Embedding-Omni-3B | Gemini Embedding 2 |
|---|---|---|---|---|---|
| Développeur | Google DeepMind | Google DeepMind | Alibaba Qwen | LCO-Embedding (recherche) | |
| Paramètres | 740M (270M textuels seuls) | 308M | 2B | backbone 3B (5B listé sur HF) | Non divulgué |
| Texte / code | Oui | Oui | Oui | Oui | Oui |
| Images | Oui | Non | Oui | Oui | Oui |
| Vidéo | Oui | Non | Oui | Oui | Oui |
| Audio | Oui | Non | Non | Oui | Oui |
| Dimensions de sortie (MRL) | 768 (512, 256, 128) | 768 (jusqu'à 128) | Jusqu'à 2048 (64 à 2048) | Non précisé | 3072 (128 à 3072) |
| Contexte | 8,192 tokens | 2K tokens | 32K tokens | Non précisé | 8,192 tokens |
| Langues | 100+ | 100+ | 30+ | Non précisé | 100+ |
| Licence / accès | Apache 2.0, poids ouverts | Poids ouverts (conditions Gemma) | Apache 2.0, poids ouverts | Apache 2.0, poids ouverts | API payante uniquement |
| RAM sur l'appareil publiée | ~191Mo texte, ~567Mo complet | Moins de 200Mo | Non publié | Non publié | Cloud uniquement |
| Source | Fiche modèle | Documentation | Fiche HF | Fiche HF | Documentation API |
Comment l'exécuter
Il fonctionne avec sentence-transformers v6.1.0+, Transformers, vLLM, SGLang, MLX, llama.cpp, Ollama, LM Studio, LiteRT et MediaPipe. Qdrant couvre le stockage vectoriel et Unsloth couvre le fine-tuning. La prise en charge de ML Kit pour Android, avec accélération NPU, arrive dans les prochaines semaines.
Copier le codepip 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))
Sur Ollama, exécutez ollama pull embeddinggemma-2. Les tags vont de 270m (378Mo) à 740m (1,3GB). Les démos se trouvent dans Google AI Edge Gallery. Consultez le guide du développeur pour en savoir plus.
Points clés à retenir
- Un modèle ouvert de 740M intègre le texte, le code, les images, la vidéo et l'audio dans un espace partagé de 768 dimensions.
- Des encodeurs modulaires font évoluer l'emprise de 270M (texte) à 740M (multimodal complet).
- La recherche de code passe de 68.76 à 78.68 sur MTEB Code.
- Fonctionne avec ~191 Mo à ~567 Mo de RAM sur un Pixel 11 Pro avec quantization.
FAQ
- EmbeddingGemma 2 peut-il être utilisé commercialement ? Oui. Il est publié sous la licence Apache 2.0.
- Quelle quantité de mémoire EmbeddingGemma 2 nécessite-t-il ? Google rapporte environ 191 Mo de RAM active pour un usage texte seul et 567 Mo pour un usage multimodal complet, quantisé, sur un Pixel 11 Pro.
Découvrez les poids du modèle sur HF et les détails techniques. Tout le crédit revient au chercheur de ce projet. De plus, n'hésitez pas à nous suivre sur Twitter et n'oubliez pas de rejoindre notre SubReddit ML de plus de 150k et de vous abonner à notre newsletter. Attendez ! Êtes-vous sur telegram ? vous pouvez désormais nous rejoindre sur telegram également.
L'article Google DeepMind publie EmbeddingGemma 2, un modèle d'embedding multimodal ouvert de 740M construit sur Gemma 4 est apparu en premier sur MarkTechPost.