Entrenamiento iterativo - Amazon Nova

Entrenamiento iterativo

Descripción general

El entrenamiento iterativo es el proceso de refinar repetidamente un modelo realizando varios ciclos de entrenamiento con diferentes métodos de entrenamiento (entrenar, evaluar, analizar errores y ajustar los datos, objetivos o hiperparámetros). Cada ronda comienza desde el punto de control anterior. Este enfoque le permite centrarse sistemáticamente en los modos de error del modelo, incorporar ejemplos seleccionados que aborden puntos débiles específicos y adaptarse a los requisitos que cambian con el tiempo.

Ventajas en comparación con el entrenamiento de una sola iteración:

  • Mejora específica: aborde los patrones de error específicos detectados en la evaluación.

  • Perfeccionamiento adaptativo: responda a los cambios de distribución o a la evolución de los requisitos de los productos.

  • Mitigación de riesgos: valide las mejoras de forma gradual en lugar de tener que hacer una sola sesión de entrenamiento de larga duración.

  • Eficiencia de los datos: centre los esfuerzos de recopilación de datos en las áreas en las que el modelo tenga un rendimiento inferior.

  • Formación curricular: haga varias rondas de entrenamiento con datos de cada vez mayor calidad.

Funcionamiento

Ubicación de los puntos de control y acceso

Una vez finalizado cada trabajo de entrenamiento, se genera un archivo de manifiesto en la ubicación de salida especificada por el parámetro output_path en la configuración del entrenamiento.

Para acceder al punto de control

  • Navegue hasta la output_path especificada en S3.

  • Descargue y extraiga el archivo output.tar.gz.

  • Abra el archivo manifest.json.

  • Localice el parámetro checkpoint_s3_bucket, que contiene el URI de S3 de su modelo entrenado.

Ejemplo de la estructura de manifest.json

{ "checkpoint_s3_bucket": "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>/stepID", ... }

Explicación de los buckets de custodia

Dado que las ponderaciones de Amazon Nova son exclusivas, los puntos de control de los modelos entrenados se almacenan en buckets de S3 de custodia dentro de las cuentas administradas por AWS, en lugar de copiarlos en su cuenta. Estos buckets de custodia:

  • Guardan las ponderaciones de sus modelos personalizados de forma segura.

  • Pueden ser consultados por otros servicios de AWS (inferencia, evaluación y posteriores trabajos de entrenamiento).

  • Solo pueden ser accedidos por su cuenta de AWS mediante permisos de IAM.

  • Incurren en cargos de almacenamiento de S3 estándar en su cuenta (consulte Consideraciones sobre costos).

Puede usar la ruta del bucket de custodia a modo de model_name_or_path en su próxima sesión de entrenamiento para continuar con el entrenamiento iterativo.

Uso de puntos de control para el entrenamiento iterativo

Configure su siguiente trabajo de entrenamiento para que use el punto de control anterior como modelo base:

run: name: "my-iterative-training-job" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<previous-job-name>" data_s3_path: s3://<bucket>/<data-file>.jsonl replicas: 4

Cuándo utilizar el entrenamiento iterativo

Casos de uso ideales

Utilice el entrenamiento iterativo cuando tenga:

  • Bucles de retroalimentación: capacidad de recopilar casos de errores del mundo real y abordarlos de manera sistemática.

  • Entornos dinámicos: documentación, API o temas de soporte en evolución que requieran actualizaciones periódicas del modelo.

  • Evaluación sólida: pruebas comparativas y marcos de evaluación sólidos (consulte los ejemplos a continuación) para medir las mejoras con confianza.

  • Capacidad de operaciones de ML: recursos para gestionar varios ciclos de entrenamiento y control de versiones.

Ejemplos de marcos de evaluación sólidos

  • Conjuntos de pruebas comparativas automatizadas con umbrales de éxito o error

  • Protocolos de evaluación humana con métricas de fiabilidad entre evaluadores

  • Escenarios de pruebas de equipo rojo que tratan casos límite y entradas contradictorias

  • Infraestructura de pruebas A/B para medir el impacto en la producción

Patrones comunes

Canalización SFT → RFT: un patrón iterativo de uso frecuente implica lo siguiente:

  • SFT primero: enseñe al modelo cómo resolver problemas mediante ejemplos de demostración.

  • RFT después: optimice el rendimiento en un ámbito más amplio de problemas mediante señales de recompensa.

Este orden es esencial cuando los modelos tienen un rendimiento deficiente al principio: el RFT en modelos de precisión cercana a cero no mejorará el rendimiento sin establecer primero las capacidades básicas de resolución de problemas mediante el SFT.

Cuándo no utilizar el entrenamiento iterativo

Evite el entrenamiento iterativo en los siguientes casos:

  • Tareas estables y bien definidas: datos estacionarios con requisitos consistentes que ya lleguen a un rendimiento cercano al máximo.

  • Problemas de clasificación sencillos: tareas limitadas en las que basta con una entrenamiento de una sola iteración.

  • Limitaciones de recursos: falta de capacidades dedicadas de operaciones de ML para administrar varios ciclos de entrenamiento.

  • Ganancias marginales: cuando la sobrecarga no justifique mejoras mínimas en el rendimiento.

Ejemplo de flujo de trabajo: SFT → RFT

Este ejemplo muestra un patrón de entrenamiento iterativo común para los modelos de razonamiento.

Paso 1: entrenamiento inicial con SFT

Configure e inicie el trabajo de entrenamiento con SFT con su conjunto de datos:

run: name: "initial-sft-training" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod" data_s3_path: s3://<bucket>/sft-training-data.jsonl validation_data_s3_path: s3://<bucket>/sft-validation-data.jsonl

Justificación: SFT ofrece demostraciones adicionales que configuran los resultados de los modelos en la voz y el formato deseados, estableciendo las capacidades fundamentales.

Una vez finalizado el entrenamiento

  • Anote la output_path configurada en su trabajo de entrenamiento.

  • Descargue output.tar.gz desde esa ubicación.

  • Extraiga y busque manifest.json.

  • Copie el valor checkpoint_s3_bucket.

Paso 2: entrenamiento con RFT en el punto de control del SFT

Cree un nuevo trabajo de entrenamiento con RFT utilizando el punto de control del SFT:

run: name: "rft-on-sft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<initial-sft-training>" data_s3_path: s3://<bucket>/rft-training-data.jsonl reward_lambda_arn: <your-reward-function-arn>

Justificación: el entrenamiento con RFT se basa en el SFT, lo que permite al modelo desarrollar patrones de razonamiento más complejos optimizados por su función de recompensa.

Paso 3: evaluación e iteración

Ponga en marcha la evaluación en el punto de control del RFT para evaluar el rendimiento:

run: name: "evaluate-rft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<rft-on-sft-checkpoint>" data_s3_path: s3://<bucket>/evaluation-data.jsonl

Si las métricas objetivo no se cumplen, continúe iterando con los datos o hiperparámetros ajustados.

importante

La técnica de entrenamiento (LoRA o rango completo) debe permanecer constante en todas las iteraciones:

  • Si usa SFT con LoRA, debe usar RFT con LoRA.

  • Si usa SFT con rango completo, debe usar RFT con rango completo.

  • No puede cambiar entre LoRA y rango completo a mitad del proceso

importante

Si se usa una clave de KMS para el cifrado en el bucket de S3 resultante propiedad de Amazon, se debe usar esa misma clave de KMS en todas las iteraciones futuras.

Supervisión del progreso en las iteraciones

Puede hacer un seguimiento de las métricas mediante MLflow configurando MLflow para sus trabajos.

Creación de una aplicación MLflow

Uso de la interfaz de usuario de Studio: si crea un trabajo de entrenamiento a través de la interfaz de usuario de Studio, se crea automáticamente una aplicación MLflow predeterminada que se selecciona por defecto en Opciones avanzadas.

Uso de la CLI: si usa la CLI, debe crear una aplicación MLflow y pasarla como entrada a la solicitud de la API del trabajo de entrenamiento.

mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)

Acceso a la aplicación MLflow

Uso de la CLI: cree una URL prefirmada para acceder a la interfaz de usuario de la aplicación MLflow:

aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text

Uso de la interfaz de usuario de Studio: la interfaz de usuario de Studio muestra las métricas clave almacenadas en MLflow y proporciona un enlace a la interfaz de usuario de la aplicación MLflow.

Métricas clave para hacer un seguimiento

Supervise estas métricas en las iteraciones para evaluar la mejora y hacer un seguimiento del progreso del trabajo:

Para SFT

  • Curvas de pérdidas de entrenamiento

  • Número de muestras consumidas y tiempo de procesamiento

  • Precisión del rendimiento en conjuntos de prueba reservados

  • Cumplimiento del formato (por ejemplo, velocidad de salida JSON válida)

  • Perplejidad en datos de evaluación específicos del dominio

Para RFT

  • Puntuaciones promedio de recompensa durante el entrenamiento

  • Distribución de las recompensas (porcentaje de respuestas con alta recompensa)

  • Tendencias de la recompensa en validación (atención al sobreajuste)

  • Tasas de éxito específicas por tarea (por ejemplo, tasa de aprobación en procesamiento de código, precisión en problemas matemáticos)

General

  • Diferencias de rendimiento en pruebas comparativas entre iteraciones

  • Puntuaciones de evaluación humana en muestras representativas

  • Métricas de producción (si se realiza una implementación iterativa)

Cómo determinar cuándo parar

Deje de iterar en los siguientes casos:

  • Rendimiento estancado: el entrenamiento adicional ya no mejora significativamente las métricas objetivo

  • Cambio de técnica para seguir progresando: si una técnica se estanca, pruebe a cambiarla (p. ej., SFT → RFT → SFT) para superar los límites de rendimiento

  • Métricas objetivo alcanzadas: se cumplen sus criterios de rendimiento correcto.

  • Regresión detectada: las nuevas iteraciones reducen el rendimiento (consulte los procedimientos de reversión que aparecen a continuación)

Para obtener información detallada sobre los procedimientos de evaluación, consulte la sección Evaluación.

Prácticas recomendadas

Comience en pequeño y amplíe poco a poco

Empiece con conjuntos de datos mínimos y épocas de entrenamiento únicas para validar su enfoque antes de escalar verticalmente. Esto genera confianza y permite identificar los problemas de forma temprana.

Establezca métricas de éxito claras

Defina los indicadores cuantitativos y cualitativos antes de empezar:

Ejemplo de métricas de éxito por caso de uso

  • Respuesta a la pregunta: precisión de coincidencia exacta, puntuación de F1, puntuaciones de preferencia humana

  • Generación de código: tasa de aprobación de las pruebas unitarias, éxito de compilación, tiempo de ejecución

  • Tareas de razonamiento: precisión de los pasos, exactitud de la respuesta final, puntuaciones de recompensa

  • Generación de contenido: puntuaciones de coherencia, precisión fáctica, adherencia al estilo

Implemente la evaluación automatizada

Configure procesos de evaluación automatizada para hacer un seguimiento del rendimiento después de cada ronda, lo que permitirá una iteración rápida y una comparación objetiva.

Lleve a cabo un control de versiones riguroso

Documente lo siguiente en cada iteración:

  • Versiones y modificaciones del conjunto de datos

  • Ubicaciones de los puntos de control del modelo

  • Cambios en los hiperparámetros

  • Métricas de rendimiento y diferencias de rendimiento

  • Observaciones cualitativas

Esto crea conocimiento institucional y permite la depuración.

Céntrese en la calidad de datos antes que en la cantidad

Analice los casos de error de rondas anteriores y agregue ejemplos específicos y de alta calidad en lugar de simplemente aumentar el tamaño del conjunto de datos.

Planifique el presupuesto de las iteraciones

Planifique entre 3 y 5 iteraciones como rango habitual:

  • Entre 1 y 2 iteraciones: suelen ser suficientes para llevar a cabo mejoras sencillas o para dar los toques finales.

  • Entre 3 y 5 iteraciones: adecuadas para tareas complejas que requieren varios ciclos de refinamiento.

  • Más de 5 iteraciones: esto puede indicar rendimientos decrecientes o la necesidad de adoptar enfoques distintos.

Ajuste el número en función del presupuesto computacional y las tasas de mejora del rendimiento.

Implemente capacidades de restauración

Si una iteración introduce regresiones, haga lo siguiente:

  • Identifique la regresión: compare las métricas de evaluación de los puntos de control.

  • Regrese al punto de control anterior: utilice la ruta de S3 del punto de control anterior como model_name_or_path.

  • Ajuste el enfoque de entrenamiento: modifique los datos, los hiperparámetros o la técnica antes de volver a intentarlo.

  • Documente el error: registre la causa de la regresión para evitar que se repita.

Ejemplo de reversión

run: name: "rollback-to-iteration-2" model_type: amazon.nova-2-lite-v1:0:256k # Use iteration 2 checkpoint instead of failed iteration 3 model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<iteration-2-job-name>"

Consideraciones sobre costos

Almacenamiento de puntos de control

  • Ubicación: los puntos de control almacenados en buckets de custodia incurren en cargos de almacenamiento de S3 estándar que se facturan a su cuenta de AWS.

  • Retención: los puntos de control se conservan indefinidamente a menos que se eliminen de forma explícita.

  • Administración: implemente políticas de ciclo de vida para archivar o eliminar los puntos de control antiguos que ya no necesite.

Consejos par optimizar los costos

  • Elimine los puntos de control intermedios después de validar las iteraciones más recientes.

  • Archive los puntos de control en S3 Glacier para conservarlos a largo plazo a un costo menor.

  • Defina políticas de retención en función de sus necesidades de cumplimiento y experimentación.

Limitaciones

Consistencia en la familia de modelos

Al entrenar de forma iterativa, debe usar el mismo tipo de modelo en todas las iteraciones.

Entrenamiento inicial

run: model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod"

Las iteraciones posteriores deben usar el mismo model_type

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match original model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

Consistencia en la técnica de entrenamiento

La técnica de entrenamiento debe permanecer constante en todas las iteraciones:

  • Los modelos entrenados con LoRA solo se pueden entrenar de forma iterativa con LoRA.

  • Los modelos entrenados en rango completo solo se pueden entrenar de forma iterativa en rango completo.

Cómo funcionan los adaptadores LoRA en el entrenamiento iterativo

  • Cada iteración de entrenamiento con LoRA genera nuevas ponderaciones de adaptación

  • Los adaptadores nuevos sustituyen (no se apilan) a los adaptadores anteriores.

  • El modelo base permanece congelado; solo se actualizan los adaptadores.

Matriz de compatibilidad de técnicas

Entrenamiento inicial Puede iterar con
SFT (rango completo) SFT (rango completo), RFT (rango completo)
SFT (LoRA) SFT (LoRA), RFT (LoRA)
RFT (rango completo) RFT (rango completo)
RFT (LoRA) RFT (LoRA)

Verificación de la compatibilidad antes de comenzar un trabajo

  • Consulte la fórmula de entrenamiento anterior para identificar el tipo de modelo y la técnica de entrenamiento (LoRA o rango completo)

  • Asegúrese de que la nueva fórmula coincida tanto con el tipo de modelo como con la técnica

  • Revise el archivo manifest.json para confirmar que la ruta del punto de control sea correcta

Solución de problemas

Error: “Incompatible model training techniques detected”

Causa: la técnica de entrenamiento (LoRA o rango completo) no coincide con la técnica del punto de control.

Solución: asegúrese de que la fórmula utilice la misma técnica de entrenamiento que el modelo original:

  • Si el punto de control se entrenó con LoRA, use LoRA en la nueva fórmula

  • Si el punto de control se entrenó en rango completo, use el rango completo en la nueva fórmula

Error: “Base model for the job extracted from model_name_or_path does not match model_type”

Causa: el tipo de modelo especificado en model_type no coincide con el modelo real del punto de control.

Solución: compruebe lo siguiente:

  • El model_type de la fórmula coincide con el tipo de modelo original.

  • La ruta del punto de control de S3 de model_name_or_path es correcta.

  • Está utilizando la ruta del archivo manifest.json correcto.

Ejemplo de configuración correcta

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match checkpoint's model model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

Error: “Model configuration not found”

Causa: la ruta de S3 de model_name_or_path no es válida o no es accesible.

Solución:

  • Compruebe que la ruta de S3 se haya copiado correctamente del archivo manifest.json.

  • Asegúrese de que el rol de IAM tenga permisos para acceder al bucket de custodia.

  • Confirme que el trabajo de entrenamiento anterior se completó correctamente.

  • Compruebe si hay errores tipográficos en la ruta.

Regresión del rendimiento después de la iteración

Síntomas: las métricas de evaluación disminuyen después de una nueva iteración de entrenamiento.

Solución:

  • Reversión: use el punto de control anterior como modelo base.

  • Análisis: revise los registros de entrenamiento y la calidad de los datos para detectar la iteración fallida.

  • Ajuste: modifique los hiperparámetros (reduzca el ritmo de aprendizaje), mejore la calidad de los datos o reduzca las épocas de entrenamiento.

  • Reintento: inicie una nueva iteración con ajustes.