Les prédictions par lots vous permettent d'envoyer efficacement plusieurs requêtes textuelles qui ne sont pas sensibles à la latence à un modèle Llama. Contrairement aux prédictions en ligne, où vous envoyez une requête d'entrée pour chaque requête, vous pouvez regrouper un grand nombre de requêtes d'entrée en une seule.
Aucuns frais ne sont facturés pour les prédictions par lot pendant la période de preview.
Modèles Llama compatibles
Vertex AI est compatible avec les prédictions par lots pour les modèles Llama suivants :
Préparer l'entrée
Avant de commencer, préparez vos entrées dans une table BigQuery ou sous forme de fichier JSONL dans Cloud Storage. L'entrée pour les deux sources doit respecter le format JSON du schéma de l'API OpenAI, comme illustré dans l'exemple suivant :
{"custom_id": "test-request-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "meta/llama-3.1-405b-instruct-maas", "messages": [{"role": "system", "content": "You are a chef."}, {"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}
BigQuery
Votre table d'entrée BigQuery doit respecter le schéma suivant :
Nom de la colonne | Description |
---|---|
custom_id | Un ID pour chaque requête afin de faire correspondre l'entrée à la sortie. |
méthode | Méthode de la requête. |
url | Point de terminaison de la requête. |
body(JSON) | Votre requête d'entrée. |
- Votre table d'entrée peut comporter d'autres colonnes, qui sont ignorées par le job par lot et transmises directement à la table de sortie.
- Les jobs de prédiction par lots réservent deux noms de colonnes pour la sortie de prédiction par lots : response(JSON) et id. N'utilisez pas ces colonnes dans la table d'entrée.
- Les colonnes method et url sont supprimées et ne sont pas incluses dans le tableau de sortie.
Cloud Storage
Pour Cloud Storage, le fichier d'entrée doit être un fichier JSONL situé dans un bucket Cloud Storage.
Demander une prédiction par lots
Effectuez une prédiction par lots sur un modèle Llama à l'aide d'entrées provenant de BigQuery ou de Cloud Storage. Vous pouvez choisir d'exporter les prédictions vers une table BigQuery ou un fichier JSONL dans un bucket Cloud Storage.
BigQuery
Spécifiez votre table d'entrée, votre modèle et votre emplacement de sortie BigQuery. Le job de prédiction par lots et votre table doivent se trouver dans la même région.
REST
Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : région compatible avec les modèles Llama.
- PROJECT_ID : l'ID de votre projet.
- MODEL : nom du modèle à régler.
- INPUT_URI : table BigQuery où se trouve votre entrée de prédiction par lots, par exemple
myproject.mydataset.input_table
. - OUTPUT_FORMAT : pour générer une sortie dans une table BigQuery, spécifiez
bigquery
. Pour générer la sortie dans un bucket Cloud Storage, spécifiezjsonl
. - DESTINATION : pour BigQuery, spécifiez
bigqueryDestination
. Pour Cloud Storage, spécifiezgcsDestination
. - OUTPUT_URI_FIELD_NAME : pour BigQuery, spécifiez
outputUri
. Pour Cloud Storage, spécifiezoutputUriPrefix
. - OUTPUT_URI : pour BigQuery, spécifiez l'emplacement de la table, par exemple
myproject.mydataset.output_result
. Pour Cloud Storage, spécifiez l'emplacement du bucket et du dossier, par exemplegs://mybucket/path/to/outputfile
.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corps JSON de la requête :
'{ "displayName": "JOB_NAME", "model": "publishers/meta/models/MODEL", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }'
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante.
Cloud Storage
Spécifiez l'emplacement Cloud Storage, le modèle et l'emplacement de sortie de votre fichier JSONL.
REST
Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : région compatible avec les modèles Llama.
- PROJECT_ID : l'ID de votre projet.
- MODEL : nom du modèle à régler.
- INPUT_URI : emplacement Cloud Storage de votre entrée de prédiction par lots JSONL, par exemple
gs://bucketname/path/to/jsonl
. - OUTPUT_FORMAT : pour générer une sortie dans une table BigQuery, spécifiez
bigquery
. Pour générer la sortie dans un bucket Cloud Storage, spécifiezjsonl
. - DESTINATION : pour BigQuery, spécifiez
bigqueryDestination
. Pour Cloud Storage, spécifiezgcsDestination
. - OUTPUT_URI_FIELD_NAME : pour BigQuery, spécifiez
outputUri
. Pour Cloud Storage, spécifiezoutputUriPrefix
. - OUTPUT_URI : pour BigQuery, spécifiez l'emplacement de la table, par exemple
myproject.mydataset.output_result
. Pour Cloud Storage, spécifiez l'emplacement du bucket et du dossier, par exemplegs://mybucket/path/to/outputfile
.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corps JSON de la requête :
'{ "displayName": "JOB_NAME", "model": "publishers/meta/models/MODEL", "inputConfig": { "instancesFormat":"jsonl", "gcsDestination":{ "uris" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }'
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante.
Obtenir l'état d'un job de prédiction par lots
Obtenez l'état de votre job de prédiction par lots pour vérifier qu'il a bien été effectué. La durée du job dépend du nombre d'éléments d'entrée que vous avez envoyés.
REST
Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet.
- LOCATION : région où se trouve votre job par lot.
- JOB_ID : ID du job par lot renvoyé lors de la création du job.
Méthode HTTP et URL :
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante.
Récupérer le résultat
Une fois le job de prédiction par lots terminé, récupérez la sortie à partir de l'emplacement que vous avez spécifié. Pour BigQuery, la sortie se trouve dans la colonne response(JSON) de votre table BigQuery de destination. Pour Cloud Storage, elle est enregistrée en tant que fichier JSONL à l'emplacement Cloud Storage de sortie.