geeks.fr
IA

EmbeddingGemma 2 : chercher par le sens dans ses documents, en local, et ce qu'une entreprise peut en faire

Google publie EmbeddingGemma 2, un modèle ouvert qui transforme textes, images et sons en vecteurs pour chercher par le sens. Nous l'avons passé au banc en français sur un Mac, contre sa première version et une recherche par mots-clés, avec ses usages en entreprise et les machines qui suffisent pour le faire tourner.

Cyril Verglas 10 octobre 2026 12 min de lecture

TL;DR : pour chercher dans des documents en français sans rien envoyer à personne, EmbeddingGemma 2 tient sur n’importe quel ordinateur récent, va vite même sans carte graphique, et trouve ce que les mots-clés ratent. Mais en texte, il ne fait guère mieux que sa première version : passez-y pour la licence Apache 2.0, les images et le contexte quatre fois plus long, pas pour un bond de justesse. Gardez 512 dimensions, pas moins, et réglez le seuil du « rien trouvé » sur vos propres documents.

Un embedding, en une recherche

Un modèle d’embeddings ne rédige rien. Il transforme un texte en une liste de nombres, un vecteur, de sorte que deux textes qui disent la même chose tombent près l’un de l’autre, même sans un mot en commun. C’est la pièce qui permet de chercher par le sens, et le premier étage de tout RAG, ces assistants qui répondent à partir de vos documents : avant de rédiger, il faut retrouver les bons passages.

Un exemple tiré de notre banc. La question « Comment repérer une étude de recherche copiée puis reformulée par un logiciel ? » ne partage aucun mot important avec le titre de notre article sur les « tortured phrases », qui parle de « mots absurdes » et de « faux article scientifique ». Une recherche par mots-clés classe cet article 48e. EmbeddingGemma 2 le met en premier.

Deux recherches réelles dans nos 140 articles : la bonne réponse arrive en tête, et une question sur le potager ne trouve que des scores plus bas
© Capture geeks.fr

Regardez les scores : le premier n’a que sept millièmes d’avance sur le deuxième, et la question sur les tomates, sans aucune réponse chez nous, obtient quand même 0,608. Retenez ces deux chiffres, ils comptent plus loin.

Ce que Google annonce

Google a publié EmbeddingGemma 2 le 6 octobre. Ce qui change depuis la première version, de septembre 2025 :

  • La licence : Apache 2.0, avec un téléchargement libre sur Hugging Face. La première version était sous licence Gemma, et il fallait accepter des conditions pour la récupérer.
  • Les modalités : texte, code, images, vidéo et audio dans un même espace. Un seul modèle se charge en quatre tailles selon ce qu’on active : 270 millions de paramètres en texte seul, 440 avec la vision, 570 avec l’audio, 740 avec tout.
  • Le contexte : 8 192 jetons, quatre fois plus qu’avant. Une dizaine de pages tient d’un bloc.
  • Des vecteurs qu’on raccourcit : 768 nombres par passage, ou seulement les 512, 256 ou 128 premiers. Google donne l’exemple d’un million de vecteurs : 1,5 Go en 768 dimensions, 250 Mo en 128.

Ce que la fiche du modèle dit moins fort : en texte, le progrès est minime. Sur le banc MTEB multilingue, EmbeddingGemma 2 obtient 61,36, contre 61,15 pour la première version. Le vrai bond est sur le code (78,68 contre 68,76) et sur tout ce que la première version ne savait pas faire. Le français n’est jamais cité nommément (« plus de 100 langues »), et la documentation française de Google décrit encore la première version.

Notre banc, en français

Le modèle a tourné le 10 octobre sur notre MacBook Pro M1 Max de 64 Go. Le corpus : les 140 articles de geeks.fr, découpés en 689 passages, soit 92 114 mots. Les questions : 40, écrites à la main avant le premier calcul, sans reprendre les mots du titre de l’article attendu, plus 10 questions sans aucune réponse chez nous (une recette, un pneu crevé, un réglage de WireGuard), pour vérifier que le moteur sait se taire. Face à lui : une recherche par mots-clés classique (BM25, ce que fait un moteur interne ordinaire) et la première EmbeddingGemma.

Les limites, dites d’entrée : un seul corpus, technique, et 40 questions. Une bonne réponse de plus ou de moins fait 2,5 points : les écarts d’une ou deux questions ne prouvent rien.

Les résultats du banc : la bonne réponse en premier sur 40 questions, par moteur et selon la taille de vecteur gardée
© Graphique geeks.fr
MoteurBonne réponse en premierDans les cinq premiers
Mots-clés (BM25)27 sur 4036 sur 40
EmbeddingGemma 135 sur 4040 sur 40
EmbeddingGemma 236 sur 4040 sur 40
EmbeddingGemma 2 par Ollama, version de 378 Mo35 sur 4040 sur 40

Le saut est entre les mots-clés et le sens, pas entre les deux versions. Neuf bonnes réponses de plus en passant à un modèle d’embeddings, une seule de plus en passant à la nouvelle version. C’est exactement ce que disaient les chiffres de Google, et c’est rassurant sur leur honnêteté. La version allégée d’Ollama, d’un tiers plus légère que sa version texte complète, ne perd qu’une question.

Savoir dire « je n’ai rien trouvé »

C’est le point qui compte le plus pour un moteur interne, et le contrôle négatif le mesure. Chez EmbeddingGemma 2, le premier résultat d’une vraie question obtient un score médian de 0,771 ; celui d’une question sans réponse, 0,674 ; la pire des fausses pistes monte à 0,736. Placé juste au-dessus de ce 0,736, un seuil laisserait passer 33 des 36 bonnes réponses, contre 29 pour la première version et 16 pour les mots-clés.

La nouvelle version sépare donc mieux le vrai du vide. Mais tout se joue dans un mouchoir de poche : entre 0,67 et 0,77. Un score n’a aucun sens dans l’absolu, il se calibre sur vos documents, avec vos questions sans réponse. Un moteur interne réglé à l’aveugle affichera toujours un « meilleur résultat », y compris quand il n’y en a pas.

Raccourcir les vecteurs : 512, pas moins

Taille gardéePlace d’un vecteurEn premierDans les cinq premiers
768 dimensions3 072 octets36 sur 4040 sur 40
512 dimensions2 048 octets37 sur 4040 sur 40
256 dimensions1 024 octets32 sur 4039 sur 40
128 dimensions512 octets27 sur 4035 sur 40

Google annonce une perte « presque nulle » jusqu’à 256 dimensions. Sur nos articles en français, 512 ne coûte rien, 256 coûte déjà quatre bonnes réponses, et 128 ramène au niveau des mots-clés. Si la place compte, gardez 512 dimensions : un tiers de place en moins, sans perte mesurée sur notre corpus.

Vitesse, mémoire, énergie

ConfigurationIndexer 92 114 motsUne questionMémoire
Carte graphique, float3224 s (21,6 à 25,8 sur trois passes)34 ms2,4 Go pour le processus
Carte graphique, bfloat1630 s (29,1 à 30,6)40 ms1,3 Go
Processeur seul, float3271 s71 ms5,0 Go
Ollama, version de 378 Mo25 s22 ms346 Mo
Ollama, version bfloat1621 s20 ms542 Mo

Trois enseignements. Le processeur seul suffit : trois fois plus lent, mais 71 secondes pour tout notre site, et des vecteurs strictement identiques à ceux de la carte graphique. Le bfloat16 conseillé par Google est plus lent sur un M1 : la puce ne le calcule pas nativement, comme nous l’avions mesuré avec Qwen-Image. Le float16, plus rapide sur Mac, est proscrit par la fiche : le modèle y rend des valeurs vides ou dégradées. Ollama est le plus simple et le plus économe en mémoire. Un piège au passage : son réglage pour forcer le processeur seul est ignoré par son moteur MLX sur Mac, qui reste sur la carte graphique. Sa page annonce aussi 256 000 jetons de contexte ; ollama ps affiche bien les 8 192 de Google.

L’énergie, mesurée par macmon sur la machine entière : 0,7 Wh pour mille passages sur la carte graphique, 1,3 Wh sur le processeur seul. Indexer tout geeks.fr coûte donc moins d’un demi-wattheure, à peu près ce que coûte un seul courriel écrit par un gros modèle local dans notre mesure de septembre.

Retrouver une photo avec une phrase

Nous avons chargé la version texte et vision (440 millions de paramètres) et lui avons donné nos 102 photos de une, qui ont toutes le même style : un objet dans le noir, une lumière corail. Une phrase en français, et la photo visée doit sortir en tête. 20 sur 20 sur des objets distincts (un hameçon sur un clavier, une boîte à pizza sur un seuil), puis 8 sur 10 sur une série difficile où chaque photo a des sosies : plusieurs interrupteurs en bakélite, six boîtes à fiches, deux clés USB. Les deux ratés sont arrivés deuxième et troisième. Aucune des cinq phrases sans image correspondante (un chat, un vélo) n’a dépassé une vraie réponse.

Quatre phrases, les trois photos les plus proches parmi nos 102 : le dernier essai est un raté, la clé USB seule passe devant l'ordinateur portable
© Capture geeks.fr

Le calcul est plus lourd que pour le texte : 0,34 à 0,37 seconde par image sur la carte graphique. Une photothèque de 10 000 images s’indexe en une heure, une fois pour toutes.

En entreprise : pour quoi faire

Ce que ce modèle sait faire, et qu’une entreprise peut brancher dès maintenant :

  • Un moteur de recherche interne sur la documentation, les procédures, le wiki : il trouve le bon document quand l’employé n’emploie pas le vocabulaire de celui qui l’a écrit. À condition de régler le seuil du « rien trouvé », comme vu plus haut.
  • Le premier étage d’un assistant sur vos documents. EmbeddingGemma 2 retrouve les passages ; il faut un autre modèle, local lui aussi si les données ne doivent pas sortir, pour rédiger la réponse. Google pense à Gemma 4.
  • Trier et regrouper : dédoublonner des tickets, classer des courriels entrants, regrouper des avis clients. Le modèle a des préfixes prévus pour la classification et le regroupement.
  • Chercher dans ce qui n’est pas du texte : une photothèque, des documents scannés, des diapositives, et selon Google des enregistrements de réunion de cinq minutes et demie au plus par morceau. Nous n’avons testé que les images.
  • Chercher dans du code, là où Google annonce son plus gros progrès. Non testé ici.

Pourquoi le local compte : un texte transformé en vecteur chez un prestataire est un texte envoyé chez ce prestataire. Ici, rien ne sort de la machine, ce qui règle la question du RGPD et du secret des affaires pour cet étage-là. La licence Apache 2.0 autorise l’usage commercial. Une réserve à soumettre à votre juriste : la fiche du modèle demande quand même de respecter la « Gemma Prohibited Use Policy », une liste d’usages interdits que la licence Apache, elle, ne contient pas. Et la fiche précise que le modèle n’a reçu aucun réglage de sécurité après son entraînement : les garde-fous sont à la charge de qui le déploie.

Sur quoi le faire tourner

D’après nos mesures, n’importe quel ordinateur récent suffit, carte graphique ou non, et un serveur sans carte fait l’affaire pour indexer de nuit. D’après celles de Google, sur leurs appareils et que nous n’avons pas pu refaire : environ 190 Mo de mémoire en texte seul sur un téléphone Pixel 11 Pro, 161 millisecondes par texte sur un Raspberry Pi 5, et une version pour le navigateur (transformers.js, 473 Mo en 4 bits) qui tourne sans rien installer.

La vraie question d’une entreprise n’est pas la puissance de calcul, c’est la place et le temps pour tout indexer. L’outil ci-dessous les calcule sur nos mesures :

Labo Combien de place et de temps pour indexer vos documents

Place des vecteurs

—

Durée d'indexation

—

Énergie de la machine

—

Débits et énergie mesurés par geeks.fr le 10 octobre 2026 avec EmbeddingGemma 2 en texte seul, sur des passages d'environ 135 mots. La place ne compte que les vecteurs : le texte, les métadonnées et l'index de recherche s'y ajoutent.

Pour ranger ensuite ces vecteurs et y chercher vite, un index vectoriel fait l’affaire : turbovec, que nous avons testé en août, tient des millions de vecteurs compressés sur une seule machine.

S’y mettre en trois commandes

Avec Ollama, la version texte de 378 Mo :

ollama pull embeddinggemma-2:270m
curl http://localhost:11434/api/embed -d '{"model": "embeddinggemma-2:270m", "input": "task: search result | query: comment résilier mon contrat ?"}'

⚠️ Ollama n’ajoute pas les préfixes que le modèle attend : task: search result | query: devant une question, title: <le titre> | text: devant un document. Sans eux, ça marche encore, moins bien. En Python, sentence-transformers 6.1 les pose pour vous :

from sentence_transformers import SentenceTransformer

modele = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"vision_config": None, "audio_config": None},  # texte seul, 270 M
)
docs = modele.encode([f"title: {t} | text: {x}" for t, x in mes_documents], normalize_embeddings=True)
question = modele.encode("comment résilier mon contrat ?", prompt_name="SearchQuery", normalize_embeddings=True)
scores = modele.similarity(question, docs)

Le tutoriel d’affinage de Google, pour spécialiser le modèle sur son vocabulaire, existe aussi. Il tient sur trois exemples : de quoi comprendre la mécanique, pas de quoi juger le résultat. Commencez par mesurer sur vos documents, avec vos questions et vos questions sans réponse : c’est une heure de travail, et c’est elle qui vous dira si vous avez besoin d’aller plus loin.

#IA #IA locale #embeddings #recherche sémantique #RAG #Google #Gemma #Ollama #entreprise #guide #banc d'essai
Ajouter geeks.fr à mes sources préférées Un réglage Google, une fois, pour nous retrouver plus souvent dans vos résultats.
Écrit par Cyril Verglas Fondateur et directeur de la publication

Continuer la lecture