Régler des modèles de texte à l'aide du réglage RLHF

L'apprentissage automatique par renforcement qui utilise le feedback humain (RLHF) exploite les commentaires recueillis auprès d'humains pour régler un modèle. Le RLHF est recommandé lorsque la sortie de votre modèle est complexe et difficile à décrire. Le feedback humain se présente sous la forme de choix entre différentes options de sortie. Ces choix fournissent de meilleures données que les requêtes étiquetées, utilisées par le réglage supervisé, pour ajuster un modèle qui produit un résultat difficile à décrire. Si la sortie de votre modèle n'est pas difficile à définir, envisagez de régler votre modèle de texte à l'aide du réglage supervisé.

Cette page fournit des informations détaillées sur le réglage d'un modèle de texte à l'aide du réglage RLHF. Vous découvrirez les modèles de texte compatibles avec le réglage RLHF, comment créer un ensemble de données et comment régler un modèle de texte à l'aide du réglage RLHF. Vous apprendrez également à afficher et à charger des modèles réglés à l'aide du réglage RLHF. Pour en savoir plus sur le réglage RLHF dans Vertex AI, consultez Réglage de modèle RLHF.

Workflow de réglage de modèle RLHF

Le workflow de réglage de modèle RLHF sur Vertex AI comprend les étapes suivantes :

  1. Préparez votre ensemble de données de préférences humaines.
  2. Préparez votre ensemble de données de requêtes.
  3. Importez vos ensembles de données dans un bucket Cloud Storage. Ils n'ont pas besoin de se trouver dans le même bucket Cloud Storage.
  4. Créer un job de réglage de modèle RLHF.

Une fois le réglage du modèle terminé, le modèle réglé est déployé sur un point de terminaison Vertex AI. Le nom du point de terminaison est identique à celui du modèle réglé. Les modèles réglés peuvent être sélectionnés dans Vertex AI Studio lorsque vous souhaitez créer une requête.

Modèles compatibles

Les modèles de texte suivants sont compatibles avec le réglage à l'aide de l'apprentissage automatique par renforcement qui utilise le feedback humain sur Vertex AI :

  • Le modèle de fondation de génération de texte, text-bison@002. Pour en savoir plus, consultez Modèle de génération de texte.
  • Le modèle de fondation de génération de chat, chat-bison@001. Pour en savoir plus, consultez la section Modèle de génération de chat.
  • Les modèles t5-small, t5-large, t5-xl et t5-xxl du transformateur de transfert texte-vers-texte (Flan-T5). Les modèles Flan-T5 peuvent être affinés pour effectuer des tâches telles que la classification de texte, la traduction de langues et la génération de réponses à des questions. Pour en savoir plus, consultez la section Points de contrôle Flan-T5.

Les modèles de texte suivants sont compatibles avec le réglage RLHF en tant que tâche Vertex AI Pipelines autogérée.

Les modèles de code ne sont pas compatibles avec le réglage RLHF.

Préparer les ensembles de données pour le réglage RLHF

Le réglage RLHF nécessite la préparation de deux ensembles de données et d'un ensemble de données facultatif. Tous les ensembles de données sont au format JSON Lines (JSONL) et doivent être importés dans un bucket Cloud Storage. Le format de l'ensemble de données utilisé pour régler un modèle de génération de texte est différent de celui permettant de régler un modèle de chat textuel.

Ensemble de données de requête

Ensemble de données contenant des requêtes sans étiquette. Les requêtes peuvent être les mêmes requêtes de l'ensemble de données de préférence ou être différentes. Chaque ligne de l'ensemble de données de requêtes contient les champs suivants :

Ensemble de données text-bison

L'ensemble de données de génération de texte inclut un champ :

  • input_text : champ obligatoire contenant la requête.

Exemple

{
  "input_text": "Create a description for Plantation Palms."
}

Ensemble de données chat-bison

L'ensemble de données de génération de chat comprend deux champs :

  • messages : un tableau de paires auteur-contenu Le champ author fait référence à l'auteur du message et alterne entre user et assistant. Le champ content correspond au contenu du message. Le champ content ne peut pas être vide, et le premier et le dernier author doivent être définis sur user.

  • context : (facultatif) contexte supplémentaire que le modèle doit utiliser lorsqu'il répond à une requête.

Exemple

{
  "context": "You are a pirate dog named Captain Barktholomew.",
  "messages": [
    {
      "author": "user",
      "content": "Hi"
    },
    {
      "author": "assistant",
      "content": "Argh! What brings ye to my ship?"
    },
    {
      "author": "user",
      "content": "What's your name?"
    },
  ]
}

Pour en savoir plus, vous pouvez télécharger et afficher cet exemple d'ensemble de données de requêtes.

Ensemble de données de préférences humaines

L'ensemble de données de préférences humaines contient les préférences des utilisateurs. Chaque ligne de l'ensemble de données de préférences humaines enregistre la préférence entre deux options qui ont été présentées à un utilisateur. Nous vous recommandons d'inclure de 5 000 à 10 000 exemples dans l'ensemble de données de préférences humaines. Chaque ligne de l'ensemble de données de préférence humaine contient un exemple de préférence qui inclut les champs d'ensemble de données de requêtes pour le modèle réglé, ainsi que les champs suivants :

  • candidate_0 et candidate_1 : chacun de ces champs contient deux réponses. La personne aide à ajuster le modèle en choisissant la réponse qu'il préfère.
  • choice : contient un entier, 0 ou 1, qui indique le candidat préféré d'un humain. La valeur 0 indique que l'humain a choisi candidate_0, et la valeur 1 indique que l'humain a choisi candidate_1.

Voici un exemple de ligne dans l'ensemble de données de préférences humaines :

{"input_text": "Create a description for Plantation Palms.", "candidate_0": "Enjoy some fun in the sun at Gulf Shores.", "candidate_1": "A Tranquil Oasis of Natural Beauty.", "choice": 0}

Pour en savoir plus, vous pouvez télécharger et afficher cet exemple d'ensemble de données de préférences humaines.

Ensemble de données d'évaluation (facultatif)

Ensemble de données incluant des requêtes de prédiction sans étiquette après le réglage du modèle. Si l'ensemble de données d'évaluation est fourni, l'inférence est effectuée sur celui-ci une fois le job de réglage terminé. Le format de l'ensemble de données d'évaluation est identique à celui de l'ensemble de données de requête. Cependant, les requêtes d'un ensemble de données d'évaluation doivent être différentes de celles de l'ensemble de données de requête.

Pour en savoir plus, vous pouvez télécharger et afficher cet exemple d'ensemble de données d'évaluation.

Modèle de récompense

L'ensemble de données de préférences humaines est utilisé pour entraîner un modèle de récompense. Vertex AI crée, puis utilise le modèle de récompense lors du réglage RLHF. Les modèles de récompense sont créés dans un bucket Cloud Storage privé dans un projet locataire client. Un projet locataire client est un projet interne propre à un client. Vous ne pouvez pas accéder à un modèle de récompense. Il est supprimé une fois le job de réglage terminé. Pour en savoir plus, consultez la section Projet locataire.

Assurer la cohérence des données de production

Les exemples de vos ensembles de données doivent correspondre au trafic de production attendu. Si votre ensemble de données contient une mise en forme, des mots clés, des instructions ou des informations spécifiques, les données de production doivent utiliser le même format et les mêmes instructions.

Par exemple, si les exemples de votre ensemble de données incluent "question:" et "context:", le trafic de production doit également être mis en forme de manière à inclure "question:" et "context:" dans le même ordre que les exemples de l'ensembles de données. Si vous excluez le contexte, le modèle ne reconnaît pas le modèle, même si la question exacte figurait dans un exemple de l'ensemble de données.

Importer les ensembles de données de réglage dans Cloud Storage

Pour exécuter un job de réglage, vous devez importer un ou plusieurs ensembles de données dans un bucket Cloud Storage. Vous pouvez créer un bucket Cloud Storage ou utiliser un bucket existant pour stocker les fichiers des ensembles de données. La région du bucket n'a pas d'importance, mais nous vous recommandons d'utiliser un bucket situé dans le même projet Google Cloud que celui où vous prévoyez de régler votre modèle.

Une fois votre bucket prêt, importez-y le fichier de votre ensemble de données.

Créer un job de réglage RLHF

Vous pouvez effectuer des réglages RLHF à l'aide de la console Google Cloud ou du SDK Vertex AI pour Python.

SDK Vertex AI pour Python

Pour savoir comment utiliser le SDK Vertex AI pour Python afin d'ajuster vos modèles avec RLHF, ouvrez et exécutez le notebook suivant avec Colab, GitHub ou Vertex AI Workbench :

Console Google Cloud

Pour régler un modèle de texte dans la console Google Cloud à l'aide du réglage RLHF, 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 l'onglet Régler et distiller.
  3. Cliquez sur Créer un modèle réglé.
  4. Sélectionnez Apprentissage automatique par renforcement qui utilise le feedback humain (RLHF).
  5. Configurez les détails du modèle :
    • Nom du modèle réglé : saisissez un nom pour votre modèle réglé.
    • Modèle de base : sélectionnez le modèle de base que vous souhaitez régler.
    • Région : saisissez la région dans laquelle le réglage du modèle a lieu. Les régions suivantes sont acceptées :
      • us-central1 : utilise 8 GPU Nvidia A100 de 80 Go.
      • europe-west4 : utilise 64 cœurs du pod TPU v3.
    • Répertoire de sortie : saisissez l'emplacement Cloud Storage où sont stockés les artefacts lorsque votre modèle est réglé.
  6. Développez la section Options avancées pour configurer les paramètres avancés.
    • Étapes d'entraînement du modèle de récompense : saisissez le nombre d'étapes à utiliser lors de l'entraînement du modèle de récompense. Le modèle de récompense permet de régler votre modèle. La valeur par défaut est 1 000.
    • Multiplicateur du taux d'apprentissage du modèle de récompense : saisissez une valeur flottante qui affecte le taux d'apprentissage lors de l'entraînement du modèle de récompense. Pour augmenter le taux d'apprentissage par défaut, saisissez une valeur plus élevée. Pour réduire le taux d'apprentissage par défaut, saisissez une valeur inférieure. La valeur par défaut est 1.0.
    • Étapes d'entraînement par renforcement : saisissez le nombre d'étapes à effectuer lors du réglage du modèle de base à l'aide de l'apprentissage par renforcement. La valeur par défaut est 1 000.
    • Multiplicateur du taux d'apprentissage par renforcement : saisissez une valeur flottante qui affecte le taux d'apprentissage lors de l'entraînement d'un modèle de renforcement. Pour augmenter le taux d'apprentissage par défaut, saisissez une valeur plus élevée. Pour réduire le taux d'apprentissage par défaut, saisissez une valeur inférieure. La valeur par défaut est 1.0.
  7. Cliquez sur Continuer.
  8. Dans Ensemble de données de préférences humaines, importez ou choisissez un ensemble de données de préférences humaines permettant de créer un modèle de récompense. Si vous souhaitez importer le fichier de votre ensemble de données, sélectionnez  Importer le fichier JSONL dans Cloud Storage. Si le fichier de votre ensemble de données se trouve déjà dans un bucket Cloud Storage, sélectionnez  Fichier JSONL existant dans Cloud Storage.

    Importer un fichier JSONL

    • Dans le champ Sélectionner un fichier JSONL, cliquez sur Parcourir et sélectionnez le fichier de votre ensemble de données.
    • 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.

    Utiliser un fichier JSONL existant

    Dans 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. Dans Ensemble de données de requête, si vous souhaitez importer le fichier de votre ensemble de données, sélectionnez  Importer un fichier JSONL dans Cloud Storage. Sinon, si le fichier de votre ensemble de données de requête se trouve déjà dans un bucket Cloud Storage, sélectionnez  Fichier JSONL existant dans Cloud Storage.

    Importer un fichier JSONL

    • Dans le champ Sélectionner un fichier JSONL, cliquez sur Parcourir et sélectionnez le fichier de votre ensemble de données.
    • 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.

    Utiliser un fichier JSONL existant

    Dans 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.

  10. (Facultatif) Pour évaluer votre modèle réglé, procédez comme suit :
    1. Cliquez sur Activer l'évaluation du modèle.
    2. Dans Ensemble de données d'évaluation, cliquez sur Parcourir.
    3. Accédez au bucket Cloud Storage contenant votre ensemble de données d'évaluation, puis sélectionnez votre ensemble de données d'évaluation.
    Pour en savoir plus, consultez la section Ensemble de données d'évaluation.
  11. Cliquez sur Commencer le réglage.

Vérifier l'état de l'opération de réglage

Pour vérifier l'état de votre tâche de réglage de modèle, accédez à la page Vertex AI Pipelines dans la console Google Cloud. Cette page indique l'état des tâches de réglage de modèles de texte et de code.

Accéder à la page Pipelines

Vous pouvez également configurer les notifications par e-mail pour Vertex AI Pipelines afin d'être averti par e-mail lorsque la tâche de réglage du modèle se termine ou échoue.

Étapes suivantes