Refinamiento supervisado (SFT) de Nova 2.0 en SageMaker HyperPod
Amazon Nova Lite 2.0 ofrece capacidades mejoradas para llevar a cabo el refinamiento supervisado, como el modo de razonamiento avanzado, una mejor comprensión multimodal y una gestión del contexto ampliado. El SFT en Nova Lite 2.0 le permite adaptar estas potentes capacidades a sus casos de uso específicos y, al mismo tiempo, mantener el rendimiento superior del modelo en tareas complejas.
Las principales características del SFT en Nova Lite 2.0 se resumen en Características admitidas.
Para determinar si SFT es adecuada para su caso de uso, consulte Refinamiento supervisado (SFT).
Temas
A continuación se muestra un ejemplo de fórmula para el SFT. Puede encontrar esta fórmula y otras en el repositorio de fórmulas de SageMaker HyperPod
run: name: my-full-rank-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # SageMaker HyperPod only and not compatible with SageMaker Training Jobs replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (HyperPod job-specific; not compatible with standard SageMaker Training Jobs) mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-full-rank-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-full-rank-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: ${oc.select:training_config.max_steps} # How many training steps the checkpoint will be saved save_top_k: 5 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Global batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates adam_beta2: 0.95 # Exponential decay rate for second-moment estimates peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "null" # Disable LoRA for PEFT
Selección del modo de razonamiento (solo en Nova 2.0)
Amazon Nova 2.0 admite el modo de razonamiento para capacidades analíticas mejoradas:
-
Modo de razonamiento (activado):
-
Establezca
reasoning_enabled: trueen la configuración de entrenamiento. -
El modelo se entrena para generar rastros de razonamiento antes de las respuestas finales.
-
Mejora el rendimiento en tareas de razonamiento complejas.
-
-
Modo sin razonamiento (desactivado):
-
Establezca
reasoning_enabled: falseu omita el parámetro (opción predeterminada) -
SFT estándar sin razonamiento explícito
-
Adecuado para tareas que no se benefician del razonamiento paso a paso
-
nota
-
Cuando el razonamiento está activado, funciona con un esfuerzo de razonamiento alto. No existe ninguna opción de razonamiento bajo para el SFT.
-
El contenido de razonamiento multimodal no es compatible con el SFT. El modo de razonamiento se aplica a las entradas de solo texto.
Se permita entrenar a Amazon Nova con un conjunto de datos sin razonamiento con reasoning_enabled:
true. Sin embargo, hacerlo puede provocar que el modelo pierda sus capacidades de razonamiento, ya que Amazon Nova aprende principalmente a generar las respuestas presentadas en los datos sin aplicar el razonamiento.
Si entrena a Amazon Nova en un conjunto de datos sin razonamiento, pero aun así desea usar el razonamiento durante la inferencia:
-
Desactive el razonamiento durante el entrenamiento (
reasoning_enabled: false). -
Active el razonamiento más adelante durante la inferencia.
Si bien este enfoque permite el razonamiento en el momento de la inferencia, no garantiza un rendimiento mejorado en comparación con la inferencia sin razonamiento.
Práctica recomendada: active el razonamiento tanto para el entrenamiento como para la inferencia cuando utilice conjuntos de datos de razonamiento y desactívelo para ambos cuando utilice conjuntos de datos sin razonamiento.
nota
Para obtener más información sobre imágenes de contenedores y fórmulas de ejemplo, consulte Fórmulas de Amazon Nova.
Inicio de un trabajo de refinamiento en SageMaker HyperPod
Preparación de los datos de entrada
Para obtener información sobre el formato de datos, las características compatibles, las restricciones y las prácticas recomendadas para preparar los datos de entrenamiento de SFT, consulte Preparación de datos para el SFT en Amazon Nova 2.
Cargar los datos
Cargue conjuntos de datos de entrenamiento y validación en un bucket de S3. Especifique estas ubicaciones en el bloque run de la fórmula:
## Run config run: ... data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"
nota
Sustituya <bucket-name>, <training-directory>, <validation-directory>, <training-file> y <validation-file> por las rutas de S3 reales.
nota
Los conjuntos de datos de validación no son compatibles actualmente con el SFT con Amazon Nova 2.0. Si se proporciona un conjunto de datos de validación, se ignorará.
Definición de su configuración
Defina el modelo base mediante los campos model_type y model_name_or_path del bloque run:
## Run config run: ... model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod ...
Parámetros de ajuste del SFT
Entre los parámetros de Amazon Nova disponibles para el ajuste con SFT, se incluyen los siguientes:
Configuración de una ejecución
-
name: nombre descriptivo para el trabajo de entrenamiento. Ayuda a identificar el trabajo en la Consola de administración de AWS.
-
model_type: variante del modelo de Amazon Nova que desea utilizar. Las opciones disponibles son
amazon.nova-2-lite-v1:0:256k. -
model_name_or_path: ruta al modelo base que desea utilizar para el entrenamiento. Las opciones disponibles son
nova-lite-2/prodo la ruta de S3 para el punto de comprobación de entrenamiento posterior (s3://customer-escrow-bucket-unique_id/training_run_name). -
replicas: número de instancias de computación que desea utilizar para entrenamiento distribuido. Los valores disponibles varían en función del modelo que elija. Amazon Nova Lite 2.0 admite 4, 8, 16 o 32 réplicas.
-
data_s3_path: ubicación de S3 del conjunto de datos de entrenamiento, que es un archivo JSONL. Este archivo debe residir en la misma región y cuenta de AWS que el clúster. Todas las ubicaciones de S3 proporcionadas deben estar en la misma cuenta y región.
-
validation_data_s3_path (opcional): ubicación de S3 del conjunto de datos de validación, que es un archivo JSONL. Este archivo debe residir en la misma cuenta y región que el clúster. Todas las ubicaciones de S3 proporcionadas deben estar en la misma cuenta y región.
-
output_s3_path: ubicación de S3 donde se almacenan el manifiesto y los registros de TensorBoard. Todas las ubicaciones de S3 proporcionadas deben estar en la misma cuenta de AWS y región de AWS.
-
mlflow_tracking_uri: ARN de la aplicación de MLFlow que se usará para los registros de MLFlow.
-
mlflow_experiment_name: nombre del experimento de MLFlow.
-
mlflow_run_name: nombre de la ejecución de MLFlow.
Configuración de entrenamiento
-
max_steps: número de pasos de entrenamiento que se ejecutarán. Cada paso entrenará al modelo con el número de elementos de
global_batch_size. -
save_steps: frecuencia (en pasos) con la que se guardan los puntos de control del modelo durante el entrenamiento.
-
save_top_k: número máximo de los mejores puntos de control que se deben retener en función de las métricas de validación.
-
max_length: longitud máxima de la secuencia en tokens. Determina el tamaño de la ventana de contexto para entrenamiento. El valor máximo admitido es de 32 768 tokens para el SFT.
Las secuencias más largas mejorarán la eficiencia del entrenamiento a costa de aumentar los requisitos de memoria. Es recomendable que el parámetro max_length coincida con la distribución de datos.
-
global_batch_size: número total de muestras de entrenamiento procesadas juntas en una sola pasada hacia delante o hacia atrás en todos los dispositivos y trabajadores.
Este valor multiplica el tamaño del lote por dispositivo y el número de dispositivos. Afecta a la estabilidad del entrenamiento y al rendimiento. Le recomendamos que comience con un tamaño de lote que se ajuste fácilmente a la memoria y, a partir de ahí, se escale verticalmente. En el caso de datos específicos de un dominio, es posible que los lotes de mayor tamaño suavicen en exceso los gradientes.
-
reasoning_enabled: indicador booleano para habilitar las capacidades de razonamiento durante el entrenamiento.
Programación de la tasa de aprendizaje
-
warmup_steps: número de pasos para aumentar gradualmente la tasa de aprendizaje. Esto mejora la estabilidad del entrenamiento.
-
min_lr: tasa mínima de aprendizaje al final de la degradación. Los valores válidos van de 0 a 1, ambos inclusive, pero deben ser inferiores a la tasa de aprendizaje.
Configuración del optimizador
-
lr: tasa de aprendizaje, que controla el tamaño de los pasos durante la optimización. Recomendamos valores entre 1e-6-1e-4 para un buen rendimiento. Los valores válidos van de 0 a 1, ambos inclusive.
-
weight_decay: fuerza de regularización de L2. Los valores más altos (entre 0,01 y 0,1) aumentan la regularización.
-
adam_beta1: tasa de decremento exponencial para las estimaciones del primer momento en el optimizador Adam. El valor predeterminado es 0.9.
-
adam_beta2: tasa de reducción exponencial para las estimaciones del segundo momento en el optimizador Adam. El valor predeterminado es 0.95.
Configuración del PEFT
-
peft_scheme: el esquema de refinamiento preciso que se debe utilizar con eficiencia de parámetros. Las opciones son
'null'para un refinamiento de rango completo olorapara un refinamiento basado en LoRA.
Ajuste de LoRA (cuando peft_scheme es “lora”)
-
alpha: parámetro de escalado de LoRA. Controla la magnitud de la adaptación de rango bajo. Los valores típicos están comprendidos entre 8 y 128.
-
lora_plus_lr_ratio: porcentaje de tasa de aprendizaje para la optimización de LoRA+. Este multiplicador ajusta la tasa de aprendizaje específicamente para los parámetros de LoRA.
Guía de hiperparámetros
Utilice los siguientes hiperparámetros recomendados en función del enfoque de entrenamiento:
Entrenamiento de rango completo
-
Épocas: 1
-
Tasa de aprendizaje (lr): 1e-5
-
Tasa mínima de aprendizaje (min_lr): 1e-6
LoRA (adaptación de rango bajo)
-
Épocas: 2
-
Tasa de aprendizaje (lr): 5e-5
-
Tasa mínima de aprendizaje (min_lr): 1e-6
nota
Ajuste estos valores en función del tamaño del conjunto de datos y del rendimiento de la validación. Supervise las métricas de entrenamiento para evitar el sobreajuste.