EmbeddingGemma
Le modèle d'embedding open-weights de Google. Il transforme du texte en vecteurs (embeddings) et sert de moteur pour les systèmes RAG locaux.
À quoi ça sert ?
Contrairement aux LLMs classiques qui génèrent du texte, EmbeddingGemma est un “encodeur”. Son boulot, c’est de transformer une phrase ou un document en une liste de nombres (un vecteur).
Ces vecteurs capturent le sens du texte. Si deux phrases veulent dire la même chose, leurs vecteurs seront proches mathématiquement. C’est la brique de base pour monter un système de recherche sémantique (RAG) qui fouille dans vos documents privés sans rien envoyer sur le cloud.
Points forts
- Ultra-léger. 308 millions de paramètres, moins de 200 Mo de RAM en version quantifiée. Ça tourne sur n’importe quel PC, même sans GPU.
- Matryoshka Representation (MRL), permet de réduire la taille des vecteurs (de 768 à 128 dimensions) pour gagner de la place sur le disque tout en gardant ~95% de la précision.
- Multilingue, supporte plus de 100 langues dont le français, avec de bons résultats.
Comment s’en servir en local ?
Le plus simple pour l’intégrer dans vos projets Python, c’est la bibliothèque sentence-transformers.
1. Installation
pip install -U sentence-transformers
2. Utilisation dans un script
from sentence_transformers import SentenceTransformer
# Chargement du modèle depuis Hugging Face
model = SentenceTransformer('google/embedding-gemma-308m')
# Vos documents à indexer
documents = [
"L'intelligence artificielle locale garantit la confidentialité.",
"Déployer un LLM sur son propre matériel est un acte d'indépendance.",
"Les modèles open-weights sont l'avenir de la technologie."
]
# Génération des embeddings (vecteurs)
embeddings = model.encode(documents)
# Affichage du premier vecteur (liste de 768 nombres)
print(embeddings[0])
# Calculer la similitude entre une question et vos documents
query = "Pourquoi utiliser l'IA en local ?"
query_embedding = model.encode([query])
# Le système peut maintenant trouver le document le plus proche sémantiquement
Intégration dans une Vector DB
Pour un usage réel (recherche sur des milliers de documents), vous couplerez EmbeddingGemma à une base de données vectorielle locale comme ChromaDB, Qdrant ou LanceDB.
L’idée, le LLM local (Llama, Mistral…) cherche d’abord les infos pertinentes dans vos fichiers grâce aux embeddings, puis génère une réponse à partir de ça.