Was ist EmbeddingGemma?
EmbeddingGemma ist ein leichtgewichtiges, offenes Text-Embedding-Modell von Google DeepMind. Es basiert auf der Gemma-3-Architektur und besitzt ungefähr 308 Millionen Parameter. Deshalb wird es häufig als EmbeddingGemma 300M bezeichnet.
Im Gegensatz zu einem generativen LLM erzeugt ein Embedding-Modell keinen Antworttext. Es wandelt Text in einen numerischen Vektor um, der semantische Eigenschaften des Inhalts repräsentiert. Texte mit ähnlicher Bedeutung sollten dadurch näher im Vektorraum liegen.
Typische Einsatzgebiete sind semantische Suche, RAG, Klassifikation, Clustering, Ähnlichkeitssuche, Duplikaterkennung und Code Retrieval.
Wichtige technische Daten
| Merkmal | Wert |
|---|---|
| Entwickler | Google DeepMind |
| Architektur | Gemma 3 |
| Größe | ca. 308M Parameter |
| Eingabe | Text |
| Kontextfenster | bis zu 2K Token |
| Standarddimension | 768 |
| MRL-Dimensionen | 512, 256 und 128 |
| Sprachen | Training auf 100+ Sprachen |
| Lokaler Betrieb | Ja |
Was macht ein Embedding?
Nehmen wir zwei Sätze über künstliche Intelligenz im CRM und einen dritten Satz über das Wetter. EmbeddingGemma erzeugt für jeden Text einen Vektor. Die beiden CRM-Vektoren sollten semantisch näher beieinander liegen als der Wetter-Vektor. Diese Nähe lässt sich beispielsweise mit Cosine Similarity messen.
Typische Anwendungen
Semantische Suche
Eine Suche kann relevante Inhalte auch dann finden, wenn die verwendeten Wörter nicht exakt mit dem Dokument übereinstimmen. Eine Anfrage nach „unzufriedene Kunden halten“ kann beispielsweise Inhalte über „Customer Churn reduzieren“ finden.
Retrieval-Augmented Generation
Ein typischer RAG-Workflow:
- Dokumente in sinnvolle Chunks teilen.
- Für jeden Chunk ein Embedding erzeugen.
- Vektoren in einer Vector Database speichern.
- Die Nutzeranfrage ebenfalls einbetten.
- Die ähnlichsten Chunks abrufen.
- Den gefundenen Kontext an ein generatives LLM übergeben.
EmbeddingGemma generiert also nicht die endgültige Antwort, sondern findet den relevanten Kontext.
Klassifikation und Clustering
Support-Tickets können beispielsweise in Vertrieb, Technik oder Abrechnung klassifiziert werden. Große Dokumentmengen lassen sich anhand ihrer Embeddings clustern.
Duplikate und Ähnlichkeit
Der Ansatz eignet sich für ähnliche Artikel, doppelte Fragen oder verwandte Produkte.
Code Retrieval
Ein eigener Prompt unterstützt die Suche nach Code-Blöcken über natürlichsprachliche Anfragen.
EmbeddingGemma mit Ollama
ollama pull embeddinggemmaDanach kann die lokale API verwendet werden:
curl http://localhost:11434/api/embed \
-d '{
"model": "embeddinggemma",
"input": "Semantic search is useful for RAG systems."
}'Python
import ollama
response = ollama.embed(
model="embeddinggemma",
input="Embedding models convert text into numerical vectors."
)
vector = response["embeddings"][0]
print(len(vector))Die vollständige Repräsentation verwendet 768 Dimensionen.
Laut offizieller Ollama-Seite wird Ollama 0.11.10 oder neuer benötigt.
Nutzung mit Sentence Transformers
pip install -U sentence-transformersfrom sentence_transformers import SentenceTransformer
model = SentenceTransformer("google/embeddinggemma-300m")
query = model.encode(
"What is semantic search?",
prompt_name="Retrieval-query"
)
document = model.encode(
"Semantic search retrieves information based on meaning.",
prompt_name="Retrieval-document"
)
print(model.similarity(query, document))Für den Download über Hugging Face müssen die Gemma-Nutzungsbedingungen akzeptiert werden.
Task-Prompts sind wichtig
EmbeddingGemma unterstützt unterschiedliche Instruktions-Prompts:
| Aufgabe | Prompt |
|---|---|
| Retrieval Query | task: search result | query: ... |
| Retrieval Document | title: none | text: ... |
| Question Answering | task: question answering | query: ... |
| Fact Checking | task: fact checking | query: ... |
| Classification | task: classification | query: ... |
| Clustering | task: clustering | query: ... |
| Sentence Similarity | task: sentence similarity | query: ... |
| Code Retrieval | task: code retrieval | query: ... |
Für RAG sollten Query und Dokument unterschiedliche Rollen verwenden. In Sentence Transformers sind dafür Retrieval-query und Retrieval-document vorgesehen.
Ein vorhandener Dokumenttitel kann ebenfalls in den Prompt aufgenommen werden. Laut Google kann ein sinnvoller Titel die Dokument-Embeddings verbessern.
Matryoshka Representation Learning
EmbeddingGemma erzeugt standardmäßig einen 768-dimensionalen Vektor. Durch MRL können auch die ersten 512, 256 oder 128 Dimensionen genutzt werden:
- 768: maximale Information
- 512: guter Kompromiss
- 256: interessant für große Indizes
- 128: geringster Speicherbedarf, aber stärkerer möglicher Qualitätsverlust
import numpy as np
small = vector[:256]
small = small / np.linalg.norm(small)Nach dem Kürzen sollte der Vektor erneut normalisiert werden.
Hinweise für produktive Systeme
2K-Kontext beachten
Sehr lange Dokumente sollten nicht als ein einzelner Input eingebettet werden. Sinnvolle Chunks sind besser. Als Startpunkt können ungefähr 300–800 Token mit etwas Overlap dienen; die optimale Größe sollte jedoch mit echten Retrieval-Tests bestimmt werden.
Modell, Dimension und Prompt konsistent halten
Embeddings verschiedener Modelle, Dimensionen oder Prompt-Strategien sollten nicht ungeplant im gleichen Index gemischt werden. Nach einer grundlegenden Änderung ist ein Re-Indexing meist sinnvoll.
Ähnlichkeitsmetrik festlegen
Cosine Similarity ist häufig eine gute Wahl. Anwendung und Vector Database müssen bei Normalisierung und Metrik konsistent sein.
Eigene Sprache und Domäne evaluieren
Das Modell wurde auf über 100 Sprachen trainiert, dennoch kann die Qualität je nach Sprache und Fachgebiet variieren. Ein eigenes Evaluation Set aus realen Queries und relevanten Dokumenten ist deshalb wichtig.
Embedding ist kein Reranker
Embeddings liefern schnell Kandidaten. Für besonders präzise Systeme kann anschließend ein Reranker die besten Treffer neu sortieren.
Datenschutz
Da EmbeddingGemma lokal ausgeführt werden kann, müssen Rohdaten nicht zwingend an externe APIs gesendet werden.
Einfache lokale RAG-Architektur
Documents → Chunking → EmbeddingGemma → Vector DB
User Query → EmbeddingGemma → Similarity Search
Top-K Chunks → LLM → Final AnswerFür die Vektorspeicherung eignen sich zum Beispiel PostgreSQL + pgvector, Qdrant, Milvus oder Weaviate.
Wann ist EmbeddingGemma sinnvoll?
Das Modell ist besonders interessant für lokale oder Offline-Embeddings, mehrsprachige Suche, RAG, begrenzte Hardware und datenschutzorientierte Systeme.
Für Textgenerierung, Chat oder direktes Reasoning ist es dagegen kein Ersatz für ein generatives LLM.
Fazit
EmbeddingGemma verbindet eine kompakte Größe mit mehrsprachiger Verarbeitung, 2K Kontext, 768-dimensionalen Embeddings und MRL. Für produktive Systeme sind neben dem Modell vor allem Prompt-Auswahl, Chunking, Dimension, Ähnlichkeitsmetrik und Retrieval-Evaluation entscheidend.
Offizielle Quellen
- Google AI for Developers — EmbeddingGemma model overview
- Google Developers Blog — Introducing EmbeddingGemma
- Hugging Face —
google/embeddinggemma-300m - Ollama Library —
embeddinggemma