L'ottimizzazione del modello è un processo fondamentale per adattare Gemini a svolgere attività specifiche con maggiore precisione. L'ottimizzazione del modello funziona fornendo al modello un set di dati di addestramento contenente un insieme di esempi di attività successive specifiche.
Utilizza l'API di ottimizzazione di Gemini per i seguenti casi d'uso:
Modelli supportati:
Puoi utilizzare l'ottimizzazione fine supervisionata sui seguenti modelli Gemini:
Modello | Versione |
---|---|
Gemini 1.5 Pro | gemini-1.5-pro-002 |
Gemini 1.5 Flash | gemini-1.5-flash-002 |
Gemini 1.0 Pro | gemini-1.0-pro-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 i dati con i seguenti parametri:
Parametri | |
---|---|
|
(Facoltativo) Nome del modello di base in fase di ottimizzazione. I valori supportati sono: |
|
Il nome visualizzato del |
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 ulteriori informazioni, 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 la messa a punto. Per ulteriori informazioni, consulta Informazioni sui set di dati di ottimizzazione supervisionata . |
|
(Facoltativo) Numero di passaggi completi eseguiti dal modello 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 regolare il tasso di apprendimento predefinito. |
|
(Facoltativo) Dimensioni dell'adattatore per l'ottimizzazione. |
|
(Facoltativo) Nome visualizzato del |
AdapterSize
Dimensioni dell'adattatore per il job di ottimizzazione.
Parametri | |
---|---|
|
Dimensioni dell'adattatore non specificate. |
|
Dimensioni dell'adattatore 1. |
|
Dimensioni adattatore 4. |
|
Dimensioni dell'adattatore 8. |
|
Dimensioni dell'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 per Python o inviando una richiesta POST.
Caso d'uso di base
Il caso d'uso di base imposta i valori solo per baseModel
e training_dataset_uri
.
Per tutti gli altri parametri vengono utilizzati 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. Si tratta anche della regione predefinita in cui viene caricato il modello ottimizzato.
- BASE_MODEL: il nome del
modello di base da ottimizzare. Valori supportati:
gemini-1.5-pro-002
,gemini-1.5-flash-002
,gemini-1.0-pro-002
. - TRAINING_DATASET_URI: 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 ulteriori informazioni, 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 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://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
,
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://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 espande quello di base, ma imposta anche i valori per hyper_parameters
facoltativo, ad esempio 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. Si tratta anche della regione predefinita in cui viene caricato il modello ottimizzato.
- BASE_MODEL: il nome del
modello di base da ottimizzare. Valori supportati:
gemini-1.5-pro-002
,gemini-1.5-flash-002
egemini-1.0-pro-002
. - TRAINING_DATASET_URI: 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 ulteriori informazioni, consulta Informazioni sui set di dati di ottimizzazione supervisionata .
- VALIDATION_DATASET_URIFacoltativo: l'URI Cloud Storage del file del set di dati di convalida.
- EPOCH_COUNTFacoltativo: il numero di passaggi completi effettuati dal modello sull'intero set di dati di addestramento durante l'addestramento. Lascialo vuoto per utilizzare il valore consigliato precompilato.
- ADAPTER_SIZE(Facoltativo) La dimensione dell'adattatore da utilizzare per il job di ottimizzazione. Le dimensioni dell'adattatore influiscono sul numero di parametri addestrabili per il job di ottimizzazione. Una dimensione dell'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 consigliato. Lascialo vuoto per utilizzare il valore consigliato.
- TUNED_MODEL_DISPLAYNAME(Facoltativo) Un nome visualizzato per il modello ottimizzato. Se non è impostato, viene generato un nome casuale.
- KMS_KEY_NAMEFacoltativo: 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 è stata creata la risorsa di calcolo. Per saperne di più, consulta Chiavi di crittografia gestite dal cliente (CMEK). - SERVICE_ACCOUNT(Facoltativo) L'account di servizio con cui viene eseguito il carico di lavoro tuningJob. Se non specificato, viene utilizzato l'agente di servizio di ottimizzazione fine sicura Vertex AI nel progetto. Consulta Tuning Service Agent. Se prevedi di utilizzare un account di servizio gestito dal cliente, devi concedere il ruolo
roles/aiplatform.tuningServiceAgent
all'account di servizio. Concedi anche l'autorizzazionevertex-ai-service-account
all'agente di servizio di ottimizzazione.
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 }, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME", "encryptionSpec": { "kmsKeyName": "KMS_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT" }
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://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
,
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://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 di job di ottimizzazione nel tuo progetto corrente 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: il tuo ID progetto.
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Si tratta anche della 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 delle seguenti 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
Ottenere 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 di 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: il tuo ID progetto.
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Si tratta anche della 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 delle seguenti 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
Annullare 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 di 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: il tuo ID progetto.
- TUNING_JOB_REGION: la regione in cui viene eseguito il job di ottimizzazione. Si tratta anche della 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 delle seguenti 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: