View a markdown version of this page

Préparation des données pour la RFT sur Amazon Nova 2 - Amazon Nova

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.

Préparation des données pour la RFT sur Amazon Nova 2

RFT sur Amazon Nova 2 prend actuellement en charge les données d'entraînement textuelles. Cette page décrit le format de données, les fonctionnalités prises en charge, les contraintes et les meilleures pratiques pour préparer les données d'entraînement RFT pour les modèles Amazon Nova 2 Understanding.

Astuce

Pour valider le format de votre jeu de données avant de commencer une tâche de formation, consultezOutils de validation.

Format de données

Les données d'entraînement RFT suivent le format OpenAI Fine-Tuning Reinforcment. Chaque ligne de votre fichier d'entraînement JSONL est un objet JSON avec les champs de niveau supérieur suivants. Développez une section pour en savoir plus :

Obligatoire. Un éventail de tournants de conversation utilisant systemuser, et éventuellement assistant des rôles.

  • rôle — Obligatoire. Valeurs communes : system (instructions pour le modèle) et user (la tâche ou la saisie).

  • contenu — Obligatoire. Le contenu textuel du message. Pour les virages du système, il s'agit d'instructions ; pour les virages de l'utilisateur, il s'agit de la tâche ou de la saisie.

"messages": [ { "role": "system", "content": "instructions" }, { "role": "user", "content": "prompt" } ]

Obligatoire. Le résultat attendu ou les critères d'évaluation que votre fonction de récompense utilise pour évaluer la réponse du modèle. Ce champ n'est pas limité aux sorties structurées. Il peut contenir n'importe quel format permettant à votre fonction de récompense d'évaluer la qualité.

"reference_answer": { "field": "value" }

Facultatif. Tableau des spécifications d'outils disponibles pour le modèle au cours de cet exemple. Chaque élément définit l'interface et les métadonnées d'un outil. Pour un exemple complet, voirAppel d'outils.

"tools": [ { "type": "function", "function": { "name": "tool-name", "description": "tool-description", "parameters": { ... } } } ]

Le format de données RFT prend en charge les champs personnalisés au-delà de messages etreference_answer. Incluez toutes les données supplémentaires dont votre fonction de récompense a besoin pour une évaluation correcte. Vous n'avez pas besoin de les configurer dans votre recette : elles sont transmises à votre fonction de récompense metadata sur le terrain lors de l'exécution.

Parmi les exemples courants, citons :

Metadonnées

  • id— Identifiant unique pour le suivi

  • task_id— Task-level identifiant

  • difficulty_level— Indicateur de complexité du problème

  • domain— 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

Validation de vos données

Avant de soumettre votre projet de formation, validez votre ensemble de données pour détecter rapidement les problèmes de mise en forme. Pour les outils de validation disponibles, consultezOutils de validation.

Entrées d'échantillons

Vous trouverez ci-dessous des exemples complets d'objets JSON illustrant comment combiner les champs pour différents cas d'utilisation de la technologie RFT.

Chemistry problem
{ "id": "chem-01", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Calculate the molecular weight of caffeine (C8H10N4O2)" } ], "reference_answer": { "molecular_weight": 194.19, "unit": "g/mol", "calculation": "8(12.01) + 10(1.008) + 4(14.01) + 2(16.00) = 194.19" } }
Math problem
{ "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"] } }
Code problem
{ "id": "code-002", "messages": [ { "role": "system", "content": "You are a helpful programming assistant" }, { "role": "user", "content": "Write a Python function that reverses a string without using built-in reverse methods" } ], "reference_answer": { "code": "def reverse_string(s):\n result = ''\n for i in range(len(s) - 1, -1, -1):\n result += s[i]\n return result", "test_cases": [ { "input": "hello", "expected_output": "olleh" }, { "input": "", "expected_output": "" }, { "input": "a", "expected_output": "a" }, { "input": "Python123", "expected_output": "321nohtyP" } ], "all_tests_pass": true } }
Tool usage
{ "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" } }
With additional properties

L'exemple suivant inclut des champs de métadonnées personnalisés qui sont transmis à votre fonction de récompense lors de l'évaluation, permettant ainsi une logique de notation sophistiquée adaptée à votre cas d'utilisation spécifique.

{ "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 }

Fonctionnalités prises en charge

Le tableau suivant récapitule les fonctionnalités prises en charge par RFT sur Amazon Nova 2.

Prise en charge de la fonctionnalité RFT
Fonctionnalité RFT sur Amazon Nova 2
Compréhension de texte Pris en charge sur Nova 2.0 Lite. Consultez General/Text compréhension.
Compréhension des images Non pris en charge
Compréhension des vidéos Non pris en charge
Compréhension des documents Non pris en charge
Appel d'outils Pris en charge sur Nova 2.0 Lite. Consultez Appel d'outils.
Raisonnement Pris en charge sur Nova 2.0 Lite. Consultez Raisonnement.

General/Text compréhension

Cette section récapitule les contraintes générales et les meilleures pratiques relatives à la préparation des données d'entraînement RFT sur Amazon Nova 2.

Contraintes

Contraintes générales du jeu de données
Contrainte Détails
Format du jeu de données JSONL (un objet JSON par ligne).
Exemples de formation minimale 100
Exemples d'évaluation minimale 100
Modalités prises en charge Texte uniquement

Bonnes pratiques

  • Nous vous recommandons de commencer par les tailles de jeu de données minimales (100 exemples d'entraînement et 100 exemples d'évaluation) et de passer à l'échelle après avoir validé votre fonction de récompense et confirmé que le RFT est adapté à votre cas d'utilisation.

  • Nous recommandons une approche axée sur l'évaluation. Avant d'investir dans un entraînement RFT à grande échelle, évaluez les performances de base de votre modèle :

    • Performances élevées (récompense supérieure à 95 %)  : la RFT n'est peut-être pas nécessaire car votre modèle fonctionne déjà bien.

    • Très mauvaises performances (0 % de récompense) — Passez d'abord à SFT pour établir les fonctionnalités de base.

    • Performances modérées  : la RFT est probablement appropriée.

  • Commencer par un petit ensemble de données vous permet de vérifier que votre fonction de récompense est exempte de bogues, de confirmer que la RFT est la bonne approche, d'identifier et de résoudre les problèmes rapidement et de tester le flux de travail avant de le développer.

  • Donnez la priorité à des 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 des modèles.

Exemple d'entrée

{ "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"] } }

Appel d'outils

RFT prend en charge les modèles d'entraînement sur les modèles d'appel d'outils, permettant à votre modèle d'apprendre quand et comment invoquer des outils ou des fonctions externes.

Contraintes

Contraintes relatives aux appels d'outils
Contrainte Détails
Emplacement de la définition de l'outil Les outils sont déclarés dans le tools tableau de niveau supérieur de l'exemple de formation.
Format de définition de l'outil Chaque outil doit incluretype, function.namefunction.description, et un schéma JSON valide dansfunction.parameters.
Réponse de référence reference_answerUtilisez-le pour spécifier l'appel d'outil attendu (par exemple,tool_called,tool_parameters) afin que votre fonction de récompense puisse évaluer l'exactitude.

Bonnes pratiques

  • Assurez-vous que les définitions de vos outils sont cohérentes dans tous les exemples de formation.

  • Le modèle apprend les modèles d'appel des outils à partir des démonstrations que vous fournissez.

  • Incluez divers exemples indiquant quand utiliser chaque outil et quand ne pas utiliser les outils.

Exemple d'entrée

{ "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" } }

Raisonnement

RFT sur Amazon Nova 2 prend en charge le mode raisonnement, dans lequel le modèle génère des jetons de réflexion explicites avant de produire une réponse finale. Vous contrôlez le comportement de raisonnement pendant l'entraînement à l'aide du champ de configuration de l'reasoning_effortentraînement.

Contraintes

Contraintes de raisonnement
Contrainte Détails
Modes disponibles none(omettez le reasoning_effort champ)low, ethigh. Il n'y a pas d'mediumoption pour RFT.
Comportement par défaut Si le reasoning_effort champ est absent de votre configuration, le raisonnement est désactivé.
Limite de jetons Lorsque le raisonnement est activé, réglez sur 32768 max_new_tokens pour prendre en charge les sorties de raisonnement étendues.

Quand utiliser chaque mode

Utilisez high le raisonnement pour :

  • Tâches analytiques complexes

  • Résolution de problèmes mathématiques

  • Multi-step déduction logique

  • Tâches où la réflexion étape par étape ajoute de la valeur

Utiliser none (omettrereasoning_effort) ou low justifier :

  • Requêtes factuelles simples

  • Classifications directes

  • Optimisation de la vitesse et des coûts

  • Réponse simple aux questions

Compromis entre coûts et performances

Les modes de raisonnement supérieurs augmentent :

  • Durée et coût de la formation

  • Latence et coût d'inférence

  • Capacité de modélisation pour des tâches de raisonnement complexes

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érentes sorties du modèle. Évitez le bruit dans vos données, notamment :

  • Formatage incohérent

  • Étiquettes ou instructions contradictoires

  • Invitations ambiguës

  • Réponses de référence contradictoires

Toute ambiguïté induira le processus de formation en erreur et amènera le modèle à apprendre des comportements imprévus.

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 formats d'entrée et cas limites

  • Cartographier les modèles d'utilisation réels de la production à partir des journaux et des analyses des utilisateurs

  • Échantillon selon les types d'utilisateurs, les régions géographiques et les variations saisonnières

  • Incluez des niveaux de difficulté allant des problèmes simples aux problèmes complexes

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

  • Renvoie des scores cohérents et fiables

  • Gérez les différents types de sorties de modèles avec élégance

Les fonctions de récompense rapides et évolutives permettent une itération rapide et des expériences rentables.

Formation RFT utilisant LLM en tant que juge

Vue d’ensemble

Les grands modèles de langage (LLM) sont de plus en plus utilisés comme juges dans les flux de travail de réglage par renforcement (RFT), fournissant des signaux de récompense automatisés qui guident l'optimisation des modèles. Dans cette approche, un LLM évalue les résultats du modèle en fonction de critères spécifiques, qu'il s'agisse d'évaluer l'exactitude, la qualité, le respect du style ou l'équivalence sémantique, et attribue des récompenses qui stimulent le processus d'apprentissage par renforcement.

Cela est particulièrement utile pour les tâches pour lesquelles les fonctions de récompense traditionnelles sont difficiles à définir par programmation, par exemple pour déterminer si différentes représentations (comme « », 1/3 « 0,333 » et « tiers ») sont sémantiquement équivalentes, ou pour évaluer des qualités nuancées telles que la cohérence et la pertinence. En utilisant LLM-based les juges comme fonctions de récompense, vous pouvez adapter la RFT à des domaines complexes sans nécessiter d'annotations humaines approfondies, ce qui permet une itération rapide et une amélioration continue de vos modèles dans divers cas d'utilisation, au-delà des problèmes d'alignement traditionnels.

Validation de votre juge LLM

Avant de déployer un LLM-as-a-judge produit en production, vérifiez que les évaluations du modèle d'évaluation correspondent au jugement humain. Cela implique :

  • Mesurer les taux de concordance entre le juge LLM et les évaluateurs humains sur des échantillons représentatifs de votre tâche

  • Veiller à ce que l'accord du LLM avec les humains atteigne ou dépasse les taux d'accord interhumain

  • Identifier les biais potentiels dans le modèle du juge

  • Renforcer la certitude que le signal de récompense oriente votre modèle dans la direction prévue

Cette étape de validation permet de garantir que le processus d'évaluation automatisé produira des modèles répondant à vos critères de qualité de production.

Configuration Lambda pour LLM Judge

L'utilisation d'un LLM en tant que juge est une extension de l'utilisation des fonctions Lambda pour l'apprentissage par renforcement avec récompenses vérifiables (RLVR). Dans la fonction Lambda, vous appelez l'un des modèles hébergés dans Amazon Bedrock.

Exigences de configuration importantes :

Configuration Exigence Détails
Débit Amazon Bedrock Quota suffisant Assurez-vous que votre quota de débit pour le modèle Amazon Bedrock utilisé est suffisant pour votre charge de travail de formation
délai d’expiration Lambda Délai d'attente prolongé Configurez le délai d'expiration de votre fonction Lambda jusqu'à un maximum de 15 minutes. Le paramètre par défaut est de 3 secondes, ce qui est insuffisant pour les réponses du modèle Amazon Bedrock
Simultanéité Lambda Simultanéité accrue Le Lambda est invoqué en parallèle pendant l'entraînement. Augmentez la simultanéité pour optimiser le débit disponible
Configuration de la recette Faites correspondre les paramètres Lambda La limite de simultanéité doit être configurée dans votre recette