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 :
- Préparez votre ensemble de données de préférences humaines.
- Préparez votre ensemble de données de requêtes.
- 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.
- 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
ett5-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.
- Llama 2, disponible dans le jardin de modèles Vertex AI. Pour en savoir plus, consultez l'exemple de notebook. Comme cette méthode est plus complexe, nous vous recommandons de commencer par essayer RLHF sur Vertex AI.
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 champauthor
fait référence à l'auteur du message et alterne entreuser
etassistant
. Le champcontent
correspond au contenu du message. Le champcontent
ne peut pas être vide, et le premier et le dernierauthor
doivent être définis suruser
.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
etcandidate_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
ou1
, qui indique le candidat préféré d'un humain. La valeur0
indique que l'humain a choisicandidate_0
, et la valeur1
indique que l'humain a choisicandidate_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 :
- Dans la section "Vertex AI" de la console Google Cloud, accédez à la page Vertex AI Studio.
- Cliquez sur l'onglet Régler et distiller.
- Cliquez sur Créer un modèle réglé.
- Sélectionnez Apprentissage automatique par renforcement qui utilise le feedback humain (RLHF).
- 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é.
- 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.
- Cliquez sur Continuer.
- 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.
- 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 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.
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.
- (Facultatif) Pour évaluer votre modèle réglé, procédez comme suit :
- Cliquez sur Activer l'évaluation du modèle.
- Dans Ensemble de données d'évaluation, cliquez sur Parcourir.
- Accédez au bucket Cloud Storage contenant votre ensemble de données d'évaluation, puis sélectionnez votre ensemble de données d'évaluation.
- 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.
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
- Découvrez comment exécuter un job de réglage RLHF autogéré pour Llama 2 à l'aide de Vertex AI Pipelines.
- Découvrez les bonnes pratiques d'IA responsable et les filtres de sécurité de Vertex AI.
- Découvrez comment activer les journaux d'audit d'accès aux données pour vos points de terminaison.
- Découvrez comment évaluer le modèle réglé.