RFT em Nova 2.0 - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

RFT em Nova 2.0

Os dados de treinamento da RFT seguem o formato conversacional OpenAI. Cada exemplo de treinamento é um objeto JSON contendo 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.

Formato e estrutura de dados

Cada exemplo de treinamento é um objeto JSON contendo o seguinte:

  • mensagens: uma série de turnos de conversação usando funções de sistema, usuário e, opcionalmente, de assistente

  • reference_answer: Resultado esperado ou critérios de avaliação para o cálculo da recompensa

  • ferramentas (opcional): matriz de definições de funções disponíveis para o modelo

  • id (opcional): identificador exclusivo para rastreamento e desduplicação

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

O exemplo a seguir mostra um problema de química com uma resposta de referência contendo valores verdadeiros fundamentais:

{ "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 reais básicos calculados usando regras específicas do domínio. Sua função de recompensa compara os valores previstos do modelo com esses valores de referência para calcular uma pontuação de recompensa.

O exemplo a seguir mostra um problema matemático 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"] } }

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

Campo

Description

Notas adicionais

Obrigatório

id

Identificador exclusivo para este exemplo de RFT

Cadeia de caracteres (por exemplo, “sample-001"). Útil para rastreamento e desduplicação.

Não

mensagens

Lista ordenada de mensagens de bate-papo 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 com o usuário.

Sim

mensagens [] .role

Quem está falando na mensagem

Valores comuns: “sistema”, “usuário” (às vezes “assistente” em outros contextos)

Não

mensagens [] .content

O conteúdo do texto da mensagem

Corda simples. Para o sistema, são as instruções, para o usuário, é a tarefa ou 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 “função” ou “interna”.

Sim

resposta_referência

A saída esperada do modelo para este exemplo

Cadeia de caracteres ou objeto, dependendo da tarefa. Usado como alvo 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.

Propriedades adicionais

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

Campos adicionais comuns

Você pode incluir os seguintes tipos de campos adicionais:

Metadados:

  • task_id: identificador exclusivo para rastreamento

  • difficty_level: indicador de complexidade do problema

  • domínio: Área temática ou categoria

  • expected_reasoning_steps: Número de etapas na solução

Critérios de avaliação:

  • evaluation_criteria: rubricas de avaliação específicas

  • custom_scoring_weights: Importância relativa de diferentes aspectos

  • context_data: Informações básicas sobre o problema

  • external_references: Links para documentação ou recursos relevantes

Exemplo com propriedades adicionais

O exemplo a seguir 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

Ponto de partida

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

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 — 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 de avaliação em primeiro lugar 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 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

Clareza e consistência

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

  • Etiquetas ou instruções contraditórias

  • Solicitações ambíguas

  • Respostas de referência conflitantes

Qualquer ambigüidade enganará o processo de treinamento e fará com que o modelo aprenda comportamentos não intencionais.

Diversidade

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 extremos

  • Amostras representativas de todos os cenários esperados

Essa diversidade ajuda a evitar sobreajustes e garante que o modelo manipule entradas desconhecidas com elegância.

Considerações sobre a função de recompensa

Crie sua função de recompensa para um treinamento eficiente:

  • Execute em segundos (não minutos)

  • Paralelize de forma eficaz com o Lambda

  • Retorne pontuações consistentes e confiáveis

  • Gerencie diferentes tipos de saídas de modelo com elegância

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.