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.
Das durch Abruf erweiterte Generierungsmuster mit Einbettungsunterstützung umfasst die folgenden Schritte:
- Wandeln Sie Ihre Inhalte in Texteinbettungen um und speichern Sie diese in einem Vektordatenspeicher.
- Verwenden Sie dasselbe Einbettungsmodell, um die Benutzereingabe in Texteinbettungen umzuwandeln.
- Führen Sie in Ihrer Wissensdatenbank eine Ähnlichkeits- oder semantische Suche nach Inhalten durch, die mit der Frage eines Benutzers in Zusammenhang stehen.
- 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.“
- Senden Sie den kombinierten Aufforderungstext (Anweisung + Suchergebnisse + Frage) an das Stiftungsmodell.
- 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 Inferenzzeitembedding_use_en_stock
ist Version vonembedding_embedding_use_multi_small
nur für Englisch, die kleiner ist und einen höheren Inferenzdurchsatz bietetembedding_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.
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