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.
Entrenamiento previo continuo (CPT)
La formación previa continua (CPT) es el proceso de formación continua de un modelo básico previamente entrenado sobre nuevos datos utilizando los mismos objetivos sin supervisión (como el modelado de lenguaje enmascarado o el modelado de lenguaje causal). Conserva las capacidades lingüísticas generales previamente aprendidas y, al mismo tiempo, se adapta a nuevos dominios o cambios distributivos.
La CPT no implica cambios en la arquitectura ni ajustes para tareas posteriores específicas. En cambio, amplía la capacidad de comprensión del lenguaje del modelo teniendo en cuenta el dominio.
Debe utilizar la CPT en los siguientes escenarios:
-
Tiene datos a gran escala y sin etiquetar que son específicos de un dominio (por ejemplo, medicina o finanzas).
-
Desea que el modelo conserve las capacidades lingüísticas generales y, al mismo tiempo, mejore el contenido específico del dominio.
-
Desea mejorar el rendimiento a cero y pocos pasos en áreas especializadas sin necesidad de realizar ajustes exhaustivos y específicos para cada tarea.
Requisitos del formato de los datos
Recomendamos cumplir con las siguientes características del conjunto de datos al realizar la CPT:
-
Diversidad: los datos deben cubrir una amplia gama de expresiones dentro del dominio de destino para evitar sobreajustes.
-
Representación: los datos deben reflejar la distribución a la que se enfrentará el modelo durante la inferencia.
-
Limpieza: el ruido y la redundancia de los datos pueden reducir el rendimiento. La deduplicación y la normalización del texto mejoran el entrenamiento de los modelos.
-
Escalabilidad: los conjuntos de datos más grandes ayudan, pero si se supera un cierto umbral (por ejemplo, si se utilizan varios períodos con datos limitados), aumentan los riesgos de sobreajuste.
Los conjuntos de datos de entrenamiento y validación deben ser archivos JSONL con el formato Converse, donde cada línea contenga un objeto JSON que represente una conversación con los campos y la estructura necesarios. A continuación se muestra un ejemplo:
{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}
Las entradas de texto deben contener contenido fluido y de alta calidad que represente el dominio de destino.
Validación de los conjuntos
Para validar su conjunto de datos antes de enviar su trabajo de CPT, compruebe las siguientes condiciones:
-
Cada línea debe contener un objeto JSON válido.
-
Cada objeto tiene un campo de «texto» que contiene datos de cadena.
-
No hay ningún campo que no sea «texto».
-
El archivo es una
.jsonl
extensión.
Horarios de entrenamiento
La cantidad de tiempo dedicado al entrenamiento depende en gran medida del tamaño del conjunto de datos, la cantidad de instancias utilizadas y el modelo que se esté entrenando. Se espera que los tiempos de entrenamiento se escalen linealmente. La siguiente tabla proporciona algunos ejemplos de tiempos de entrenamiento para varios modelos.
Tipo de modelo |
GBS |
Número de muestras en el conjunto de datos |
Número de instancias P5 |
Valor de |
Tiempo aproximado de formación en horas |
---|---|---|---|---|---|
Amazon Nova Micro |
256 |
100 000 |
8 |
8 192 |
4 |
Amazon Nova Lite |
256 |
100 000 |
16 |
8 192 |
4 |
Amazon Nova Pro |
256 |
100 000 |
24 |
8 192 |
10 |
Los conjuntos de datos de entrenamiento y validación deben ser archivos JSONL que sigan el formato de operación Amazon Bedrock Converse, en el que cada línea contiene un objeto JSON que represente una conversación con los campos y la estructura necesarios.
Los parámetros de Amazon Nova que están disponibles para ajustarse con CPT incluyen:
-
Ejecute la configuración
-
name
: un nombre descriptivo para su trabajo de formación. Esto ayuda a identificar su trabajo en el AWS Management Console. -
model_type
: La variante del modelo Amazon Nova que se utilizará. Las opciones disponibles sonamazon.nova-micro-v1:0:128k
amazon.nova-lite-v1:0:300k
, oamazon.nova-pro-v1:0:300k
. -
model_name_or_path
: La ruta hacia el modelo base que utilizarás en tu entrenamiento. Las opciones disponibles sonnova-micro/prod
,nova-lite/prod
nova-pro/prod
, o la ruta S3 para el punto de control posterior al entrenamiento ()s3://customer-escrow-bucket-unique_id/training_run_name
. -
replicas
: El número de instancias informáticas que se van a utilizar para la formación distribuida. Los valores disponibles varían en función del modelo que elija. Amazon Nova Micro admite 2, 4 u 8 réplicas. Amazon Nova Lite admite 4, 8, 16 o 32 réplicas. Amazon Nova Pro admite 6, 12 ó 24 réplicas. -
data_s3_path
: La ubicación en S3 del conjunto de datos de entrenamiento, que es un archivo JSONL. Este archivo debe residir en la misma región Cuenta de AWS y región que el clúster. Todas las ubicaciones de S3 proporcionadas deben estar en la misma cuenta y región. -
validation_data_s3_path
: (Opcional) La ubicación en 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
: La ubicación de S3 donde se almacenan el manifiesto y los TensorBoard registros. Todas las ubicaciones de S3 proporcionadas deben estar en la misma Cuenta de AWS dirección Región de AWS.
-
-
Configuración de entrenamiento
-
max_length
: La longitud máxima de la secuencia en fichas. Esto determina el tamaño de la ventana de contexto para el entrenamiento. El valor máximo admitido es de 8192 fichas para el CPT.Las secuencias más largas mejorarán la eficiencia del entrenamiento a costa de aumentar los requisitos de memoria. Le recomendamos que haga coincidir el
max_length
parámetro con su distribución de datos.
-
-
Ajustes del entrenador
-
global_batch_size
: El número total de muestras de formación procesadas juntas en un solo paso hacia delante o hacia atrás se transfiere a 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 quepa cómodamente en su memoria y, a partir de ahí, vaya ampliándolo. En el caso de los datos específicos de un dominio, es posible que los lotes más grandes suavicen demasiado los gradientes.
-
max_epochs
: El número de pasadas completas por tu conjunto de datos de entrenamiento.En general, los conjuntos de datos más grandes requieren menos épocas para converger, mientras que los conjuntos de datos más pequeños requieren más épocas para converger. Le recomendamos que ajuste el número de épocas en función del tamaño de los datos para evitar que se sobreajusten.
-
-
Ajustes del modelo
-
hidden_dropout
: La probabilidad de eliminar las salidas de estado ocultas. Aumente este valor entre aproximadamente 0,0-0,2 para reducir el sobreajuste en conjuntos de datos más pequeños. Los valores válidos están entre 0 y 1, ambos inclusive. -
attention_dropout
: La probabilidad de perder el peso de la atención. Este parámetro puede ayudar a generalizar. Los valores válidos están comprendidos entre 0 y 1, ambos inclusive. -
ffn_dropout
: La probabilidad de que disminuyan las salidas de la red de retroalimentación. Los valores válidos están entre 0 y 1, ambos inclusive.
-
-
Configuración del optimizador
-
lr
: La 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 están comprendidos entre 0 y 1, ambos inclusive. -
name
: El algoritmo optimizador. En la actualidad, solo se admitedistributed_fused_adam
. -
weight_decay
: La fuerza de regularización L2. Los valores más altos (entre 0,01 y 0,1) aumentan la regularización. -
warmup_steps
: El número de pasos para aumentar gradualmente la tasa de aprendizaje. Esto mejora la estabilidad del entrenamiento. Los valores válidos están entre 1 y 20, ambos inclusive. -
min_lr
: La tasa mínima de aprendizaje al final de la decadencia. Los valores válidos están entre 0 y 1, ambos inclusive, pero deben ser inferiores a la tasa de aprendizaje.
-
Receta CPT
La siguiente es una receta para la CPT.
## Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path:
[S3_PATH_TO_TRAIN_DATASET]
validation_data_s3_path:(OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET]
output_s3_path:[S3_PATH_TO_STORE_MANIFEST]
## Training specific configs training_config: max_length: 8192 # Maximum context window size (tokens). global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_epochs: 2 # Number of training epochs 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 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: 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 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 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
Limitaciones
La CPT tiene las siguientes limitaciones:
-
No se admiten conjuntos de datos multimodales.
-
Los puntos de control intermedios no se guardan para su evaluación y no se puede reanudar desde un punto de control intermedio. Solo se guarda el último punto de control.
-
MLflow no se admite el registro.