L'ottimizzazione del modello è un processo cruciale per adattare Gemini a svolgere attività specifiche con maggiore precisione e accuratezza. L'ottimizzazione fornisce al modello un set di dati di addestramento che contiene un insieme di esempi di attività downstream specifiche.
Utilizza l'API di ottimizzazione di Gemini per i seguenti casi d'uso:
Modelli supportati:
Puoi utilizzare il fine-tuning supervisionato sui seguenti modelli Gemini:
È supportato anche Translation LLM V2 (translation-llm-002
).
Sintassi di esempio
Sintassi per ottimizzare un modello.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs \ -d '{ "baseModel": "...", "supervisedTuningSpec" : { ... "hyper_parameters": { ... }, }, "tunedModelDisplayName": "", }'
Elenco dei parametri
Per informazioni dettagliate sull'implementazione, consulta gli esempi.
Corpo della richiesta
Il corpo della richiesta contiene dati con i seguenti parametri:
Parametri | |
---|---|
|
(Facoltativo) Nome del foundation model che viene ottimizzato. |
|
Il nome visualizzato di |
supervisedTuningSpec
Parametri | |
---|---|
|
URI Cloud Storage del set di dati di addestramento. Il set di dati deve essere formattato come file JSONL. Per ottenere risultati ottimali, fornisci almeno 100-500 esempi. Per saperne di più, consulta Informazioni sui set di dati di ottimizzazione supervisionata. |
|
(Facoltativo) URI Cloud Storage del set di dati di convalida. Il set di dati deve essere formattato come file JSONL. Un set di dati può contenere fino a 256 esempi. Se fornisci questo file, i dati vengono utilizzati per generare periodicamente metriche di convalida durante l'ottimizzazione. Per saperne di più, consulta Informazioni sui set di dati di ottimizzazione supervisionata . |
|
(Facoltativo) Il numero di passaggi completi che il modello esegue sull'intero set di dati di addestramento durante l'addestramento. Vertex AI regola automaticamente il valore predefinito in base alle dimensioni del set di dati di addestramento. Questo valore si basa sui risultati del benchmarking per ottimizzare la qualità dell'output del modello. |
|
(Facoltativo) Moltiplicatore per la regolazione del tasso di apprendimento predefinito. |
|
(Facoltativo) Dimensioni dell'adattatore per l'ottimizzazione. |
|
(Facoltativo) Nome visualizzato di |
AdapterSize
Dimensioni dell'adattatore per il job di ottimizzazione.
Parametri | |
---|---|
|
Dimensioni dell'adattatore non specificate. |
|
Dimensioni adattatore 1. |
|
Dimensioni adattatore 4. |
|
Dimensioni adattatore 8. |
|
Dimensioni adattatore 16. |
Esempi
Crea un job di ottimizzazione supervisionata
Puoi creare un job di ottimizzazione del modello di testo supervisionato utilizzando l'SDK Vertex AI Python o inviando una richiesta POST.
Caso d'uso di base
Il caso d'uso di base imposta solo i valori per baseModel
e training_dataset_uri
.
Tutti gli altri parametri utilizzano i valori predefiniti.
REST
Per creare un job di ottimizzazione del modello, invia una richiesta POST utilizzando il
metodo tuningJobs.create
.
Tieni presente che alcuni parametri non sono supportati da tutti i modelli. Assicurati
di includere solo i parametri applicabili per il modello che stai
ottimizzando.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Questa è anche la regione predefinita in cui viene caricato il modello ottimizzato.
- BASE_MODEL: Nome del modello di base da ottimizzare.
- TRAINING_DATASET_URI: l'URI Cloud Storage del set di dati di addestramento. Il set di dati deve essere formattato come file JSONL. Per ottenere risultati ottimali, fornisci almeno 100-500 esempi. Per saperne di più, consulta Informazioni sui set di dati di ottimizzazione supervisionata .
Metodo HTTP e URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
Corpo JSON della richiesta:
{ "baseModel": "BASE_MODEL", "supervisedTuningSpec" : { "training_dataset_uri": "TRAINING_DATASET_URI" }, }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
$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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Python
Caso d'uso avanzato
Il caso d'uso avanzato si basa su quello di base, ma imposta anche valori per
hyper_parameters
facoltativi, come epoch_count
, learning_rate_multiplier
e adapter_size
.
REST
Per creare un job di ottimizzazione del modello, invia una richiesta POST utilizzando il
metodo tuningJobs.create
.
Tieni presente che alcuni parametri non sono supportati da tutti i modelli. Assicurati
di includere solo i parametri applicabili per il modello che stai
ottimizzando.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Questa è anche la regione predefinita in cui viene caricato il modello ottimizzato.
- BASE_MODEL: Nome del modello di base da ottimizzare.
- TRAINING_DATASET_URI: l'URI Cloud Storage del set di dati di addestramento. Il set di dati deve essere formattato come file JSONL. Per ottenere risultati ottimali, fornisci almeno 100-500 esempi. Per saperne di più, consulta Informazioni sui set di dati di ottimizzazione supervisionata .
- VALIDATION_DATASET_URI(Facoltativo) L'URI Cloud Storage del file del set di dati di convalida.
- EPOCH_COUNT(Facoltativo) Il numero di passaggi completi che il modello esegue sull'intero set di dati di addestramento durante l'addestramento. Lascia il campo vuoto per utilizzare il valore consigliato precompilato.
- ADAPTER_SIZE(Facoltativo) Le dimensioni dell'adattatore da utilizzare per il job di ottimizzazione. Le dimensioni dell'adattatore influiscono sul numero di parametri addestrabili per il job di ottimizzazione. Un adattatore più grande implica che il modello può apprendere attività più complesse, ma richiede un set di dati di addestramento più grande e tempi di addestramento più lunghi.
- LEARNING_RATE_MULTIPLIER: facoltativo: un moltiplicatore da applicare al tasso di apprendimento suggerito. Lascia il campo vuoto per utilizzare il valore consigliato.
- EXPORT_LAST_CHECKPOINT_ONLY(Facoltativo) Imposta
true
per utilizzare solo l'ultimo checkpoint. - METRIC_SPEC(Facoltativo) Una o più
specifiche delle metriche che utilizzi
per eseguire una valutazione utilizzando il servizio di valutazione dell'AI generativa. Puoi utilizzare le seguenti specifiche delle metriche:
"pointwise_metric_spec"
,"pairwise_metric_spec"
. - METRIC_SPEC_FIELD_NAME(Facoltativo) I campi obbligatori per la specifica della metrica scelta. Ad esempio,
"metric_prompt_template"
- METRIC_SPEC_FIELD_NAME_CONTENT(Facoltativo) Il campo
contenuto per la specifica della metrica scelta. Ad esempio, puoi utilizzare il seguente contenuto del campo per una
valutazione punto per punto:
"Evaluate the fluency of this sentence: {response}. Give score from 0 to 1. 0 - not fluent at all. 1 - very fluent."
- CLOUD_STORAGE_BUCKET(Facoltativo) Il bucket Cloud Storage in cui archiviare i risultati di un'esecuzione di valutazione da parte del servizio Gen AI evaluation service.
- TUNED_MODEL_DISPLAYNAME(Facoltativo) Un nome visualizzato per il modello ottimizzato. Se non viene impostato, viene generato un nome casuale.
- KMS_KEY_NAME(Facoltativo) L'identificatore della risorsa Cloud KMS della chiave di crittografia gestita dal cliente utilizzata per proteggere una risorsa. La chiave ha il formato:
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key
. La chiave deve trovarsi nella stessa regione in cui viene creata la risorsa di computing. Per saperne di più, consulta Chiavi di crittografia gestite dal cliente (CMEK). - SERVICE_ACCOUNT(Facoltativo) Il account di servizio con cui viene eseguito il carico di lavoro tuningJob. Se non specificato, viene utilizzato l'agente di servizio Vertex AI Secure Fine-Tuning nel progetto. Consulta la sezione Agente di servizio di ottimizzazione. Se prevedi di utilizzare un service account gestito dal cliente, devi concedere il ruolo
roles/aiplatform.tuningServiceAgent
al account di servizio. Concedi anche il ruolo Agente di servizio di ottimizzazioneroles/iam.serviceAccountTokenCreator
al service account gestito dal cliente.
Metodo HTTP e URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
Corpo JSON della richiesta:
{ "baseModel": "BASE_MODEL", "supervisedTuningSpec" : { "trainingDatasetUri": "TRAINING_DATASET_URI", "validationDatasetUri": "VALIDATION_DATASET_URI", "hyperParameters": { "epochCount": "EPOCH_COUNT", "adapterSize": "ADAPTER_SIZE", "learningRateMultiplier": "LEARNING_RATE_MULTIPLIER" }, "exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY, "evaluationConfig": { "metrics": [ { "aggregation_metrics": ["AVERAGE", "STANDARD_DEVIATION"], "METRIC_SPEC": { "METRIC_SPEC_FIELD_NAME": METRIC_SPEC_FIELD_CONTENT } }, ], "outputConfig": { "gcs_destination": { "output_uri_prefix": "CLOUD_STORAGE_BUCKET" } }, }, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME", "encryptionSpec": { "kmsKeyName": "KMS_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
$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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Python
Elenco job di ottimizzazione
Puoi visualizzare un elenco dei job di ottimizzazione nel tuo progetto attuale utilizzando l'SDK Vertex AI per Python o inviando una richiesta GET.
REST
Per creare un job di ottimizzazione del modello, invia una richiesta POST utilizzando il
metodo tuningJobs.create
.
Tieni presente che alcuni parametri non sono supportati da tutti i modelli. Assicurati
di includere solo i parametri applicabili per il modello che stai
ottimizzando.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: .
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Questa è anche la regione predefinita in cui viene caricato il modello ottimizzato.
Metodo HTTP e URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Python
Visualizzare i dettagli di un job di ottimizzazione
Puoi ottenere i dettagli di un job di ottimizzazione utilizzando l'SDK Vertex AI per Python o inviando una richiesta GET.
REST
Per visualizzare un elenco dei job di ottimizzazione del modello, invia una richiesta GET utilizzando il metodo
tuningJobs.get
e specifica TuningJob_ID
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: .
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Questa è anche la regione predefinita in cui viene caricato il modello ottimizzato.
- TUNING_JOB_ID: l'ID del job di ottimizzazione.
Metodo HTTP e URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Python
Annullamento di un job di ottimizzazione
Puoi annullare un job di ottimizzazione utilizzando l'SDK Vertex AI per Python o inviando una richiesta POST.
REST
Per visualizzare un elenco dei job di ottimizzazione del modello, invia una richiesta GET utilizzando il metodo
tuningJobs.cancel
e specifica TuningJob_ID
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: .
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Questa è anche la regione predefinita in cui viene caricato il modello ottimizzato.
- TUNING_JOB_ID: l'ID del job di ottimizzazione.
Metodo HTTP e URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Python
Passaggi successivi
Per la documentazione dettagliata, consulta quanto segue: