Este repositório contém arquiteturas de referência e casos de teste para treinamento de modelos distribuídos com Amazon SageMaker Hyperpod, AWS ParallelCluster, AWS Batch e Amazon EKS. Os casos de teste cobrem diferentes tipos e tamanhos de modelos, bem como diferentes estruturas e otimizações paralelas (Pytorch DDP/FSDP, MegatronLM, NemoMegatron...).
Os principais componentes deste diretório são:
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 : as arquiteturas são projetadas para funcionar com o bucket S3 e VPC criado usando modelos de referência 1.architectures/0.s3/
e 1.architectures/1.vpc_network/
. É altamente recomendável implantar esses dois modelos antes de implantar qualquer uma das arquiteturas de referência.
Você pode acompanhar o workshop abaixo para treinar modelos na AWS. Cada um contém exemplos para vários casos de teste, bem como informações sobre como operar um cluster para treinamento LLM.
Nome | Comentários |
---|---|
HyperPod do Amazon SageMaker | Workshop para SageMaker HyperPod, mostra como implantá-lo e monitorá-lo |
AWS ParallelCluster | Workshop semelhante ao HyperPod, mas no ParallelCluster |
Amazon SageMaker HyperPod EKS | Workshop para SageMaker HyperPod EKS, mostra como implantá-lo e monitorá-lo |
As arquiteturas estão localizadas em 1.architectures
e consistem em utilidades e arquiteturas relacionadas a serviços.
Nome | Categoria | Uso |
---|---|---|
0.s3 | Armazenar | Crie um intervalo S3 |
1.vpc_network | Rede | Crie uma VPC com recursos necessários de sub-redes |
2.aws-parallelcluster | Calcular | Modelos de cluster para treinamento de GPU e silício personalizado |
3.aws-batch | Calcular | Modelo AWS Batch para treinamento distribuído |
4.amazon-eks | Calcular | Arquivos de manifesto para treinar com o Amazon EKS |
5.sagemaker-hyperpod | Calcular | Modelo SageMaker HyperPod para treinamento distribuído |
Mais virão, fique à vontade para adicionar novos (ex. Ray?). Você também encontrará documentação para EFA e as variáveis de ambiente recomendadas.
Imagens de máquina personalizadas podem ser criadas usando Packer para AWS ParallelCluster, Amazon EKS e EC2 simples. Essas imagens são baseadas em funções e manuais do Ansible.
Todos os casos de teste estão abaixo de 3.test_cases/
. Você pode acessar cada diretório de caso de teste para aprender como executá-lo.
Casos de teste | Slurm | Kubernetes | Lote 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 | ✅ | ❓ | ❓ |
Scripts de utilitários e exemplos de micro-benchmarks são definidos em 4.validation_scripts/
. O exportador EFA Prometheus pode ser encontrado neste diretório
Nome | Comentários |
---|---|
1.pytorch-env-validation | Valida seu ambiente PyTorch |
3.efa-node-exporter | Exportador de nós com módulos de monitoramento Amazon EFA |
4.prometheus-grafana | Ativos de implantação para monitorar clusters de hiperpods SageMaker |
5.nsight | Mostra como executar sistemas Nvidia Nsight para traçar o perfil de sua carga de trabalho |
efa-versions.py | Obtenha as versões das bibliotecas, drivers e drivers EFA da Nvidia |
Os testes de integração são escritos em pytest. Basta executar:
pytest .
Alternativamente, você pode executar testes sem capturar stdout e manter todas as imagens do docker e outros artefatos.
pytest -s --keep-artifacts=t
Obrigado a todos os colaboradores pela construção, revisão e teste.