Lors de la sélection d'un fournisseur d'embeddings, il existe plusieurs facteurs que vous pouvez prendre en compte selon vos besoins et préférences :
Anthropic n'offre pas son propre modèle d'embedding. Un fournisseur d'embeddings qui propose une grande variété d'options et de capacités englobant toutes les considérations précédentes 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 tels que la finance et la santé, ou des modèles ajustés finement sur mesure pour des clients individuels.
Le reste de ce guide concerne Voyage AI, mais vous devriez évaluer une variété de fournisseurs d'embeddings pour trouver celui qui convient le mieux à votre cas d'usage spécifique.
Voyage recommande d'utiliser les modèles d'embedding de texte suivants :
Voyage 4 (dernière génération)
| Modèle | Longueur de contexte | Dimension d'embedding | Description |
|---|---|---|---|
voyage-4-large | 32 000 | 1024 (par défaut), 256, 512, 2048 | La meilleure qualité de récupération à usage général et multilingue. Consultez le billet de blog Voyage 4 pour plus de détails. |
voyage-4 | 32 000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la qualité de récupération à usage général et multilingue. Équilibre qualité et efficacité. Consultez le billet de blog Voyage 4 pour plus de détails. |
voyage-4-lite | 32 000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la latence et le coût. Consultez le billet de blog Voyage 4 pour plus de détails. |
voyage-4-nano | 32 000 | 1024 (par défaut), 256, 512, 2048 | Modèle à poids ouverts (licence Apache 2.0) disponible sur Hugging Face. Consultez le billet de blog Voyage 4 pour plus de détails. |
Génération précédente
| 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 à usage général et multilingue. Consultez le billet de blog voyage-3-large pour plus de détails. |
voyage-3.5 | 32 000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la qualité de récupération à usage général et multilingue. Consultez le billet de blog voyage-3.5 pour plus de détails. |
voyage-3.5-lite | 32 000 | 1024 (par défaut), 256, 512, 2048 | Optimisé pour la latence et le coût. Consultez le billet de blog voyage-3.5 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. Consultez le billet de blog voyage-code-3 pour plus de détails. |
voyage-finance-2 | 32 000 | 1024 | Optimisé pour la récupération et le RAG en finance. Consultez le billet de blog voyage-finance-2 pour plus de détails. |
voyage-law-2 | 16 000 | 1024 | Optimisé pour la récupération et le RAG dans le domaine juridique et à contexte long. Performances également améliorées dans tous les domaines. Consultez le billet de blog voyage-law-2 pour plus de détails. |
De plus, Voyage recommande les modèles d'embedding multimodaux suivants :
| Modèle | Longueur de contexte | Dimension d'embedding | Description |
|---|---|---|---|
voyage-multimodal-3.5 | 32 000 | 1024 (par défaut), 256, 512, 2048 | Modèle d'embedding multimodal riche qui peut vectoriser du texte, des images et des vidéos entrelacés. Inclut la prise en charge de la vidéo en tant que premier modèle d'embedding vidéo de qualité production. Consultez le billet de blog voyage-multimodal-3.5 pour plus de détails. |
voyage-multimodal-3 | 32 000 | 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, de diapositives, de tableaux, de figures, et plus encore. Consultez le billet de blog voyage-multimodal-3 pour plus de détails. |
Les modèles d'embedding de fragments contextualisés suivants produisent des vecteurs au niveau du fragment qui capturent le contexte complet du document sans augmentation manuelle des métadonnées. Appelez ces modèles avec contextualized_embed() au lieu de embed() :
| Modèle | Longueur de contexte | Dimension d'embedding | Description |
|---|---|---|---|
voyage-context-4 | 120 000 | 1024 (par défaut), 256, 512, 2048 | Embeddings de fragments contextualisés optimisés pour la qualité de récupération à usage général et multilingue. Consultez le billet de blog voyage-context-4 pour plus de détails. |
voyage-context-3 | 120 000 | 1024 (par défaut), 256, 512, 2048 | Embeddings de fragments contextualisés optimisés pour la qualité de récupération à usage général et multilingue. Consultez le billet de blog voyage-context-3 pour plus de détails. |
Voyage AI propose également des rerankers (modèles de reclassement), qui prennent une requête et une liste de documents et les renvoient classés par pertinence par rapport à la requête. Appelez ces modèles avec rerank() :
| Modèle | Longueur de contexte | Description |
|---|---|---|
rerank-2.5 | 32 000 | Précision la plus élevée. Recommandé pour la plupart des applications. Consultez le billet de blog rerank-2.5 pour plus de détails. |
rerank-2.5-lite | 32 000 | Optimisé pour la latence et le coût. Consultez le billet de blog rerank-2.5 pour plus de détails. |
Besoin d'aide pour décider quel modèle d'embedding de texte utiliser ? Consultez la FAQ de Voyage AI.
Pour accéder aux embeddings de Voyage :
export VOYAGE_API_KEY="<your secret key>"Vous pouvez obtenir les embeddings soit en utilisant le package Python voyageai officiel, soit par des requêtes HTTP, comme décrit dans les sections suivantes.
Installez le package voyageai à l'aide de 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.
# Vous pouvez également utiliser vo = voyageai.Client(api_key="<your secret key>")
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddings est une liste de deux vecteurs d'embedding, chacun contenant 1024 nombres à virgule flottante. Après avoir exécuté le code précédent, les deux embeddings sont affichés à l'écran :
[-0.013131560757756233, 0.019828535616397858, ...] # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding for "Sample text 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 de Voyage, consultez la documentation du package Python de 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 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": ["Sample text 1", "Sample text 2"],
"model": "voyage-4"
}'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-4",
"usage": {
"total_tokens": 10
}
}Pour plus d'informations sur l'API HTTP de Voyage, consultez la documentation de l'API HTTP de Voyage.
Les embeddings de Voyage sont disponibles sur AWS Marketplace. Les instructions pour accéder à Voyage sur AWS sont disponibles dans la documentation AWS Marketplace de Voyage.
Le bref exemple suivant montre comment utiliser les embeddings.
Supposons que vous disposiez d'un petit corpus de six documents à partir desquels effectuer une récupération
documents = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
"20th-century innovations, from radios to smartphones, centered on electronic advancements.",
"Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
"Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
"Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature.",
]Tout d'abord, utilisez Voyage pour convertir chaque document en un vecteur d'embedding.
import voyageai
vo = voyageai.Client()
# Intégrer les documents
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddingsLes embeddings vous permettent d'effectuer une recherche / récupération sémantique dans l'espace vectoriel. Étant donné un exemple de requête,
query = "When is Apple's conference call scheduled?"Ensuite, convertissez-la en un embedding et effectuez une recherche du plus proche voisin pour trouver le document le plus pertinent en fonction de la distance dans l'espace d'embedding.
import numpy as np
# Intégrer la requête
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]
# Calculer la similarité
# Les embeddings Voyage sont normalisés à une longueur de 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 input_type="document" et input_type="query" sont utilisés pour intégrer respectivement le document et la requête. Plus de précisions sont disponibles dans la section Bibliothèque Python de Voyage.
La sortie est le cinquième document, qui est effectivement le plus pertinent par rapport à la requête :
Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.Si vous recherchez un ensemble détaillé de recettes sur la façon de faire du RAG avec des embeddings, y compris les bases de données vectorielles, consultez la recette RAG.
Consultez la page de tarification de Voyage pour les détails de tarification les plus à jour.
Was this page helpful?