Einbettungen in der Gemini API

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 zu verstehen. 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.
  • 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.
  • 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.
  • 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.

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 Leistungsverlust möglicherweise eingespart werden.

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 unter 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 unter 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 unter 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 unter 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