0 / 0
Zurück zur englischen Version der Dokumentation
Einbettungen
Letzte Aktualisierung: 11. Dez. 2024
Einbettungen

Verwenden Sie Einbettungsmodelle, um Texteinbettungen zu erstellen, die die Bedeutung eines Satzes oder einer Passage erfassen. Sie können diese Modelle mit Klassifikatoren wie Support Vector Machines verwenden. Einbettungsmodelle können Ihnen auch bei Aufgaben zur abgefragter erweiterten Generierung helfen.

Das folgende Diagramm veranschaulicht das durch Abruf erweiterte Generierungsmuster mit Einbettungsunterstützung.

Diagramm, das das Hinzufügen von Suchergebnissen aus einem Vektorspeicher zum Input für die durch Abruf erweiterte Generierung zeigt

Das durch Abruf erweiterte Generierungsmuster mit Einbettungsunterstützung umfasst die folgenden Schritte:

  1. Wandeln Sie Ihre Inhalte in Texteinbettungen um und speichern Sie diese in einem Vektordatenspeicher.
  2. Verwenden Sie dasselbe Einbettungsmodell, um die Benutzereingabe in Texteinbettungen umzuwandeln.
  3. Führen Sie in Ihrer Wissensdatenbank eine Ähnlichkeits- oder semantische Suche nach Inhalten durch, die mit der Frage eines Benutzers in Zusammenhang stehen.
  4. Ziehen Sie die relevantesten Suchergebnisse als Kontext in Ihre Eingabeaufforderung und fügen Sie eine Anweisung hinzu, z. B. „Beantworten Sie die folgende Frage, indem Sie nur Informationen aus den folgenden Passagen verwenden.“
  5. Senden Sie den kombinierten Aufforderungstext (Anweisung + Suchergebnisse + Frage) an das Stiftungsmodell.
  6. Das Basismodell verwendet kontextbezogene Informationen aus der Aufforderung, um eine sachliche Antwort zu erstellen.

Weitere Informatinoen enthalten die folgenden Abschnitte:

Einbettungen verwenden

USE-Einbettungen sind Wrapper um Google In TFHub verfügbare Universal Sentence Encoder-Einbettungen. Diese Einbettungen werden im SVM-Algorithmus für Dokumentklassifizierung verwendet. Eine Liste der vortrainierten USE-Einbettungen und der unterstützten Sprachen finden Sie unter Enthaltene vortrainierte USE-Einbettungen

Beachten Sie bei der Verwendung von USE-Einbettungen Folgendes:

  • Wählen Sie embedding_use_en_stock aus, wenn Ihre Task englischen Text enthält.

  • Wählen Sie eine der mehrsprachigen USE-Einbettungen aus, wenn Ihre Task Text in einer anderen Sprache als Englisch umfasst oder wenn Sie mehrsprachige Modelle trainieren möchten.

  • Die USE-Einbettungen zeigen unterschiedliche Kompromisse zwischen der Qualität des trainierten Modells und dem Durchsatz zur Inferenzzeit, wie unten beschrieben. Testen Sie verschiedene Einbettungen, um für Ihren Anwendungsfall den geeigneten Kompromiss zwischen Ergebnisqualität und Inferenzdurchsatz zu finden.

    • embedding_use_multi_small bietet eine angemessene Qualität und schnelle Verarbeitung zur Inferenzzeit
    • embedding_use_en_stock ist Version von embedding_embedding_use_multi_small nur für Englisch, die kleiner ist und einen höheren Inferenzdurchsatz bietet
    • embedding_use_multi_large basiert auf der Transformer-Architektur und bietet daher eine höhere Ergebnisqualität bei geringerem Durchsatz zur Inferenzzeit

Codebeispiel

import watson_nlp

syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_use_en_stock")

text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)

Ausgabe des Codebeispiels :

{
  "data": {
    "data": [
      -0.01909315399825573,
      -0.009827353060245514,
...
      0.008978910744190216,
      -0.0702751949429512
    ],
    "rows": 1,
    "cols": 512,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": null
}

Eingeschlossene vortrainierte USE-Einbettungen

In der folgenden Tabelle sind die vorab trainierten Blöcke für USE-Einbettungen, die verfügbar sind, und die unterstützten Sprachen aufgelistet. Eine Liste der Sprachcodes und der entsprechenden Sprache finden Sie in Sprachcodes.

Liste vorab trainierter USE-Einbettungen mit den unterstützten Sprachen
Blockname Modellname Unterstützte Sprachen
use embedding_use_en_stock Nur Englisch
use embedding_use_multi_small ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh
use embedding_use_multi_large ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh

GloVe Einbettungen

GloVe Einbettungen werden vom CNN-Klassifikator verwendet.

Blockname :embedding_glove__stock

Unterstützte Sprachen : ar, de, en, es, fr, it, ja, ko, nl, pt, zh-cn

Codebeispiel

import watson_nlp

syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_glove_en_stock")

text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)

Ausgabe des Codebeispiels :

{
  "data": {
    "data": [
      -0.01909315399825573,
      -0.009827353060245514,
...
      0.008978910744190216,
      -0.0702751949429512
    ],
    "rows": 1,
    "cols": 512,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": null
}

Transformatoreinbettungen

Blocknamen

  • embedding_transformer_en_slate.125m
  • embedding_transformer_en_slate.30m

Unterstützte Sprachen

Nur Englisch

Codebeispiel

import watson_nlp

# embeddings_model = watson_nlp.load("embedding_transformer_en_slate.125m")
embeddings_model = watson_nlp.load("embedding_transformer_en_slate.30m")
text = "python"

embedding = embeddings_model.run(text)
print(embedding)

Ausgabe des Codebeispiels

{
  "data": {
    "data": [
      -0.055536773055791855,
      0.008286023512482643,
      ...
      -0.3202415108680725,
      5.000295277568512e-05
    ],
    "rows": 1,
    "cols": 384,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": {
    "name": "Transformer Embeddings",
    "version": "0.0.1"
  }
}

Übergeordnetes Thema: Watson Aufgabenkatalog zur natürlichen Sprachverarbeitung

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