Utilisez les modèles d'imbrication et l'API d'imbrication disponibles dans watsonx.ai pour créer des imbrication de texte qui capturent la signification des phrases ou des passages à utiliser dans vos applications d'IA générative.
La conversion du texte en éléments de texte, ou vectorisation du texte, facilite la comparaison de documents, la réponse aux questions et les tâches de récupération et de génération augmentée (RAG), lorsqu'il s'agit d'extraire rapidement un contenu pertinent.
Pour plus d'informations, consultez les rubriques suivantes :
- Exemple de carnet de notes pour la conversion de textes en éléments textuels intégrés
- Utilisation de texte vectorisé avec des tâches de génération étendue à l'extraction
- Modèles d'intégration pris en charge
Vous pouvez également utiliser des modèles d'intégration IBM provenant de plateformes tierces, telles que:
Que sont les incorporations de texte?
Une incorporation de texte est une représentation numérique d'une phrase ou d'un passage en tant que vecteur de nombres à valeurs réelles. En convertissant des phrases en vecteurs de nombres, les opérations sur les phrases deviennent plus similaires à des équations mathématiques, ce qui est quelque chose que les ordinateurs peuvent faire rapidement et qui peut bien faire.
Lorsqu'un modèle d'imbrication crée une représentation vectorielle d'une phrase, le modèle d'imbrication affecte des valeurs qui capturent la signification sémantique de la phrase. Le modèle de plongement positionne également le vecteur dans un espace multidimensionnel en fonction de ses valeurs affectées. La taille de l'espace dimensionnel varie en fonction du modèle, ce qui signifie que les valeurs de vecteur exactes varient également. Cependant, tous les modèles positionnent les vecteurs de sorte que les phrases ayant des significations similaires soient plus proches les unes des autres.
La plupart des modèles d'intégration génèrent des vecteurs dans tant de dimensions, allant de centaines à milliers de dimensions, qu'il est impossible de visualiser. Si un modèle d'imbrication devait générer un vecteur à 3 dimensions, il pourrait se présenter comme suit. Notez que les valeurs vectorielles affichées dans l'image sont fictives, mais sont incluses pour illustrer ce scénario hypothétique.
L'image montre que les phrases avec des mots clés partagés et avec des sujets partagés ont des vecteurs avec des valeurs similaires, ce qui les rapproche les unes des autres à l'intérieur de l'espace tridimensionnel. Les phrases suivantes sont positionnées en fonction de leurs valeurs vectorielles:
- La reproduction de Degas est suspendue dans la tanière
- Jan a acheté une peinture de chiens jouant aux cartes
- J'ai pris mes chiens pour une promenade
Les deux premières phrases sur les œuvres d'art et les deux dernières phrases qui partagent le mot clé dogs sont plus proches l'une de l'autre que les première et troisième phrases, qui ne partagent aucun mot ou sens commun.
Vous pouvez stocker les vecteurs générés dans une base de données vectorielle. Lorsque le même modèle d'intégration est utilisé pour convertir toutes les phrases de la base de données, le magasin de vecteurs peut tirer parti des regroupements et des relations inhérents qui existent entre les phrases en fonction de leurs valeurs vectorielles pour renvoyer rapidement les résultats de recherche pertinents.
Contrairement aux index traditionnels qui stockent du texte et reposent sur la recherche par mot clé pour l'extraction d'informations, les magasins de vecteurs prennent en charge les recherches sémantiques qui extraient des informations ayant une signification similaire. Par exemple, lorsque la recherche par mot clé vérifie uniquement si le mot clé est présent, la recherche sémantique pèse le contexte dans lequel le mot clé est utilisé, ce qui produit généralement de meilleurs résultats de recherche.
Vectorisation du texte
Utilisez la méthode Generate embeddings de l'API watsonx.ai pour vectoriser le texte.
Pour savoir quels modèles d'intégration sont disponibles pour une utilisation programmatique, utilisez la méthode List the available foundation models dans l'API watsonx.ai as a service. Spécifiez le paramètre " filters=function_embedding
pour ne renvoyer que les modèles d'intégration disponibles.
curl -X GET \
'https://{cluster_url}/ml/v1/foundation_model_specs?version=2024-07-25&filters=function_embedding'
Exemple
L'extrait de code suivant utilise le modèle slate-30m-english-rtrvr pour convertir les deux lignes de texte suivantes en éléments de texte :
- Un foundation model est un modèle d'IA génératif à grande échelle qui peut être adapté à un large éventail de tâches en aval.
- L'IA générative est une classe d'algorithmes d'IA qui peuvent produire divers types de contenu, notamment du texte, du code source, des images, du son et des données synthétiques.
Dans cet exemple, deux lignes de texte sont soumises à la conversion. Vous pouvez spécifier jusqu'à 1 000 lignes. Chaque ligne que vous soumettez doit être conforme à la limite maximale de jetons d'entrée définie par le modèle d'intégration.
Pour les cas où une ligne pourrait être plus longue, le paramètre truncate_input_tokens
est spécifié pour forcer la ligne à être tronquée. Dans le cas contraire, la demande risque d'échouer. Le paramètre input_text
est inclus pour que le texte original soit ajouté à la réponse, ce qui facilite l'association du texte original à chaque ensemble de valeurs d'intégration.
Vous spécifiez le modèle d'intégration que vous souhaitez utiliser en tant que " model_id
dans la charge utile de la méthode d'intégration.
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"
}'
La réponse ressemble à ceci : les 384 valeurs de chaque intégration sont réduites à 6 valeurs pour améliorer la lisibilité de l'exemple :
{
"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
}
En savoir plus
- Modèles d'intégration pris en charge
- Conversion de texte en incorporations de texte
- Utilisation de texte vectorisé avec des tâches de génération étendue à l'extraction
- Référence d'interface de programme d'application
Rubrique parent: Codage des solutions d'IA générative