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.
Ajuste fino de refuerzos (RFT) con los modelos Amazon Nova
Descripción general de
¿Qué es la RFT?
El ajuste preciso por refuerzo (RFT) mejora el rendimiento del modelo al entrenarse con las señales de retroalimentación (puntuaciones medibles o recompensas que indican el rendimiento del modelo) en lugar de con las respuestas exactas correctas. A diferencia de los ajustes supervisados, que aprenden de los pares de entradas y salidas, la RFT utiliza funciones de recompensa para evaluar las respuestas del modelo y lo optimiza de forma iterativa para maximizar estas recompensas. Este enfoque es excelente cuando es difícil definir el resultado exacto y correcto, pero se puede medir de forma fiable la calidad de la respuesta.
¿Cuándo usar la RFT
Utilice la RFT cuando pueda definir criterios de éxito claros y mensurables, pero tenga dificultades para proporcionar resultados exactos y correctos para la formación. Es ideal para:
-
Tareas en las que la calidad es subjetiva o multifacética (escritura creativa, optimización del código, razonamiento complejo)
-
Escenarios con múltiples soluciones válidas en los que algunas son claramente mejores que otras
-
Aplicaciones que requieren mejoras iterativas, personalización o cumplimiento de reglas empresariales complejas
-
Casos en los que recopilar ejemplos etiquetados de alta calidad resulta caro o poco práctico
Los mejores casos de uso
La RFT sobresale en ámbitos en los que la calidad de los resultados se puede medir objetivamente, pero las respuestas óptimas son difíciles de definir por adelantado:
-
Resolución de problemas matemáticos y generación de código
-
Razonamiento científico y análisis de datos estructurados
-
Tareas que requieren step-by-step razonamiento o resolución de problemas en varias etapas
-
Aplicaciones que equilibran varios objetivos (precisión, eficiencia, estilo)
-
Escenarios en los que el éxito se puede verificar mediante programación mediante resultados de ejecución o métricas de rendimiento
Modelos compatibles
Nova Lite 2.0
Descripción general del formato de datos
Los datos de entrenamiento de RFT deben seguir el formato OpenAI Reinforcement Fine-Tuning.
-
Una
messagesmatriz con turnos, usossystemyuserroles conversacionales -
Un
reference_answercampo que contiene el resultado esperado o los criterios de evaluación para el cálculo de la recompensa
Limitaciones actuales
-
Solo texto
Ejemplos de formatos de datos
Cada ejemplo debe estar en una sola línea del archivo JSONL, con un objeto JSON por línea.
El reference_answer campo contiene el resultado esperado o los criterios de evaluación que la función de recompensa utiliza para puntuar la respuesta del modelo. No se limita a resultados estructurados, sino que puede contener cualquier formato que ayude a la función de recompensa a evaluar la calidad.
Recomendaciones de tamaño del conjunto de datos
Punto de partida
-
Mínimo 100 ejemplos de formación
-
Mínimo 100 ejemplos de evaluación
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
Empezar con un conjunto de datos pequeño le permite:
-
Valida que tu función de recompensas esté libre de errores
-
Confirme que la RFT es el enfoque correcto para su caso de uso
-
Identifique y solucione los problemas con antelación
-
Pruebe el flujo de trabajo antes de ampliarlo
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:
-
Diferentes formatos de entrada y casos extremos
-
Mapee los patrones reales de uso de la producción a partir de registros y análisis de usuarios
-
Toma muestras de distintos tipos de usuarios, regiones geográficas y variaciones estacionales
-
Incluye niveles de dificultad, desde problemas simples hasta problemas complejos
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.
Propiedades adicionales
El formato de datos RFT admite campos personalizados que van más allá de los requisitos básicos del esquema (messagesyreference_answer). Esta flexibilidad le permite añadir cualquier dato adicional que su función de recompensas necesite para una evaluación adecuada.
nota
No necesita configurar esto en su receta: el formato de datos admite campos adicionales de forma inherente. Simplemente inclúyelos en el JSON de tus datos de entrenamiento y se transferirán a tu función de recompensas en el campo. metadata
Propiedades adicionales comunes
Ejemplos de campos de metadatos:
-
task_id— Identificador único para el seguimiento -
difficulty_level— Indicador de complejidad del problema -
domain— Área temática o categoría -
expected_reasoning_steps— Número de pasos de la solución
Ejemplo con propiedades adicionales
{ "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 }
Estos campos adicionales se transfieren a la función de recompensas durante la evaluación, lo que permite aplicar una lógica de puntuación sofisticada adaptada a su caso de uso específico.
Configuración de entrenamiento
Ejemplo de receta
# Note: # This recipe can run on p5.48xlarge and p5en.48xlarge instance types. run: name: "my-rft-run" # Unique run name (appears in logs/artifacts). model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://<bucket>/<data file> # Training dataset in JSONL; replicas: 4 reward_lambda_arn: "" ## SMTJ GRPO Training specific configs training_config: max_length: 8192 # Context window (tokens) for inputs+prompt; global_batch_size: 16 # Total samples per optimizer step across all replicas (16/32/64/128/256). reasoning_effort: high # Enables reasoning mode high / low / or null for non-reasoning rollout: # How responses are generated for GRPO/advantage calc. advantage_strategy: number_generation: 2 # N samples per prompt to estimate advantages (variance vs cost). generator: max_new_tokens: 6000 # Cap on tokens generated per sample set_random_seed: true # Seed generation for reproducibility across runs. temperature: 1 # Softmax temperature; top_k: 1 # Sample only from top-K logits rewards: preset_reward_function: null # Usage of reward functions built into Verl [exact_match, code_executions, math_answers] api_endpoint: lambda_arn: "" lambda_concurrency_limit: 12 # Max concurrent Lambda invocations (throughput vs. throttling). trainer: max_steps: 2 # Steps to train for. One Step = global_batch_size save_steps: 5 test_steps: 1 save_top_k: 5 # RL parameters ent_coeff: 0.0 # A bonus added to the policy loss that rewards higher-output entropy. kl_loss_coef: 0.001 # Weight on the KL penalty between the actor (trainable policy) and a frozen reference model optim_config: # Optimizer settings lr: 7e-7 # Learning rate weight_decay: 0.0 # L2 regularization strength (0.0–1.0) adam_beta1: 0.9 adam_beta2: 0.95 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 32 lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0–100.0)
Formación en RFT con LLM como juez
Descripción general de
Los modelos lingüísticos extensos (LLMs) se utilizan cada vez más como jueces en los flujos de trabajo de ajuste fino por refuerzo (RFT), ya que proporcionan señales de recompensa automatizadas que guían la optimización de los modelos. Con este enfoque, un máster en máster evalúa los resultados del modelo en función de criterios específicos (ya se trate de 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 recompensa 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 recompensa, puede escalar la 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 sus modelos en diversos casos de uso, más allá de los problemas de alineación tradicionales.
Selección del modo de razonamiento
Modos disponibles
-
ninguno: sin razonamiento (omita el campo reasoning_effort)
-
bajo: sobrecarga de razonamiento mínima
-
alto: capacidad de razonamiento máxima (predeterminada cuando se especifica reasoning_effort)
nota
No hay una opción media para la RFT. Si el campo reasoning_effort no está en la configuración, el razonamiento está deshabilitado. Cuando el razonamiento está activado, debe configurarse en 32768 para dar cabida max_new_tokens a los resultados de razonamiento ampliados.
Cuándo usar cada modo
Utilice un razonamiento elevado para:
-
Tareas analíticas complejas
-
Resolución de problemas matemáticos
-
Deducción lógica en varios pasos
-
Tareas en las que step-by-step pensar aporta valor
No utilice ninguno (omita reasoning_effort) o razonar poco para:
-
Consultas fácticas simples
-
Clasificaciones directas
-
Optimización de velocidad y costes
-
Preguntas y respuestas sencillas
Compensaciones entre costo y rendimiento
Los modos de razonamiento superior aumentan:
-
Tiempo y coste de la formación
-
Latencia y coste de la inferencia
-
Capacidad de modelar para tareas de razonamiento complejas
Validar a su juez de LLM
Antes de implementar uno LLM-as-a-judge en producción, valide que las evaluaciones del modelo de juez se ajusten al juicio humano. Esto implica:
-
Mida las tasas de acuerdo entre el juez de maestría y los evaluadores humanos sobre muestras representativas de su tarea
-
Garantizar que el acuerdo del LLM con las personas cumpla o supere las tasas de acuerdo interhumano
-
Identificar posibles sesgos en el modelo de juez
-
Fomentar la confianza de que la señal de recompensa guía a su 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 sus criterios de calidad de producción.
Configuración Lambda para LLM Judge
El uso de un LLM como juez es una extensión del uso de las funciones Lambda para el aprendizaje por refuerzo con recompensas verificables (RLVR). Dentro de la función Lambda, puede realizar 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 su cuota de rendimiento para el modelo Amazon Bedrock utilizado sea suficiente para su carga de trabajo de formación |
| Tiempo de espera de Lambda | Tiempo de espera extendido | Configure el tiempo de espera de la función Lambda 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 Amazon Bedrock. |
| Simultaneidad de Lambda | Aumento de la simultaneidad | La Lambda se invoca en paralelo durante el entrenamiento. Aumente la simultaneidad para maximizar el rendimiento disponible |
| Configuración de recetas | Haga coincidir la configuración de Lambda | El límite de simultaneidad debe estar configurado en su receta |
Crear y ejecutar trabajos
Empezar un trabajo de formación
Usa la plantilla de cuaderno de trabajo de SageMaker AI Training: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook
Requisitos de instancia
El contenedor admite tanto el entrenamiento de rango completo como el de LoRa:
-
Formación en LoRa: instancias de 2/4/6/8 × p5.48xlarge o p5en.48xlarge
-
Capacitación de rango completo: instancias 2/4/6/8 × p5.48xlarge (obligatorias)
Supervisión de la formación
Los registros de formación incluyen métricas completas en cada paso. Categorías de métricas clave:
Métricas de recompensas
-
critic/rewards/mean,critic/rewards/max,critic/rewards/min— Distribución de recompensas -
val-score/rewards/mean@1— Recompensas de validación
Comportamiento modelo
-
actor/entropy— Variación de políticas (mayor = más exploratoria)
Capacitación: salud
-
actor/pg_loss— Pérdida de gradiente político -
actor/pg_clipfrac— Frecuencia de las actualizaciones recortadas -
actor/grad_norm— Magnitud del gradiente
Características de respuesta
-
prompt_length/mean,prompt_length/max,prompt_length/min— Estadísticas del token de entrada -
response_length/mean,response_length/max,response_length/min— Estadísticas del token de salida -
response/aborted_ratio— Tasa de generación incompleta (0 = todo completado)
Rendimiento
-
perf/throughput— Rendimiento de la formación -
perf/time_per_step— Tiempo por paso de entrenamiento -
timing_per_token_ms/*— Tiempos de procesamiento por token
Uso de recursos
-
perf/max_memory_allocated_gb,perf/max_memory_reserved_gb— Memoria de la GPU -
perf/cpu_memory_used_gb— Memoria de CPU
Uso de modelos ajustados
Una vez finalizado el entrenamiento, el punto de control final del modelo se guarda en la ubicación de salida especificada. La ruta del punto de control está disponible en:
-
Registros de entrenamiento
-
manifest.jsonarchivo en la ubicación de salida de Amazon S3 (definida poroutput_s3_urien su bloc de notas)
Limitaciones y mejores prácticas
Limitaciones
-
Tiempo de espera de Lambda: las funciones de recompensa deben completarse en 15 minutos (evita procesos fuera de control y administra los costos)
-
Solo en un turno: no se admiten las conversaciones en varios turnos
-
Requisitos de datos: necesita una diversidad suficiente; tiene dificultades para obtener recompensas escasas (menos del 5% de ejemplos positivos)
-
Coste computacional: más caro que los ajustes supervisados
-
Sin datos multimodales: solo se admite el tipo de datos de texto
Prácticas recomendadas
Comience con algo pequeño
-
Comience con 100 a 200 ejemplos
-
Valide la corrección de la función de recompensa
-
Escale gradualmente en función de los resultados
Evaluación previa a la formación
-
Pruebe el rendimiento del modelo de referencia antes de la RFT
-
Si las recompensas son consistentemente del 0%, utilice primero la SFT para establecer las capacidades básicas
-
Si las recompensas son superiores al 95%, es posible que la RFT no sea necesaria
Supervise la formación
-
Realice un seguimiento de las puntuaciones y la distribución promedio de las recompensas
-
Esté atento a los sobreajustes (las recompensas de entrenamiento aumentan mientras que las de validación disminuyen)
-
Busca patrones preocupantes:
-
Las recompensas se estabilizan por debajo del 0,15
-
Aumentar la variación de las recompensas a lo largo del tiempo
-
Disminución del rendimiento de validación
-
Optimice las funciones de recompensa
-
Ejecute en cuestión de segundos (no minutos)
-
Minimice las llamadas a la API externa
-
Utilice algoritmos eficientes
-
Implemente un manejo de errores adecuado
-
Aproveche el escalado paralelo de Lambda
Estrategia de iteración
Si las recompensas no mejoran:
-
Ajusta el diseño de la función de recompensa
-
Aumente la diversidad de los conjuntos
-
Añada más ejemplos representativos
-
Verifique que las señales de recompensa sean claras y consistentes
Capacidades avanzadas: Nova Forge
Para los usuarios que requieren capacidades avanzadas más allá de las limitaciones de RFT estándar, Nova Forge está disponible como un servicio de suscripción de pago que ofrece:
-
Soporte de conversación en varios turnos
-
Funciones de recompensa con un tiempo de ejecución superior a 15 minutos
-
Algoritmos y opciones de ajuste adicionales
-
Modificaciones de recetas de entrenamiento personalizadas
-
State-of-the-art Técnicas de IA
Nova Forge funciona con SageMaker IA HyperPod y está diseñada para ayudar a los clientes empresariales a crear sus propios modelos de frontera.
Comandos y consejos útiles
Hay disponible una colección de scripts de observabilidad
Los scripts disponibles son:
-
Habilitar las notificaciones por correo electrónico para las actualizaciones del estado de los trabajos de formación
-
Obtener estimaciones del tiempo de formación en función de las configuraciones de los trabajos
-
Obtener aproximaciones del tiempo que se espera que dure la formación para los trabajos en curso
Instalación
nota
Asegúrese de actualizar sus AWS credenciales antes de utilizar cualquiera de los siguientes scripts.
pip install boto3 git clone https://github.com/aws-samples/amazon-nova-samples.git cd amazon-nova-samples/customization/SageMakerUilts/SageMakerJobsMonitoring/
Uso básico
# Enabling email notifications for training job status updates python enable_sagemaker_job_notifs.py --email test@amazon.com test2@gmail.com --region us-east-1 --platform SMTJ Creating resources........ Please check your email for a subscription confirmation email, and click 'Confirm subscription' to start receiving job status email notifications! You'll receive the confirmation email within a few minutes.
# Obtaining training time estimates based on job configurations python get_training_time_estimate.py
# Obtaining approximations for how long training is expected to take for in-progress jobs python get-training-job-progress.py --region us-east-1 --job-name my-training-job --num-dataset-samples 1000
Consulte aquí