Texteinbettungen abrufen

In diesem Dokument wird beschrieben, wie Sie eine Texteinbettung mit der Vertex AI Text Embeddings API erstellen.

Texteinbettungen sind dichte Vektordarstellungen von Text. Das Modell gemini-embedding-001 generiert beispielsweise 3.072-dimensionale Vektoren für einen bestimmten Text. Diese dichten Vektoreinbettungen werden mit Deep-Learning-Methoden erstellt, die denen von Large Language Models ähneln.

Im Gegensatz zu späreren Vektoren, bei denen Wörter Zahlen zugeordnet werden, sind dichte Vektoren so konzipiert, dass sie die semantische Bedeutung von Text darstellen. Der Hauptvorteil der Verwendung enger Vektoreinbettungen besteht in der Möglichkeit, semantische Suchen durchzuführen. Anstatt nach direkten Wort- oder Syntaxübereinstimmungen zu suchen, können Sie nach Textpassagen suchen, die der Bedeutung Ihrer Suchanfrage entsprechen, auch wenn die Passagen nicht dieselbe Formulierung verwenden.

Die Einbettungsvektoren sind normalisiert, sodass Sie dieselben Ähnlichkeitsrangfolgen mithilfe der Kosinusähnlichkeit, des Skalarprodukts oder der euklidischen Entfernung erhalten.

Fragen und Antworten sind semantisch nicht ähnlich
Abbildung 1. „Get Text Embedding“ (Texteinbettung abrufen)

Hinweise

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. Wählen Sie einen Aufgabentyp für Ihren Einbettungsjob aus.
  7. Unterstützte Modelle

    Sie können Texteinbettungen mit den folgenden Modellen abrufen:

    Modellname Beschreibung Ausgabemesswerte Maximale Sequenzlänge Unterstützte Textsprachen
    gemini-embedding-001 Hervorragende Leistung bei Aufgaben auf Englisch, mehrsprachigen Aufgaben und Codeaufgaben. Es vereint die zuvor spezialisierten Modelle wie text-embedding-005 und text-multilingual-embedding-002 und erzielt eine bessere Leistung in ihren jeweiligen Domains. Weitere Informationen finden Sie in unserem Technischen Bericht. bis zu 3.072 2.048 Tokens Unterstützte Textsprachen
    text-embedding-005 Spezialisiert auf Englisch und Codeaufgaben. bis zu 768 2.048 Tokens Englisch
    text-multilingual-embedding-002 Sie sind auf mehrsprachige Aufgaben spezialisiert. bis zu 768 2.048 Tokens Unterstützte Textsprachen

    Für eine hervorragende Einbettungsqualität ist gemini-embedding-001 unser großes Modell, das für die höchste Leistung entwickelt wurde. Beachten Sie, dass gemini-embedding-001 eine Instanz pro Anfrage unterstützt.

    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.

    API-Limits

    Für jede Anfrage sind Sie auf 250 Eingabetexte für Nicht-Gemini-Modelle und auf einen einzelnen Eingabetext für Gemini-Embedding-Modelle beschränkt. Die API hat ein maximales Eingabetokenlimit von 20.000. Eingaben, die dieses Limit überschreiten, führen zu einem 400-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.

    Weitere Informationen finden Sie unter Limits für Text-Embeddings.

    Einbettungsdimension auswählen

    Alle Modelle liefern standardmäßig einen Embedding-Vektor in voller Länge. Bei gemini-embedding-001 hat dieser Vektor 3.072 Dimensionen. Andere Modelle erzeugen 768-dimensionale Vektoren. Mit dem Parameter output_dimensionality können Nutzer jedoch die Größe des Ausgabe-Embedding-Vektors steuern. Wenn Sie eine kleinere Ausgabedimensionalität auswählen, können Sie Speicherplatz sparen und die Rechenleistung für nachfolgende Anwendungen steigern, ohne viel an Qualität einzubüßen.

    In den folgenden Beispielen wird das gemini-embedding-001-Modell verwendet.

    Gen AI SDK for Python

    Installieren

    pip install --upgrade google-genai

    Weitere Informationen finden Sie in der SDK-Referenzdokumentation.

    Legen Sie Umgebungsvariablen fest, um das Gen AI SDK mit Vertex AI zu verwenden:

    # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
    # with appropriate values for your project.
    export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
    export GOOGLE_CLOUD_LOCATION=global
    export GOOGLE_GENAI_USE_VERTEXAI=True

    from google import genai
    from google.genai.types import EmbedContentConfig
    
    client = genai.Client()
    response = client.models.embed_content(
        model="gemini-embedding-001",
        contents="How do I get a driver's license/learner's permit?",
        config=EmbedContentConfig(
            task_type="RETRIEVAL_DOCUMENT",  # Optional
            output_dimensionality=3072,  # Optional
            title="Driver's License",  # Optional
        ),
    )
    print(response)
    # Example response:
    # embeddings=[ContentEmbedding(values=[-0.06302902102470398, 0.00928034819662571, 0.014716853387653828, -0.028747491538524628, ... ],
    # statistics=ContentEmbeddingStatistics(truncated=False, token_count=13.0))]
    # metadata=EmbedContentMetadata(billable_character_count=112)

    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