Este repositorio contiene arquitecturas de referencia y casos de prueba para el entrenamiento de modelos distribuidos con Amazon SageMaker Hyperpod, AWS ParallelCluster, AWS Batch y Amazon EKS. Los casos de prueba cubren diferentes tipos y tamaños de modelos, así como diferentes marcos y optimizaciones paralelas (Pytorch DDP/FSDP, MegatronLM, NemoMegatron...).
Los componentes principales de este directorio son:
reference-architectures/
| -- 1.architectures/ # CloudFormation templates for reference arch
| -- 2.ami_and_containers/ # Scripts to create AMIs and container images
| -- 3.test_cases/ # Reference test cases and/or benchmark scripts
| -- 4.validation_observability/ # Tools to measure performance or troubleshoot
` -- ...
NOTA : las arquitecturas están diseñadas para funcionar con el depósito S3 y la VPC creados utilizando las plantillas de referencia 1.architectures/0.s3/
y 1.architectures/1.vpc_network/
. Se recomienda encarecidamente implementar estas dos plantillas antes de implementar cualquiera de las arquitecturas de referencia.
Puede seguir el taller a continuación para entrenar modelos en AWS. Cada uno contiene ejemplos de varios casos de prueba, así como información valiosa sobre cómo operar un clúster para la capacitación LLM.
Nombre | Comentarios |
---|---|
HiperPod de Amazon SageMaker | Taller para SageMaker HyperPod, muestra cómo implementarlo y monitorearlo |
Clúster paralelo de AWS | Taller similar al HyperPod pero en ParallelCluster |
Amazon SageMaker HyperPod EKS | Taller para SageMaker HyperPod EKS, muestra cómo implementarlo y monitorearlo |
Las arquitecturas se encuentran en 1.architectures
y constan de utilidades y arquitecturas relacionadas con servicios.
Nombre | Categoría | Uso |
---|---|---|
0.s3 | Almacenamiento | Crear un depósito S3 |
1.vpc_network | Red | Cree una VPC con los recursos necesarios de subredes |
2.aws-parallelcluster | Calcular | Plantillas de clúster para GPU y entrenamiento de silicio personalizado |
3.aws-batch | Calcular | Plantilla de AWS Batch para capacitación distribuida |
4.amazon-eks | Calcular | Archivos de manifiesto para entrenar con Amazon EKS |
5.sagemaker-hyperpod | Calcular | Plantilla SageMaker HyperPod para capacitación distribuida |
Vendrán más, siéntete libre de agregar otros nuevos (¿por ejemplo, Ray?). También encontrará documentación para EFA y las variables de entorno recomendadas.
Se pueden crear imágenes de máquina personalizadas utilizando Packer para AWS ParallelCluster, Amazon EKS y EC2 simple. Estas imágenes se basan en roles y manuales de estrategias de Ansible.
Todos los casos de prueba están bajo 3.test_cases/
. Puede ir al directorio de cada caso de prueba para aprender cómo ejecutarlo.
Casos de prueba | Slurm | Kubernetes | Lote de AWS |
---|---|---|---|
1.megatron-lm | ✅ | ✅ | ❓ |
2.nemo-launcher | ✅ | ✅ | |
3.MPT | ✅ | ❓ | ❓ |
4.DDP | ✅ | ❓ | ❓ |
5.param-benchmark | ✅ | ❓ | ❓ |
6.stable-diffusion | ✅ | ✅ | ❓ |
7.tensorflow-distributed | ✅ | ❓ | ❓ |
10.FSDP | ✅ | ✅ | ❓ |
11.modelparallel | ✅ | ❓ | ❓ |
12.SM-dataparallel-FSDP | ✅ | ❓ | ❓ |
13.SM-dataparallel-deepspeed | ✅ | ❓ | ❓ |
14.bionemo | ✅ | ❓ | ❓ |
15.gpt-neox | ✅ | ❓ | ❓ |
16.pytorch-cpu-ddp | ✅ | ✅ | ❓ |
17.SM-modelparallelv2 | ✅ | ❓ | ❓ |
18.deepspeed | ✅ | ❓ | ❓ |
jax | ✅ | ❓ | ❓ |
Los scripts de utilidades y los ejemplos de microevaluaciones se establecen en 4.validation_scripts/
. El exportador EFA Prometheus se puede encontrar en este directorio
Nombre | Comentarios |
---|---|
1.pytorch-env-validation | Valida su entorno PyTorch |
3.efa-node-exporter | Exportador de nodos con módulos de monitoreo de Amazon EFA |
4.prometheus-grafana | Activos de implementación para monitorear los clústeres de Hyperpod de SageMaker |
5.nsight | Muestra cómo ejecutar Nvidia Nsight Systems para perfilar su carga de trabajo. |
efa-versions.py | Obtenga las versiones de las bibliotecas, controladores y controladores EFA de Nvidia |
Las pruebas de integración están escritas en pytest. Simplemente ejecuta:
pytest .
Alternativamente, puede ejecutar pruebas sin capturar la salida estándar y conservar todas las imágenes de la ventana acoplable y otros artefactos.
pytest -s --keep-artifacts=t
Gracias a todos los contribuyentes por construir, revisar y probar.