View a markdown version of this page

Preparación de datos para el RFT en Amazon Nova 2 - Amazon Nova

Preparación de datos para el RFT en Amazon Nova 2

Actualmente, RFT en Amazon Nova 2 admite datos de entrenamiento basados en texto. En esta página, se describen el formato de los datos, las características compatibles, las restricciones y las prácticas recomendadas para preparar los datos de entrenamiento de RFT para los modelos de comprensión de Amazon Nova 2.

sugerencia

Para validar el formato de su conjunto de datos antes de iniciar un trabajo de entrenamiento, consulte Herramientas de validación.

Formato de los datos

Los datos de entrenamiento de RFT deben seguir el formato de refinamiento de refuerzo de OpenAI. Cada línea de su archivo de entrenamiento JSONL es un objeto JSON con los siguientes campos de nivel superior. Amplíe cada sección para obtener más información:

Obligatorio. Una matriz de turnos conversacionales con los roles system, user y, opcionalmente, assistant.

  • rol: obligatorio. Valores comunes: system (instrucciones para el modelo) y user (la tarea o entrada).

  • contenido: obligatorio. Contenido del texto del mensaje Para los turnos del sistema, se trata de instrucciones; para los turnos del usuario, se trata de la tarea o entrada.

"messages": [ { "role": "system", "content": "instructions" }, { "role": "user", "content": "prompt" } ]

Obligatorio. El resultado esperado o los criterios de evaluación que la función de recompensa utiliza para puntuar la respuesta del modelo. Este campo no se limita a resultados estructurados, sino que puede contener cualquier formato que ayude a la función de recompensa a evaluar la calidad.

"reference_answer": { "field": "value" }

Opcional. Una matriz de especificaciones de herramientas disponibles para el modelo en este ejemplo. Cada elemento define la interfaz y los metadatos de una herramienta. Para ver un ejemplo completo, consulte Llamada a herramientas.

"tools": [ { "type": "function", "function": { "name": "tool-name", "description": "tool-description", "parameters": { ... } } } ]

El formato de datos RFT admite campos personalizados más allá de messages y reference_answer. Incluya cualquier dato adicional que su función de recompensas necesite para una evaluación adecuada. No necesita configurarlos en su fórmula: se transfieren a su función de recompensa en el campo metadata durante el tiempo de ejecución.

Los ejemplos comunes incluyen:

Metadatos

  • id: identificador único de seguimiento

  • task_id: identificador a nivel de tarea

  • difficulty_level: indicador de la complejidad del problema

  • domain: categoría o área del asunto

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

Requisitos de evaluación

  • evaluation_criteria: 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

Validación de los datos

Antes de enviar su trabajo de entrenamiento, valide su conjunto de datos para detectar pronto los problemas de formato. Para ver las herramientas de validación disponibles, consulte Herramientas de validación.

Ejemplo de entradas

A continuación, se muestran ejemplos completos de objetos JSON que ilustran cómo combinar los campos para diferentes casos de uso de RFT.

Chemistry problem
{ "id": "chem-01", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Calculate the molecular weight of caffeine (C8H10N4O2)" } ], "reference_answer": { "molecular_weight": 194.19, "unit": "g/mol", "calculation": "8(12.01) + 10(1.008) + 4(14.01) + 2(16.00) = 194.19" } }
Math problem
{ "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"] } }
Code problem
{ "id": "code-002", "messages": [ { "role": "system", "content": "You are a helpful programming assistant" }, { "role": "user", "content": "Write a Python function that reverses a string without using built-in reverse methods" } ], "reference_answer": { "code": "def reverse_string(s):\n result = ''\n for i in range(len(s) - 1, -1, -1):\n result += s[i]\n return result", "test_cases": [ { "input": "hello", "expected_output": "olleh" }, { "input": "", "expected_output": "" }, { "input": "a", "expected_output": "a" }, { "input": "Python123", "expected_output": "321nohtyP" } ], "all_tests_pass": true } }
Tool usage
{ "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" } }
With additional properties

El siguiente ejemplo incluye campos de metadatos personalizados que se transfieren a la función de recompensa durante la evaluación, lo que permite aplicar una lógica de puntuación sofisticada adaptada a su caso de uso específico.

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

Características admitidas

En la siguiente tabla se resume la compatibilidad de características para RFT en Amazon Nova 2.

Compatibilidad de características de RFT
Característica RFT en Amazon Nova 2
Comprensión de textos Compatible con Nova 2.0 Lite. Consulte Comprensión general/de textos.
Comprensión de imágenes No admitido
Comprensión de videos No admitido
Comprensión de documentos No admitido
Llamada a herramientas Compatible con Nova 2.0 Lite. Consulte Llamada a herramientas.
Razonamiento Compatible con Nova 2.0 Lite. Consulte Razonamiento.

Comprensión general/de textos

En esta sección se resumen las restricciones generales y las prácticas recomendadas para preparar los datos de entrenamiento de RFT en Amazon Nova 2.

Restricciones

Restricciones del conjunto de datos
Restricción Details
Formato de conjuntos de datos JSONL (un objeto JSON por línea).
Mínimo de ejemplos de entrenamiento 100
Mínimo de ejemplos de evaluación 100
Modalidades admitidas Solo texto

Prácticas recomendadas

  • Le recomendamos empezar con los tamaños mínimos de los conjuntos de datos (100 ejemplos de entrenamiento y 100 ejemplos de evaluación) y ampliarlos una vez que haya validado la función de recompensa y haya confirmado que RFT es adecuado para su caso de uso.

  • Recomendamos un enfoque que priorice la evaluación. Antes de invertir en un entrenamiento RFT a gran escala, evalúe el rendimiento de línea de base del modelo:

    • Alto rendimiento (>95 % de recompensa) – Es posible que el RFT no sea necesario porque el modelo ya funciona bien.

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

    • Rendimiento moderado: es probable que el RFT sea adecuado.

  • Empezar con un conjunto de datos pequeño le ayuda a comprobar que su función de recompensa está libre de errores, a confirmar que el RFT es el enfoque correcto, a identificar y solucionar los problemas de forma temprana y a probar el flujo de trabajo antes de ampliarlo.

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

Ejemplo de entrada

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

Llamada a herramientas

El RFT admite modelos de entrenamiento en patrones de uso de herramientas, lo que permite al modelo aprender cuándo y cómo debe invocar herramientas o funciones externas.

Restricciones

Restricciones de llamada a herramientas
Restricción Details
Ubicación de definición de herramienta Las herramientas se declaran en la matriz tools de nivel superior del ejemplo de entrenamiento.
Formato de definición de herramienta Cada herramienta debe incluir type, function.name, function.description y un esquema JSON válido en function.parameters.
Respuesta de referencia Se utiliza reference_answer para especificar la invocación prevista de la herramienta (por ejemplo, tool_called, tool_parameters) para que la función de recompensa pueda evaluar la corrección.

Prácticas recomendadas

  • Asegúrese de que las definiciones de las herramientas sean coherentes en todos los ejemplos de entrenamiento.

  • El modelo aprende los patrones de invocación de las herramientas a partir de las demostraciones que usted proporciona.

  • Incluya varios ejemplos de cuándo se debe usar cada herramienta y cuándo no se deben usar herramientas.

Ejemplo de entrada

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

Razonamiento

El RFT de Amazon Nova 2 admite el modo de razonamiento, en el cual el modelo genera tokens de pensamiento explícito antes de producir una respuesta final. El comportamiento de razonamiento se controla durante el entrenamiento con el campo de configuración de entrenamiento reasoning_effort.

Restricciones

Restricciones de razonamiento
Restricción Details
Modos disponibles none (omita el campo reasoning_effort), low y high. No hay una opción medium para el RFT.
Comportamiento predeterminado Si el campo reasoning_effort no está en la configuración, el razonamiento está desactivado.
Límite de tokens Cuando el razonamiento está habilitado, debe configurar max_new_tokens en 32 768 para dar cabida a las salidas de razonamiento extendido.

Cuándo se debe usar cada modo

Use el razonamiento de high para lo siguiente:

  • Tareas analíticas complejas

  • Resolución de problemas matemáticos

  • Deducción lógica de varios pasos

  • Tareas en las que pensar paso a paso agrega valor

Utilice el razonamiento de none (omita reasoning_effort) o de low para lo siguiente:

  • Consultas de hechos sencillas

  • Clasificaciones directas

  • Optimización de velocidad y costo

  • Preguntas y respuestas directas

Compensaciones de costo y rendimiento

Los modos de razonamiento alto aumentan lo siguiente:

  • Tiempo y costo del entrenamiento

  • Latencia y costo de la inferencia

  • Capacidad del modelo para tareas de razonamiento complejas

Características de los datos de entrenamiento eficaces

Claridad y coherencia

Los buenos ejemplos del RFT requieren datos de entrada claros e inequívocos que permitan un cálculo preciso de las recompensas en las diferentes salidas del modelo. Evite el ruido en los datos, lo que incluye lo siguiente:

  • Formato incoherente

  • Etiquetas o instrucciones contradictorias

  • Peticiones ambiguas

  • Conflictos en las respuestas de referencia

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

Diversidad

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

  • Diferentes formatos de entrada y casos extremos

  • Asignación de patrones reales de uso de producción a partir de registros y análisis de usuarios

  • Muestras de distintos tipos de usuarios, regiones geográficas y variaciones estacionales

  • Inclusión de niveles de dificultad, desde problemas simples hasta problemas complejos

Consideraciones sobre la función de recompensas

Diseñe la función de recompensas para un entrenamiento eficiente:

  • Ejecución en segundos (no minutos)

  • Paralelización eficaz con Lambda

  • Devolución de puntuaciones coherentes y fiables

  • Gestión de diferentes tipos de salidas del modelo sin problemas

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

Entrenamiento RFT con LLM como juez

Descripción general

Los modelos de lenguaje de gran tamaño (LLM) se utilizan cada vez más como jueces en los flujos de trabajo de refinamiento por refuerzo (RFT), ya que proporcionan señales de recompensas automatizadas que guían la optimización de los modelos. Con este enfoque, el LLM evalúa las salidas del modelo en función de requisitos específicos (ya sea la corrección, la calidad, la adherencia al estilo o la equivalencia semántica) y asigna recompensas que impulsan el proceso de aprendizaje por refuerzo.

Esto es particularmente valioso para tareas en las que las funciones de recompensas tradicionales son difíciles de definir mediante programación, como determinar si diferentes representaciones (como “1/3”, “0,333” y “un tercio”) son semánticamente equivalentes, o evaluar cualidades matizadas como la coherencia y la relevancia. Al utilizar jueces basados en LLM como funciones de recompensas, puede escalar el RFT a dominios complejos sin necesidad de una amplia anotación humana, lo que permite una iteración rápida y una mejora continua de los modelos en varios casos de uso, más allá de los problemas de alineación tradicionales.

Validación del juez de LLM

Antes de implementar un LLM como juez en producción, compruebe que las evaluaciones del modelo del juez se ajusten al juicio humano. Esto implica:

  • Medir las tasas de acuerdo entre el juez de LLM y los evaluadores humanos sobre muestras representativas de la tarea

  • Garantizar que el acuerdo del LLM con las personas cumpla o supere las tasas de acuerdo interhumano

  • Identificar posibles sesgos en el modelo del juez

  • Crear la confianza de que la señal de recompensas guíe al modelo en la dirección deseada

Este paso de validación ayuda a garantizar que el proceso de evaluación automatizada produzca modelos que cumplan con los requisitos de calidad de producción.

Configuración de Lambda para juez de LLM

El uso de un LLM como juez es una extensión del uso de las funciones de Lambda para el aprendizaje por refuerzo con recompensas verificables (RLVR). Dentro de la función de Lambda, puede hacer una llamada a uno de los modelos alojados en Amazon Bedrock.

Requisitos de configuración importantes:

Configuración Requisito Details
Rendimiento de Amazon Bedrock Cuota suficiente Asegúrese de que la cuota de rendimiento para el modelo de Amazon Bedrock utilizado sea suficiente para la carga de trabajo de entrenamiento.
Tiempo de espera de Lambda Tiempo de espera ampliado Configure el tiempo de espera de la función de Lambda en hasta un máximo de 15 minutos. La configuración predeterminada es de 3 segundos, lo que no es suficiente para las respuestas del modelo de Amazon Bedrock.
Simultaneidad de Lambda Mayor simultaneidad La función de Lambda se invoca en paralelo durante el entrenamiento. Aumente la simultaneidad para maximizar el rendimiento disponible.
Configuración de fórmulas Coincidencia de la configuración de Lambda El límite de simultaneidad debe estar configurado en la fórmula.