Obtenir des prédictions par lot pour Gemini

Les prédictions par lot vous permettent d'envoyer un grand nombre de requêtes multimodales dans une seule requête par lot.

Pour en savoir plus sur le workflow par lot et sur la mise en forme des données d'entrée, consultez Obtenir des prédictions par lot pour Gemini.

Modèles compatibles :

Modèle Version
Gemini 1.5 Flash gemini-1.5-flash-002
gemini-1.5-flash-001
Gemini 1.5 Pro gemini-1.5-pro-002
gemini-1.5-pro-001
Gemini 1.0 Pro gemini-1.0-pro-001
gemini-1.0-pro-002

Exemple de syntaxe

Syntaxe permettant d'envoyer une requête d'API de prédiction par lot.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/batchPredictionJobs \
-d '{
    "displayName": "...",
    "model": "publishers/google/models/${MODEL_ID}",
    "inputConfig": {
      "instancesFormat":"bigquery",
      "bigquerySource":{
        "inputUri" : "..."
      }
    },
    "outputConfig": {
      "predictionsFormat":"bigquery",
      "bigqueryDestination":{
        "outputUri": "..."
        }
    }
}'

Paramètres

Consultez des exemples pour en savoir plus sur l'implémentation.

Requête de corps

Paramètres

displayName

Nom que vous choisissez pour votre job.

model

Modèle à utiliser pour la prédiction par lot.

inputConfig

Format des données. Pour la prédiction par lot Gemini, l'entrée BigQuery est compatible.

outputConfig

Configuration de sortie qui détermine l'emplacement de sortie du modèle.

inputConfig

Paramètres

instancesFormat

Format d'entrée de la requête. Utilisez bigquery.

bigquerySource.inputUri

URI source d'entrée. Il s'agit d'un URI de table BigQuery au format bq://PROJECT_ID.DATASET.TABLE.

outputConfig

Paramètres

predictionsFormat

Format de sortie de la prédiction. Doit correspondre au format d'entrée. Utilisez bigquery.

bigqueryDestination.outputUri

URI BigQuery de la table de sortie cible, au format bq://PROJECT_ID.DATASET.TABLE. Si la table n'existe pas déjà, elle est créée automatiquement.

Exemples

Demander une réponse par lot

Les requêtes par lots pour les modèles multimodaux n'acceptent que les sources de stockage BigQuery. Pour en savoir plus, consultez les ressources suivantes :

Selon le nombre d'éléments d'entrée envoyés, la tâche de génération par lot peut prendre un certain temps.

REST

Pour tester une requête multimodale à l'aide de l'API Vertex AI, envoyez une requête POST au point de terminaison du modèle du diffuseur.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : le nom de votre projet Google Cloud
  • BP_JOB_NAME : nom que vous choisissez pour votre job.
  • INPUT_URI : URI source de l'entrée. Il s'agit d'un URI de table BigQuery au format bq://PROJECT_ID.DATASET.TABLE. Ou l'URI de votre bucket Cloud Storage.
  • INPUT_SOURCE : type de source d'entrée. Les options sont bigquerySource et gcsSource.
  • INSTANCES_FORMAT : format des instances d'entrée (peut être "jsonl" ou "bigquery").
  • OUTPUT_URI : URI de la table de sortie ou de la table de sortie cible, au format bq://PROJECT_ID.DATASET.TABLE. Si la table n'existe pas déjà, elle est créée automatiquement.

Méthode HTTP et URL :

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs

Corps JSON de la requête :

{
    "displayName": "BP_JOB_NAME",
    "model": "publishers/google/models/gemini-1.0-pro-002",
    "inputConfig": {
      "instancesFormat":"INSTANCES_FORMAT",
      "inputSource":{ INPUT_SOURCE
        "inputUri" : "INPUT_URI"
      }
    },
    "outputConfig": {
      "predictionsFormat":"bigquery",
      "bigqueryDestination":{
        "outputUri": "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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/{PROJECT_ID}/locations/us-central1/batchPredictionJobs/{BATCH_JOB_ID}",
  "displayName": "My first batch prediction",
  "model": "projects/{PROJECT_ID}/locations/us-central1/models/gemini-1.0-pro-002",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_input"
    }
  },
  "modelParameters": {},
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
      "outputUri": "bq://{PROJECT_ID}.mydataset.batch_predictions_output"
    }
  },
  "state": "JOB_STATE_PENDING",
  "createTime": "2023-07-12T20:46:52.148717Z",
  "updateTime": "2023-07-12T20:46:52.148717Z",
  "modelVersionId": "1"
}

La réponse inclut un identifiant unique pour le job par lot. Vous pouvez interroger l'état de la tâche par lot à l'aide de BATCH_JOB_ID jusqu'à ce que le paramètre state soit défini sur JOB_STATE_SUCCEEDED. Exemple :

curl \
  -X GET \
  -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/batchPredictionJobs/BATCH_JOB_ID

Récupérer une sortie par lot

Une fois la tâche de prédiction par lot terminée, le résultat est stocké dans la table BigQuery que vous avez spécifiée dans votre requête.

Étape suivante