1. Introduction aux embeddings
1.1. Qu'est-ce que les embeddings
Les embeddings, dans le domaine de l'apprentissage automatique, en particulier dans le traitement du langage naturel (NLP), sont une technique permettant de transformer les données textuelles en vecteurs numériques. En langage humain, le sens des mots et des expressions est déterminé par leur contexte et leur utilisation. L'objectif des embeddings est de capturer la sémantique de ces unités linguistiques, permettant aux ordinateurs de les comprendre et de les traiter.
L'idée centrale des embeddings est de mapper les mots ayant des significations similaires à des points proches dans un espace mathématique, en représentant les mots comme des points dans un espace de grande dimension. De cette manière, des mots ayant des significations sémantiques proches (par exemple, "roi" et "reine") seront proches dans l'espace. Les embeddings sont généralement composés de tableaux de nombres décimaux, permettant même à des fragments de texte très différents (comme "chien" et "canin") d'avoir des représentations d'embedding similaires.
Astuce : En tant que développeur d'applications, vous pouvez simplement comprendre que pour deux phrases ayant des significations similaires, leur similarité de vecteur d'embedding est élevée.
1.2. Applications des embeddings
Les embeddings sont largement utilisés dans divers scénarios, voici quelques cas d'utilisation principaux :
- Recherche : Utiliser les fonctionnalités d'embedding pour classer les résultats de recherche en fonction de leur pertinence par rapport au texte de requête.
- Regroupement : Les embeddings peuvent aider à identifier et catégoriser des fragments de texte sémantiquement similaires.
- Systèmes de recommandation : Recommander des éléments en fonction de la similarité peut aider à découvrir et recommander d'autres éléments similaires à ceux connus.
- Détection d'anomalies : Les embeddings peuvent être utilisés pour identifier des points de données significativement différents du jeu de données principal.
- Mesure de la diversité : Les embeddings peuvent également être utilisés pour analyser la distribution de similarité entre différents textes.
- Classification : Comparer le texte avec un ensemble d'embeddings de libellé connus pour le classer dans la catégorie la plus similaire.
2. Introduction aux embeddings OpenAI
2.1. Aperçu des modèles d'embeddings OpenAI
OpenAI propose des modèles d'embeddings de troisième génération, comprenant text-embedding-3-small
et text-embedding-3-large
. Ces modèles sont basés sur une technologie unique d'apprentissage en profondeur d'OpenAI, visant à fournir des performances très multilingues tout en cherchant à réduire les coûts.
Ces modèles ont des caractéristiques uniques lors du traitement des embeddings. Par exemple, text-embedding-3-small
offre des vecteurs d'embedding de 1536 dimensions, tandis que text-embedding-3-large
fournit des vecteurs d'embedding de 3072 dimensions pour couvrir des caractéristiques textuelles plus complexes. En ajustant les paramètres, la dimensionnalité des embeddings peut être contrôlée pour répondre aux besoins spécifiques des scénarios d'application.
2.2. Sélection et utilisation du modèle
Le choix du modèle d'embedding approprié dépend des besoins spécifiques de l'application. Voici comment faire la sélection dans différents scénarios d'application :
-
Dans les scénarios axés sur la performance : Si vous avez besoin de capturer des informations sémantiques plus détaillées, par exemple dans des systèmes de recommandation à granularité fine ou dans une classification de texte à haute précision, il est généralement recommandé d'utiliser
text-embedding-3-large
. Bien qu'il soit plus coûteux que les modèles plus petits, il peut fournir une représentation plus riche des caractéristiques textuelles. -
Dans les applications sensibles aux coûts : Pour les applications qui nécessitent le traitement d'une grande quantité de données mais n'ont pas de besoins particulièrement précis, comme l'exploration initiale des données ou le prototypage rapide,
text-embedding-3-small
est un choix plus économique. Il maintient des performances relativement élevées tout en réduisant considérablement les coûts. -
Environnements multilingues : Ces modèles d'embedding ont une haute performance multilingue, les rendant particulièrement utiles dans des scénarios cross-lingues ou multilingues, en en faisant un choix idéal pour des applications globales.
Le choix du bon modèle d'embedding dépendra des exigences spécifiques, de la complexité des données et du point d'équilibre souhaité entre performance et coût.
3. Comment utiliser les embeddings
3.1 Utiliser curl
pour Appeler l'API d'Embarquements
curl
est un outil en ligne de commande couramment utilisé pour envoyer des requêtes HTTP. L'exemple suivant montre comment utiliser curl
pour obtenir la représentation d'embarquement d'un texte :
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "L'apprentissage automatique est une branche de l'intelligence artificielle.",
"model": "text-embedding-3-small"
}'
Dans la commande ci-dessus, la variable $OPENAI_API_KEY
contient la clé API OpenAI de l'utilisateur, qui doit être remplacée par une clé valide pour une utilisation effective.
Après avoir exécuté cette commande, l'API d'Embarquements d'OpenAI renverra une réponse contenant la représentation d'embarquement du texte. Voici un exemple de résultat d'appel API :
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [ // Voici le vecteur de caractéristiques
-0.006929283495992422,
-0.005336422007530928,
... // Les nombres restants sont omis pour l'affichage
-4.547132266452536e-05,
-0.024047505110502243
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3.2 Utiliser un Client Python pour Appeler l'API d'Embarquements
En plus d'utiliser curl
pour appeler directement l'API depuis la ligne de commande, vous pouvez également utiliser un client Python. Cela nécessite d'abord d'installer la bibliothèque officielle openai
. Voici un exemple de comment obtenir des embarquements de texte en utilisant Python :
import openai
openai.api_key = 'VOTRE_CLÉ_API_OPENAI' # Remplacez par votre clé API OpenAI
response = openai.Embedding.create(
input="L'intelligence artificielle change le monde.",
model="text-embedding-3-small"
)
vecteur_embarquement = response['data'][0]['embedding']
print(vecteur_embarquement)
En exécutant ce script Python, vous obtiendrez un vecteur d'embarquement similaire à celui obtenu avec curl
. Ce vecteur est une liste de nombres à virgule flottante, représentant la représentation numérique du texte d'entrée dans l'espace d'embarquement.
Le résultat de l'appel est le suivant :
[-0.0032198824, 0.0022555287, ..., 0.0015886585, -0.0021505365]
3.2 Manipulation des Vecteurs d'Embarquement
OpenAI ne fournit que le modèle de calcul de vectorisation de texte des Embarquements. Si vous souhaitez utiliser les Embarquements pour implémenter des fonctions telles que la recherche de similarité de texte, vous devez vous renseigner sur les bases de données vectorielles, telles que Qdrant, Chroma et Milvus.
Veuillez vous référer aux tutoriels suivants sur les bases de données vectorielles :