Plongements
Les plongements de texte sont des représentations numériques du texte qui permettent de mesurer la similarité sémantique. Ce guide présente les plongements, leurs applications et comment utiliser les modèles de plongement pour des tâches comme la recherche, les recommandations et la détection d’anomalies.
Avant d’implémenter les plongements
Lors de la sélection d’un fournisseur de plongements, il y a plusieurs facteurs à considérer selon vos besoins et préférences :
- Taille du jeu de données et spécificité du domaine : taille du jeu de données d’entraînement du modèle et sa pertinence pour le domaine que vous souhaitez encoder. Des données plus volumineuses ou plus spécifiques au domaine produisent généralement de meilleurs plongements dans le domaine
- Performance d’inférence : vitesse de recherche des plongements et latence de bout en bout. C’est une considération particulièrement importante pour les déploiements à grande échelle en production
- Personnalisation : options pour poursuivre l’entraînement sur des données privées, ou spécialisation des modèles pour des domaines très spécifiques. Cela peut améliorer les performances sur des vocabulaires uniques
Comment obtenir des plongements avec Anthropic
Anthropic ne propose pas son propre modèle de plongement. Un fournisseur de plongements qui offre une grande variété d’options et de capacités englobant toutes les considérations ci-dessus est Voyage AI.
Voyage AI crée des modèles de plongement à la pointe de la technologie et propose des modèles personnalisés pour des domaines industriels spécifiques comme la finance et la santé, ou des modèles affinés sur mesure pour des clients individuels.
Le reste de ce guide concerne Voyage AI, mais nous vous encourageons à évaluer différents fournisseurs de plongements pour trouver celui qui correspond le mieux à votre cas d’utilisation spécifique.
Démarrer avec Voyage AI
Pour accéder aux plongements Voyage :
- Inscrivez-vous sur le site web de Voyage AI
- Obtenez une clé API
- Définissez la clé API comme variable d’environnement pour plus de commodité :
Vous pouvez exécuter les plongements soit en utilisant le package Python voyageai officiel, soit via des requêtes HTTP, comme décrit ci-dessous.
Package Python Voyage
Le package voyageai
peut être installé en utilisant la commande suivante :
Ensuite, vous pouvez créer un objet client et commencer à l’utiliser pour encoder vos textes :
result.embeddings
sera une liste de deux vecteurs de plongement, chacun contenant 1024 nombres à virgule flottante.
Après avoir exécuté le code ci-dessus, les deux plongements seront affichés à l’écran :
Lors de la création des plongements, vous pouvez spécifier quelques autres arguments pour la fonction embed()
. Voici la spécification :
voyageai.Client.embed(texts : List[str], model : str, input_type : Optional[str] = None, truncation : Optional[bool] = None)
- texts (List[str]) - Une liste de textes sous forme de liste de chaînes, comme
["J'aime les chats", "J'aime aussi les chiens"]
. Actuellement, la longueur maximale de la liste est de 128, et le nombre total de tokens dans la liste est au maximum de 320K pourvoyage-2
et 120K pourvoyage-large-2
/voyage-code-2
. - model (str) - Nom du modèle. Options recommandées :
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, optionnel, par défaut
None
) - Type du texte d’entrée. Par défautNone
. Autres options :query
,document
- Lorsque input_type est défini à
None
, le texte d’entrée sera directement encodé par le modèle de plongement de Voyage. Alternativement, lorsque les entrées sont des documents ou des requêtes, les utilisateurs peuvent spécifierinput_type
commequery
oudocument
, respectivement. Dans ces cas, Voyage ajoutera un prompt spécial au texte d’entrée et enverra les entrées étendues au modèle de plongement - Pour les cas d’utilisation de recherche/récupération, nous recommandons de spécifier cet argument lors de l’encodage des requêtes ou des documents pour améliorer la qualité de la récupération. Les plongements générés avec et sans l’argument
input_type
sont compatibles
- Lorsque input_type est défini à
- truncation (bool, optionnel, par défaut
None
) - Indique s’il faut tronquer les textes d’entrée pour qu’ils tiennent dans la longueur de contexte.- Si
True
, les textes d’entrée trop longs seront tronqués pour tenir dans la longueur de contexte, avant d’être vectorisés par le modèle de plongement - Si
False
, une erreur sera levée si un texte donné dépasse la longueur de contexte - Si non spécifié (par défaut
None
), Voyage tronquera le texte d’entrée avant de l’envoyer au modèle de plongement s’il dépasse légèrement la longueur de la fenêtre de contexte. S’il dépasse significativement la longueur de la fenêtre de contexte, une erreur sera levée
- Si
API HTTP Voyage
Vous pouvez également obtenir des plongements en interrogeant l’API HTTP de Voyage. Par exemple, vous pouvez envoyer une requête HTTP via la commande curl
dans un terminal :
La réponse que vous obtiendrez est un objet JSON contenant les plongements et l’utilisation des tokens :
Le point de terminaison des plongements de Voyage AI est https://api.voyageai.com/v1/embeddings
(POST). L’en-tête de la requête doit contenir la clé API. Le corps de la requête est un objet JSON contenant les arguments suivants :
- input (str, List[str]) - Une chaîne de texte unique, ou une liste de textes sous forme de liste de chaînes. Actuellement, la longueur maximale de la liste est de 128, et le nombre total de tokens dans la liste est au maximum de 320K pour
voyage-2
et 120K pourvoyage-large-2
/voyage-code-2
. - model (str) - Nom du modèle. Options recommandées :
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, optionnel, par défaut
None
) - Type du texte d’entrée. Par défautNone
. Autres options :query
,document
- truncation (bool, optionnel, par défaut
None
) - Indique s’il faut tronquer les textes d’entrée pour qu’ils tiennent dans la longueur de contexte- Si
True
, les textes d’entrée trop longs seront tronqués pour tenir dans la longueur de contexte avant d’être vectorisés par le modèle de plongement - Si
False
, une erreur sera levée si un texte donné dépasse la longueur de contexte - Si non spécifié (par défaut
None
), Voyage tronquera le texte d’entrée avant de l’envoyer au modèle de plongement s’il dépasse légèrement la longueur de la fenêtre de contexte. S’il dépasse significativement la longueur de la fenêtre de contexte, une erreur sera levée
- Si
- encoding_format (str, optionnel, par défaut
None
) - Format dans lequel les plongements sont encodés. Voyage prend actuellement en charge deux options :- Si non spécifié (par défaut
None
) : les plongements sont représentés sous forme de listes de nombres à virgule flottante "base64"
: les plongements sont compressés en encodages Base64
- Si non spécifié (par défaut
Exemple de plongement Voyage
Maintenant que nous savons comment obtenir des plongements avec Voyage, voyons cela en action avec un bref exemple.
Supposons que nous ayons un petit corpus de six documents à partir desquels effectuer une recherche
Nous allons d’abord utiliser Voyage pour convertir chacun d’eux en un vecteur de plongement
Les plongements nous permettront de faire une recherche sémantique / récupération dans l’espace vectoriel. Nous pouvons ensuite convertir une requête exemple,
en un plongement, puis effectuer une recherche des plus proches voisins pour trouver le document le plus pertinent basé sur la distance dans l’espace des plongements.
Notez que nous utilisons input_type="document"
et input_type="query"
pour plonger respectivement le document et la requête. Plus de spécifications peuvent être trouvées ici.
La sortie serait le 5e document, qui est en effet le plus pertinent pour la requête :
Modèles Voyage disponibles
Voyage recommande d’utiliser les modèles de plongement suivants :
Modèle | Longueur de contexte | Dimension du plongement | Description |
---|---|---|---|
voyage-large-2 | 16000 | 1536 | Le modèle de plongement généraliste le plus puissant de Voyage AI. |
voyage-code-2 | 16000 | 1536 | Optimisé pour la récupération de code (17% meilleur que les alternatives), et également SoTA sur les corpus à usage général. Voir ce billet de blog de Voyage pour plus de détails. |
voyage-2 | 4000 | 1024 | Modèle de plongement généraliste de base optimisé pour la latence et la qualité. |
voyage-lite-02-instruct | 4000 | 1024 | Affiné par instructions pour les tâches de classification, de clustering et de similarité textuelle entre phrases, qui sont les seuls cas d’utilisation recommandés pour ce modèle. |
voyage-2
et voyage-large-2
sont des modèles de plongement généralistes, qui atteignent des performances de pointe dans tous les domaines tout en maintenant une haute efficacité. voyage-code-2
est optimisé pour le domaine du code, offrant 4 fois la longueur de contexte pour une utilisation plus flexible, bien qu’avec une latence relativement plus élevée.
Voyage développe activement des modèles plus avancés et spécialisés, et propose également des services d’affinage pour personnaliser des modèles sur mesure pour des clients individuels. Envoyez un email à votre responsable de compte Anthropic ou contactez le support Anthropic pour plus d’informations sur les modèles sur mesure.
voyage-finance-2
: bientôt disponiblevoyage-law-2
: bientôt disponiblevoyage-multilingual-2
: bientôt disponiblevoyage-healthcare-2
: bientôt disponible
Voyage sur AWS Marketplace
Les plongements Voyage sont également disponibles sur AWS Marketplace. Voici les instructions pour accéder à Voyage sur AWS :
- S’abonner au package de modèle
- Naviguez vers la page de liste du package de modèle et sélectionnez le modèle à déployer
- Cliquez sur le bouton
Continue to subscribe
- Examinez attentivement les détails sur la page
Subscribe to this software
. Si vous acceptez le Contrat de Licence Utilisateur Final (CLUF) standard, les prix et les conditions de support, cliquez sur “Accept Offer” - Après avoir sélectionné
Continue to configuration
et choisi une région, vous recevrez un Product Arn. C’est l’ARN du package de modèle requis pour créer un modèle déployable en utilisant Boto3- Copiez l’ARN qui correspond à votre région sélectionnée et utilisez-le dans la cellule suivante
- Déployer le package de modèle
À partir de là, créez un espace JupyterLab dans Sagemaker Studio, téléchargez le carnet de notes de Voyage, et suivez les instructions qu’il contient.
FAQ
Tarification
Visitez la page de tarification de Voyage pour les détails de prix les plus à jour.
La similarité cosinus est un choix populaire, mais la plupart des fonctions de distance feront l’affaire. Les plongements Voyage sont normalisés à la longueur 1, donc la similarité cosinus est essentiellement la même que le produit scalaire entre deux vecteurs. Voici un extrait de code que vous pouvez utiliser pour calculer la similarité cosinus entre deux vecteurs de plongement.
Si vous voulez trouver les K vecteurs de plongement les plus proches sur un grand corpus, nous recommandons d’utiliser les capacités intégrées dans la plupart des bases de données vectorielles.