Predizioni batch con i modelli Claude di Anthropic

Le previsioni batch ti consentono di inviare più prompt che non sono sensibili alla latenza a un modello Claude di Anthropic. Rispetto alle previsioni online, in cui invii un prompt di input per ogni richiesta, puoi elaborare in batch un numero elevato di prompt di input in una singola richiesta.

Modelli Anthropic Claude supportati

Vertex AI supporta le previsioni in batch per i seguenti modelli Claude di Anthropic:

  • Claude 3.5 Sonnet v2 (claude-3-5-sonnet-v2@20241022)
  • Claude 3.5 Haiku (claude-3-5-haiku@20241022)

Prepara l'input

Prima di iniziare, prepara il set di dati di input in una tabella BigQuery o come file JSONL in Cloud Storage. L'input per entrambe le origini deve seguire il formato JSON dello schema dell'API Claude di Anthropoic, come mostrato nell'esempio seguente:

{
  "custom_id": "request-1",
  "request":  {
    "messages": [{"role": "user", "content": "Hello!"}],
    "anthropic_version": "vertex-2023-10-16",
    "max_tokens": 50
  }
}

BigQuery

La tabella di input BigQuery deve rispettare lo schema seguente:

Nome colonna Descrizione
custom_id Un ID per ogni richiesta per associare l'input all'output.
richiesta Il corpo della richiesta, ovvero il prompt di input, che deve rispettare lo schema dell'API Anthropic Claude
  • La tabella di input può avere altre colonne, che vengono ignorate dal job batch e passate direttamente alla tabella di output.
  • I job di previsione batch riservano due nomi di colonna per l'output della previsione batch: response(JSON) e status. Non utilizzare queste colonne nella tabella di input.

Cloud Storage

Per Cloud Storage, il file di input deve essere un file JSONL situato in un bucket Cloud Storage.

Richiedere una previsione batch

Effettua una previsione batch rispetto a un modello Claude utilizzando input provenienti da BigQuery o Cloud Storage. Puoi scegliere in modo indipendente di generare le previsioni in una tabella BigQuery o in un file JSONL in un bucket Cloud Storage.

BigQuery

Specifica la tabella di input, il modello e la posizione di output BigQuery. Il job di previsione batch e la tabella devono trovarsi nella stessa regione.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: una regione che supporta il modello Anthropic Claude selezionato (vedi Regioni Claude).
  • PROJECT_ID: il tuo ID progetto.
  • MODEL: il nome del modello.
  • INPUT_URI: la tabella BigQuery in cui si trova l'input di previsione batch, ad esempio bq://myproject.mydataset.input_table.
  • OUTPUT_FORMAT: per eseguire l'output in una tabella BigQuery, specifica bigquery. Per eseguire l'output in un bucket Cloud Storage, specifica jsonl.
  • DESTINATION: per BigQuery, specifica bigqueryDestination. Per Cloud Storage, specifica gcsDestination.
  • OUTPUT_URI_FIELD_NAME: Per BigQuery, specifica outputUri. Per Cloud Storage, specifica outputUriPrefix.
  • OUTPUT_URI: per BigQuery, specifica la posizione della tabella, ad esempio bq://myproject.mydataset.output_result. Per Cloud Storage, specifica la posizione del bucket e della cartella, ad esempio gs://mybucket/path/to/outputfile.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/anthropic/models/MODEL",
  "inputConfig": {
    "instancesFormat":"bigquery",
    "bigquerySource":{
      "inputUri" : "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  }
}'

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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

Dovresti ricevere una risposta JSON simile alla seguente.

Cloud Storage

Specifica la posizione di Cloud Storage, il modello e la posizione di output del file JSONL.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: una regione che supporta il modello Anthropic Claude selezionato (vedi Regioni Claude).
  • PROJECT_ID: il tuo ID progetto.
  • MODEL: il nome del modello.
  • INPUT_URIS: un elenco separato da virgole delle posizioni di Cloud Storage dell'input di previsione batch JSONL, ad esempio gs://bucketname/path/to/jsonl.
  • OUTPUT_FORMAT: per eseguire l'output in una tabella BigQuery, specifica bigquery. Per eseguire l'output in un bucket Cloud Storage, specifica jsonl.
  • DESTINATION: per BigQuery, specifica bigqueryDestination. Per Cloud Storage, specifica gcsDestination.
  • OUTPUT_URI_FIELD_NAME: Per BigQuery, specifica outputUri. Per Cloud Storage, specifica outputUriPrefix.
  • OUTPUT_URI: per BigQuery, specifica la posizione della tabella, ad esempio bq://myproject.mydataset.output_result. Per Cloud Storage, specifica la posizione del bucket e della cartella, ad esempio gs://mybucket/path/to/outputfile.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/anthropic/models/MODEL",
  "inputConfig": {
    "instancesFormat":"jsonl",
    "gcsSource":{
      "uris" : "INPUT_URIS"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  }
}'

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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

Dovresti ricevere una risposta JSON simile alla seguente.

Ottenere lo stato di un job di previsione batch

Visualizza lo stato del job di previsione batch per verificare se è stato completato correttamente.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: la regione in cui si trova il tuo job batch.
  • JOB_ID: l'ID job batch restituito al momento della creazione del job.

Metodo HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Esegui questo comando:

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

Esegui questo comando:

$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

Dovresti ricevere una risposta JSON simile alla seguente.

Recuperare l'output della previsione batch

Al termine di un job di previsione batch, recupera l'output dalla posizione specificata. Per BigQuery, l'output si trova nella colonna response(JSON) della tabella BigQuery di destinazione. Per Cloud Storage, l'output viene salvato come file JSONL nella posizione di Cloud Storage di output.

Problemi noti

Di seguito sono riportati i problemi noti di questa funzionalità.

Errori interni per il primo job batch in una regione.

Per gli utenti che utilizzano per la prima volta la previsione batch in una regione, a volte il job di previsione batch non va a buon fine con il seguente messaggio:

"state": "JOB_STATE_FAILED", "error": { "code": 13, "message": "INTERNAL" }

Questo problema si verifica perché l'account di servizio interno che esegue il job di previsione batch è stato appena creato e non è stato propagato tramite la pipeline di provisioning, causando l'errore interno dei job batch con errori di autorizzazione. Gli utenti che riscontrano questo errore possono riprovare a inviare una richiesta collettiva dopo circa 10 minuti.

I job annullati non restituiscono risultati.

A causa di un bug noto, se un job viene annullato prima del termine o del timeout, nella posizione di output non vengono visualizzati risultati.