Crea e gestisci modelli LLM di traduzione

Questo documento descrive come ottimizzare e utilizzare un modello LLM di traduzione personalizzato.

Prima di iniziare

Prima di iniziare, devi preparare un set di dati di fine-tuning supervisionato. A seconda del caso d'uso, i requisiti sono diversi.

Abilita API Vertex AI

Per ottimizzare un modello TLLM personalizzato, devi:

Abilita l'API Vertex AI, se non è già abilitata.

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

Abilitare l'API

Modelli supportati

  • translation-llm-002

Crea un job di ottimizzazione

Puoi creare un job di fine-tuning supervisionato utilizzando l'API REST o l'SDK Google Gen AI.

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. Assicurati di includere solo i parametri applicabili al modello che stai ottimizzando.

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

  • 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. Regione supportata: us-central1.
  • BASE_MODEL: il nome del modello di traduzione da ottimizzare. Valori supportati: translation-llm-002.
  • 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.
  • TUNED_MODEL_DISPLAYNAME (Facoltativo) Un nome visualizzato per il 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"
  },
  "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME"
}

Per inviare la richiesta, scegli una di queste 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

import time

from google import genai
from google.genai.types import (
    CreateTuningJobConfig,
    EvaluationConfig,
    GcsDestination,
    HttpOptions,
    Metric,
    OutputConfig,
    TuningDataset,
)

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

client = genai.Client(http_options=HttpOptions(api_version="v1beta1"))

training_dataset = TuningDataset(
    gcs_uri="gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_train_data.jsonl",
)
validation_dataset = TuningDataset(
    gcs_uri="gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_validation_data.jsonl",
)

evaluation_config = EvaluationConfig(
    metrics=[
        Metric(
            name="FLUENCY",
            prompt_template="""Evaluate this {prediction}"""
        )
    ],
    output_config=OutputConfig(
        gcs_destination=GcsDestination(
            output_uri_prefix=output_gcs_uri,
        )
    ),
)

tuning_job = client.tunings.tune(
    base_model="gemini-3.5-flash",
    training_dataset=training_dataset,
    config=CreateTuningJobConfig(
        tuned_model_display_name="Example tuning job",
        validation_dataset=validation_dataset,
        evaluation_config=evaluation_config,
    ),
)

running_states = set([
    "JOB_STATE_PENDING",
    "JOB_STATE_RUNNING",
])

while tuning_job.state in running_states:
    print(tuning_job.state)
    tuning_job = client.tunings.get(name=tuning_job.name)
    time.sleep(60)

print(tuning_job.tuned_model.model)
print(tuning_job.tuned_model.endpoint)
print(tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# projects/123456789012/locations/us-central1/metadataStores/default/contexts/tuning-experiment-2025010112345678

if tuning_job.tuned_model.checkpoints:
    for i, checkpoint in enumerate(tuning_job.tuned_model.checkpoints):
        print(f"Checkpoint {i + 1}: ", checkpoint)
    # Example response:
    # Checkpoint 1:  checkpoint_id='1' epoch=1 step=10 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789000000'
    # Checkpoint 2:  checkpoint_id='2' epoch=2 step=20 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789012345'

Visualizza un elenco di job di ottimizzazione

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

REST

Per visualizzare un elenco di job di ottimizzazione del modello, invia una richiesta GET utilizzando il metodo tuningJobs.list.

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

  • 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 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

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

responses = client.tunings.list()
for response in responses:
    print(response.name)
    # Example response:
    # projects/123456789012/locations/us-central1/tuningJobs/123456789012345

Console

  1. Per visualizzare i job di ottimizzazione nella console Google Cloud , vai alla pagina Agent Platform Studio.

    Vai ad Agent Platform Studio

  2. I job di ottimizzazione dell'LLM di traduzione sono elencati nella tabella della sezione Modelli ottimizzati dell'LLM di traduzione.

Ottieni i dettagli di un job di ottimizzazione

Puoi ottenere i dettagli di un job di ottimizzazione nel tuo progetto attuale utilizzando la console Google Cloud , l'SDK Google Gen AI o inviando una richiesta GET utilizzando il metodo tuningJobs.get.

REST

Per visualizzare i dettagli di un job di ottimizzazione del modello, invia una richiesta GET utilizzando il metodo tuningJobs.get e specifica TUNING_JOB_ID.

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

  • 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 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

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)

print(tuning_job.tuned_model.model)
print(tuning_job.tuned_model.endpoint)
print(tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# projects/123456789012/locations/us-central1/metadataStores/default/contexts/tuning-experiment-2025010112345678

Console

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

    Vai ad Agent Platform Studio

  2. Nella tabella Modelli ottimizzati LLM di traduzione, trova il tuo modello e fai clic su Dettagli.

    Vengono visualizzati i dettagli del modello.

Annulla un job di ottimizzazione

Puoi annullare un job di ottimizzazione nel progetto corrente utilizzando la console Google Cloud , l'SDK Google Gen AI o inviando una richiesta POST con il metodo tuningJobs.cancel.

REST

Per annullare un job di ottimizzazione del modello, invia una richiesta POST utilizzando il metodo tuningJobs.cancel e specifica TUNING_JOB_ID.

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

  • 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 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


from google import genai
from google.genai.types import HttpOptions


def cancel_tuning_job(tuning_job_name: str) -> None:
    client = genai.Client(http_options=HttpOptions(api_version="v1"))

    # Cancel the tuning job.
    # Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
    client.tunings.cancel(name=tuning_job_name)

Console

  1. Per annullare un job di ottimizzazione nella console Google Cloud , vai alla pagina Agent Platform Studio.

    Vai ad Agent Platform Studio

  2. Nella tabella Modelli ottimizzati LLM di traduzione, fai clic su Gestisci esecuzione.

  3. Fai clic su Annulla.

Ottieni informazioni su un modello

Al termine dell'addestramento, puoi ottenere informazioni sul modello, ad esempio l'ID modello.

Per visualizzare un elenco dei modelli disponibili, vai alla pagina Agent Platform Studio.

Vai ad Agent Platform Studio

Usa il modello ottimizzato

L'esempio seguente traduce il testo utilizzando un modello personalizzato con un ID modello 1395675701985363739. Per utilizzare l'LLM di traduzione personalizzato, specifica models/translation-llm-custom/{model-id} come ID modello.

Puoi specificare il modello da utilizzare per la traduzione utilizzando il parametro di query model.

REST

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

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION: la regione in cui si trova il modello personalizzato, ad esempio us-central1.

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

Corpo JSON della richiesta:

{
  "model": "projects/PROJECT_ID/locations/LOCATION/model/translation-llm-custom/1395675701985363739",
  "sourceLanguageCode": "en",
  "targetLanguageCode": "ru",
  "contents": ["Dr. Watson, please discard your trash. You've shared unsolicited email with me.
  Let's talk about spam and importance ranking in a confidential mode."]
}

Per inviare la richiesta, scegli una di queste 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 "x-goog-user-project: PROJECT_ID" \
-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/TUNING_JOB_ID:cancel"

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"; "x-goog-user-project" = "PROJECT_ID" }

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/TUNING_JOB_ID:cancel" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "translation": {
    "translatedText": "Доктор Ватсон, пожалуйста, откажитесь от своего мусора.
    Вы поделились нежелательной электронной почтой со мной. Давайте поговорим о
    спаме и важности рейтинга в конфиденциальном режиме.",
    "model": "projects/PROJECT_NUMBER/locations/LOCATION/model/translation-llm-custom/1395675701985363739"
  }
}

Python

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)

contents = "Why is the sky blue?"

# Predicts with the tuned endpoint.
response = client.models.generate_content(
    model=tuning_job.tuned_model.endpoint,
    contents=contents,
)
print(response.text)
# Example response:
# The sky is blue because ...

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 poi essere visualizzate in Agent Platform Studio.

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

    Vai ad Agent Platform Studio

  2. Nella tabella Ottimizza e distilla, fai clic sul nome del modello ottimizzato per cui vuoi visualizzare le metriche.

    Le metriche di ottimizzazione vengono visualizzate nella scheda Monitora.

Metriche di ottimizzazione del modello

Il job di ottimizzazione del modello raccoglie automaticamente le seguenti metriche di ottimizzazione per translation-llm-002.

  • /train_total_loss: perdita per il set di dati di ottimizzazione in un passaggio di addestramento.
  • /train_fraction_of_correct_next_step_preds: l'accuratezza dei token in un passaggio di addestramento. Una singola inferenza è costituita da una sequenza di token previsti. Questa metrica misura l'accuratezza dei token previsti rispetto ai dati di fatto nel set di dati di ottimizzazione.
  • /train_num_predictions: il numero di token previsti in un passaggio di addestramento.

Metriche di convalida del modello

Puoi configurare un job di ottimizzazione del modello per raccogliere le seguenti metriche di convalida per translation-llm-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 dei token in un passaggio di convalida. Una singola inferenza è costituita da una sequenza di token previsti. Questa metrica misura l'accuratezza dei token previsti rispetto ai dati di fatto nel set di dati di convalida.
  • /eval_num_predictions: il numero di token previsti in un passaggio di convalida.

Le visualizzazioni delle metriche sono disponibili dopo l'avvio del job di ottimizzazione. Verrà aggiornato in tempo reale durante l'avanzamento dell'ottimizzazione. Se non specifichi un set di dati di convalida quando crei il job di ottimizzazione, sono disponibili solo le visualizzazioni per le metriche di ottimizzazione.

Passaggi successivi