Avant d’implémenter les embeddings
Lors du choix d’un fournisseur d’embeddings, 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 embeddings dans le domaine
- Performance d’inférence : vitesse de recherche d’embedding 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 embeddings avec Anthropic
Anthropic ne propose pas son propre modèle d’embedding. Un fournisseur d’embeddings 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 d’embedding à 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 d’embeddings pour trouver celui qui correspond le mieux à votre cas d’utilisation spécifique.Modèles disponibles
Voyage recommande l’utilisation des modèles d’embedding de texte suivants :Modèle | Longueur de contexte | Dimension d’embedding | Description |
---|---|---|---|
voyage-3-large | 32 000 | 1024 (par défaut), 256, 512, 2048 | La meilleure qualité de récupération générale et multilingue. |
voyage-3 | 32 000 | 1024 | Optimisé pour la qualité de récupération générale et multilingue. Voir le billet de blog pour plus de détails. |
voyage-3-lite | 32 000 | 512 | Optimisé pour la latence et le coût. Voir le billet de blog pour plus de détails. |
voyage-code-3 | 32 000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la récupération de code. Voir le billet de blog pour plus de détails. |
voyage-finance-2 | 32 000 | 1024 | Optimisé pour la récupération et le RAG en finance. Voir le billet de blog pour plus de détails. |
voyage-law-2 | 16 000 | 1024 | Optimisé pour la récupération et le RAG juridique et long contexte. Performances également améliorées dans tous les domaines. Voir le billet de blog pour plus de détails. |
Modèle | Longueur de contexte | Dimension d’embedding | Description |
---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | Modèle d’embedding multimodal riche qui peut vectoriser du texte entrelacé et des images riches en contenu, comme des captures d’écran de PDF, des diapositives, des tableaux, des figures, et plus encore. Voir le billet de blog pour plus de détails. |
Démarrer avec Voyage AI
Pour accéder aux embeddings 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é :
package Python voyageai
officiel, soit via des requêtes HTTP, comme décrit ci-dessous.
Package Python Voyage
Le packagevoyageai
peut être installé en utilisant la commande suivante :
result.embeddings
sera une liste de deux vecteurs d’embedding, chacun contenant 1024 nombres à virgule flottante. Après avoir exécuté le code ci-dessus, les deux embeddings seront affichés à l’écran :
embed()
. Vous pouvez en savoir plus sur la spécification ici
API HTTP Voyage
Vous pouvez également obtenir des embeddings en interrogeant l’API HTTP de Voyage. Par exemple, vous pouvez envoyer une requête HTTP via la commandecurl
dans un terminal :
AWS Marketplace
Les embeddings Voyage sont également disponibles sur AWS Marketplace. Les instructions pour accéder à Voyage sur AWS sont disponibles ici.Exemple de démarrage rapide
Maintenant que nous savons comment obtenir des embeddings, voyons un bref exemple. Supposons que nous ayons un petit corpus de six documents à partir desquels effectuer une rechercheinput_type="document"
et input_type="query"
pour encoder 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 :
FAQ
Pourquoi les embeddings Voyage ont-ils une qualité supérieure ?
Pourquoi les embeddings Voyage ont-ils une qualité supérieure ?
Les modèles d’embedding s’appuient sur de puissants réseaux de neurones pour capturer et compresser le contexte sémantique, similaires aux modèles génératifs. L’équipe de Voyage, composée de chercheurs en IA expérimentés, optimise chaque composant du processus d’embedding, notamment :
- L’architecture du modèle
- La collecte de données
- Les fonctions de perte
- La sélection de l’optimiseur
Quels modèles d'embedding sont disponibles et lequel devrais-je utiliser ?
Quels modèles d'embedding sont disponibles et lequel devrais-je utiliser ?
Pour l’embedding à usage général, nous recommandons :
voyage-3-large
: Meilleure qualitévoyage-3-lite
: Latence et coût les plus basvoyage-3
: Performance équilibrée avec une qualité de récupération supérieure à un prix compétitif
input_type
pour spécifier le type de requête ou de document.Modèles spécifiques au domaine :- Tâches juridiques :
voyage-law-2
- Code et documentation de programmation :
voyage-code-3
- Tâches liées à la finance :
voyage-finance-2
Quelle fonction de similarité devrais-je utiliser ?
Quelle fonction de similarité devrais-je utiliser ?
Les embeddings Voyage prennent en charge :
- La similarité par produit scalaire
- La similarité cosinus
- La distance euclidienne
- La similarité cosinus est égale à la similarité par produit scalaire (le calcul du produit scalaire est plus rapide)
- La similarité cosinus et la distance euclidienne produisent des classements identiques
Comment devrais-je utiliser le paramètre input_type ?
Comment devrais-je utiliser le paramètre input_type ?
Quelles options de quantification sont disponibles ?
Quelles options de quantification sont disponibles ?
La quantification réduit le stockage, la mémoire et les coûts en convertissant les valeurs de haute précision en formats de précision inférieure. Types de données de sortie disponibles (
Exemple : La quantification binaire convertit huit valeurs d’embedding en un seul entier 8 bits :
output_dtype
) :Type | Description | Réduction de taille |
---|---|---|
float | Nombres à virgule flottante simple précision 32 bits (par défaut) | Aucune |
int8 /uint8 | Entiers 8 bits (-128 à 127 / 0 à 255) | 4x |
binary /ubinary | Valeurs sur un bit compactées | 32x |
Les types binaires utilisent des entiers 8 bits pour représenter les bits compactés, avec
binary
utilisant la méthode binaire décalée.Comment puis-je tronquer les embeddings Matryoshka ?
Comment puis-je tronquer les embeddings Matryoshka ?
Les embeddings Matryoshka contiennent des représentations grossières à fines qui peuvent être tronquées en conservant les dimensions principales. Voici comment tronquer des vecteurs 1024D à 256D :
input_type
comme “query” ou “document”. Cette optimisation améliore la qualité de récupération grâce à un préfixage de prompt spécialisé :Pour les requêtes :input_type
ou le définir àNone
pour les tâches de récupération.