Claude Platform Docs
MessagesCapacités du modèle

Embeddings

Les embeddings de texte sont des représentations numériques du texte qui permettent de mesurer la similarité sémantique. Ce guide présente les embeddings, leurs applications et la manière d'utiliser les modèles d'embedding pour des tâches telles que la recherche, les recommandations et la détection d'anomalies.

Avant d'implémenter les embeddings

Lors du choix d'un fournisseur d'« embeddings » (plongements vectoriels), plusieurs facteurs peuvent être pris en compte selon vos besoins et vos 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 souhaitez vectoriser. Des données plus volumineuses ou plus spécifiques à un domaine produisent généralement de meilleurs embeddings dans ce domaine.
  • Performances d'inférence : vitesse de recherche des embeddings et « latency » (latence) de bout en bout. Il s'agit d'une considération particulièrement importante pour les déploiements en production à grande échelle.
  • Personnalisation : options de poursuite de 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 couvrant l'ensemble des considérations précédentes est Voyage AI.

Voyage AI conçoit des modèles d'embedding à la pointe de la technologie et propose des modèles personnalisés pour des secteurs d'activité spécifiques tels que la finance et la santé, ou des modèles sur mesure ajustés par « fine-tuning » (ajustement fin) pour des clients individuels.

Le reste de ce guide concerne Voyage AI, mais vous devriez évaluer différents fournisseurs d'embeddings afin de trouver celui qui convient le mieux à votre cas d'utilisation spécifique.

Modèles disponibles

Voyage recommande d'utiliser les modèles d'embedding de texte suivants :

Voyage 4 (dernière génération)

ModèleLongueur de contexteDimension d'embeddingDescription
voyage-4-large32 0001024 (par défaut), 256, 512, 2048La meilleure qualité de recherche généraliste et multilingue. Consultez l'article de blog Voyage 4 pour plus de détails.
voyage-432 0001024 (par défaut), 256, 512, 2048Optimisé pour la qualité de recherche généraliste et multilingue. Équilibre qualité et efficacité. Consultez l'article de blog Voyage 4 pour plus de détails.
voyage-4-lite32 0001024 (par défaut), 256, 512, 2048Optimisé pour la latence et le coût. Consultez l'article de blog Voyage 4 pour plus de détails.
voyage-4-nano32 0001024 (par défaut), 256, 512, 2048Modèle à poids ouverts (licence Apache 2.0) disponible sur Hugging Face. Consultez l'article de blog Voyage 4 pour plus de détails.

Génération précédente

ModèleLongueur de contexteDimension d'embeddingDescription
voyage-3-large32 0001024 (par défaut), 256, 512, 2048La meilleure qualité de recherche généraliste et multilingue. Consultez l'article de blog voyage-3-large pour plus de détails.
voyage-3.532 0001024 (par défaut), 256, 512, 2048Optimisé pour la qualité de recherche généraliste et multilingue. Consultez l'article de blog voyage-3.5 pour plus de détails.
voyage-3.5-lite32 0001024 (par défaut), 256, 512, 2048Optimisé pour la latence et le coût. Consultez l'article de blog voyage-3.5 pour plus de détails.
voyage-code-332 0001024 (par défaut), 256, 512, 2048Optimisé pour la recherche de code. Consultez l'article de blog voyage-code-3 pour plus de détails.
voyage-finance-232 0001024Optimisé pour la recherche et le RAG dans le domaine de la finance. Consultez l'article de blog voyage-finance-2 pour plus de détails.
voyage-law-216 0001024Optimisé pour la recherche et le RAG dans le domaine juridique et à contexte long. Performances également améliorées dans tous les domaines. Consultez l'article de blog voyage-law-2 pour plus de détails.

De plus, Voyage recommande les modèles d'embedding multimodaux suivants :

ModèleLongueur de contexteDimension d'embeddingDescription
voyage-multimodal-3.532 0001024 (par défaut), 256, 512, 2048Modèle d'embedding multimodal riche capable de 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 l'article de blog voyage-multimodal-3.5 pour plus de détails.
voyage-multimodal-332 0001024Modèle d'embedding multimodal riche capable de vectoriser du texte entrelacé avec des images riches en contenu, telles que des captures d'écran de PDF, des diapositives, des tableaux, des figures, et plus encore. Consultez l'article de blog voyage-multimodal-3 pour plus de détails.

Les modèles d'embedding de segments contextualisés suivants produisent des vecteurs au niveau du segment qui capturent le contexte complet du document sans enrichissement manuel par métadonnées. Appelez ces modèles avec contextualized_embed() au lieu de embed() :

ModèleLongueur de contexteDimension d'embeddingDescription
voyage-context-4120 0001024 (par défaut), 256, 512, 2048Embeddings de segments contextualisés optimisés pour la qualité de recherche généraliste et multilingue. Consultez l'article de blog voyage-context-4 pour plus de détails.
voyage-context-3120 0001024 (par défaut), 256, 512, 2048Embeddings de segments contextualisés optimisés pour la qualité de recherche généraliste et multilingue. Consultez l'article 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èleLongueur de contexteDescription
rerank-2.532 000Précision la plus élevée. Recommandé pour la plupart des applications. Consultez l'article de blog rerank-2.5 pour plus de détails.
rerank-2.5-lite32 000Optimisé pour la latence et le coût. Consultez l'article de blog rerank-2.5 pour plus de détails.

Besoin d'aide pour choisir le modèle d'embedding de texte à utiliser ? Consultez la FAQ de Voyage AI.

Premiers pas avec Voyage AI

Pour accéder aux embeddings Voyage :

  1. Inscrivez-vous sur le site web de Voyage AI.
  2. Obtenez une clé API.
  3. Définissez la clé API comme variable d'environnement pour plus de commodité :
export VOYAGE_API_KEY="<your secret key>"

Vous pouvez obtenir les embeddings soit en utilisant le package Python voyageai officiel, soit via des requêtes HTTP, comme décrit dans les sections suivantes.

Bibliothèque Python Voyage

Installez le package voyageai à l'aide de la commande suivante :

pip install -U voyageai

Ensuite, vous pouvez créer un objet client et commencer à l'utiliser pour vectoriser vos textes :

import voyageai

vo = voyageai.Client()
# Ceci utilisera automatiquement la variable d'environnement VOYAGE_API_KEY.
# Vous pouvez aussi utiliser vo = voyageai.Client(api_key="<votre clé secrète>")

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 l'exécution du 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 Voyage, consultez la documentation du package Python Voyage.

API HTTP Voyage

Vous pouvez également obtenir des embeddings en interrogeant l'API HTTP Voyage. Par exemple, vous pouvez envoyer une requête HTTP via la commande curl dans un terminal :

cURL
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 obtiendrez 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 Voyage, consultez la documentation de l'API HTTP Voyage.

AWS Marketplace

Les embeddings Voyage sont disponibles sur AWS Marketplace. Les instructions pour accéder à Voyage sur AWS sont disponibles dans la documentation Voyage AWS Marketplace.

Exemple de démarrage rapide

Le bref exemple suivant montre comment utiliser les embeddings.

Supposons que vous disposiez d'un petit corpus de six documents dans lequel effectuer des recherches

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()

# Générer les embeddings des documents
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddings

Les embeddings vous permettent d'effectuer une recherche sémantique / récupération dans l'espace vectoriel. Étant donné un exemple de requête,

query = "When is Apple's conference call scheduled?"

Ensuite, convertissez-la en 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

# Générer l'embedding de 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 vectoriser respectivement le document et la requête. Vous trouverez plus de précisions dans la section Bibliothèque Python Voyage.

La sortie est le cinquième document, qui est effectivement le plus pertinent pour 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 manière de faire du RAG avec des embeddings, y compris avec des bases de données vectorielles, consultez la recette RAG.

FAQ

Tarification

Consultez la page de tarification de Voyage pour obtenir les informations tarifaires les plus récentes.

Was this page helpful?