In diesem Dokument wird beschrieben, wie Sie eine Texteinbettung mit der Vertex AI Text Embeddings API erstellen.
Die Vertex AI Text Embeddings API verwendet dichte Vektordarstellungen: text-embedding-gecko, beispielsweise 768-dimensionale Vektoren. Für dichte Vektoreinbettungsmodelle verwenden Deep-Learning-Methoden, die den von Large Language Models verwendeten Methoden ähneln. Im Gegensatz zu späreren Vektoren, bei denen Wörter in der Regel direkt Zahlen zugeordnet werden, sind dichte Vektoren so konzipiert, dass sie die Bedeutung eines Textabschnitts besser darstellen. Der Vorteil der dichten Vektoreinbettungen in der generativen KI besteht darin, dass Sie anstelle der direkten Übereinstimmungen mit Wörtern oder Syntaxen besser nach Passagen suchen können, die der Bedeutung der Abfrage entsprechen, selbst wenn die Abschnitte nicht dieselbe Sprache verwenden.
Die Vektoren sind normalisiert, sodass Sie dieselben Ähnlichkeitsrangfolgen mithilfe der Kosinus-Ähnlichkeit, des Punktprodukts oder der euklidischen Entfernung erhalten.
- Weitere Informationen zu Einbettungen finden Sie in der Übersicht über Einbettungen-APIs.
- Weitere Informationen zu Texteinbettungsmodellen finden Sie unter Texteinbettungen.
- Informationen dazu, welche Sprachen die einzelnen Einbettungsmodelle unterstützen, finden Sie unter Unterstützte Textsprachen.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
- Wählen Sie einen Aufgabentyp für Ihren Einbettungsjob aus.
Unterstützte Modelle
Sie können Texteinbettungen mit den folgenden Modellen abrufen:
Englische Modelle | Mehrsprachige Modelle |
---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
textembedding-gecko@003 |
text-multilingual-embedding-002 |
text-embedding-004 |
|
text-embedding-005 |
Wenn Sie diese Modelle zum ersten Mal verwenden, empfehlen wir Ihnen, die neuesten Versionen zu verwenden.
Verwenden Sie text-embedding-005
für englischen Text. Für mehrsprachigen Text verwenden Sie text-multilingual-embedding-002
.
Texteinbettungen für ein Text-Snippet abrufen
Sie können Texteinbettungen für ein Snippet aus Text mithilfe der Vertex AI API oder dem Vertex AI SDK für Python abrufen. Für jede Anfrage sind Sie auf 250 Eingabetexte in us-central1
beschränkt. In anderen Regionen beträgt der maximale Eingabetext 5.
Die API hat ein maximales Eingabetokenlimit von 20.000. Eingaben, die dieses Limit überschreiten, führen zu einem 500-Fehler. Jeder einzelne Eingabetext ist außerdem auf 2.048 Token beschränkt. Überschüssiges wird stillschweigend abgeschnitten. Sie können die automatische Kürzung auch deaktivieren, indem Sie autoTruncate
auf false
setzen.
Alle Modelle liefern standardmäßig eine Ausgabe mit 768 Dimensionen. Bei den folgenden Modellen können Nutzer jedoch eine Ausgabedimensionalität zwischen 1 und 768 auswählen. Durch die Auswahl einer kleineren Ausgabedimensionalität können Nutzer Arbeitsspeicher und Speicherplatz sparen, was zu effizienteren Berechnungen führt.
text-embedding-005
text-multilingual-embedding-002
In den folgenden Beispielen wird das text-embedding-004
-Modell verwendet.
REST
Senden Sie zum Abrufen von Texteinbettungen eine POST-Anfrage, wozu Sie die Modell-ID des Publisher-Modells angeben.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- TEXT: Der Text, für den Sie Einbettungen generieren möchten. Limit: fünf Texte mit bis zu 2.048 Tokens pro Text für alle Modelle außer
textembedding-gecko@001
. Die maximale Länge des Eingabetokens fürtextembedding-gecko@001
beträgt 3.072. - AUTO_TRUNCATE: Wenn auf
false
gesetzt, schlägt Text, der das Tokenlimit überschreitet, fehl. Der Standardwert isttrue
.
HTTP-Methode und URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict
JSON-Text der Anfrage:
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Beachten Sie, dass values
gekürzt wurde, um Speicherplatz zu sparen.
Beispiel: cURL-Befehls
MODEL_ID="text-embedding-004"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Go
Bevor Sie dieses Beispiel anwenden, folgen Sie den Go-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Go API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Neuestes Modell
text-embedding-005
unterstützt einen neuen Aufgabentyp CODE_RETRIEVAL_QUERY
, mit dem relevante Codeblöcke mithilfe von Suchanfragen in Nur-Text abgerufen werden können. Zur Verwendung dieser Funktion sollten Codeblöcke mithilfe des Aufgabentyps RETRIEVAL_DOCUMENT
eingebettet werden, während Textabfragen mit CODE_RETRIEVAL_QUERY
eingebettet werden.
Informationen zu allen Aufgabentypen finden Sie in der Modellreferenz.
Hier ein Beispiel:
REST
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-005:predict -d \
$'{
"instances": [
{
"task_type": "CODE_RETRIEVAL_QUERY",
"content": "Function to add two numbers"
}
],
}'
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Go
Bevor Sie dieses Beispiel anwenden, folgen Sie den Go-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Go API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Bei der Verwendung dieser Modelle gelten die folgenden Einschränkungen:
- Verwenden Sie diese Vorschaumodelle nicht in geschäftskritischen oder Produktionssystemen.
- Diese Modelle sind nur in
us-central1
verfügbar. - Batchvorhersagen werden nicht unterstützt.
- Anpassung wird nicht unterstützt.
Einbettung zu einer Vektordatenbank hinzufügen
Nachdem Sie die Einbettung generiert haben, können Sie sie einer Vektordatenbank wie der Vektorsuche hinzufügen. Dies ermöglicht einen Abruf mit niedriger Latenz und ist von entscheidender Bedeutung, wenn die Größe Ihrer Daten zunimmt.
Weitere Informationen zur Vektorsuche finden Sie unter Vektorsuche – Übersicht.
Nächste Schritte
- Weitere Informationen zu den Ratelimits finden Sie unter Ratelimits für Generative AI in Vertex AI.
- Informationen zum Abrufen von Batchvorhersagen für Einbettungen finden Sie unter Vorhersagen für Batch-Texteinbettungen abrufen.
- Weitere Informationen zu multimodalen Einbettungen finden Sie unter Multimodale Einbettungen abrufen.
- Informationen zum Optimieren einer Einbettung finden Sie unter Texteinbettungen abstimmen.
- Weitere Informationen zur Forschung hinter
text-embedding-005
undtext-multilingual-embedding-002
finden Sie im Forschungsartikel Gecko: Versatile Text Embeddings Destillled from Large Language Models.