

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

Os dados de treinamento de RFT seguem o formato conversacional da OpenAI. Cada exemplo de treinamento é um objeto JSON que contém mensagens, respostas de referência e definições de ferramentas opcionais. Esta seção fornece orientação sobre como preparar dados de treinamento eficazes para RFT no Nova 2.0.

**Topics**
+ [Formato e estrutura de dados](#nova-hp-rft-data-format)
+ [Descrições do campo](#nova-hp-rft-field-descriptions)
+ [Orientações de hiperparâmetros](#nova-hp-rft-monitoring-hyperparams)
+ [Propriedades adicionais](#nova-hp-rft-additional-properties)
+ [Recomendações de tamanho do conjunto de dados](#nova-hp-rft-dataset-size)
+ [Características dos dados de treinamento efetivos](#nova-hp-rft-effective-data)
+ [Monitoramento do treinamento de RFT](nova-hp-rft-monitoring.md)

## Formato e estrutura de dados
<a name="nova-hp-rft-data-format"></a>

Cada exemplo de treinamento é um objeto JSON que contém o seguinte:
+ **messages**: uma matriz de turnos de conversação usando perfis de sistema, usuário e, opcionalmente, de assistente
+ **reference\_answer**: resultado esperado ou critérios de avaliação para o cálculo da recompensa
+ **tools** (opcional): matriz de definições de funções disponíveis para o modelo
+ **id** (opcional): identificador único para rastreamento e desduplicação

Cada exemplo deve estar em uma única linha no arquivo JSONL, com um objeto JSON por linha.

### Exemplo 1: problema de química
<a name="nova-hp-rft-example-chemistry"></a>

O seguinte exemplo mostra um problema de química com uma resposta de referência contendo valores de verdade fundamental:

```
{  
  "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**  
O reference\_answer contém valores de verdade fundamental calculados usando regras específicas do domínio. Sua função de recompensa compara os valores de predição do modelo com esses valores de referência para calcular uma pontuação de recompensa.

### Exemplo 2: problema de matemática
<a name="nova-hp-rft-example-math"></a>

O seguinte exemplo mostra um problema de matemática com etapas de solução:

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

### Exemplo 3: uso da ferramenta
<a name="nova-hp-rft-example-tool"></a>

O exemplo a seguir mostra o uso da ferramenta com o comportamento esperado:

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

## Descrições do campo
<a name="nova-hp-rft-field-descriptions"></a>


| Campo | Descrição | Notas adicionais | Obrigatório | 
| --- |--- |--- |--- |
| id | Identificador único para este exemplo de RFT | String (por exemplo, “sample-001”). Útil para rastreamento e desduplicação. | Não | 
| mensagens | Lista ordenada de mensagens de chat que definem o prompt e o contexto | Matriz de objetos . O modelo os vê em ordem. Normalmente começa com uma mensagem do sistema, e depois o usuário. | Sim | 
| messages[].role | Quem está falando na mensagem | Valores comuns: “system”, “user” (às vezes “assistant” em outros contextos) | Não | 
| messages[].content | O conteúdo do texto da mensagem | String simples. Para o sistema, são as instruções, para o usuário, é a tarefa ou a entrada. | Não | 
| ferramentas | Especificações da ferramenta disponíveis para o modelo durante este exemplo | Matriz. Cada item define a interface e os metadados de uma ferramenta. Os tipos podem incluir “function” ou “internal”. | Não | 
| reference\_answer | A saída esperada do modelo para este exemplo | String ou objeto, dependendo da tarefa. Usado como destino para avaliação ou treinamento. | Não | 

**nota**  
Todos os campos personalizados adicionais (por exemplo, task\_id, difficty\_level, context\_data) não são validados e serão passados para sua função de recompensa como metadados.

## Orientações de hiperparâmetros
<a name="nova-hp-rft-monitoring-hyperparams"></a>

Use os seguintes hiperparâmetros recomendados com base em sua abordagem de treinamento:

**Geral:**
+ Épocas: 1
+ Taxa de aprendizado (lr): 1e-7
+ Número de gerações: 8
+ Máximo de novos tokens: 8.192
+ Tamanho do lote: 256

**LoRA (Low-Rank Adaptation):**
+ Classificação LoRA: 32

**nota**  
Ajuste os valores com base no tamanho do conjunto de dados e no desempenho de validação. Monitore as métricas de treinamento para evitar sobreajuste.

## Propriedades adicionais
<a name="nova-hp-rft-additional-properties"></a>

A configuração “additionalProperties”: true permite que você inclua campos personalizados além dos requisitos principais do esquema, oferecendo flexibilidade para adicionar quaisquer dados de que sua função de recompensa precise para uma avaliação adequada.

### Campos adicionais comuns
<a name="nova-hp-rft-common-fields"></a>

Você pode incluir os seguintes tipos de campos adicionais:

**Metadados:**
+ task\_id: identificador único de rastreamento
+ difficty\_level: indicador de complexidade do problema
+ domain: área ou categoria do assunto
+ expected\_reasoning\_steps: número de etapas na solução

**Critérios de avaliação:**
+ evaluation\_criteria: parâmetros de classificação específicos
+ custom\_scoring\_weights: importância relativa de diferentes aspectos
+ context\_data: informações contextuais sobre o problema
+ external\_references: links para documentação ou recursos relevantes

### Exemplo com propriedades adicionais
<a name="nova-hp-rft-additional-example"></a>

O seguinte exemplo inclui campos de metadados personalizados:

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

## Recomendações de tamanho do conjunto de dados
<a name="nova-hp-rft-dataset-size"></a>

### Ponto de partida
<a name="nova-hp-rft-starting-point"></a>

Comece com os seguintes tamanhos mínimos de conjunto de dados:
+ Mínimo de 100 exemplos de treinamento
+ Mínimo de 100 exemplos de avaliação

Priorize dados de entrada de alta qualidade e uma função de recompensa confiável que seja executada de forma consistente nas respostas do modelo.

### Abordagem que prioriza a avaliação
<a name="nova-hp-rft-evaluation-first"></a>

Antes de investir em treinamento de RFT em grande escala, avalie o desempenho básico do seu modelo:
+ **Alto desempenho (recompensa superior a 95%)**: o RFT pode ser desnecessário, pois seu modelo já tem um bom desempenho
+ **Desempenho muito baixo (0% de recompensa)**: mude primeiro para o SFT para estabelecer os recursos básicos
+ **Desempenho moderado**: o RFT provavelmente é apropriado

Essa abordagem que prioriza a avaliação garante que sua função de recompensa esteja livre de erros e determine se o RFT é o método certo para seu caso de uso. Começar aos poucos permite que você se familiarize com o fluxo de trabalho do RFT, identifique e corrija problemas com antecedência, valide sua abordagem antes de aumentar a escala verticalmente e teste a confiabilidade da função de recompensa. Depois de validado, você pode expandir para conjuntos de dados maiores para melhorar ainda mais o desempenho.

## Características dos dados de treinamento efetivos
<a name="nova-hp-rft-effective-data"></a>

### Clareza e consistência
<a name="nova-hp-rft-clarity"></a>

Bons exemplos de RFT exigem dados de entrada claros e inequívocos que permitam o cálculo preciso da recompensa em diferentes saídas do modelo. Evite ruídos em seus dados, incluindo:
+ Formatação inconsistente
+ Rótulos ou instruções contraditórios
+ Prompts ambíguos
+ Respostas de referência conflitantes

Qualquer ambiguidade induzirá o processo de treinamento ao erro, fazendo com que o modelo aprenda comportamentos indesejados.

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

Seu conjunto de dados deve capturar toda a diversidade de casos de uso de produção para garantir um desempenho robusto no mundo real. Inclusão:
+ Vários tipos de problemas e níveis de dificuldade
+ Diferentes formatos de entrada e casos de borda
+ Exemplos representativos de todos os cenários esperados

Essa diversidade ajuda a evitar o sobreajuste e garante que o modelo processe entradas desconhecidas de forma resiliente.

### Considerações sobre a função de recompensa
<a name="nova-hp-rft-reward-considerations"></a>

Projete sua função de recompensa para um treinamento eficiente:
+ Execute em segundos (não em minutos)
+ Paralelize de forma eficaz com o Lambda
+ Retorne pontuações consistentes e confiáveis
+ Lide com diferentes tipos de saídas de modelo de forma resiliente

As funções de recompensa rápidas e escaláveis permitem uma iteração rápida e uma experimentação econômica em grande escala.