

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
<a name="nova-hp-rft-nova2"></a>

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.

**Topics**
+ [Format et structure des données](#nova-hp-rft-data-format)
+ [Descriptions des champs](#nova-hp-rft-field-descriptions)
+ [Guidage des hyperparamètres](#nova-hp-rft-monitoring-hyperparams)
+ [Propriétés supplémentaires](#nova-hp-rft-additional-properties)
+ [Recommandations relatives à la taille des jeux](#nova-hp-rft-dataset-size)
+ [Caractéristiques des données d'entraînement efficaces](#nova-hp-rft-effective-data)
+ [Surveillance de la formation RFT](nova-hp-rft-monitoring.md)

## Format et structure des données
<a name="nova-hp-rft-data-format"></a>

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\$1answer** : 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.

### Exemple 1 : problème de chimie
<a name="nova-hp-rft-example-chemistry"></a>

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\$1answer 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.

### Exemple 2 : problème mathématique
<a name="nova-hp-rft-example-math"></a>

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

### Exemple 3 : utilisation de l'outil
<a name="nova-hp-rft-example-tool"></a>

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
<a name="nova-hp-rft-field-descriptions"></a>


| 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 | Matrice. Chaque élément définit l'interface et les métadonnées d'un outil. Les types peuvent inclure « fonction » ou « interne ». | Non | 
| réponse\$1ré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\$1id, difficulty\$1level, context\$1data) ne sont pas validés et seront transmis à votre fonction de récompense sous forme de métadonnées.

## Guidage des hyperparamètres
<a name="nova-hp-rft-monitoring-hyperparams"></a>

Utilisez les hyperparamètres recommandés suivants en fonction de votre approche d'entraînement :

**Généralités :**
+ Époques : 1
+ Taux d'apprentissage (lr) : 1e-7
+ Nombre de générations : 8
+ Nombre maximum de nouveaux jetons : 8192
+ Taille du lot : 256

**LoRa (adaptation de bas rang) :**
+ Rang LoRa : 32

**Note**  
Ajustez ces valeurs en fonction de la taille de votre jeu de données et des performances de validation. Surveillez les indicateurs d'entraînement pour éviter le surajustement.

## Propriétés supplémentaires
<a name="nova-hp-rft-additional-properties"></a>

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
<a name="nova-hp-rft-common-fields"></a>

Vous pouvez inclure les types de champs supplémentaires suivants :

**Métadonnées :**
+ task\$1id : identifiant unique pour le suivi
+ difficulty\$1level : indicateur de complexité du problème
+ domaine : Domaine ou catégorie
+ expected\$1reasoning\$1steps : nombre d'étapes de la solution

**Critères d'évaluation :**
+ evaluation\$1criteria : Rubriques de notation spécifiques
+ custom\$1scoring\$1weights : importance relative des différents aspects
+ context\$1data : informations générales sur le problème
+ external\$1references : liens vers la documentation ou les ressources pertinentes

### Exemple avec des propriétés supplémentaires
<a name="nova-hp-rft-additional-example"></a>

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
<a name="nova-hp-rft-dataset-size"></a>

### Point de départ
<a name="nova-hp-rft-starting-point"></a>

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
<a name="nova-hp-rft-evaluation-first"></a>

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
<a name="nova-hp-rft-effective-data"></a>

### Clarté et cohérence
<a name="nova-hp-rft-clarity"></a>

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é
<a name="nova-hp-rft-diversity"></a>

Votre ensemble de données doit capturer toute la diversité des cas d'utilisation en production afin de garantir de solides performances réelles. Inclure :
+ Différents types de problèmes et niveaux de difficulté
+ Différents formats d'entrée et boîtiers
+ É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
<a name="nova-hp-rft-reward-considerations"></a>

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.

# Surveillance de la formation RFT
<a name="nova-hp-rft-monitoring"></a>

Surveillez les indicateurs clés pendant la formation pour garantir un apprentissage efficace et identifier rapidement les problèmes potentiels.

**Topics**
+ [Indicateurs clés à suivre](#nova-hp-rft-monitoring-metrics)
+ [Évaluation après RFT](#nova-hp-rft-monitoring-evaluation)
+ [Utilisation de modèles affinés](#nova-hp-rft-monitoring-checkpoints)
+ [Limites et meilleures pratiques](#nova-hp-rft-monitoring-limitations)
+ [Résolution des problèmes](#nova-hp-rft-monitoring-troubleshooting)

## Indicateurs clés à suivre
<a name="nova-hp-rft-monitoring-metrics"></a>

Surveillez les indicateurs suivants à l'aide de ces indicateurs MlFlow pendant l'entraînement :

**Indicateurs de récompenses :**
+ **Note de récompense moyenne** : qualité globale des réponses du modèle (devrait augmenter au fil du temps)
+ **Distribution des récompenses** : pourcentage de réponses recevant des récompenses élevées, moyennes et faibles
+ **Récompenses liées à la formation ou à la validation** : comparez pour détecter le surajustement

**Indicateurs de formation :**
+ **Mises à jour des politiques** : nombre de mises à jour du poids réussies
+ **Taux d'achèvement du déploiement** : pourcentage d'échantillons évalués avec succès

**En ce qui concerne les motifs :**
+ Plafond des récompenses (indique un mauvais apprentissage)
+ Les récompenses de validation diminuent tandis que les récompenses d'entraînement augmentent (surajustement)
+ La variance des récompenses augmente de manière significative au fil du temps (instabilité)
+ Pourcentage élevé d'erreurs liées à la fonction de récompense (problèmes de mise en œuvre)

**Quand arrêter l'entraînement :**
+ Les indicateurs de performance cibles sont atteints
+ Les récompenses plafonnent et ne s'améliorent plus
+ Les performances de validation se dégradent (surajustement détecté)
+ Le budget de formation maximal est atteint

## Évaluation après RFT
<a name="nova-hp-rft-monitoring-evaluation"></a>

Une fois la formation terminée, évaluez votre modèle affiné pour évaluer les améliorations de performance :
+ **Exécuter une tâche d'évaluation RFT** : utilisez le point de contrôle de votre formation RFT comme modèle
+ **Comparaison à la base de référence** : évaluez à la fois le modèle de base et le modèle affiné sur le même ensemble de test
+ **Analyser les indicateurs** : passez en revue les indicateurs spécifiques aux tâches (précision, scores de récompense, etc.)
+ **Réaliser un examen qualitatif** : inspecter manuellement la qualité des échantillons de sortie

Pour les procédures d'évaluation détaillées, consultez la section Évaluation.

## Utilisation de modèles affinés
<a name="nova-hp-rft-monitoring-checkpoints"></a>

**Accès aux points de contrôle :**

Une fois la formation terminée, localisez votre point de contrôle :

1. Naviguez vers votre `output_path` dans S3

1. Téléchargez et extrayez `output.tar.gz`

1. Ouvrez `manifest.json`.

1. Copiez la `checkpoint_s3_bucket` valeur

**Déploiement à des fins d'inférence :**

Utilisez le chemin du point de contrôle S3 à des fins d'inférence ou de formation continue :

```
run:
    model_type: amazon.nova-2-lite-v1:0:256k
    model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"
```

Pour les instructions de déploiement et d'inférence, reportez-vous à la section Inférence.

## Limites et meilleures pratiques
<a name="nova-hp-rft-monitoring-limitations"></a>

**Limitations actuelles :**

**Restrictions relatives aux versions bêta**
+ Besoin de créer un nouveau groupe RIG pour RFT. Cette limitation sera résolue par GA.
+ Exigences relatives au type d'instance : seules les instances P5 sont prises en charge (minimum 8 instances P5.48xLarge). Prochainement : Support pour les types d'instances plus petits (ETA : mi-janvier 2025).

**Limites fonctionnelles :**
+ Délai Lambda de 15 minutes : les fonctions de récompense doivent être terminées dans les 15 minutes
+ Un tour uniquement : les conversations à plusieurs tours ne sont pas prises en charge
+ Ensembles de données de validation : non pris en charge pendant l'entraînement. Utilisez des tâches d'évaluation distinctes pour évaluer les progrès de la formation.

**Considérations relatives à la formation :**
+ Scénarios à faibles récompenses : cela peut être difficile lorsque moins de 5 % des exemples reçoivent des récompenses positives. Pensez d'abord à SFT
+ Exigences en matière de données : nécessite une diversité suffisante pour apprendre efficacement
+ Coût de calcul : plus coûteux que le réglage fin supervisé

**Nova Forge supprime certaines de ces limitations :**
+ Prend en charge les conversations à plusieurs tours
+ Permet aux fonctions de récompense de plus de 15 minutes
+ Fournit des algorithmes avancés et des options de réglage
+ Conçu pour les cas d'utilisation complexes en entreprise, spécialement conçu pour créer des modèles avant-gardistes

**Bonnes pratiques :**

**Commencez petit et agrandissez :**
+ Commencez avec un minimum d'ensembles de données (100 à 200 exemples) et peu d'époques d'entraînement
+ Validez votre approche avant de la mettre à l'échelle
+ Augmentez progressivement la taille de l'ensemble de données et les étapes d'entraînement en fonction des résultats

**Base de référence avec SFT d'abord :**
+ Si les scores de récompense sont constamment faibles (par exemple, toujours 0), effectuez SFT avant RFT
+ La RFT nécessite des performances de base raisonnables pour s'améliorer efficacement

**Concevez des fonctions de récompense efficaces :**
+ Exécuter en quelques secondes, et non en quelques minutes
+ Minimiser les appels d'API externes
+ Utiliser des algorithmes et des structures de données efficaces
+ Mettre en œuvre une gestion appropriée des erreurs
+ Faites des tests approfondis avant l'entraînement
+ Tirez parti des fonctionnalités de mise à l'échelle parallèle de Lambda

**Surveillez activement la formation :**
+ Suivez les scores de récompense moyens au fil du temps
+ Regardez la distribution des récompenses entre les échantillons
+ Comparez les récompenses de formation aux récompenses de validation
+ Recherchez les tendances inquiétantes (plateaux, surajustement, instabilité)

**Itérer en fonction des résultats :**
+ Si les récompenses ne s'améliorent pas après plusieurs itérations, ajustez le design de la fonction de récompense
+ Augmenter la diversité des ensembles de données pour fournir des signaux d'apprentissage plus clairs
+ Envisagez de passer à SFT si les récompenses restent proches de zéro
+ Expérimentez avec différents hyperparamètres (taux d'apprentissage, taille du lot)

**Optimisez la qualité des données :**
+ Garantir la diversité et la représentativité des exemples
+ Incluez des étuis de pointe et des échantillons difficiles
+ Vérifier que la fonction de récompense note correctement tous les types d'exemples
+ Supprimez ou corrigez les échantillons qui perturbent la fonction de récompense

## Résolution des problèmes
<a name="nova-hp-rft-monitoring-troubleshooting"></a>

**Erreurs liées à la fonction de récompense :**

Symptômes : taux d'erreur élevé lors des appels à la fonction de récompense pendant l'entraînement


| Problème | Symptômes | Résolution | 
| --- |--- |--- |
| délai d’expiration Lambda | Délais d'attente fréquents après 15 minutes | Optimisez les performances des fonctions ; considérez Nova Forge pour les évaluations complexes | 
| Simultanéité insuffisante | Erreurs de régulation Lambda | Augmenter lambda\$1concurrency\$1limit ou demander une augmentation du quota | 
| Format de retour non valide | L'entraînement échoue en raison d'erreurs de format | Vérifiez que la structure de retour correspond au format d'interface requis | 
| Exceptions non gérées | Erreurs intermittentes | Ajoutez une gestion et une journalisation complètes des erreurs | 
| Défaillances d'API externes | Notation incohérente | Mettre en œuvre une logique de nouvelle tentative et des stratégies de repli | 

**Mauvaises performances d'entraînement :**

Symptômes : les récompenses ne s'améliorent pas ou plafonnent à de faibles valeurs

Résolutions :
+ **Vérifiez l'exactitude de la fonction de récompense** : testez avec des exemples connus good/bad 
+ **Vérifiez les performances de référence** : évaluez le modèle de base ; si la précision est proche de zéro, effectuez d'abord le SFT
+ **Augmenter la diversité des données** : ajouter des exemples plus variés couvrant différents scénarios
+ **Ajustez les hyperparamètres** : essayez différents taux d'apprentissage ou différentes tailles de lots
+ **Vérifiez la qualité du signal de récompense** : assurez-vous que les récompenses font la différence entre les bonnes et les mauvaises réponses

**Surajustement :**

Symptômes : les récompenses d'entraînement augmentent tandis que les récompenses de validation diminuent

Résolutions :
+ **Réduisez le nombre d'étapes d'entraînement** : arrêtez l'entraînement plus tôt
+ **Augmenter la taille du jeu de données** : ajouter d'autres exemples de formation
+ **Ajouter une régularisation** : Ajuster ou `weight_decay` `entropy_coeff`
+ **Améliorez la diversité des données** : assurez-vous que le kit de formation représente une distribution complète