Régler des modèles LLM de traduction à l'aide du réglage supervisé

Ce document explique comment régler un LLM de traduction à l'aide du réglage supervisé.

Avant de commencer

Avant de commencer, vous devez préparer un ensemble de données pour le réglage supervisé. Selon votre cas d'utilisation, les exigences varient.

Modèles compatibles

  • translation-llm-002 (en preview, compatible uniquement avec le réglage de texte)

Créer un job de réglage

Vous pouvez créer un job de réglage supervisé à l'aide de l'API REST ou du SDK Vertex AI pour Python.

REST

Pour créer un job de réglage de modèle, envoyez une requête POST à l'aide de la méthode tuningJobs.create. Certains paramètres ne sont pas compatibles avec tous les modèles. Veillez à n'inclure que les paramètres applicables au modèle que vous réglez.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • TUNING_JOB_REGION : région dans laquelle le job de réglage est exécuté. Il s'agit également de la région par défaut dans laquelle le modèle réglé est importé. Région compatible : us-central1.
  • BASE_MODEL : nom du modèle de traduction à régler. Valeurs acceptées : translation-llm-002.
  • TRAINING_DATASET_URI : URI Cloud Storage de votre ensemble de données d'entraînement. L'ensemble de données doit respecter le format de fichier JSONL. Pour de meilleurs résultats, fournissez au moins 100 à 500 exemples. Pour en savoir plus, consultez À propos des ensembles de données de réglage supervisé.
  • VALIDATION_DATASET_URI (facultatif) : URI Cloud Storage du fichier de votre ensemble de données de validation.
  • TUNED_MODEL_DISPLAYNAME (facultatif) : nom à afficher pour le modèle réglé. Si ce paramètre n'est pas défini, un nom aléatoire est généré.

Méthode HTTP et URL :

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

Corps JSON de la requête :

{
  "baseModel": "BASE_MODEL",
  "supervisedTuningSpec" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI",
  },
  "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME"
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON semblable à la suivante.

Exemple de commande curl

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": "translation-llm-002",
   "supervisedTuningSpec" : {
      "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini-2_0/text/sft_train_data.jsonl",
      "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini-2_0/text/sft_validation_data.jsonl"
   },
   "tunedModelDisplayName": "tuned_translation_llm"
}'

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

import time

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line.
# PROJECT_ID = os.environ["GOOGLE_CLOUD_PROJECT"]
vertexai.init(project=PROJECT_ID, location="us-central1")

sft_tuning_job = sft.train(
  source_model="translation-llm-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-2_0/text/sft_train_data.jsonl",
    # The following parameters are optional
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-2_0/text/sft_validation_data.jsonl",
    tuned_model_display_name="tuned_translation_llm_002",
)

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

Afficher la liste des jobs de réglage

Vous pouvez afficher la liste des jobs de réglage dans votre projet actuel à l'aide de la console Google Cloud ou du SDK Vertex AI pour Python, ou en envoyant une requête GET à l'aide de la méthode tuningJobs.

REST

Pour afficher la liste des jobs de réglage de modèle, envoyez une requête GET à l'aide de la méthode tuningJobs.list.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • TUNING_JOB_REGION : région dans laquelle le job de réglage est exécuté. Il s'agit également de la région par défaut dans laquelle le modèle réglé est importé.

Méthode HTTP et URL :

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

Exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON semblable à la suivante.

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

Pour afficher vos jobs de réglage dans la console Google Cloud , accédez à la page Vertex AI Studio.

Accéder à Vertex AI Studio

Vos jobs de réglage de LLM de traduction s'affichent dans le tableau de la section des modèles réglés de traduction.

Obtenir les détails d'un job de réglage

Vous pouvez obtenir les détails d'un job de réglage dans votre projet actuel en utilisant la console Google Cloud ou le SDK Vertex AI pour Python, ou en envoyant une requête GET à l'aide de la méthode tuningJobs.

REST

Pour afficher la liste des jobs de réglage de modèle, envoyez une requête GET à l'aide de la méthode tuningJobs.get et spécifiez TuningJob_ID.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : .
  • TUNING_JOB_REGION : région dans laquelle le job de réglage est exécuté. Il s'agit également de la région par défaut dans laquelle le modèle réglé est importé.
  • TUNING_JOB_ID : ID du job de réglage.

Méthode HTTP et URL :

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

Exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON semblable à la suivante.

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. Pour afficher les détails d'un modèle réglé dans la console Google Cloud , accédez à la page Vertex AI Studio.

    Accéder à Vertex AI Studio

  2. Dans le tableau des modèles réglés de traduction, recherchez votre modèle et cliquez sur Détails.

    Les détails de votre modèle s'affichent.

Annuler un job de réglage

Vous pouvez annuler un job de réglage dans votre projet actuel à l'aide de la console Google Cloud ou du SDK Vertex AI pour Python, ou en envoyant une requête POST à l'aide de la méthode tuningJobs.

REST

Pour afficher la liste des jobs de réglage de modèle, envoyez une requête GET à l'aide de la méthode tuningJobs.cancel et spécifiez TuningJob_ID.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : .
  • TUNING_JOB_REGION : région dans laquelle le job de réglage est exécuté. Il s'agit également de la région par défaut dans laquelle le modèle réglé est importé.
  • TUNING_JOB_ID : ID du job de réglage.

Méthode HTTP et URL :

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

Exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON semblable à la suivante.

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. Pour annuler un job de réglage dans la console Google Cloud , accédez à la page Vertex AI Studio.

    Accéder à Vertex AI Studio

  2. Dans le tableau Modèles réglés de traduction, cliquez sur Gérer l'exécution.

  3. Cliquez sur Annuler.

Tester le modèle réglé avec une requête

Vous pouvez tester un job de réglage dans votre projet actuel à l'aide du SDK Vertex AI pour Python ou en envoyant une requête POST à l'aide de la méthode tuningJobs.

L'exemple suivant envoie une requête à un modèle avec la question "Pourquoi le ciel est-il bleu ?".

REST

Pour tester un modèle réglé avec une requête, envoyez une requête POST et spécifiez le paramètre TUNED_ENDPOINT_ID.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : .
  • TUNING_JOB_REGION : région dans laquelle le job de réglage est exécuté. Il s'agit également de la région par défaut dans laquelle le modèle réglé est importé.
  • ENDPOINT_ID : ID du point de terminaison du modèle réglé provenant de l'API GET.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
    "contents": [
        {
            "role": "USER",
            "parts": {
                "text" : "English: Hello. Spanish:"
            }
        }
    ],
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON semblable à la suivante.

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

Métriques de réglage et de validation

Vous pouvez configurer un job de réglage de modèle pour collecter et signaler les métriques de réglage et d'évaluation du modèle, qui peuvent ensuite être visualisées dans Vertex AI Studio.

  1. Pour afficher les détails d'un modèle réglé dans la console Google Cloud , accédez à la page Vertex AI Studio.

    Accéder à Vertex AI Studio

  2. Dans le tableau Régler et distiller, cliquez sur le nom du modèle réglé pour lequel vous souhaitez afficher les métriques.

    Les métriques de réglage s'affichent dans l'onglet Surveiller.

Métriques de réglage du modèle

Le job de réglage de modèle collecte automatiquement les métriques de réglage suivantes pour translation-llm-002.

  • /train_total_loss : perte de l'ensemble de données de réglage à une étape de l'entraînement.
  • /train_fraction_of_correct_next_step_preds : justesse du jeton à une étape de l'entraînement. Une prédiction unique consiste en une séquence de jetons. Cette métrique mesure la justesse des jetons prédits par rapport à la vérité terrain dans l'ensemble de données de réglage.
  • /train_num_predictions: nombre de jetons prédits à une étape de l'entraînement.

Métriques de validation de modèle

Vous pouvez configurer un job de réglage de modèle pour collecter les métriques de validation suivantes pour translation-llm-002.

  • /eval_total_loss : perte de l'ensemble de données de validation à une étape de validation.
  • /eval_fraction_of_correct_next_step_preds : justesse du jeton à une étape de validation. Une prédiction unique consiste en une séquence de jetons. Cette métrique mesure la justesse des jetons prédits par rapport à la vérité terrain dans l'ensemble de données de validation.
  • /eval_num_predictions : nombre de jetons prédits à une étape de validation.

Les visualisations des métriques sont disponibles une fois que l'exécution du job de réglage démarre. Elles sont mises à jour en temps réel à mesure que le réglage progresse. Si vous ne spécifiez pas d'ensemble de données de validation lorsque vous créez le job de réglage, seules les visualisations des métriques de réglage sont disponibles.

Étape suivante