Entrenamiento previo continuo (CPT) sobre Nova 2.0 en SageMaker HyperPod
Amazon Nova Lite 2.0 es un modelo de razonamiento entrenado con un conjunto de datos más amplio y diverso que Amazon Nova Lite 1.0. A pesar de ser un modelo más grande, Nova Lite 2.0 ofrece inferencias más rápidas que Nova Lite 1.0 y, al mismo tiempo, ofrece capacidades de razonamiento mejoradas, contextos más extensos y un rendimiento multilingüe mejorado.
Con CPT en Nova 2.0 Lite, puede ampliar estas capacidades avanzadas con datos específicos del dominio y desarrollar una amplia experiencia en áreas especializadas, al tiempo que mantiene las superiores capacidades de razonamiento y análisis del modelo.
A continuación se ofrece una fórmula de muestra para el CPT. Puede encontrar esta fórmula y otras en el repositorio de fórmulas de SageMaker HyperPod
# Note: # This recipe can run on p5.48xlarge # Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-2-lite-v1:0:256k" # Model variant specification, do not change model_name_or_path: "nova-lite-2/prod" # Base model path, do not change replicas: 8 # Number of compute instances for training, allowed values are 4, 8, 16, 32 data_s3_path: "" # Customer data paths validation_data_s3_path: "" # Customer validation data paths output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training Jobs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-cpt-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-cpt-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: task_type: cpt max_length: 8192 # Maximum context window size (tokens) global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_steps: 10 # The number of training steps to run total val_check_interval: 10 # The number of steps between running validation. Integer count or float percentage limit_val_batches: 2 # Batches of the validation set to use each trigger model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 optim: optimizer: adam lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Beta1 for Adam optimizer adam_beta2: 0.95 # Beta2 for Adam optimizer sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate, must be lower than lr
Inicio de un trabajo de preentrenamiento continuo 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 CPT, consulte Preparación de datos para el CPT 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" validation_data_s3_path: "s3://<bucket-name>/<validation-directory>/<validation-file>.jsonl"
nota
Sustituya <bucket-name>, <training-directory>, <validation-directory>, <training-file> y <validation-file> por las rutas de S3 reales.
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 CPT
Entre los parámetros disponibles para el refinamiento con CPT, 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_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 8192 tokens para CPT.
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.
Ajustes del entrenador
-
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
Ajustes de modelos
-
hidden_dropout: probabilidad de eliminar salidas de estado ocultas. Aumente este valor aproximadamente 0,0-0,2 para reducir el ajuste excesivo en conjuntos de datos más pequeños. Los valores válidos van de 0 a 1, ambos inclusive.
-
attention_dropout: probabilidad de perder ponderaciones de atención. Este parámetro puede ayudar en la generalización. Los valores válidos van de 0 a 1, ambos inclusive.
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.
-
name: algoritmo del optimizador. En la actualidad, solo se admite
distributed_fused_adam. -
weight_decay: fuerza de regularización de L2. Los valores más altos (entre 0,01 y 0,1) aumentan la regularización.
-
warmup_steps: número de pasos para aumentar gradualmente la tasa de aprendizaje. Mejora la estabilidad del entrenamiento. Los valores válidos van de 1 a 20, ambos inclusive.
-
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.