0 / 0
Zurück zur englischen Version der Dokumentation
Vektorisierung von Text mit Hilfe der API
Letzte Aktualisierung: 28. Nov. 2024
Vektorisierung von Text mit Hilfe der API

Verwenden Sie die Einbettungsmodelle und die Einbettungs-API, die über watsonx.ai verfügbar sind, um Texteinbettungen zu erstellen, die die Bedeutung von Sätzen oder Passagen für die Verwendung in Ihren generativen KI-Anwendungen erfassen.

Die Umwandlung von Text in Texteinbettungen oder die Vektorisierung von Text hilft beim Dokumentenvergleich, bei der Beantwortung von Fragen und bei Retrieval-Augmented-Generating-Aufgaben (RAG), bei denen relevante Inhalte schnell gefunden werden müssen.

Weitere Informationen finden Sie unter den folgenden Themen:

Sie können auch IBM -Einbettungsmodelle von Plattformen anderer Anbieter verwenden, z. B.:

Was sind Texteinbettungen?

Eine Texteinbettung ist eine numerische Darstellung eines Satzes oder einer Passage als Vektor von reellwertigen Zahlen. Durch die Umwandlung von Sätzen in Zahlenvektoren werden Operationen für Sätze mehr wie mathematische Gleichungen, was Computer schnell und gut tun können.

Wenn ein einbettendes Modell eine Vektordarstellung eines Satzes erstellt, ordnet das einbettende Modell Werte zu, die die semantische Bedeutung des Satzes erfassen. Das Einbettungsmodell positioniert den Vektor auch in einem mehrdimensionalen Raum basierend auf seinen zugeordneten Werten. Die Größe des Dimensionsraums variiert je nach Modell, was bedeutet, dass die genauen Vektorwerte ebenfalls variieren. Alle Modelle positionieren die Vektoren jedoch so, daß Sätze mit ähnlichen Bedeutungen näher zueinander stehen.

Die meisten Einbettungsmodelle generieren Vektoren in so vielen Dimensionen, von Hunderten bis zu Tausenden von Dimensionen, dass es unmöglich ist, sie zu visualisieren. Wenn ein Einbettungsmodell einen dreidimensionalen Vektor generieren würde, könnte es wie folgt aussehen. Beachten Sie, dass die in der Abbildung gezeigten Vektorwerte fiktiv sind, aber eingeschlossen sind, um dieses hypothetische Szenario zu veranschaulichen.

Ein dreidimensionaler Cube mit drei Datenpunkten, die drei Satzeinbettungen darstellen

Die Abbildung zeigt, dass Sätze mit gemeinsam genutzten Schlüsselwörtern und mit gemeinsam genutzten Subjekten Vektoren mit ähnlichen Werten haben, die sie im dreidimensionalen Raum näher zueinander bringen. Die folgenden Sätze werden basierend auf ihren Vektorwerten positioniert:

  • Die Degas-Reproduktion hängt in der Höhle
  • Jan hat ein Gemälde von Hunden gekauft, die Karten spielen
  • Ich nahm meine Hunde zu einem Spaziergang

Die ersten beiden Sätze über Artwork und die letzten beiden Sätze, die das Schlüsselwort dogs teilen, sind einander näher als die ersten und dritten Sätze, die keine gemeinsamen Wörter oder Bedeutungen teilen.

Sie können generierte Vektoren in einer Vektordatenbank speichern. Wenn dasselbe Einbettungsmodell verwendet wird, um alle Sätze in der Datenbank zu konvertieren, kann der Vektorspeicher die inhärenten Gruppierungen und Beziehungen, die zwischen den Sätzen bestehen, basierend auf ihren Vektorwerten nutzen, um relevante Suchergebnisse schnell zurückzugeben.

Im Gegensatz zu traditionellen Indizes, die Text speichern und sich auf die Schlüsselwortsuche zum Abrufen von Informationen verlassen, unterstützen Vektorspeicher semantische Suchen, die Informationen abrufen, die in ihrer Bedeutung ähnlich sind. Wenn die Schlüsselwortsuche beispielsweise nur prüft, ob das Schlüsselwort vorhanden ist, gewichtet die semantische Suche den Kontext, in dem das Schlüsselwort verwendet wird. Dies führt in der Regel zu besseren Suchergebnissen.

Text vektorisieren

Verwenden Sie die Methode Generate embeddings in der watsonx.ai API, um Text zu vektorisieren.

Um herauszufinden, welche Einbettungsmodelle für die programmatische Verwendung verfügbar sind, verwenden Sie die Methode List the available foundation models in der watsonx.ai as a service API. Geben Sie den Parameter " filters=function_embedding an, um nur die verfügbaren Einbettungsmodelle zurückzugeben.

curl -X GET \
  'https://{cluster_url}/ml/v1/foundation_model_specs?version=2024-07-25&filters=function_embedding'

Beispiel

Der folgende Codeschnipsel verwendet das Modell slate-30m-english-rtrvr, um die folgenden zwei Textzeilen in Texteinbettungen umzuwandeln:

  • Ein foundation model ist ein groß angelegtes generatives KI-Modell, das an eine breite Palette von nachgelagerten Aufgaben angepasst werden kann.
  • Generative KI eine Klasse von KI-Algorithmen, die verschiedene Arten von Inhalten produzieren können, darunter Text, Quellcode, Bilder, Audio und synthetische Daten.

In diesem Beispiel werden zwei Textzeilen zur Konvertierung eingereicht. Sie können bis zu 1.000 Zeilen angeben. Jede Zeile, die Sie übermitteln, muss die vom Einbettungsmodell festgelegte Höchstgrenze für Eingabezeichen einhalten.

Für Fälle, in denen eine Zeile länger sein könnte, wird der Parameter truncate_input_tokens angegeben, um das Abschneiden der Zeile zu erzwingen. Andernfalls könnte die Anfrage fehlschlagen. Der Parameter input_text ist enthalten, damit der Originaltext zur Antwort hinzugefügt wird, was die Zuordnung des Originaltextes zu den einzelnen Einbettungswerten erleichtert.

Sie geben das Einbettungsmodell an, das Sie als ' model_id ' in der Nutzlast für die Einbettungsmethode verwenden möchten.

curl -X POST \
  'https://{region}.cloud.ibm.com/ml/v1/text/embeddings?version=2024-05-02' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJraWQiOi...' \
  --data-raw '{
  "inputs": [
    "A foundation model is a large-scale generative AI model that can be adapted to a wide range of downstream tasks.",
    "Generative AI a class of AI algorithms that can produce various types of content including text, source code, imagery, audio, and synthetic data."
  ],
  "parameters":{
    "truncate_input_tokens": 128,
    "return_options":{
      "input_text":true
    }
  },
  "model_id": "ibm/slate-30m-english-rtrvr",
  "project_id": "81966e98-c691-48a2-9bcc-e637a84db410"
}'

Die Antwort sieht in etwa so aus, wobei die 384 Werte in jeder Einbettung auf 6 Werte reduziert wurden, um die Lesbarkeit des Beispiels zu verbessern:

{
  "model_id": "ibm/slate-30m-english-rtrvr",
  "created_at": "2024-05-02T16:21:56.771Z",
  "results": [
    {
      "embedding": [
        -0.023104044,
        0.05364946,
        0.062400896,
        ...
        0.008527246,
        -0.08910927,
        0.048190728
      ],
      "input": "A foundation model is a large-scale generative AI model that can be adapted to a wide range of downstream tasks."
    },
    {
      "embedding": [
        -0.024285838,
        0.03582272,
        0.008893765,
        ...
        0.0148864435,
        -0.051656704,
        0.012944954
      ],
      "input": "Generative AI a class of AI algorithms that can produce various types of content including text, source code, imagery, audio, and synthetic data."
    }
  ],
  "input_token_count": 57
}

Weitere Informationen

Übergeordnetes Thema: Coding generative AI-Lösungen

Generative KI-Suche und -Antwort
Diese Antworten werden von einem großen Sprachmodell in watsonx.ai basierend auf dem Inhalt der Produktdokumentation generiert. Weitere Informationen