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.
Perfeccionamiento de los modelos de Amazon Nova mediante SageMaker trabajos de formación
El ajuste preciso de los modelos de Amazon Nova con tareas de SageMaker formación ofrece una forma eficaz de personalizar los modelos básicos para sus casos de uso específicos.
Temas
Requisitos previos
Antes de empezar un trabajo de formación, tenga en cuenta lo siguiente.
-
Buckets de Amazon S3 para almacenar los datos de entrada y salida de los trabajos de formación. Puede usar un depósito para ambos o cubos separados para cada tipo de datos. Asegúrese de que sus cubos estén en el mismo Región de AWS lugar donde creó todos los demás recursos de formación. Para obtener más información, consulta Cómo crear un depósito de uso general.
-
Un rol de IAM con permisos para ejecutar un trabajo de formación. Asegúrese de adjuntar una política de IAM.
AmazonSageMakerFullAccess
Para obtener más información, consulte Cómo utilizar las funciones de SageMaker ejecución. -
Recetas base de Amazon Nova, consulteObtener recetas de Amazon Nova.
Preparación de datos
Preparar datos de alta calidad y con el formato adecuado es un primer paso fundamental en el proceso de ajuste de los modelos lingüísticos de gran tamaño. Ya sea que utilice el ajuste preciso supervisado (SFT) o la optimización de preferencias directas (DPO), con enfoques de clasificación completa o de adaptación de rango bajo (LoRa), sus datos deben cumplir requisitos de formato específicos para garantizar el éxito de la formación del modelo. En esta sección se describen los formatos de datos, los métodos de validación y las mejores prácticas necesarios para ayudarle a preparar sus conjuntos de datos de forma eficaz para ajustar los modelos de Amazon Nova.
SFT
Requisitos de formato de datos SFT: tanto para el SFT de rango completo como para el SFT LoRa, los datos deben seguir el formato Converse. Para ver ejemplos y restricciones de este formato, consulte Preparación de datos para ajustar con precisión los modelos Understanding.
Validación de datos SFT: para validar el formato del conjunto de datos antes de enviarlo, le recomendamos que utilice el siguiente script de validación del repositorio de muestras de Amazon Bedrockjsonl
archivos cumplan con las especificaciones de formato requeridas y a identificar cualquier posible problema antes de enviar su trabajo de ajuste.
DPO
Requisitos de formato de datos del DPO: tanto para el DPO con rango completo como para el DPO con LoRa, los datos deben seguir el formato Converse. El conjunto de datos también debe tener un formato similar al de SFT, excepto que el último turno debe tener pares de preferencias.
Otras restricciones del conjunto de datos de DPO: las demás restricciones de los conjuntos de datos son las mismas para la SFT. Para obtener más información, consulte Restricciones del conjunto de datos. Se espera un único archivo JSONL para el entrenamiento y un único archivo JSONL para la validación. El conjunto de validación es opcional.
Recomendaciones del conjunto de datos del DPO: un mínimo de 1000 pares de preferencias para una formación eficaz. Los datos de preferencias de alta calidad darán como resultado resultados más eficientes.
Ejemplo de formato de datos de DPO
// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }
Ejemplo de formato de datos de DPO (varias vueltas)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Ejemplo de formato de datos DPO (con imágenes)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Los trabajos de formación tienen un límite de tiempo predeterminado de 1 día, aunque las estimaciones de las tablas siguientes suponen una duración de formación de 5 días con fines ilustrativos. Como práctica recomendada, te recomendamos aumentar el límite de tiempo de entrenamiento a un máximo de 28 días para adaptarlo a cargas de trabajo de formación más prolongadas. Para solicitar un aumento del límite, consulta Cómo solicitar un aumento de la cuota.
Límites del conjunto de datos SFT
Longitud del contexto | Modelo | Método | Conjuntos de datos | Descripción |
---|---|---|---|---|
32 000 trabajos con una longitud de contexto |
Amazon Nova Micro | Rango completo y LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, solo puede tener un máximo de 100 000 registros. |
Amazon Nova Lite |
Clasificación completa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 100 000 registros. |
|
Imagen y vídeo |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puedes tener hasta 50 000 registros. |
|||
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 100 000 registros. |
||
Imagen y vídeo | Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puedes tener hasta 90 000 registros. | |||
Amazon Nova Pro |
Rango completo | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 40 000 registros. |
|
Imagen y vídeo |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan en 5 épocas, puedes tener hasta 30 000 registros. |
|||
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 40 000 registros. |
||
Imagen y vídeo |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan en 5 épocas, puedes tener hasta 35 000 registros. |
|||
Trabajos con una longitud de contexto de 64 000 |
Amazon Nova Micro | Rango completo y LoRa | Solo texto |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 64 000 y, por ejemplo, se ejecutan en 5 épocas, solo podrás tener un máximo de 50 000 registros. |
Amazon Nova Lite |
Clasificación completa | Solo texto |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 64 000 y, por ejemplo, se ejecutan durante 5 épocas, puedes tener hasta 50 000 registros. |
|
Imagen y vídeo |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 64 000 y, por ejemplo, se ejecutan en 5 épocas, puedes tener hasta 30 000 registros. |
|||
LoRa | - |
Nova Lite no admite LoRa a 64 k. |
||
Amazon Nova Pro | Rango completo y LoRa | Solo texto |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 64 000 y, por ejemplo, se ejecutan durante 5 épocas, puedes tener hasta 17 000 registros. |
|
Imagen y vídeo |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 64 000 y, por ejemplo, se ejecutan en 5 épocas, puedes tener hasta 15 000 registros. |
Límites del conjunto de datos de DPO
Longitud del contexto | Modelo | Método | Conjuntos de datos | Descripción |
---|---|---|---|---|
16 000 trabajos con una longitud de contexto |
Amazon Nova Micro | Rango completo | Solo texto |
Si utiliza un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecutan durante 5 épocas, solo podrá tener un máximo de 120 000 registros. |
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecutan durante 5 épocas, solo puede tener un máximo de 125 000 registros. |
||
Amazon Nova Lite |
Clasificación completa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 130 000 registros. |
|
Imagen |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecuta durante 5 épocas, puede completar 20 000 muestras en 2 días |
|||
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 140 000 registros. |
||
Imagen |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecuta durante 5 épocas, puedes completar 20 000 muestras en 2 días. |
|||
Amazon Nova Pro |
Rango completo | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 45 000 registros. |
|
Imagen |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecuta durante 5 épocas, puede completar 20 000 muestras en 4 días |
|||
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 55 000 registros. |
||
Imagen |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 16 000 y, por ejemplo, se ejecuta durante 5 épocas, puede completar 20 000 muestras en 4 días |
|||
Trabajos con una longitud de contexto de 32 000 |
Amazon Nova Micro | Rango completo | Solo texto |
Si utiliza un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, solo podrá tener un máximo de 45 000 registros. |
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, solo puede tener un máximo de 50 000 registros. |
||
Amazon Nova Lite |
Clasificación completa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 55 000 registros. |
|
Imagen |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecuta durante 5 épocas, puede tener hasta 35 000 registros. |
|||
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 60 000 registros. |
||
Imagen |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecuta durante 5 épocas, puedes tener hasta 35 000 registros. |
|||
Amazon Nova Pro | Rango completo | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 20 000 registros. |
|
Imagen |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 64 000 y, por ejemplo, se ejecuta en 5 épocas, puedes tener hasta 16 000 registros. |
|||
LoRa | Solo texto |
Si usa un conjunto de datos en el que todos los registros tienen una longitud de contexto de 32 000 y, por ejemplo, se ejecutan durante 5 épocas, puede tener hasta 22 000 registros. |
||
Imagen |
Si utilizas un conjunto de datos en el que todos los registros tienen una longitud de contexto de 64 000 y, por ejemplo, se ejecuta en 5 épocas, puedes tener hasta 18 000 registros. |
Al reducir el número de épocas o la longitud del contexto de sus registros, podría proporcionar más registros.
Configuraciones SFT y LoRa PEFT de rango completo
En esta sección, se ofrecen instrucciones sobre las configuraciones de recetas tanto para el ajuste preciso supervisado (SFT) de rango completo como para el ajuste preciso de parámetros de adaptación de rango bajo (LoRa PEFT). Estos archivos de recetas sirven como modelo para sus trabajos de personalización de modelos, ya que le permiten especificar los parámetros de entrenamiento, los hiperparámetros y otros ajustes críticos que determinan la forma en que el modelo aprende de los datos. Para ajustar los hiperparámetros, siga las instrucciones de la sección Selección de hiperparámetros.
Configuraciones de ajuste preciso (SFT de rango completo y PEFT LoRa)
La única diferencia entre el SFT de rango completo y el PEFT de LoRa en términos de receta es la configuración del PEFT de LoRa, que se establece en «nulo» para el rango completo y se establece en los valores adecuados si se utiliza un ajuste fino basado en el PEFT de LoRa. Hay SageMaker HyperPod ejemplos
Acerca de la configuración de «ejecución».
Clave | Definición | Micro | Lite | Pro | |
---|---|---|---|---|---|
Configuración de una ejecución | tipo_modelo |
Especifica la variante del modelo Nova que se va a utilizar. No modifique este campo. |
«amazon. nova-micro-v«1:20:128 k» |
«amazona. nova-lite-v«1:30, 300 km» |
«amazona. nova-pro-v«1:30, 300 km» |
nombre_modelo_o_ruta |
La ruta al modelo base. |
«nova-micro/prod» |
«nova-lite/prod» |
«nova-pro/prod» |
|
réplicas |
El número de instancias informáticas que se van a utilizar para la formación distribuida. |
2, 4 u 8 |
4, 8 o 16 |
6, 12 o 24 |
Acerca de la configuración «training_config».
Clave raíz | Llaves secundarias | Definición | Mínimo | Máximo | |
---|---|---|---|---|---|
max_length |
La longitud máxima de secuencia en fichas. Esto determina el tamaño de la ventana de contexto para el entrenamiento. Se puede ajustar al múltiplo 1024 más cercano, valor máximo: 65536 (para Lite Lora 32768). |
1024 |
65536, excepto Lite LoRa, que admite 32768. | ||
tamaño_batch_global |
Número total de muestras por paso; los valores permitidos son 16, 32 y 64. Valor máximo: 32 para Nova Pro, 64 para Nova Lite y Micro. |
16 | 32 para Nova Pro, 64 para Nova Lite y Micro. | ||
Configuración de entrenador | entrenador | max_epochs |
El número de pasadas completas por tu conjunto de datos de entrenamiento. Para la mayoría de las tareas de personalización, suelen ser suficientes de 1 a 5 épocas. Se recomienda conservar hasta 5. |
1 | - |
Configuración del modelo | modelo | hidden_dropout |
Probabilidad de eliminar las salidas de estado oculto. Aumente (0,0-0,2) para reducir el sobreajuste en conjuntos de datos más pequeños. Los límites están entre 0 y 1. |
0 | 1 |
modelo | attention_dropout |
Probabilidad de perder peso en la atención. Puede ayudar con la generalización. Los límites están entre 0 y 1. |
0 | 1 | |
modelo | ffn_dropout |
Probabilidad de que disminuyan las salidas de la red de retroalimentación. Los límites están entre 0 y 1. |
0 | 1 | |
Configuración del optimizador | model.optim | o |
Tasa de aprendizaje, controla el tamaño de los pasos durante la optimización. Los límites están entre 0 y 1. Por lo general, se establece entre 1e-6 y 1e-4 para un buen rendimiento. |
0 | 1 |
model.optim | nombre |
Algoritmo optimizador. En la actualidad, solo se admite |
- | - | |
model.optim | adam_w_mode |
Habilita el modo AdamW (verdadero/falso). |
- | - | |
model.optim | eps |
Epsilon para una estabilidad numérica. |
|||
model.optim | weight_decay |
La fuerza de regularización L2 debe estar entre 0.0 y 1.0. |
0 | 1 | |
model.optim | betas |
Las betas del optimizador Adam deben estar entre 0.0 y 1.0. |
0 | 1 | |
model.optim | sched_warmup_steps |
Número de pasos para aumentar gradualmente la tasa de aprendizaje. Esto mejora la estabilidad del entrenamiento. Entre 1 y 20. |
1 | 20 | |
model.optim | sched_constant_steps |
Pasos a un ritmo de aprendizaje constante. |
1.00E-10 | 1,00E-06 | |
model.optim | sched.min_lr |
Tasa mínima de aprendizaje al final de la decadencia. Los límites están entre 0 y 1, pero deben ser inferiores a la tasa de aprendizaje. |
0 | 1 | |
Configuración PEFT de LoRa |
model.peft | esquema izquierdo |
Usa «lora» o «null». «lora» utiliza el método LoRa PEFT para un ajuste preciso de los parámetros con eficiencia. «null» inicia un ajuste fino de rango completo. |
- | - |
model.left | lora_tuning.loraplus_lr_ratio |
El factor de escala de la tasa de aprendizaje LoRa+ debe estar entre 0.0 y 100.0. |
0 | 100 | |
model.left | lora_tuning.alpha |
Factor de escala para pesas LoRa. Los valores permitidos son 32, 64, 96, 128, 160 y 192. |
32 | 192 | |
model.left | lora_tuning.adapter_dropout |
Regularización de los parámetros de LoRa. Debe estar entre 0.0 y 1.0. |
0 | 1 |
Ajuste preciso de configuraciones específicas (DPO)
La única diferencia entre la optimización de preferencias directas (DPO) y la PEFT y la FullRank SFT de LoRa radica en la configuración de dpo_cfg y los valores permitidos. Consulte en la siguiente tabla el ejemplo para ver qué está permitido específicamente para el DPO. Hay ejemplos de recetas disponibles en el GitHub repositorio de SageMaker HyperPod recetas.
Clave raíz | Llaves secundarias | Definición | Mínimo | Máximo | |
---|---|---|---|---|---|
max_length | La longitud máxima de secuencia en fichas. Esto determina el tamaño de la ventana de contexto para el entrenamiento. Se puede ajustar al múltiplo 1024 más cercano, valor máximo: 32.768. |
1024 |
32768 |
||
tamaño_de_lote global |
Tamaño de lote global, los valores permitidos son {16, 32, 64, 128, 256}. |
16 | 256 | ||
Configuración del entrenador | entrenador | max_epochs |
El número de pasadas completas por tu conjunto de datos de entrenamiento. Para la mayoría de las tareas de personalización, suelen ser suficientes de 1 a 5 épocas. Las épocas máximas son 5. |
1 | 5 |
Configuración del modelo | modelo | hidden_dropout |
Probabilidad de eliminar las salidas de estado oculto. Aumente (0,0-0,2) para reducir el sobreajuste en conjuntos de datos más pequeños. Los límites están entre 0 y 1. |
0 | 1 |
modelo | attention_dropout |
Probabilidad de perder peso en la atención. Puede ayudar con la generalización. Los límites están entre 0 y 1. |
0 | 1 | |
modelo | ffn_dropout |
Probabilidad de que disminuyan las salidas de la red de retroalimentación. Los límites están entre 0 y 1. |
0 | 1 | |
Configuración del optimizador | model.optim | o |
Tasa de aprendizaje, controla el tamaño de los pasos durante la optimización. Los límites están entre 0 y 1. Por lo general, se establece entre 1e-6 y 1e-4 para un buen rendimiento. |
0 | 1 |
model.optim | nombre |
Algoritmo optimizador. En la actualidad, solo se admite |
- | - | |
model.optim | adam_w_mode |
Habilita el modo AdamW (verdadero/falso). |
- | - | |
model.optim | eps |
Epsilon para una estabilidad numérica. |
1.00E-10 | 1,00E-06 | |
model.optim | weight_decay |
La fuerza de regularización L2 debe estar entre 0.0 y 1.0. |
0 | 1 | |
model.optim | betas |
Las betas del optimizador Adam deben estar entre 0.0 y 1.0. |
0 | 1 | |
model.optim | sched_warmup_steps |
Número de pasos para aumentar gradualmente la tasa de aprendizaje. Esto mejora la estabilidad del entrenamiento. Entre 1 y 20. |
1 | 20 | |
model.optim | sched_constant_steps |
Pasos a un ritmo de aprendizaje constante. |
|||
model.optim | sched.min_lr |
Tasa mínima de aprendizaje al final de la decadencia. Los límites están entre 0 y 1, pero deben ser inferiores a la tasa de aprendizaje. |
0 | 1 | |
Configuración PEFT de LoRa |
model.peft | esquema izquierdo |
Usa «lora» o «null». «lora» utiliza el método LoRa PEFT para un ajuste preciso de los parámetros con eficiencia. «null» inicia un ajuste fino de rango completo. |
- | - |
model.left | lora_tuning.loraplus_lr_ratio |
El factor de escala de la tasa de aprendizaje LoRa+ debe estar entre 0.0 y 100.0. |
0 | 100 | |
model.left | lora_tuning.alpha |
Factor de escala para pesas LoRa. Los valores permitidos son 32, 64, 96, 128, 160 y 192. |
32 | 192 | |
model.left | lora_tuning.adapter_dropout |
Regularización de los parámetros de LoRa. Debe estar entre 0.0 y 1.0. |
0 | 1 | |
Configuración de DPO | model-dpo_cfg | beta |
Fuerza de la aplicación de las preferencias. |
0.001 | 0.1 |
Utilización del modelo Nova personalizado en trabajos SageMaker de formación
En esta sección se muestra cómo ejecutar un modelo Nova personalizado en trabajos de SageMaker formación a través de un entorno de cuadernos Jupyter. Encontrará un ejemplo completo que explica el proceso de configuración y lanzamiento de un trabajo de formación, junto con tablas de referencia para seleccionar las configuraciones de imagen URIs e instancia del contenedor adecuadas. Este enfoque le proporciona un control programático sobre sus flujos de trabajo de ajuste y, al mismo tiempo, aprovecha la infraestructura gestionada para SageMaker personalizar los modelos. Para obtener más información, consulte Utilizar un estimador de SageMaker IA para realizar un trabajo de formación.
Tablas de referencia
Antes de ejecutar el cuaderno de muestra, consulte las tablas siguientes para seleccionar las configuraciones de imagen URIs e instancia del contenedor adecuadas.
Seleccionar el URI de la imagen
Receta | URI de imagen |
---|---|
URI de imagen SFT |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
URI de imagen DPO |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest |
Seleccionar el tipo y el recuento de instancias
Modelo | Tipo de trabajo | Tipo de instancia | Recuento de instancias recomendado | Recuento de instancias permitido |
---|---|---|---|---|
Amazon Nova Micro | Ajuste preciso (SFT/DPO) |
p5.48xlarge |
2 | 2,4,8 |
Amazon Nova Lite | Ajuste fino (SFT/DPO) |
p5.48xlarge |
4 | 4, 8, 16 |
Amazon Nova Pro | Ajuste fino (SFT/DPO) |
p5.48xlarge |
6 | 6, 12, 24 |
Cuaderno de ejemplo
El siguiente ejemplo de cuaderno muestra cómo ejecutar un trabajo de formación. Para obtener más cuadernos de introducción sobre cómo personalizar los modelos Nova mediante trabajos de entrenamiento de SageMaker IA, consulte Usar un estimador de SageMaker IA para ejecutar un trabajo de entrenamiento.
# 1. Install dependencies !pip install sagemaker # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")
Guía de optimización de hiperparámetros
Ajustar con precisión su modelo Nova LLM de manera efectiva requiere una selección cuidadosa de los hiperparámetros. Si bien en esta sección se explican la estructura y los componentes básicos de la receta, la optimización de los hiperparámetros para su caso de uso específico a menudo requiere orientación adicional. Para obtener recomendaciones exhaustivas sobre la selección de hiperparámetros, las mejores prácticas y las estrategias de optimización, consulte Selección de hiperparámetros. Este recurso proporciona una guía detallada sobre cómo seleccionar las tasas de aprendizaje, los tamaños de los lotes, las épocas de formación y otros parámetros críticos adecuados en función de las características del conjunto de datos y los objetivos de formación. Recomendamos consultar esta guía al ajustar la configuración de la receta para lograr un rendimiento óptimo del modelo.
Modificaciones comunes en las recetas
Estos son algunos ajustes comunes de las recetas en función de casos de uso específicos:
-
Para conjuntos de datos más pequeños (< 1000 ejemplos)
training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
-
Para una mayor eficiencia con un cómputo limitado
peft: peft_scheme: "lora" lora_tuning:
-
Para ajustar instrucciones complejas
optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability