Ce document explique comment créer un embedding textuel (ou "plongement textuel") à l'aide de l'API d'embeddings de texte Vertex AI.
L'API Text embeddings Vertex AI utilise des représentations vectorielles denses : par exemple, text-embedding-gecko utilise des vecteurs de 768 dimensions. Les modèles d'embeddings vectoriels denses utilisent des méthodes d'apprentissage profond semblables à celles des grands modèles de langage. Contrairement aux vecteurs creux, qui ont tendance à mapper directement des mots à des nombres, les vecteurs denses sont conçus pour mieux représenter le sens d'un texte. L'utilisation d'embeddings denses dans l'IA générative fait qu'au lieu de rechercher des correspondances directes de mots ou de syntaxe, vous pouvez mieux rechercher des passages correspondant au sens de la requête, même si les passages n'utilisent pas la même langue.
- Pour en savoir plus sur les embeddings, consultez la Présentation des API d'embeddings.
- Pour en savoir plus sur les modèles d'embeddings textuels, consultez Embeddings de texte.
- Pour en savoir plus sur les langues compatibles avec chaque modèle d'embedding, consultez la page Langues de texte compatibles.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
- Choisissez un type de tâche pour votre job d'embeddings.
Modèles compatibles
Vous pouvez obtenir des embeddings de texte à l'aide des modèles suivants :
Modèles en anglais | Modèles multilingues |
---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
textembedding-gecko@003 |
text-multilingual-embedding-002 |
text-embedding-004 |
|
text-embedding-preview-0815 |
Si vous débutez avec ces modèles, nous vous recommandons d'utiliser les dernières versions.
Pour le texte en anglais, utilisez text-embedding-004
. Pour le texte multilingue, utilisez text-multilingual-embedding-002
.
Obtenir des embeddings de texte pour un extrait de texte
Vous pouvez obtenir des embedding textuels pour un extrait de texte à l'aide de l'API Vertex AI ou du SDK Vertex AI pour Python. Pour chaque requête, vous êtes limité à 250 textes d'entrée dans us-central1
. Dans les autres régions, le nombre maximal de textes d'entrée maximal est de 5.
L'API a une limite maximale de jetons d'entrée de 20 000. Les entrées dépassant cette limite génèrent une erreur 500. Chaque texte d'entrée individuel est également limité à 2 048 jetons. Tout excès est tronqué en mode silencieux. Vous pouvez également désactiver la troncature en mode silencieux en définissant autoTruncate
sur false
.
Par défaut, tous les modèles produisent une sortie avec 768 dimensions. Toutefois, les modèles suivants permettent aux utilisateurs de choisir une dimension de sortie comprise entre 1 et 768. En sélectionnant une dimension de sortie plus petite, les utilisateurs peuvent économiser de la mémoire et de l'espace de stockage, ce qui permet d'effectuer des calculs plus efficaces.
text-embedding-004
text-multilingual-embedding-002
text-embedding-preview-0815
Les exemples suivants utilisent le modèle text-embedding-004
.
REST
Pour obtenir des représentations vectorielles continues de texte, envoyez une requête POST en spécifiant l'ID de modèle du modèle de diffuseur.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet.
- TEXT : texte pour lequel vous souhaitez générer des embeddings. Limite : cinq textes de 2 048 jetons maximum par texte pour tous les modèles, à l'exception de
textembedding-gecko@001
. La longueur maximale de jeton d'entrée pourtextembedding-gecko@001
est de 3 072. - AUTO_TRUNCATE : si la valeur est
false
, le texte dépassant la limite de jetons entraîne l'échec de la requête. La valeur par défaut esttrue
.
Méthode HTTP et URL :
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict
Corps JSON de la requête :
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante. Notez que values
a été tronqué pour économiser de l'espace.
Exemple de commande curl
MODEL_ID="text-embedding-004"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Go.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Dernier modèle
Un modèle d'embedding est disponible en version preview:
text-embedding-preview-0815
Ce modèle est compatible avec un nouveau type de tâche CODE_RETRIEVAL_QUERY
, qui permet de récupérer des blocs de code pertinents à l'aide de requêtes en texte brut. Pour utiliser cette fonctionnalité, les blocs de code doivent être intégrés à l'aide du type de tâche RETRIEVAL_DOCUMENT
, tandis que les requêtes textuelles sont intégrées à l'aide de CODE_RETRIEVAL_QUERY
.
Pour explorer tous les types de tâches, consultez la documentation de référence sur les modèles.
Voici un exemple :
REST
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-preview-0815:predict -d \
$'{
"instances": [
{
"task_type": "CODE_RETRIEVAL_QUERY",
"content": "Function to add two numbers"
}
],
}'
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Go.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Les limites suivantes s'appliquent lorsque vous utilisez ces modèles :
- N'utilisez pas ces modèles en version preview sur des systèmes critiques ou de production.
- Ces modèles ne sont disponibles que dans la zone
us-central1
. - Les prédictions par lot ne sont pas prises en charge.
- La personnalisation n'est pas prise en charge.
Ajouter un embedding à une base de données vectorielle
Une fois que vous avez généré votre embedding, vous pouvez l'ajouter à une base de données vectorielles, telle que Vector Search. Cela permet une récupération à faible latence, ce qui devient essentiel à mesure que la taille de vos données augmente.
Pour en savoir plus sur Vector Search, consultez la page Présentation de Vector Search.
Étape suivante
- Pour en savoir plus sur les limites de débit, consultez Limites de débit de l'IA générative sur Vertex AI.
- Pour obtenir des prédictions par lot pour les embeddings, consultez Obtenir des prédictions par lot pour les embeddings textuels.
- Pour en savoir plus sur les embeddings multimodaux, consultez la page Obtenir des embeddings multimodaux.
- Pour régler un embedding, consultez Régler les embeddings textuels.
- Pour en savoir plus sur les recherches relatives à
text-embedding-004
ettext-multilingual-embedding-002
, consultez l'étude Gecko : embeddings de texte polyvalents distillés à partir de grands modèles de langage.