Utilisez des modèles d'intégration pour créer des intégrations de texte qui capturent le sens d'une phrase ou d'un passage. Vous pouvez utiliser ces modèles avec des classificateurs tels que des machines à vecteurs de support. L'intégration de modèles peut également vous aider dans les tâches de génération augmentée par récupération.
Le diagramme suivant illustre le modèle de génération augmentée par récupération avec prise en charge de l'intégration.
Le modèle de génération augmentée par récupération avec prise en charge de l'intégration implique les étapes suivantes :
- Convertissez votre contenu en intégrations de texte et stockez-les dans un magasin de données vectorielles.
- Utilisez le même modèle d'intégration pour convertir les entrées de l'utilisateur en intégrations de texte.
- Exécutez une recherche de similarité ou sémantique dans votre base de connaissances pour le contenu lié à la question d'un utilisateur.
- Insérez les résultats de recherche les plus pertinents dans votre invite comme contexte et ajoutez une instruction, telle que « Répondez à la question suivante en utilisant uniquement les informations des passages suivants ».
- Envoyer le texte combiné de l'invite (instruction + résultats de la recherche + question) au foundation model.
- Le foundation model utilise les informations contextuelles de l'invite pour générer une réponse factuelle.
Pour plus d'informations, voir :
UTILISER les intégrations
Les intégrations USE sont des wrappers autour Google Intégrations Universal Sentence Encoder disponibles dans TFHub. Ces intégrations sont utilisées dans l'algorithme SVM de classification de documents. Pour obtenir une liste des USE embeddings pré-entraînés et des langues prises en charge, voir Included pretrained USE embeddings
Lorsque vous utilisez des représentations vectorielles continues USE, tenez compte des points suivants :
Choisissez
embedding_use_en_stock
si votre tâche implique un texte en anglais.Choisissez l'un des éléments d'intégration multilingues si votre tâche implique du texte dans une langue autre que l'anglais ou si vous souhaitez former des modèles multilingues.
Les intégrations USE présentent des compromis différents entre la qualité du modèle formé et le débit au moment de l'inférence, comme décrit ci-dessous. Essayez différentes intégrations pour déterminer le compromis entre la qualité du résultat et le débit d'inférence approprié pour votre cas d'utilisation.
embedding_use_multi_small
a une qualité raisonnable, mais il est rapide au moment de l'inférenceembedding_use_en_stock
est une version anglaise uniquement deembedding_embedding_use_multi_small
, elle est donc plus petite et présente un débit d'inférence plus élevéembedding_use_multi_large
est basé sur l'architecture Transformer et fournit donc une meilleure qualité de résultat, avec un débit inférieur au moment de l'inférence
Exemple de code
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)
Sortie de l'exemple de code :
{
"data": {
"data": [
-0.01909315399825573,
-0.009827353060245514,
...
0.008978910744190216,
-0.0702751949429512
],
"rows": 1,
"cols": 512,
"dtype": "float32"
},
"offsets": null,
"producer_id": null
}
Inclusion des USE embeddings pré-entraînés
Le tableau suivant répertorie les blocs pré-entraînés pour les représentations incorporées USE disponibles et les langues prises en charge. Pour obtenir la liste des codes de langue et de la langue correspondante, voir Codes de langue.
Nom de bloc | Nom du modèle | Langues prises en charge |
---|---|---|
use |
embedding_use_en_stock |
En anglais uniquement |
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 intégrations
GloVe les intégrations sont utilisées par le classificateur CNN.
Nom du bloc :embedding_glove__stock
Langues prises en charge : ar, de, en, es, fr, it, ja, ko, nl, pt, zh-cn
Exemple de code
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)
Sortie de l'exemple de code :
{
"data": {
"data": [
-0.01909315399825573,
-0.009827353060245514,
...
0.008978910744190216,
-0.0702751949429512
],
"rows": 1,
"cols": 512,
"dtype": "float32"
},
"offsets": null,
"producer_id": null
}
Intégrations de transformateurs
Noms de blocs
embedding_transformer_en_slate.125m
embedding_transformer_en_slate.30m
Langues prises en charge
En anglais uniquement
Exemple de code
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)
Sortie de l'exemple de code
{
"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"
}
}
Sujet parent : Watson Catalogue de tâches de traitement du langage naturel