|
Hoy anunciamos la disponibilidad general de Recetas de Amazon SageMaker HyperPod para ayudar a los científicos de datos y desarrolladores de todos los conjuntos de habilidades a comenzar a entrenar y ajustar los modelos básicos (FM) en minutos con un rendimiento de última generación. Ahora pueden acceder a recetas optimizadas para entrenar y perfeccionar FM populares disponibles públicamente, como Llama 3.1 405B, Llama 3.2 90Bo Mixtral 8x22B.
En AWS re:Invent 2023, presentamos SageMaker HyperPod para reducir el tiempo de capacitación de FM hasta en un 40 por ciento y escalar a través de más de mil recursos informáticos en paralelo con bibliotecas de capacitación distribuidas preconfiguradas. Con SageMaker HyperPod, puede encontrar los recursos informáticos acelerados necesarios para la capacitación, crear los planes de capacitación más óptimos y ejecutar cargas de trabajo de capacitación en diferentes bloques de capacidad según la disponibilidad de los recursos informáticos.
Las recetas de SageMaker HyperPod incluyen una pila de capacitación probada por AWS, lo que elimina el trabajo tedioso de experimentar con diferentes configuraciones de modelos y elimina semanas de evaluación y pruebas iterativas. Las recetas automatizan varios pasos críticos, como cargar conjuntos de datos de entrenamiento, aplicar técnicas de entrenamiento distribuidas, automatizar puntos de control para una recuperación más rápida de fallas y administrar el ciclo de entrenamiento de un extremo a otro.
Con un simple cambio de receta, puede cambiar sin problemas entre instancias basadas en GPU o Trainium para optimizar aún más el rendimiento del entrenamiento y reducir los costos. Puede ejecutar fácilmente cargas de trabajo en producción en SageMaker HyperPod o trabajos de capacitación de SageMaker.
Recetas de SageMaker HyperPod en acción
Para comenzar, visite el Repositorio de GitHub de recetas de SageMaker HyperPod para buscar recetas de entrenamiento para FM populares disponibles públicamente.
Solo necesita editar parámetros sencillos de la receta para especificar un tipo de instancia y la ubicación de su conjunto de datos en la configuración del clúster, luego ejecutar la receta con un comando de una sola línea para lograr un rendimiento de última generación.
Debe editar el archivo de receta config.yaml para especificar el modelo y el tipo de clúster después de clonar el repositorio.
$ git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
$ cd sagemaker-hyperpod-recipes
$ pip3 install -r requirements.txt.
$ cd ./recipes_collections
$ vim config.yaml
Las recetas admiten SageMaker HyperPod con Slurm, SageMaker HyperPod con Amazon Elastic Kubernetes Service (Amazon EKS) y trabajos de capacitación de SageMaker. Por ejemplo, puede configurar un tipo de clúster (orquestador Slurm), un nombre de modelo (modelo de lenguaje Meta Llama 3.1 405B), un tipo de instancia (ml.p5.48xlarge
) y las ubicaciones de sus datos, como el almacenamiento de datos de entrenamiento, resultados, registros, etc.
defaults:
- cluster: slurm # support: slurm / k8s / sm_jobs
- recipes: fine-tuning/llama/hf_llama3_405b_seq8k_gpu_qlora # name of model to be trained
debug: False # set to True to debug the launcher configuration
instance_type: ml.p5.48xlarge # or other supported cluster instances
base_results_dir: # Location(s) to store the results, checkpoints, logs etc.
Opcionalmente, puede ajustar los parámetros de entrenamiento específicos del modelo en este archivo YAML, que describe la configuración óptima, incluida la cantidad de dispositivos aceleradores, el tipo de instancia, la precisión del entrenamiento, las técnicas de paralelización y fragmentación, el optimizador y el registro para monitorear experimentos a través de Tablero Tensor.
run:
name: llama-405b
results_dir: ${base_results_dir}/${.name}
time_limit: "6-00:00:00"
restore_from_path: null
trainer:
devices: 8
num_nodes: 2
accelerator: gpu
precision: bf16
max_steps: 50
log_every_n_steps: 10
...
exp_manager:
exp_dir: # location for TensorBoard logging
name: helloworld
create_tensorboard_logger: True
create_checkpoint_callback: True
checkpoint_callback_params:
...
auto_checkpoint: True # for automated checkpointing
use_smp: True
distributed_backend: smddp # optimized collectives
# Start training from pretrained model
model:
model_type: llama_v3
train_batch_size: 4
tensor_model_parallel_degree: 1
expert_model_parallel_degree: 1
# other model-specific params
Para ejecutar esta receta en SageMaker HyperPod con Slurm, debe preparar el clúster de SageMaker HyperPod siguiendo las instrucciones instrucción de configuración del clúster.
Luego, conéctese al nodo principal de SageMaker HyperPod, acceda al controlador Slurm y copie la receta editada. A continuación, ejecuta un archivo auxiliar para generar un script de envío de Slurm para el trabajo que puede usar para un ensayo para inspeccionar el contenido antes de comenzar el trabajo de capacitación.
$ python3 main.py --config-path recipes_collection --config-name=config
Una vez finalizada la capacitación, el modelo entrenado se guarda automáticamente en la ubicación de datos asignada.
Para ejecutar esta receta en SageMaker HyperPod con Amazon EKS, clone la receta del repositorio de GitHub, instale los requisitos y edite la receta (cluster: k8s
) en su computadora portátil. Luego, cree un enlace entre su computadora portátil y la ejecución del clúster EKS y posteriormente use la interfaz de línea de comandos (CLI) de HyperPod para ejecutar la receta.
$ hyperpod start-job –recipe fine-tuning/llama/hf_llama3_405b_seq8k_gpu_qlora \
--persistent-volume-claims fsx-claim:data \
--override-parameters \
'{
"recipes.run.name": "hf-llama3-405b-seq8k-gpu-qlora",
"recipes.exp_manager.exp_dir": "/data/",
"cluster": "k8s",
"cluster_type": "k8s",
"container": "658645717510.dkr.ecr..amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121",
"recipes.model.data.train_dir": "",
"recipes.model.data.val_dir": "",
}'
También puede ejecutar recetas en trabajos de capacitación de SageMaker usando SDK de Python de SageMaker. El siguiente ejemplo ejecuta scripts de capacitación de PyTorch en trabajos de capacitación de SageMaker con recetas de capacitación anuladas.
...
recipe_overrides = {
"run": {
"results_dir": "/opt/ml/model",
},
"exp_manager": {
"exp_dir": "",
"explicit_log_dir": "/opt/ml/output/tensorboard",
"checkpoint_dir": "/opt/ml/checkpoints",
},
"model": {
"data": {
"train_dir": "/opt/ml/input/data/train",
"val_dir": "/opt/ml/input/data/val",
},
},
}
pytorch_estimator = PyTorch(
output_path=,
base_job_name=f"llama-recipe",
role=,
instance_type="p5.48xlarge",
training_recipe="fine-tuning/llama/hf_llama3_405b_seq8k_gpu_qlora",
recipe_overrides=recipe_overrides,
sagemaker_session=sagemaker_session,
tensorboard_output_config=tensorboard_output_config,
)
...
A medida que avanza la capacitación, los puntos de control del modelo se almacenan en Amazon Simple Storage Service (Amazon S3) con la capacidad de puntos de control totalmente automatizada, lo que permite una recuperación más rápida de fallas de capacitación y reinicios de instancias.
Ahora disponible
Las recetas de Amazon SageMaker HyperPod ahora están disponibles en Repositorio de GitHub de recetas de SageMaker HyperPod. Para obtener más información, visite la página del producto SageMaker HyperPod y la Guía para desarrolladores de Amazon SageMaker AI.
Pruebe las recetas de SageMaker HyperPod y envíe sus comentarios a AWS re: Publicación para SageMaker o a través de sus contactos habituales de AWS Support.
— chany
GIPHY App Key not set. Please check settings