

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# RFT su Nova 2.0
<a name="nova-hp-rft-nova2"></a>

I dati di addestramento RFT seguono il formato conversazionale OpenAI. Ogni esempio di addestramento è un oggetto JSON contenente messaggi, risposte di riferimento e definizioni di strumenti opzionali. Questa sezione fornisce indicazioni sulla preparazione di dati di addestramento efficaci per RFT su Nova 2.0.

**Topics**
+ [Formato e struttura dei dati](#nova-hp-rft-data-format)
+ [Descrizioni dei campi](#nova-hp-rft-field-descriptions)
+ [Guida agli iperparametri](#nova-hp-rft-monitoring-hyperparams)
+ [Proprietà aggiuntive](#nova-hp-rft-additional-properties)
+ [Suggerimenti sulle dimensioni dei set di dati](#nova-hp-rft-dataset-size)
+ [Caratteristiche dei dati di allenamento efficaci](#nova-hp-rft-effective-data)
+ [Monitoraggio della formazione RFT](nova-hp-rft-monitoring.md)

## Formato e struttura dei dati
<a name="nova-hp-rft-data-format"></a>

Ogni esempio di addestramento è un oggetto JSON contenente quanto segue:
+ **messaggi**: una serie di turni di conversazione che utilizzano ruoli di sistema, utente e, facoltativamente, assistente
+ **reference\$1answer**: risultato previsto o criteri di valutazione per il calcolo della ricompensa
+ **strumenti** (opzionale): serie di definizioni di funzioni disponibili per il modello
+ **id** (opzionale): identificatore univoco per il tracciamento e la deduplicazione

Ogni esempio deve essere su una sola riga del file JSONL, con un oggetto JSON per riga.

### Esempio 1: problema di chimica
<a name="nova-hp-rft-example-chemistry"></a>

L'esempio seguente mostra un problema di chimica con una risposta di riferimento contenente valori di verità fondamentali:

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

**Nota**  
Il reference\$1answer contiene valori di verità fondamentali calcolati utilizzando regole specifiche del dominio. La tua funzione di ricompensa confronta i valori previsti del modello con questi valori di riferimento per calcolare un punteggio di ricompensa.

### Esempio 2: problema matematico
<a name="nova-hp-rft-example-math"></a>

L'esempio seguente mostra un problema di matematica con passaggi di soluzione:

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

### Esempio 3: utilizzo degli strumenti
<a name="nova-hp-rft-example-tool"></a>

L'esempio seguente mostra l'utilizzo dello strumento con il comportamento previsto:

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

## Descrizioni dei campi
<a name="nova-hp-rft-field-descriptions"></a>


| Campo | Description | Note aggiuntive | Richiesto | 
| --- |--- |--- |--- |
| id | Identificatore univoco per questo esempio RFT | Stringa (ad esempio, «sample-001"). Utile per il tracciamento e la deduplicazione. | No | 
| messages | Elenco ordinato di messaggi di chat che definiscono il prompt e il contesto | Array di oggetti . Il modello li vede in ordine. In genere inizia con un messaggio di sistema, quindi l'utente. | Sì | 
| messages [] .role | Chi sta parlando nel messaggio | Valori comuni: «sistema», «utente» (a volte «assistente» in altri contesti) | No | 
| messaggi [] .content | Il contenuto testuale del messaggio | Stringa semplice. Per il sistema sono le istruzioni, per l'utente è l'attività o l'input. | No | 
| strumenti | Specifiche dell'utensile disponibili per il modello durante questo esempio | Array. Ogni elemento definisce l'interfaccia e i metadati di uno strumento. I tipi possono includere «funzione» o «interno». | No | 
| risposta\$1di riferimento | L'output del modello previsto per questo esempio | Stringa o oggetto a seconda dell'attività. Utilizzato come obiettivo per la valutazione o la formazione. | No | 

**Nota**  
Eventuali campi personalizzati aggiuntivi (ad esempio, task\$1id, difficy\$1level, context\$1data) non vengono convalidati e verranno passati alla funzione di ricompensa come metadati.

## Guida agli iperparametri
<a name="nova-hp-rft-monitoring-hyperparams"></a>

Utilizza i seguenti iperparametri consigliati in base al tuo approccio di allenamento:

**Generale:**
+ Epoche: 1
+ Tasso di apprendimento (lr): 1e-7
+ Numero di generazioni: 8
+ Numero massimo di nuovi token: 8192
+ Dimensione del lotto: 256

**LoRa (adattamento a basso rango):**
+ Grado LoRa: 32

**Nota**  
Modifica questi valori in base alle dimensioni del set di dati e alle prestazioni di convalida. Monitora le metriche di allenamento per evitare un sovradimensionamento.

## Proprietà aggiuntive
<a name="nova-hp-rft-additional-properties"></a>

L'impostazione «AdditionalProperties»: true consente di includere campi personalizzati oltre ai requisiti di base dello schema, offrendo la flessibilità necessaria per aggiungere tutti i dati necessari alla funzione di ricompensa per una corretta valutazione.

### Campi aggiuntivi comuni
<a name="nova-hp-rft-common-fields"></a>

È possibile includere i seguenti tipi di campi aggiuntivi:

**Metadati:**
+ task\$1id: identificatore univoco per il tracciamento
+ difficily\$1level: indicatore di complessità del problema
+ dominio: area tematica o categoria
+ expected\$1reasoning\$1steps: numero di passaggi nella soluzione

**Criteri di valutazione:**
+ evaluation\$1criteria: Rubriche di valutazione specifiche
+ custom\$1scoring\$1weights: importanza relativa dei diversi aspetti
+ context\$1data: informazioni di base sul problema
+ external\$1references: collegamenti alla documentazione o alle risorse pertinenti

### Esempio con proprietà aggiuntive
<a name="nova-hp-rft-additional-example"></a>

L'esempio seguente include campi di metadati personalizzati:

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

## Suggerimenti sulle dimensioni dei set di dati
<a name="nova-hp-rft-dataset-size"></a>

### Punto di partenza
<a name="nova-hp-rft-starting-point"></a>

Inizia con le seguenti dimensioni minime dei set di dati:
+ Almeno 100 esempi di formazione
+ Minimo 100 esempi di valutazione

Dai priorità ai dati di input di alta qualità e a una funzione di ricompensa affidabile che viene eseguita in modo coerente sulle risposte del modello.

### Approccio incentrato sulla valutazione
<a name="nova-hp-rft-evaluation-first"></a>

Prima di investire nella formazione RFT su larga scala, valuta le prestazioni di base del tuo modello:
+ **Prestazioni elevate (ricompensa superiore al 95%)**: la tecnologia RFT potrebbe non essere necessaria, in quanto il modello offre già buone prestazioni
+ **Prestazioni molto scarse (ricompensa dello 0%)**: passate innanzitutto a SFT per stabilire le funzionalità di base
+ **Prestazioni moderate**: la tecnologia RFT è probabilmente appropriata

Questo approccio basato sulla valutazione assicura che la funzione di ricompensa sia priva di bug e determina se RFT è il metodo giusto per il tuo caso d'uso. Iniziare in piccolo consente di acquisire dimestichezza con il flusso di lavoro RFT, identificare e risolvere tempestivamente i problemi, convalidare l'approccio prima dell'ampliamento e testare l'affidabilità delle funzioni di ricompensa. Una volta convalidato, puoi espanderlo a set di dati più grandi per migliorare ulteriormente le prestazioni.

## Caratteristiche dei dati di allenamento efficaci
<a name="nova-hp-rft-effective-data"></a>

### Chiarezza e coerenza
<a name="nova-hp-rft-clarity"></a>

I buoni esempi RFT richiedono dati di input chiari e inequivocabili che consentano un calcolo accurato della ricompensa tra i diversi output del modello. Evita il rumore nei tuoi dati, tra cui:
+ Formattazione non coerente
+ Etichette o istruzioni contraddittorie
+ Istruzioni ambigue
+ Risposte di riferimento contrastanti

Qualsiasi ambiguità indurrà in errore il processo di formazione e indurrà il modello ad apprendere comportamenti non intenzionali.

### Diversità
<a name="nova-hp-rft-diversity"></a>

Il tuo set di dati dovrebbe catturare l'intera diversità dei casi d'uso di produzione per garantire solide prestazioni nel mondo reale. Include:
+ Vari tipi di problemi e livelli di difficoltà
+ Diversi formati di input e casi limite
+ Esempi rappresentativi di tutti gli scenari previsti

Questa diversità aiuta a prevenire l'overfit e garantisce che il modello gestisca gli input non familiari con garbo.

### Considerazioni sulla funzione di ricompensa
<a name="nova-hp-rft-reward-considerations"></a>

Progetta la tua funzione di ricompensa per un allenamento efficiente:
+ Esegui in pochi secondi (non in minuti)
+ Parallelizza efficacemente con Lambda
+ Restituisci punteggi coerenti e affidabili
+ Gestisci con eleganza diversi tipi di output del modello

Le funzioni di ricompensa veloci e scalabili consentono un'iterazione rapida e una sperimentazione economica su larga scala.