RFT sobre Nova 2.0 - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

RFT sobre Nova 2.0

Los datos de entrenamiento de RFT siguen el formato conversacional de OpenAI. Cada ejemplo de entrenamiento es un objeto JSON que contiene mensajes, respuestas de referencia y definiciones de herramientas opcionales. Esta sección proporciona orientación sobre cómo preparar datos de entrenamiento efectivos para la RFT en Nova 2.0.

Formato y estructura de los datos

Cada ejemplo de entrenamiento es un objeto JSON que contiene lo siguiente:

  • mensajes: una serie de turnos de conversación en los que se utilizan las funciones del sistema, de usuario y, opcionalmente, de asistente

  • reference_answer: resultado esperado o criterio de evaluación para el cálculo de la recompensa

  • herramientas (opcional): conjunto de definiciones de funciones disponibles para el modelo

  • id (opcional): identificador único para el seguimiento y la deduplicación

Cada ejemplo debe estar en una sola línea del archivo JSONL, con un objeto JSON por línea.

El siguiente ejemplo muestra un problema de química con una respuesta de referencia que contiene valores de verdad fundamentales:

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

La reference_answer contiene valores de verdad fundamentales calculados mediante reglas específicas del dominio. La función de recompensa compara los valores pronosticados por el modelo con estos valores de referencia para calcular una puntuación de recompensa.

El siguiente ejemplo muestra un problema matemático con pasos de solución:

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

El siguiente ejemplo muestra el uso de la herramienta con el comportamiento 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" } }

Descripción del campo

Campo

Description (Descripción)

Notas adicionales

Obligatorio

id

Identificador único para este ejemplo de RFT

Cadena (por ejemplo, «sample-001"). Útil para el seguimiento y la deduplicación.

No

Mensajes

Lista ordenada de mensajes de chat que definen el mensaje y el contexto

Una matriz de objetos . La modelo los ve en orden. Normalmente comienza con un mensaje del sistema y luego con el usuario.

mensajes [] .role

¿Quién habla en el mensaje

Valores comunes: «sistema», «usuario» (a veces «asistente» en otros contextos)

No

mensajes [] .contenido

El contenido textual del mensaje

Cadena simple. Para el sistema son las instrucciones, para el usuario son la tarea o entrada.

No

herramientas

Las especificaciones de la herramienta disponibles para el modelo en este ejemplo

Matriz. Cada elemento define la interfaz y los metadatos de una herramienta. Los tipos pueden incluir «función» o «interno».

reference_answer

El resultado esperado del modelo para este ejemplo

Cadena u objeto según la tarea. Se utiliza como objetivo para la evaluación o la formación.

No

nota

Los campos personalizados adicionales (por ejemplo, task_id, difficult level o context_data) no se validan y se pasarán a tu función de recompensas como metadatos.

Propiedades adicionales

La configuración «Propiedades adicionales»: true te permite incluir campos personalizados más allá de los requisitos básicos del esquema, lo que proporciona flexibilidad para añadir cualquier dato que tu función de recompensas necesite para una evaluación adecuada.

Campos adicionales comunes

Puede incluir los siguientes tipos de campos adicionales:

Metadatos:

  • task_id: identificador único para el seguimiento

  • difficult: indicador de complejidad del problema

  • dominio: área temática o categoría

  • expected_reasoning_steps: Número de pasos de la solución

Criterios de evaluación:

  • Criterios de evaluación: rúbricas de calificación específicas

  • custom_scoring_weights: Importancia relativa de los diferentes aspectos

  • context_data: información básica del problema

  • external_references: enlaces a documentación o recursos relevantes

Ejemplo con propiedades adicionales

El siguiente ejemplo incluye campos de metadatos 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 }

Recomendaciones de tamaño del conjunto de datos

Punto de partida

Comience con los siguientes tamaños mínimos de conjuntos de datos:

  • Mínimo 100 ejemplos de formación

  • Mínimo 100 ejemplos de evaluación

Priorice los datos de entrada de alta calidad y una función de recompensa confiable que se ejecute de manera consistente en las respuestas del modelo.

Un enfoque centrado en la evaluación

Antes de invertir en una formación de RFT a gran escala, evalúe el rendimiento básico de su modelo:

  • Alto rendimiento (recompensa superior al 95%): la RFT puede no ser necesaria; su modelo ya funciona bien

  • Rendimiento muy bajo (recompensa del 0%): cambie primero a SFT para establecer las capacidades básicas

  • Rendimiento moderado: es probable que la RFT sea adecuada

Este enfoque, centrado en la evaluación, garantiza que su función de recompensa esté libre de errores y determina si la RFT es el método adecuado para su caso de uso. Empezar poco a poco le permite familiarizarse con el flujo de trabajo de la RFT, identificar y solucionar los problemas con antelación, validar su enfoque antes de ampliarlo y probar la fiabilidad de la función de recompensa. Una vez validado, puede ampliarlo a conjuntos de datos más grandes para mejorar aún más el rendimiento.

Características de los datos de entrenamiento efectivos

Claridad y coherencia

Los buenos ejemplos de RFT requieren datos de entrada claros e inequívocos que permitan un cálculo preciso de las recompensas en los diferentes modelos de salida. Evite el ruido en sus datos, por ejemplo:

  • Formato incoherente

  • Etiquetas o instrucciones contradictorias

  • Indicaciones ambiguas

  • Respuestas de referencia contradictorias

Cualquier ambigüedad inducirá a error el proceso de formación y provocará que el modelo aprenda comportamientos no deseados.

Diversidad

Su conjunto de datos debe capturar toda la diversidad de casos de uso de producción para garantizar un rendimiento sólido en el mundo real. Incluya:

  • Varios tipos de problemas y niveles de dificultad

  • Diferentes formatos de entrada y casos límite

  • Muestras representativas de todos los escenarios esperados

Esta diversidad ayuda a evitar el sobreajuste y garantiza que el modelo gestione correctamente las entradas desconocidas.

Consideraciones sobre la función de recompensa

Diseñe su función de recompensa para un entrenamiento eficiente:

  • Ejecuta en cuestión de segundos (no minutos)

  • Paralelice eficazmente con Lambda

  • Obtenga puntuaciones consistentes y fiables

  • Maneje diferentes tipos de resultados de modelos con elegancia

Las funciones de recompensa rápidas y escalables permiten una iteración rápida y una experimentación rentable a escala.