Der Einbettungsdienst der Gemini API generiert hochmoderne Einbettungen nach Wörtern, Sätzen und Sätzen. Die resultierenden Einbettungen können dann für Natural Language Processing (NLP) wie semantische Suche, Text Klassifizierung und Clustering.
Auf dieser Seite werden Einbettungen kurz erläutert und einige wichtige Anwendungsfälle für die um euch den Einstieg zu erleichtern.
Was sind Einbettungen?
Texteinbettungen sind ein NLP-Verfahren (Natural Language Processing), bei dem Text in numerische Koordinaten (sogenannte Vektoren) in numerische Koordinaten umwandeln, die in einem Diagramm dargestellt werden können. n-dimensionalen Raum verwendet. Auf diese Weise können Sie Textabschnitte relationale Daten, mit denen wir Modelle trainieren können.
Einbettungen erfassen die semantische Bedeutung und den Kontext, was zu Text mit mit ähnlichen Bedeutungen mit engeren Einbettungen. Zum Beispiel könnte der Satz „Ich habe mein Hund zum Tierarzt“ und „Ich brachte meine Katze zum Tierarzt“ Einbettungen haben, die im Vektorraum nahe beieinander, da beide ein ähnliches Kontext.
Sie können Einbettungen verwenden, um verschiedene Texte zu vergleichen und zu verstehen, wie sie sich auf das Projekt beziehen. Wenn beispielsweise die Einbettungen des Textes „Katze“ und „Hund“ sind nah dran können Sie daraus ableiten, dass diese Wörter eine ähnliche Bedeutung oder einen ähnlichen Kontext haben beides. Diese Fähigkeit ermöglicht eine Vielzahl von Anwendungsfällen, die im nächsten Abschnitt beschrieben werden.
Anwendungsfälle
Texteinbettungen werden in einer Vielzahl von NLP-Anwendungsfällen verwendet, z. B.:
- Informationsabruf:Mit Einbettungen können Sie Daten semantisch abrufen.
mit einem Eingabetext
ähnlicher Text. Eine Vielzahl von Anwendungen kann
die von einem Informationsabrufsystem
wie der semantischen Suche unterstützt werden,
Fragen beantworten oder
Zusammenfassungen erstellen.
- Anleitung: Dokumentsuche
- Klassifizierung:Sie können ein Modell mit Einbettungen trainieren, um es zu klassifizieren.
in Kategorien einteilen. Wenn Sie z. B. Nutzer und
als negativ oder positiv bewertet, können Sie mit dem Einbettungsdienst
die Vektordarstellung jedes Kommentars, um den Klassifikator zu trainieren.
- Anleitung: Text trainieren Klassifikator
- Clustering:Der Vergleich von Textvektoren kann Aufschluss darüber geben, wie ähnlich oder unterschiedlich sie sind.
die sie sind. Mit dieser Funktion kann ein Clustering-Modell trainiert werden,
ähnliche Texte oder Dokumente zu verknüpfen
und Anomalien in Ihren Daten zu erkennen.
- Anleitungen: Clustering trainieren Modell, Daten erkennen Anomalien
- Vektordatenbank:Sie können Ihre generierten Einbettungen in einem Vektor speichern.
Datenbank, um die Genauigkeit und Effizienz Ihrer NLP-Anwendung zu verbessern.
In der folgenden Anleitung erfahren Sie, wie Sie mit einer Vektordatenbank
Text-Prompts in numerische Vektoren umwandeln.
- Anleitungen: Mit Vektoren arbeiten Einbettungen, Semantisches Abrufen
Gemini-Einbettungsmodelle
Die Gemini API bietet zwei Modelle, die Texteinbettungen generieren: Text Einbettungen und Einbettungen: Texteinbettungen sind ein aktualisierte Version des Einbettungsmodells, das elastische Einbettungsgrößen unter 768 Dimensionen. Elastische Einbettungen generieren kleinere Ausgabedimensionen und Computing- und Speicherkosten bei minimalem Leistungseinbußen gespart werden können.
Verwenden Sie Texteinbettungen für neue Projekte oder Anwendungen. Ihre Anwendung sollte Verwenden Sie das Einbettungsmodell nur, wenn Sie es nicht auf Texteinbettungen umstellen können.
Einbettungen mit der Gemini API generieren
Verwenden Sie die Methode embedContent
, um Texteinbettungen zu generieren:
Python
result = genai.embed_content(
model="models/text-embedding-004",
content="What is the meaning of life?",
task_type="retrieval_document",
title="Embedding of single string")
# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')
Weitere Informationen finden Sie auf der Seite Erste Schritte Anleitung für das vollständige ausführbare Beispiel.
Ok
ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
Weitere Informationen finden Sie auf der Seite Erste Schritte Anleitung für das vollständige ausführbare Beispiel an.
Node.js
const { GoogleGenerativeAI } = require("@google/generative-ai");
// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});
const text = "The quick brown fox jumps over the lazy dog."
const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}
run();
Weitere Informationen finden Sie auf der Seite Erste Schritte Anleitung für das vollständige ausführbare Beispiel.
Dart (Flutter)
final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);
Weitere Informationen finden Sie auf der Seite Erste Schritte Anleitung für das vollständige ausführbare Beispiel.
curl
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
"content": {
"parts":[{
"text": "Hello world"}]}, }' 2> /dev/null | head
Besuchen Sie unseren Schnellstart zum Einbetten mit REST-Rezepten auf GitHub für das vollständige ausführbare Beispiel.
Nächste Schritte
- Weitere Informationen zu Einbettungen finden Sie in Dale Markowitz' Beitrag zu die Google Cloud Blog .
- Wenn Sie bereit sind, mit der Entwicklung zu beginnen, finden Sie vollständigen ausführbaren Code in die Kurzanleitungen für Python, Los, Node.js und Dart (Flutter).