Régler des modèles Gemini à l'aide du réglage des préférences

Ce document explique comment effectuer le réglage des préférences sur un modèle Gemini.

Avant de commencer

Avant de commencer, vous devez préparer un ensemble de données en suivant les instructions de la section Préparer des données de réglage des préférences pour les modèles Gemini.

Créer un job de réglage

Console

Pour configurer le réglage des préférences à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la section "Vertex AI" de la console Google Cloud , accédez à la page Vertex AI Studio.

    Accéder à Vertex AI Studio

  2. Cliquez sur Créer un modèle réglé.

  3. Sélectionnez Réglage des préférences.

  4. Sous Informations sur le modèle, configurez les éléments suivants :

    1. Dans le champ Nom du modèle réglé, saisissez un nom pour votre nouveau modèle réglé, d'une longueur maximale de 128 caractères.
    2. Dans le champ Modèle de base, sélectionnez le modèle de fondation à régler.
    3. Dans le menu déroulant Région, sélectionnez la région où le job de réglage de pipeline s'exécute et où le modèle réglé est déployé.
  5. Sous Paramètre d'optimisation, configurez les éléments suivants :

    1. Dans le champ Nombre d'époques, saisissez le nombre d'étapes à exécuter pour le réglage du modèle.
    2. Dans le champ Taille de l'adaptateur, saisissez la taille de l'adaptateur à utiliser pour le réglage du modèle.
    3. Facultatif : Dans le champ Bêta, saisissez la valeur bêta souhaitée. Bêta est le coefficient qui contrôle la précision avec laquelle le modèle réglé s'aligne sur sa référence.
    4. Dans le champ Multiplicateur du taux d'apprentissage, saisissez la taille de pas à chaque itération. La valeur par défaut est de 1. .
  6. Facultatif : Pour désactiver les points de contrôle intermédiaires et n'utiliser que le dernier point de contrôle, cliquez sur le bouton Exporter uniquement le dernier point de contrôle.

  7. Cliquez sur Continuer.

    La page Ensemble de données de réglage s'affiche.

  8. Pour importer un fichier d'ensemble de données, sélectionnez l'une des options suivantes :

    1. Si vous n'avez pas encore importé d'ensemble de données, sélectionnez la case d'option Importer le fichier dans Cloud Storage.
    2. Dans le champ Sélectionner un fichier JSONL, cliquez sur Parcourir et sélectionnez le fichier de votre ensemble de données.
    3. Dans le champ Emplacement de l'ensemble de données, cliquez sur Parcourir et sélectionnez le bucket Cloud Storage dans lequel vous souhaitez stocker le fichier de votre ensemble de données.
    4. Si le fichier de votre ensemble de données se trouve déjà dans un bucket Cloud Storage, cochez la case d'option Fichier existant dans Cloud Storage.
    5. Dans le champ Chemin d'accès du fichier Cloud Storage, cliquez sur Parcourir et sélectionnez le bucket Cloud Storage où se trouve le fichier de votre ensemble de données.
  9. (Facultatif) Pour obtenir des métriques de validation pendant l'entraînement, cliquez sur le bouton Activer la validation du modèle.

    1. Dans le fichier Ensemble de données de validation, saisissez le chemin d'accès Cloud Storage de votre ensemble de données de validation.
  10. Cliquez sur Commencer le réglage.

    Votre nouveau modèle s'affiche sous la section Réglage géré sur la page Régler et distiller. Une fois le réglage du modèle terminé, l'état indique Réussite.

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é.
  • BASE_MODEL : nom du modèle de fondation à régler.
  • 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.
  • EPOCH_COUNT (facultatif) : nombre de passes complètes que le modèle effectue sur la totalité de l'ensemble de données d'entraînement pendant l'entraînement. Laissez cette valeur non définie pour utiliser la valeur recommandée prérenseignée.
  • BETA (facultatif) : coefficient qui contrôle la précision avec laquelle le modèle réglé s'aligne sur sa référence.
  • ADAPTER_SIZE (facultatif) : taille d'adaptateur à utiliser pour le job de réglage. La taille de l'adaptateur influence le nombre de paramètres pouvant être entraînés pour le job de réglage. Une taille d'adaptateur plus importante implique que le modèle peut apprendre des tâches plus complexes, mais cela nécessite un ensemble de données d'entraînement plus important et des durées d'entraînement plus longues.
  • LEARNING_RATE_MULTIPLIER (facultatif) : multiplicateur à appliquer au taux d'apprentissage recommandé. Laissez cette valeur non définie pour utiliser la valeur recommandée.
  • EXPORT_LAST_CHECKPOINT_ONLY Facultatif : Définissez sur true pour n'utiliser que le dernier point de contrôle.
  • 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é.
  • KMS_KEY_NAME (facultatif) : identifiant de ressource Cloud KMS de la clé de chiffrement gérée par le client qui est utilisée pour protéger une ressource. La clé utilise le format suivant : projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. Elle doit se trouver dans la région où la ressource de calcul est créée. Pour en savoir plus, consultez Clés de chiffrement gérées par le client (CMEK).
  • SERVICE_ACCOUNT (facultatif) : compte de service sous lequel la charge de travail de job de réglage (tuningJob) s'exécute. Si ce paramètre n'est pas spécifié, l'agent de service d'affinage sécurisé Vertex AI du projet est utilisé. Consultez Agent de service de réglage. Si vous prévoyez d'utiliser un compte de service géré par le client, vous devez attribuer le rôle roles/aiplatform.tuningServiceAgent au compte de service. Attribuez également le rôle Agent de service de réglage roles/iam.serviceAccountTokenCreator au compte de service géré par le client.

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",
  "preferenceOptimizationSpec" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI",
      "hyperParameters": {
          "epochCount": "EPOCH_COUNT",
          "beta": "BETA",
          "adapterSize": "ADAPTER_SIZE",
          "learningRateMultiplier": "LEARNING_RATE_MULTIPLIER"
      },
      "exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY,
  },
  "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME",
  "encryptionSpec": {
    "kmsKeyName": "KMS_KEY_NAME"
  },
  "serviceAccount": "SERVICE_ACCOUNT"
}

Pour envoyer votre requête, développez l'une des options suivantes :

Exemple de commande curl

PROJECT_ID=myproject
LOCATION=global
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": "${BASE_MODEL}",
   "preferenceOptimizationSpec" : {
      "trainingDatasetUri": "gs://mybucket/preference_tuning/data/train_data.jsonl",
      "validationDatasetUri": "gs://mybucket/preference_tuning/data/validation_data.jsonl"
   },
   "tunedModelDisplayName": "tuned_gemini"
}'

Régler les hyperparamètres

Nous vous recommandons d'envoyer votre premier job de réglage sans modifier les hyperparamètres. La valeur par défaut est la valeur recommandée en fonction de nos résultats d'analyse comparative pour obtenir la meilleure qualité de sortie du modèle.

  • Époques : nombre de passes complètes que le modèle effectue sur la totalité de l'ensemble de données d'entraînement pendant l'entraînement. Vertex AI ajuste automatiquement la valeur par défaut à la taille de votre ensemble de données d'entraînement. Cette valeur est basée sur les résultats d'analyse comparative afin d'optimiser la qualité de sortie du modèle.
  • Bêta : coefficient qui contrôle la précision avec laquelle le modèle réglé s'aligne sur sa référence. Plus le bêta est faible, plus les mises à jour sont agressives pour les réponses préférées. La plage recommandée est comprise entre 0,01 et 0,5 (inclus). Une valeur bêta de 0 empêche le modèle d'apprendre.
  • Taille de l'adaptateur : taille de l'adaptateur à utiliser pour le job de réglage. La taille de l'adaptateur influence le nombre de paramètres pouvant être entraînés pour le job de réglage. Une taille d'adaptateur plus importante implique que le modèle peut apprendre des tâches plus complexes, mais cela nécessite un ensemble de données d'entraînement plus important et des durées d'entraînement plus longues.
  • Multiplicateur du taux d'apprentissage : multiplicateur à appliquer au taux d'apprentissage recommandé. Vous pouvez augmenter la valeur pour une convergence plus rapide ou la diminuer pour éviter un surapprentissage.

Afficher ou annuler un job de réglage

Pour lister les jobs de réglage, afficher les détails d'un job de réglage, annuler un job de réglage ou supprimer un modèle réglé, consultez les sections suivantes de la documentation sur le réglage fin supervisé :

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 :

  • /preference_optimization_train_loss : perte de préférence pour l'ensemble de données de réglage à une étape d'entraînement.

Métriques de validation de modèle

Lorsque des données de validation sont fournies, le job de réglage de modèle collecte automatiquement les métriques de validation suivantes :

  • /eval_total_loss : perte de préférence pour l'ensemble de données de validation à 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.

Étapes suivantes