RFT sur Nova 2.0 - Amazon SageMaker AI

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.

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.