Prédictions par lots

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écifiez jsonl.
  • DESTINATION : pour BigQuery, spécifiez bigqueryDestination. Pour Cloud Storage, spécifiez gcsDestination.
  • OUTPUT_URI_FIELD_NAME : pour BigQuery, spécifiez outputUri. Pour Cloud Storage, spécifiez outputUriPrefix.
  • 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 exemple gs://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écifiez jsonl.
  • DESTINATION : pour BigQuery, spécifiez bigqueryDestination. Pour Cloud Storage, spécifiez gcsDestination.
  • OUTPUT_URI_FIELD_NAME : pour BigQuery, spécifiez outputUri. Pour Cloud Storage, spécifiez outputUriPrefix.
  • 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 exemple gs://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.