Embeddings
Avant d'implémenter les embeddings
Lors de la sélection d'un fournisseur d'embeddings, il y a plusieurs facteurs que vous pouvez 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 par rapport au domaine que vous voulez intégrer. Des données plus importantes 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 de production à grande échelle
- Personnalisation : options pour la formation continue sur des données privées, ou la spécialisation de 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 n'offre pas son propre modèle d'embedding. Un fournisseur d'embeddings qui a une grande variété d'options et de capacités englobant toutes les considérations ci-dessus est Voyage AI.
Voyage AI fabrique des modèles d'embedding de pointe et offre des modèles personnalisés pour des domaines industriels spécifiques tels que la finance et la santé, ou des modèles sur mesure finement ajustés pour des clients individuels.
Le reste de ce guide concerne Voyage AI, mais nous vous encourageons à évaluer une variété de fournisseurs d'embeddings pour trouver la meilleure solution pour votre cas d'usage spécifique.
Modèles disponibles
Voyage recommande d'utiliser les 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éraliste et multilingue. Voir article de blog pour les détails. |
voyage-3.5 | 32,000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la qualité de récupération généraliste et multilingue. Voir article de blog pour les détails. |
voyage-3.5-lite | 32,000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la latence et le coût. Voir article de blog pour les détails. |
voyage-code-3 | 32,000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la récupération de code. Voir article de blog pour les détails. |
voyage-finance-2 | 32,000 | 1024 | Optimisé pour la récupération et RAG en finance. Voir article de blog pour les détails. |
voyage-law-2 | 16,000 | 1024 | Optimisé pour la récupération et RAG juridique et long contexte. Également amélioration des performances dans tous les domaines. Voir article de blog pour les détails. |
De plus, les modèles d'embedding multimodaux suivants sont recommandés :
| 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, telles que des captures d'écran de PDF, diapositives, tableaux, figures, et plus. Voir article de blog pour les détails. |
Besoin d'aide pour décider quel modèle d'embedding de texte utiliser ? Consultez la FAQ.
Commencer 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é :
export VOYAGE_API_KEY="<votre clé secrète>"Vous pouvez obtenir les embeddings soit en utilisant le package Python officiel voyageai ou les requêtes HTTP, comme décrit ci-dessous.
Bibliothèque Python Voyage
Le package voyageai peut être installé en utilisant la commande suivante :
pip install -U voyageaiEnsuite, vous pouvez créer un objet client et commencer à l'utiliser pour intégrer vos textes :
import voyageai
vo = voyageai.Client()
# Ceci utilisera automatiquement la variable d'environnement VOYAGE_API_KEY.
# Alternativement, vous pouvez utiliser vo = voyageai.Client(api_key="<votre clé secrète>")
texts = ["Texte d'exemple 1", "Texte d'exemple 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])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 :
[-0.013131560757756233, 0.019828535616397858, ...] # embedding pour "Texte d'exemple 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding pour "Texte d'exemple 2"Lors de la création des embeddings, vous pouvez spécifier quelques autres arguments à la fonction embed().
Pour plus d'informations sur le package python Voyage, voir la documentation Voyage.
API HTTP Voyage
Vous pouvez également obtenir des embeddings en demandant l'API HTTP Voyage. Par exemple, vous pouvez envoyer une requête HTTP via la commande curl dans un terminal :
curl https://api.voyageai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VOYAGE_API_KEY" \
-d '{
"input": ["Texte d'exemple 1", "Texte d'exemple 2"],
"model": "voyage-3.5"
}'La réponse que vous obtiendriez est un objet JSON contenant les embeddings et l'utilisation des tokens :
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858, ...],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805, ...],
"index": 1
}
],
"model": "voyage-3.5",
"usage": {
"total_tokens": 10
}
}
Pour plus d'informations sur l'API HTTP Voyage, voir la documentation Voyage.
AWS Marketplace
Les embeddings Voyage sont 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 récupérer
documents = [
"Le régime méditerranéen met l'accent sur le poisson, l'huile d'olive et les légumes, censé réduire les maladies chroniques.",
"La photosynthèse chez les plantes convertit l'énergie lumineuse en glucose et produit de l'oxygène essentiel.",
"Les innovations du 20e siècle, des radios aux smartphones, se sont centrées sur les avancées électroniques.",
"Les rivières fournissent de l'eau, l'irrigation et l'habitat pour les espèces aquatiques, vitales pour les écosystèmes.",
"La conférence téléphonique d'Apple pour discuter des résultats du quatrième trimestre fiscal et des mises à jour commerciales est prévue pour jeudi 2 novembre 2023 à 14h00 PT / 17h00 ET.",
"Les œuvres de Shakespeare, comme 'Hamlet' et 'Le Songe d'une nuit d'été', perdurent dans la littérature."
]
Nous utiliserons d'abord Voyage pour convertir chacun d'eux en un vecteur d'embedding
import voyageai
vo = voyageai.Client()
# Intégrer les documents
doc_embds = vo.embed(
documents, model="voyage-3.5", input_type="document"
).embeddingsLes embeddings nous permettront de faire de la recherche / récupération sémantique dans l'espace vectoriel. Étant donné un exemple de requête,
query = "Quand la conférence téléphonique d'Apple est-elle prévue ?"nous la convertissons en embedding, et effectuons une recherche du plus proche voisin pour trouver le document le plus pertinent basé sur la distance dans l'espace d'embedding.
import numpy as np
# Intégrer la requête
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# Calculer la similarité
# Les embeddings Voyage sont normalisés à la longueur 1, donc le produit scalaire
# et la similarité cosinus sont identiques.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Notez que nous utilisons input_type="document" et input_type="query" pour intégrer le document et la requête, respectivement. Plus de spécifications peuvent être trouvées ici.
La sortie serait le 5e document, qui est effectivement le plus pertinent pour la requête :
La conférence téléphonique d'Apple pour discuter des résultats du quatrième trimestre fiscal et des mises à jour commerciales est prévue pour jeudi 2 novembre 2023 à 14h00 PT / 17h00 ET.Si vous cherchez un ensemble détaillé de livres de recettes sur comment faire du RAG avec des embeddings, incluant les bases de données vectorielles, consultez notre livre de recettes RAG.
FAQ
Tarification
Visitez la page de tarification de Voyage pour les détails de tarification les plus à jour.