Ottimizza i modelli Gemini mediante l'ottimizzazione supervisionata

Questo documento descrive come ottimizzare un modello Gemini utilizzando dei modelli.

Prima di iniziare

Prima di iniziare, devi preparare un set di dati di ottimizzazione fine supervisionato. A seconda del caso d'uso, esistono requisiti diversi.

Modelli supportati

  • gemini-1.5-pro-002 (in GA)
  • gemini-1.5-flash-002(in GA)
  • gemini-1.0-pro-002 (in anteprima, supporta solo la regolazione del testo)

Crea un job di ottimizzazione

Puoi creare un job di ottimizzazione supervisionata utilizzando l'API REST, l'SDK Vertex AI per Python, la console Google Cloud o Colab Enterprise.

REST

Per creare un job di ottimizzazione del modello, invia una richiesta POST utilizzando il metodo tuningJobs.create. Alcuni parametri non sono supportati da tutti i modelli. Ensure di includere solo i parametri applicabili per il modello che stai dell'ottimizzazione.

Prima di utilizzare i dati della richiesta, effettua 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: il nome del modello di base da ottimizzare. Valori supportati: gemini-1.5-pro-002, gemini-1.5-flash-002 e 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.
  • 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 influenzano il numero di parametri addestrabili per il job di ottimizzazione. Una dimensione dell'adattatore maggiore implica che il modello può apprendere attività più complesse, ma richiede un set di dati di addestramento più ampio e tempi di addestramento più lunghi.
  • LEARNING_RATE_MULTIPLIER: Facoltativo: A da applicare al tasso di apprendimento suggerito. Lascialo non configurato per utilizzare il valore consigliato.
  • TUNED_MODEL_DISPLAYNAME(Facoltativo) Un display del modello ottimizzato. Se non viene impostato, viene generato un nome casuale.

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"
}

Per inviare la richiesta, scegli una delle seguenti 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, 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.

Comando curl di esempio

PROJECT_ID=myproject
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
   "baseModel": "gemini-1.5-pro-002",
   "supervisedTuningSpec" : {
      "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
      "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl"
   },
   "tunedModelDisplayName": "tuned_gemini_pro"
}'

Python


import time

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

sft_tuning_job = sft.train(
    source_model="gemini-1.5-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_train_data.jsonl",
    # The following parameters are optional
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_validation_data.jsonl",
    epochs=4,
    adapter_size=4,
    learning_rate_multiplier=1.0,
    tuned_model_display_name="tuned_gemini_1_5_pro",
)

# Polling for job completion
while not sft_tuning_job.has_ended:
    time.sleep(60)
    sft_tuning_job.refresh()

print(sft_tuning_job.tuned_model_name)
print(sft_tuning_job.tuned_model_endpoint_name)
print(sft_tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# <google.cloud.aiplatform.metadata.experiment_resources.Experiment object at 0x7b5b4ae07af0>

Console

Per ottimizzare un modello di testo con l'ottimizzazione supervisionata utilizzando la console Google Cloud, segui questi passaggi:

  1. Nella sezione Vertex AI della console Google Cloud, vai alla Pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Fai clic su Crea modello ottimizzato.

  3. In Metodo di ottimizzazione, seleziona il pulsante di opzione Ottimizzazione supervisionata.

  4. In Dettagli modello, configura quanto segue:

    1. Nel campo Nome del modello ottimizzato, inserisci un nome per il nuovo modello ottimizzato modello, fino a 128 caratteri.
    2. Nel campo Modello di base, seleziona gemini-1.5-pro-002.
    3. Nel campo del menu a discesa Regione, seleziona la regione in cui viene eseguito il job di ottimizzazione della pipeline e in cui è stato eseguito il deployment del modello ottimizzato.
  5. (Facoltativo) Espandi la freccia menu a discesa Opzioni avanzate e configura le seguenti:

    1. Nel campo Numero di epoche, inserisci il numero di passaggi per cui eseguire dell'ottimizzazione del modello.
    2. Nel campo Dimensione adattatore, inserisci la dimensione dell'adattatore da utilizzare per ottimizzare il modello.
    3. Nel campo Moltiplicatore del tasso di apprendimento, inserisci un valore. Inserisci la dimensione del passaggio in ogni iterazione. Il valore predefinito è 1.
  6. Fai clic su Continua.

    Si apre la pagina Set di dati di ottimizzazione.

  7. Per caricare il file di un set di dati, seleziona una delle seguenti opzioni:

    1. Se non hai ancora caricato un set di dati, seleziona il pulsante di opzione Carica file su Cloud Storage.
    2. Nel campo Seleziona file JSONL, fai clic su Sfoglia e seleziona il file del tuo set di dati.
    3. Nel campo Posizione del set di dati, fai clic su Sfoglia e seleziona il bucket Cloud Storage in cui vuoi archiviare il file del set di dati.
    4. Se il file del set di dati si trova già in un bucket Cloud Storage, seleziona il pulsante di opzione File esistente su Cloud Storage.
    5. Nel campo Percorso file di Cloud Storage, fai clic su Sfoglia e seleziona il Bucket Cloud Storage in cui si trova il file del set di dati.
  8. (Facoltativo) Per ottenere le metriche di convalida durante l'addestramento, fai clic sul pulsante di attivazione/disattivazione Abilita convalida del modello.

    1. Nel file Validation dataset (Set di dati di convalida), inserisci il percorso Cloud Storage di il set di dati di convalida.
  9. Fai clic su Avvia ottimizzazione.

    Il nuovo modello viene visualizzato nella sezione Modelli ottimizzati di Gemini Pro della pagina Ottimizza e distilla. Al termine dell'ottimizzazione del modello, lo Stato indica Riuscito.

Colab Enterprise

Puoi creare un job di ottimizzazione del modello in Vertex AI utilizzando riquadro laterale in Colab Enterprise. Il riquadro laterale aggiunge gli snippet di codice pertinenti al tuo notebook. Poi modifichi gli snippet di codice ed eseguili per creare il tuo job di ottimizzazione. Per scoprire di più sull'utilizzo del riquadro laterale con i job di ottimizzazione di Vertex AI, consulta Interagire con Vertex AI per ottimizzare un modello.

  1. Nella console Google Cloud, vai alla pagina Notebook di Colab Enterprise.

    Vai a Notebooks

  2. Nel menu Regione, seleziona la regione in cui si trova il blocco note.

  3. Nella scheda I miei quaderni, fai clic sul quaderno che vuoi aprire. Se non hai ancora creato un blocco note, crea un blocco note.

  4. A destra del blocco note, fai clic sul riquadro laterale  Ottimizzazione .

    Il riquadro laterale espande la scheda Correzione.

  5. Fai clic sul pulsante Ottimizza un modello Gemini.

    Colab Enterprise aggiunge celle di codice al tuo blocco note per sull'ottimizzazione di un modello Gemini.

  6. Nel blocco note, individua la cella di codice in cui sono memorizzati i valori dei parametri. Utilizzerai questi parametri per interagire con Vertex AI.

  7. Aggiorna i valori dei seguenti parametri:

    • PROJECT_ID: l'ID del progetto a cui un blocco note.
    • REGION: la regione in cui si trova il blocco note.
    • TUNED_MODEL_DISPLAY_NAME: il nome del tuo ottimizzato.
  8. Nella cella del codice successiva, aggiorna i parametri di ottimizzazione del modello:

    • source_model: il modello Gemini che che vuoi utilizzare, ad esempio gemini-1.0-pro-002.
    • train_dataset: l'URL del set di dati di addestramento.
    • validation_dataset: l'URL del set di dati di convalida.
    • Regola i restanti parametri in base alle tue esigenze.
  9. Esegui le celle di codice aggiunte al notebook dal riquadro laterale.

  10. Dopo l'esecuzione dell'ultima cella di codice, fai clic  Visualizza del job di ottimizzazione.

  11. Il riquadro laterale mostra informazioni sul job di ottimizzazione del modello.

    • La scheda Monitor mostra le metriche di ottimizzazione quando le metriche sono pronti.
    • La scheda Set di dati mostra un riepilogo e le metriche sul tuo al termine dell'elaborazione del set di dati.
    • La scheda Dettagli mostra informazioni sul job di ottimizzazione, ad esempio il metodo di ottimizzazione e il modello di base (modello di origine) utilizzato.
  12. Al termine del job di ottimizzazione, puoi passare direttamente dalla scheda Dettagli ottimizzazione a una pagina in cui puoi testare il modello. Fai clic su Testa.

    Nella console Google Cloud si apre la pagina Chat di testo di Vertex AI, dove puoi testare il modello.

Ottimizzazione degli iperparametri

Ti consigliamo di inviare il primo job di ottimizzazione senza modificare gli iperparametri. Il valore predefinito è quello consigliato in base ai risultati del nostro benchmarking per ottenere la migliore qualità di output del modello.

  • Epoche: 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.
  • Dimensioni adattatore: 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. Una dimensione dell'adattatore maggiore implica che il modello può apprendere attività più complesse, ma richiede un set di dati di addestramento più ampio e tempi di addestramento più lunghi.
  • Moltiplicatore del tasso di apprendimento: un moltiplicatore da applicare al tasso di apprendimento consigliato. Puoi aumentare il valore per convergere più velocemente oppure diminuirlo per evitare l'overfitting.

Visualizzare un elenco di job di ottimizzazione

Puoi visualizzare un elenco di job di ottimizzazione nel tuo progetto corrente utilizzando la console Google Cloud, l'SDK Vertex AI per Python o inviando una richiesta GET utilizzando il metodo tuningJobs.

REST

Per visualizzare un elenco di job di ottimizzazione dei modelli, invia una richiesta GET utilizzando tuningJobs.list .

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.

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

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

responses = sft.SupervisedTuningJob.list()

for response in responses:
    print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7c85287b2680>
# resource name: projects/12345678/locations/us-central1/tuningJobs/123456789012345

Console

Per visualizzare i job di ottimizzazione nella console Google Cloud, vai alla pagina Vertex AI Studio.

Vai a Vertex AI Studio

I job di ottimizzazione di Gemini sono elencati nella tabella della sezione Modelli ottimizzati con Gemini Pro.

Ottieni i dettagli di un job di ottimizzazione

Puoi ottenere i dettagli di un job di ottimizzazione nel progetto corrente utilizzando la console Google Cloud, l'SDK Vertex AI per Python o inviando una richiesta GET utilizzando il metodo tuningJobs.

REST

Per visualizzare un elenco di job di ottimizzazione dei modelli, invia una richiesta GET utilizzando tuningJobs.get e specifica il TuningJob_ID.

Prima di utilizzare i dati della richiesta, effettua 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.
  • 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

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
response = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)

print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7cc4bb20baf0>
# resource name: projects/1234567890/locations/us-central1/tuningJobs/4982013113894174720

Console

  1. Per visualizzare i dettagli di un modello ottimizzato nella console Google Cloud, vai a Pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Nella tabella Modelli ottimizzati con Gemini Pro, trova il tuo modello e fai clic su Dettagli.

    Vengono visualizzati i dettagli del modello.

Annullare un job di ottimizzazione

Puoi annullare un job di ottimizzazione nel progetto attuale utilizzando la console Google Cloud, l'SDK Vertex AI per Python o inviando una richiesta POST utilizzando il metodo tuningJobs.

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, effettua 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.
  • 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

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
job = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)
job.cancel()

Console

  1. Per annullare un job di ottimizzazione nella console Google Cloud, vai alla Pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Nella tabella Modelli ottimizzati di Gemini Pro, fai clic su Gestisci esecuzione.

  3. Fai clic su Annulla.

Testa il modello ottimizzato con un prompt

Puoi testare un job di ottimizzazione nel tuo progetto corrente utilizzando l'SDK Vertex AI per Python o inviando una richiesta POST utilizzando il metodo tuningJobs.

L'esempio seguente mostra un modello con la domanda "Perché il cielo è blu?".

REST

Per testare un modello ottimizzato con un prompt, invia una richiesta POST e specificare TUNED_ENDPOINT_ID.

Prima di utilizzare i dati della richiesta, effettua 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.
  • ENDPOINT_ID: l'ID endpoint del modello ottimizzato dall'API GET.
  • TEMPERATURE: la temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando vengono applicati topP e topK. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature basse sono ideali per prompt che richiedono risposte meno aperte o creative, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Con una temperatura pari a 0 viene sempre selezionato il token con la probabilità più alta. In questo caso, le risposte per un determinato sono per lo più deterministici, ma è ancora possibile una piccola variazione.

    Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.

  • TOP_P: Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi Top-K) al meno probabile finché la somma delle loro probabilità non corrisponde al valore di Top-P. Ad esempio, se i token A, B e C hanno una probabilità di 0,3, 0,2 e 0,1 e il valore di top-P è 0.5, il modello seleziona A o B come token successivo utilizzando la temperatura ed esclude C come candidato.

    Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

  • TOP_K: Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K di 1 significa che il successivo token selezionato è il più probabile tra tutti nel vocabolario del modello (chiamato anche decodifica greedy), mentre una top-K di 3 significa che il token successivo viene selezionato tra i tre probabili token utilizzando la temperatura.

    Per ogni passaggio di selezione dei token, vengono mostrati i token top-K con il vengono campionate. Quindi i token vengono ulteriormente filtrati in base a Top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.

    Specifica un valore più basso per risposte meno casuali e un valore più alto per più risposte risposte casuali.

  • MAX_OUTPUT_TOKENS: numero massimo di token che possono essere generati nella risposta. Un token è di circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.

    Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe diverse.

Metodo HTTP e URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent

Corpo JSON della richiesta:

{
    "contents": [
        {
            "role": "USER",
            "parts": {
                "text" : "Why is sky blue?"
            }
        }
    ],
    "generation_config": {
        "temperature":TEMPERATURE,
        "topP": TOP_P,
        "topK": TOP_K,
        "maxOutputTokens": MAX_OUTPUT_TOKENS
    }
}

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/endpoints/ENDPOINT_ID:generateContent"

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/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente.

Python

from vertexai.generative_models import GenerativeModel

sft_tuning_job = sft.SupervisedTuningJob("projects/<PROJECT_ID>/locations/<TUNING_JOB_REGION>/tuningJobs/<TUNING_JOB_ID>")
tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name)
print(tuned_model.generate_content(content))

Console

  1. Per visualizzare i dettagli di un modello ottimizzato nella console Google Cloud, vai alla pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Nella tabella Modelli ottimizzati con Gemini Pro, seleziona Testa.

    Si apre una pagina in cui puoi creare una conversazione con il un modello di machine learning.

Metriche di ottimizzazione e convalida

Puoi configurare un job di ottimizzazione del modello per raccogliere e generare report sulle metriche di ottimizzazione e valutazione del modello, che possono essere visualizzate in Vertex AI Studio.

  1. Per visualizzare i dettagli di un modello ottimizzato nella console Google Cloud, vai alla pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Nella tabella Tune and Distill, fai clic sul nome del modello ottimizzato di cui vuoi visualizzare le metriche.

    Le metriche di ottimizzazione vengono visualizzate nella scheda Monitor.

Metriche di ottimizzazione del modello

Il job di ottimizzazione del modello raccoglie automaticamente le seguenti metriche di ottimizzazione per gemini-1.5-pro-002.

  • /train_total_loss: perdita del set di dati dell'ottimizzazione in una fase di addestramento.
  • /train_fraction_of_correct_next_step_preds: l'accuratezza del token in un passaggio di addestramento. Una singola previsione è costituita da una sequenza di token. Questa metrica misura l'accuratezza dei token previsti rispetto ai dati empirici reali nel set di dati di ottimizzazione.
  • /train_num_predictions: Numero di token previsti in una fase di addestramento.

Metriche di convalida del modello:

Puoi configurare un job di ottimizzazione del modello per raccogliere le seguenti metriche di convalida per gemini-1.5-pro-002.

  • /eval_total_loss: perdita per il set di dati di convalida in un passaggio di convalida.
  • /eval_fraction_of_correct_next_step_preds: l'accuratezza del token in un passaggio di convalida. Una singola previsione è composta da una sequenza di token. Questo misura l'accuratezza dei token previsti rispetto alla metrica dati empirici reali nel set di dati di convalida.
  • /eval_num_predictions: numero di token previsti in un passaggio di convalida.

Le visualizzazioni delle metriche sono disponibili dopo l'avvio dell'esecuzione del job di ottimizzazione. Verrà aggiornato in tempo reale man mano che la regolazione procede. Se non specifichi un set di dati di convalida quando crei il job di ottimizzazione, le visualizzazioni delle metriche di ottimizzazione.

Passaggi successivi