Explorez davantage le manuel d’instructions RAG pour en savoir plus sur les solutions RAG d’aujourd’hui.

Leadspace remanié en s’appuyant sur le leadspace Watson pour l’assistance client.
Présentation

Les modèles d'embedding sont des réseaux de neurones basés sur des transformers, qui transforment les morceaux de documents (c’est-à-dire les passages de texte) en représentation numérique ou vecteur. Les contenus ayant une signification similaire seront mappés à une représentation similaire dans l’espace latent, comme on le voit dans l’image ci-dessous.

La vectorisation du langage permet des applications alimentées par l’A de type « discuter avec les documents» ou la recherche sémantique, à la place de la recherche traditionnelle par mots-clés (lexicale).

Diagramme illustrant l’embedding de sujets connexes dans un espace vectoriel.
Remarques

Compromis coût-performance

Le modèle d’embedding que vous choisissez aura un impact significatif sur la précision de la récupération, la latence et le coût de calcul de votre système RAG. Votre choix de modèle d’embedding sera largement influencé par sa taille, qui dépend de deux caractéristiques : la dimension d’embedding et le nombre de paramètres du modèle.

Un modèle d’embedding plus grand améliore généralement la performance de récupération, mais au prix d’une latence, d’un stockage et d’un coût (financier) de calcul accrus. Inversement, un modèle d’embedding plus petit offre généralement une performance de récupération réduite, mais occupe moins de mémoire, nécessite moins de puissance de calcul et est plus rapide à l’exécution. Choisissez un modèle d’embedding qui concilie exigences de performance et ressources disponibles.

Certains modèles d’embedding sont spécifiques à une langue (par exemple, les modèles d’embedding espagnols conçus pour des clients espagnols) et à un domaine (par exemple, un modèle entraîné sur la terminologie oncologique pour permettre la RAG sur les dossiers médicaux).

Solutions IBM

Modèles d’embedding disponibles sur watsonx

Il est recommandé d’utiliser des modèles d’embedding déployés dans watsonx : les modèles Slate développés par IBM ou les modèles tiers listés ci-dessous. Veuillez consulter cette documentation pour obtenir des détails sur chaque modèle. Pour plus d’informations sur les classes de facturation, consultez les formules tarifaires de watsonx.

Modèles IBM Slate

Nom de modèlemodel_id de l’APIClasse de facturationNombre maximum de tokens d’entréeNombre de dimensionsPlus d’informations
slate-125m-english-rtrvribm/slate-125m-english-rtrvrClasse C1                  512                768Fiche du modèle
slate-30m-english-rtrvribm/slate-30m-english-rtrvrClasse C1                  512                384Fiche du modèle

 

slate-125m-english-rtrvr

Le modèle de fondation slate-125m-english-rtrvr est fourni par IBM. Le modèle de fondation slate-125m-english-rtrvr génère des embeddings pour diverses entrées telles que les requêtes, les passages et les documents. L’objectif de l’entraînement est de maximiser la similarité cosinus entre une requête et un passage. Ce processus permet d’obtenir deux embeddings de phrases, l’un représentant la question et l’autre le passage, ce qui permet de comparer les deux par le biais de la similarité cosinus.

Utilisation : deux à trois fois plus lent, mais légèrement plus performant que le modèle slate-30m-english-rtrvr. Langues prises en charge : anglais

slate-30m-english-rtrvr

Le modèle de fondation slate-30m-english-rtrvr est une version distillée du modèle slate-125m-english-rtrvr, tous deux fournis par IBM. Le modèle d’embedding slate-30m-english-rtrvr est entraîné pour maximiser la similarité cosinus entre deux entrées textuelles, afin que les embeddings puissent être évalués ultérieurement sur le critère de similarité.

Utilisation : deux à trois fois plus rapide et avec des scores de performance légèrement inférieurs à ceux du modèle slate-125m-english-rtrvr. Langues prises en charge : anglais

Modèles d’embedding tiers disponibles avec watsonx

Nom de modèlemodel_id de l’APIFournisseurClasse de facturationNombre maximum de tokens d’entréeNombre de dimensionsPlus d’informations
all-minilm-l12-v2sentence-transformers/all-minilm-l12-v2Communauté open source de traitement automatique du langage naturel (TAL) et de vision par ordinateur (CV)Classe C1           256           384Fiche du modèle
multilingual-e5-largeintfloat/multilingual-e5-largeMicrosoftClasse C1            512           1024Fiche de modèle, article de recherche
all-minilm-l12-v2

Le modèle d’embedding all-minilm-l12-v2 est construit par la communauté open source de traitement automatique du langage naturel (TAL) et de vision par ordinateur (CV), et fourni par HuggingFace.

Langues prises en charge : anglais

multilingual-e5-large

Utilisation : pour les cas d’utilisation qui consistent à générer des embeddings textuels dans une langue autre que l’anglais.

Langages naturels pris en charge : jusqu’à 100 langues. Voir la fiche du modèle pour plus de détails.

Pour plus d’informations sur les modèles d’embedding pris en charge, consultez la documentation watsonx.

Démarrage rapide avec le SDK Python watsonx embeddings

Installer la bibliothèque Python ibm-watsonx-ai
pip install -U ibm-watsonx-ai
Utilisez l’API watsonx embeddings et les modèles d’embedding disponibles pour générer des embeddings textuels.
from ibm_watsonx_ai.metanames import EmbedTextParamsMetaNames as EmbedParams
from ibm_watsonx_ai.foundation_models.utils.enums import EmbeddingTypes
from ibm_watsonx_ai.foundation_models import Embeddings

# Donnez à truncate_input_tokens une valeur égale ou inférieure à la valeur maximale autorisée pour le modèle d’embedding que vous utilisez. Si vous ne spécifiez pas cette valeur et que l’entrée contient plus de tokens que le modèle ne peut en traiter, une erreur est générée.

embed_params = {
 EmbedParams.TRUNCATE_INPUT_TOKENS: 128,
 EmbedParams.RETURN_OPTIONS: {
 'input_text': True
 }
}

embedding = Embeddings(
 model_id=EmbeddingTypes.IBM_SLATE_30M_ENG,
 credentials=credentials,
 params=embed_params,
 project_id=project_id,
 space_id=None,
 verify=False
)

q = [
 "Un modèle de fondation est un modèle d’IA générative à 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 capables de produire divers types de contenu, notamment des textes, du code source, des images, de l’audio et des données synthétiques."
]

embedding_vectors = embedding.embed_documents(texts=q)

print(embedding_vectors)

Exemple de notebook

Utiliser les modèles de la série Granite et les embeddings watsonx, Chroma et LangChain pour répondre aux questions (RAG)

Intégrations

Approfondir

Accédez aux modèles technologiques, architectures de solutions et publications sur le thème de l’architecture les plus récents d’IBM.

  1. Accéder au Centre d’architecture IBM
Contributeurs

Luke Major, Dean Sacoransky

Mise à jour : 15 novembre 2024