AI-translated from English; not yet reviewed by a fluent editor.

# EmbeddingGemma 2 : un prototype local de recherche dans le texte et les médias

> EmbeddingGemma 2 de Google réunit les embeddings de texte, d’image, de vidéo et d’audio dans un seul modèle local de recherche. Ce guide fondé sur la documentation présente les choix de configuration et d’évaluation.

By BIG CHANGE Editorial

Published: 2026-10-06T20:48:02.995Z
Updated: 2026-10-06T20:48:02.995Z
Canonical: https://bigchange.ai/blog/embeddinggemma-2-local-multimodal-search-guide

![Conceptual illustration of one person seated on a rug, holding a phone and a landscape photo beside a box of personal prints and paper records.](https://bigchange.ai/api/media/file/embeddinggemma-personal-collection-hero-v1.png)
A person considers a small personal collection of photos and records beside a phone. Conceptual AI-generated illustration by BIG CHANGE; it does not show an EmbeddingGemma 2 interface or tested search result.

Google a publié EmbeddingGemma 2 le 6 octobre 2026 et propose ses poids en téléchargement sous licence Apache 2.0. Le modèle transforme le texte, le code, les images, les vidéos et l’audio en vecteurs comparables dans un espace commun de 768 dimensions. Pour un développeur qui dispose d’une collection locale, les questions pratiques sont les suivantes : quels encodeurs charger, comment représenter les requêtes et les fichiers, et les résultats sont-ils utiles pour cette collection ? Ce guide suit les instructions et la fiche du modèle publiées par Google ; BIG CHANGE n’a pas exécuté le modèle ni mesuré la qualité de recherche.

## Le grand changement

- **Ce qui a changé :**Le précédent modèle EmbeddingGemma traitait le texte. La version 2 ajoute des encodeurs de vision et d’audio, ce qui permet de comparer une requête textuelle à des médias pris en charge dans un espace vectoriel commun, sans générer d’abord de légendes ou de transcriptions. Google a publié les poids ; [le service ML Kit sur Android devrait arriver dans les prochaines semaines](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/).
- **Pourquoi c’est important :**Un développeur peut charger les encodeurs nécessaires à une collection locale et créer un index de recherche unique pour les types de fichiers pris en charge. [AI Edge Gallery de Google](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/)présente des vecteurs de médias locaux dans SQLite, classés par similarité cosinus. Une application doit toujours intégrer les fichiers, stocker les vecteurs, afficher les résultats et repérer les correspondances trompeuses.
- **À suivre :**La question immédiate est de savoir si des fichiers représentatifs sont bien classés dans les limites de mémoire et de latence de l’appareil. Le futur service Android pourrait modifier la voie d’intégration ; le calendrier annoncé ne signifie pas qu’il est déjà disponible.

## Choisir les entrées avant de charger le modèle

Le [guide du développeur](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/) documente Sentence Transformers 6.1.0 ou une version ultérieure ainsi que cette commande d’installation pour tous les médias pris en charge :

```bash
pip install -U sentence-transformers[image,audio,video] transformers
```

Le checkpoint exact est `google/embeddinggemma-2`. Le chargement par défaut de Sentence Transformers comprend tous les encodeurs. Pour une collection composée uniquement de texte et de code, le guide conseille d’exclure la vision et l’audio au chargement :

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"vision_config": None, "audio_config": None},
)
```

Pour conserver la vision sans l’audio, il faut `config_kwargs={"audio_config": None}` ; pour conserver l’audio sans la vision, `config_kwargs={"vision_config": None}`. Ces options changent les poids chargés, mais les vecteurs obtenus restent dans l’espace partagé du modèle. Selon le guide, une requête textuelle seule peut donc être comparée à une image encodée avec une configuration comprenant la vision. Google présente le modèle comme adapté aux appareils grand public, mais l’exemple Python publié est un démarrage rapide de la bibliothèque, pas une garantie mesurée de mémoire ou de latence sur l’appareil du lecteur.

## Encoder différemment les requêtes et les éléments de la collection

Pour la recherche textuelle, la [fiche du modèle](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2) définit des instructions de tâche distinctes pour les requêtes et les éléments du corpus. Sentence Transformers les transmet avec `prompt_name` :

```python
query_vector = model.encode("northern lights", prompt_name="SearchQuery")
document_vector = model.encode(
    "Charged particles from the sun cause the northern lights.",
    prompt_name="Document",
)
score = model.similarity(query_vector, document_vector)
```

Cet extrait documenté produit des vecteurs et un score de similarité ; ce n’est pas un résultat observé dans notre environnement. `Document` insère `title: none`. Si un élément possède un véritable titre, Google demande de le formater explicitement ainsi : `title: {title} | text: {content}`. La recherche de code utilise l’instruction de requête `CodeRetrieval` ainsi qu’un titre ou un nom de fichier du code indexé. La classification, le regroupement et la similarité de phrases ont leurs propres instructions symétriques. La fiche indique que le modèle fonctionne toujours sans instructions textuelles, mais avec une précision moindre.

L’ancien `model` ne possède pas d’encodeur de vision ni d’audio. Avant d’encoder une image, chargez depuis le même checkpoint la [configuration texte et vision du guide ](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/), puis utilisez ce modèle pour le média et la requête. Cette séquence suit la documentation ; nous ne l’avons pas exécutée :

```python
media_model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"audio_config": None},
)
image_vector = media_model.encode({"image": "photo.jpg"})
query_vector = media_model.encode("a photo query", prompt_name="SearchQuery")
score = media_model.similarity(query_vector, image_vector)
```

Pour l’audio, rechargez le modèle en omettant `audio_config: None` afin d’activer son encodeur audio ; le chargement complet par défaut comprend la vision et l’audio. Le guide de Google transmet un dictionnaire tel que `{"audio": "recording.wav"}` sans préfixe de tâche textuelle. On peut également combiner texte et médias en plaçant les marqueurs `<|image|>`, `<|video|>` ou `<|audio|>` dans le texte et en fournissant les fichiers correspondants dans le dictionnaire. Cet appel produit un vecteur pour l’entrée combinée. La fiche du modèle spécifie un audio mono à 16 kHz et indique que la vidéo est échantillonnée par défaut à une image par seconde. Images, images vidéo, audio et texte partagent un budget de contexte de 8 192 tokens ; un long clip ou un élément mixte nécessite donc de planifier les entrées plutôt que de supposer que chaque fichier tiendra.

## Choisir la taille du vecteur, puis vérifier le compromis

La sortie native comporte 768 dimensions. La fiche du modèle de Google prend aussi en charge 512, 256 et 128 dimensions en tronquant le vecteur. Le guide documente `truncate_dim=256` avec `normalize_embeddings=True` dans `model.encode()`. Les vecteurs des requêtes et des éléments indexés doivent avoir la même dimension ; les vecteurs raccourcis doivent être normalisés avant la comparaison cosinus. La fiche indique que 128 dimensions dégradent nettement plus la qualité multimodale que 256 et recommande surtout 128 pour les tâches textuelles. Ces chiffres proviennent des benchmarks de Google en précision totale et ne prédisent pas le rappel d’une collection particulière.

La précision numérique est un autre choix de configuration. La fiche recommande `bfloat16` sur le matériel compatible ou `float32` ailleurs, y compris sur la plupart des processeurs. Elle avertit que `float16` peut produire des NaN ou dégrader silencieusement les embeddings. Les nombres associés aux paramètres de chargement sélectif décrivent les composants du modèle ; la mémoire réelle et la vitesse de recherche dépendent du chemin d’exécution, de la précision, de l’index et de la taille d’entrée.

## Que faut-il évaluer avant d’utiliser les résultats ?

Un prototype peut indexer un petit échantillon autorisé, réserver des requêtes représentatives et vérifier si les bons éléments figurent en tête. N’incluez des cas texte-texte, texte-image ou texte-audio que si la collection contient réellement ces médias. Comparez 768 et 256 dimensions sur les mêmes requêtes, repérez les échecs dans les langues et les types de documents concernés, puis mesurez la mémoire, le temps d’indexation et la latence des requêtes sur l’appareil visé. Ce sont des étapes d’évaluation proposées au lecteur ; BIG CHANGE ne les a pas effectuées.

Les [résultats publiés dans la fiche du modèle](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2) donnent à EmbeddingGemma 2 un score de 78,68 contre 68,76 pour le modèle précédent sur MTEB code v1 ; sur multilingual MTEB v2, les scores sont de 61,36 contre 61,15. La fiche rapporte aussi des résultats pour l’image, la vidéo et l’audio, sans comparatif avec la version 1 pour ces modalités. Tous les résultats cités utilisent le checkpoint en précision totale. Ils décrivent les conditions d’évaluation de Google, pas la précision dans une archive locale. La fiche précise que la qualité peut varier selon la langue et la tâche et que les applications de recherche doivent prévoir leurs propres filtres et contrôles d’équité.

Les poids sont publiés sous licence Apache 2.0 et le guide renvoie au [dépôt Hugging Face](https://huggingface.co/google/embeddinggemma-2). Les ressources de Google présentent une voie d’exécution locale, mais aucun coût de déploiement universel : appareil, calcul, stockage et ingénierie sont des coûts propres à l’application. La prochaine étape consiste à vérifier si le modèle classe correctement des fichiers représentatifs dans les limites de l’appareil.

## Sources et lectures complémentaires

- [Annonce de Google AI Edge](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/), 6 octobre 2026 : étape de lancement, recherche locale dans les médias avec AI Edge Gallery et calendrier annoncé de ML Kit. Les mesures d’appareils citées dans cet article sont celles de Google.
- [Guide du développeur EmbeddingGemma 2](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/), 6 octobre 2026 : version de la bibliothèque, options de chargement, exemples d’encodage et instructions de troncature des vecteurs.
- [Fiche du modèle EmbeddingGemma 2](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2) : architecture, limites d’entrée, consignes de tâche, avertissement sur la précision, tableaux de benchmark et limites. Les résultats sont ceux de Google.
- [Dépôt du modèle Google](https://huggingface.co/google/embeddinggemma-2) : checkpoint nommé et fichiers du modèle publiés. La disponibilité du dépôt ne valide pas les performances d’une application.

## Sources

- [Déployer la recherche sémantique multimodale en périphérie avec EmbeddingGemma 2](https://developers.googleblog.com/google-ai-edge-with-embeddinggemma-2/) — Étape de lancement, implémentation dans Google AI Edge Gallery et accès prochain à ML Kit ; les chiffres d’appareils sont des mesures du fournisseur.
- [EmbeddingGemma 2 : guide du développeur](https://developers.googleblog.com/en/embeddinggemma-2-the-developer-guide/) — Sentence Transformers 6.1.0+, configurations de chargement, exemples de tâches et d’encodage des médias, et troncature des vecteurs.
- [Fiche du modèle EmbeddingGemma 2](https://ai.google.dev/gemma/docs/embeddinggemma/model_card_2) — Architecture, limites d’entrée, consignes, précision, scores de benchmark publiés par Google, risques et limites.
- [Checkpoint google/embeddinggemma-2](https://huggingface.co/google/embeddinggemma-2) — Dépôt du modèle nommé, fichiers publiés et licence.
