Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
RFT sur Nova 2.0
Les données d'entraînement RFT suivent le format conversationnel OpenAI. Chaque exemple de formation est un objet JSON contenant des messages, des réponses de référence et des définitions d'outils facultatives. Cette section fournit des conseils sur la préparation de données d'entraînement efficaces pour RFT sur Nova 2.0.
Rubriques
Format et structure des données
Chaque exemple d'entraînement est un objet JSON contenant les éléments suivants :
-
messages : un ensemble de tournants conversationnels utilisant les rôles système, utilisateur et éventuellement assistant
-
reference_answer : Résultat attendu ou critères d'évaluation pour le calcul des récompenses
-
outils (facultatif) : tableau de définitions de fonctions disponibles pour le modèle
-
id (facultatif) : identifiant unique pour le suivi et la déduplication
Chaque exemple doit figurer sur une seule ligne de votre fichier JSONL, avec un objet JSON par ligne.
L'exemple suivant montre un problème de chimie avec une réponse de référence contenant des valeurs de vérité fondamentale :
{ "id": "chem-001", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C" } ], "reference_answer": { "donor_bond_counts": 2, "acceptor_bond_counts": 4, "explanation": "Calculated using Lipinski's rule of five: N-H groups (2 donors), N and O atoms with lone pairs (4 acceptors)" } }
Note
Le reference_answer contient des valeurs de vérité de base calculées à l'aide de règles spécifiques au domaine. Votre fonction de récompense compare les valeurs prédites du modèle à ces valeurs de référence pour calculer un score de récompense.
L'exemple suivant montre un problème mathématique avec des étapes de résolution :
{ "id": "math-001", "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] } }
L'exemple suivant montre l'utilisation de l'outil avec le comportement attendu :
{ "id": "tool-001", "messages": [ { "role": "system", "content": "You are a helpful game master assistant" }, { "role": "user", "content": "Generate a strength stat for a warrior character. Apply a +2 racial bonus modifier." } ], "tools": [ { "type": "function", "function": { "name": "StatRollAPI", "description": "Generates character stats by rolling 4d6, dropping the lowest die result, and applying a modifier.", "parameters": { "type": "object", "properties": { "modifier": { "description": "An integer representing the modifier to apply to the total of the stat roll.", "type": "integer" } }, "required": ["modifier"] } } } ], "reference_answer": { "tool_called": "StatRollAPI", "tool_parameters": { "modifier": 2 }, "expected_behavior": "Call StatRollAPI with modifier=2 and return the calculated stat value" } }
Descriptions des champs
Champ |
Description |
Informations complémentaires |
Obligatoire |
|---|---|---|---|
id |
Identifiant unique pour cet exemple de RFT |
Chaîne (par exemple, « sample-001 »). Utile pour le suivi et la déduplication. |
Non |
messages |
Liste ordonnée des messages de chat qui définissent l'invite et le contexte |
Tableau d'objets . Le mannequin les voit dans l'ordre. Commence généralement par un message système, puis par un message utilisateur. |
Oui |
messages [] .role |
Qui parle dans le message |
Valeurs communes : « système », « utilisateur » (parfois « assistant » dans d'autres contextes) |
Non |
messages [] .content |
Le contenu textuel du message |
Corde simple. Pour le système, il s'agit d'instructions, pour l'utilisateur, de la tâche ou de l'entrée. |
Non |
outils |
Spécifications de l'outil disponibles pour le modèle dans cet exemple |
Réseau. Chaque élément définit l'interface et les métadonnées d'un outil. Les types peuvent inclure « fonction » ou « interne ». |
Oui |
réponse_référence |
La sortie du modèle attendue pour cet exemple |
Chaîne ou objet en fonction de la tâche. Utilisé comme cible pour l'évaluation ou la formation. |
Non |
Note
Tous les champs personnalisés supplémentaires (par exemple, task_id, difficulty_level, context_data) ne sont pas validés et seront transmis à votre fonction de récompense sous forme de métadonnées.
Propriétés supplémentaires
Le paramètre « AdditionalProperties » : true vous permet d'inclure des champs personnalisés au-delà des exigences de base du schéma, ce qui vous permet d'ajouter toutes les données dont votre fonction de récompense a besoin pour une évaluation correcte.
Champs supplémentaires courants
Vous pouvez inclure les types de champs supplémentaires suivants :
Métadonnées :
-
task_id : identifiant unique pour le suivi
-
difficulty_level : indicateur de complexité du problème
-
domaine : Domaine ou catégorie
-
expected_reasoning_steps : nombre d'étapes de la solution
Critères d'évaluation :
-
evaluation_criteria : Rubriques de notation spécifiques
-
custom_scoring_weights : importance relative des différents aspects
-
context_data : informations générales sur le problème
-
external_references : liens vers la documentation ou les ressources pertinentes
Exemple avec propriétés supplémentaires
L'exemple suivant inclut des champs de métadonnées personnalisés :
{ "id": "algebra_001", "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] }, "task_id": "algebra_001", "difficulty_level": "easy", "domain": "algebra", "expected_reasoning_steps": 3 }
Recommandations relatives à la taille des jeux
Point de départ
Commencez par les tailles de jeu de données minimales suivantes :
-
Minimum de 100 exemples de formation
-
Minimum de 100 exemples d'évaluation
Priorisez les données d'entrée de haute qualité et une fonction de récompense fiable qui s'exécute de manière cohérente sur les réponses du modèle.
Approche axée sur l'évaluation
Avant d'investir dans une formation RFT à grande échelle, évaluez les performances de base de votre modèle :
-
Haute performance (récompense supérieure à 95 %) : le RFT n'est peut-être pas nécessaire : votre modèle fonctionne déjà bien
-
Très mauvaise performance (0 % de récompense) : passez d'abord à SFT pour établir les fonctionnalités de base
-
Performances modérées : le RFT est probablement approprié
Cette approche axée sur l'évaluation garantit que votre fonction de récompense est exempte de bogues et détermine si la RFT est la bonne méthode pour votre cas d'utilisation. Commencer modestement vous permet de vous familiariser avec le flux de travail RFT, d'identifier et de résoudre les problèmes rapidement, de valider votre approche avant de passer à l'échelle supérieure et de tester la fiabilité de la fonction de récompense. Une fois validé, vous pouvez l'étendre à de plus grands ensembles de données pour améliorer encore les performances.
Caractéristiques des données d'entraînement efficaces
Clarté et cohérence
Les bons exemples de RFT nécessitent des données d'entrée claires et sans ambiguïté qui permettent un calcul précis des récompenses sur les différents modèles de sortie. Évitez le bruit dans vos données, notamment :
-
Formatage incohérent
-
Étiquettes ou instructions contradictoires
-
Des instructions ambiguës
-
Réponses de référence contradictoires
Toute ambiguïté induira le processus de formation en erreur et incitera le modèle à apprendre des comportements involontaires.
Diversité
Votre ensemble de données doit capturer toute la diversité des cas d'utilisation en production afin de garantir des performances robustes dans le monde réel. Inclure :
-
Différents types de problèmes et niveaux de difficulté
-
Différents formats de saisie et boîtiers
-
Des échantillons représentatifs de tous les scénarios attendus
Cette diversité permet d'éviter le surajustement et garantit que le modèle gère les entrées inconnues avec élégance.
Considérations relatives aux fonctions de récompense
Concevez votre fonction de récompense pour un entraînement efficace :
-
Exécuter en quelques secondes (et non en quelques minutes)
-
Parallélisez efficacement avec Lambda
-
Obtenez des scores cohérents et fiables
-
Gérez les différents types de sorties de modèles avec élégance
Des fonctions de récompense rapides et évolutives permettent une itération rapide et une expérimentation rentable à grande échelle.