이 리포지토리에는 Amazon SageMaker Hyperpod, AWS ParallelCluster, AWS Batch 및 Amazon EKS를 사용한 분산 모델 교육을 위한 참조 아키텍처와 테스트 사례가 포함되어 있습니다. 테스트 사례는 다양한 유형과 크기의 모델뿐만 아니라 다양한 프레임워크와 병렬 최적화(Pytorch DDP/FSDP, MegatronLM, NemoMegatron...)를 다루고 있습니다.
이 디렉토리의 주요 구성요소는 다음과 같습니다.
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
` -- ...
참고 : 아키텍처는 참조 템플릿 1.architectures/0.s3/
및 1.architectures/1.vpc_network/
를 사용하여 생성된 S3 버킷 및 VPC와 작동하도록 설계되었습니다. 참조 아키텍처를 배포하기 전에 이 두 템플릿을 배포하는 것이 좋습니다.
아래 워크숍에 따라 AWS에서 모델을 교육할 수 있습니다. 각각에는 여러 테스트 사례에 대한 예와 LLM 교육을 위한 클러스터 운영에 대한 정보가 포함되어 있습니다.
이름 | 댓글 |
---|---|
아마존 세이지메이커 하이퍼팟 | SageMaker HyperPod 워크숍에서는 배포 및 모니터링 방법을 보여줍니다. |
AWS 병렬 클러스터 | HyperPod와 유사한 워크샵이지만 ParallelCluster에서 진행됩니다. |
아마존 세이지메이커 하이퍼팟 EKS | SageMaker HyperPod EKS 워크숍에서는 배포 및 모니터링 방법을 보여줍니다. |
Architectures는 1.architectures
에 위치하며 유틸리티와 서비스 관련 아키텍처로 구성된다.
이름 | 범주 | 용법 |
---|---|---|
0.s3 | 저장 | S3 버킷 생성 |
1.vpc_network | 회로망 | 서브넷에 필요한 리소스가 포함된 VPC 생성 |
2.aws-parallelcluster | 컴퓨팅 | GPU 및 맞춤형 실리콘 교육을 위한 클러스터 템플릿 |
3.aws-batch | 컴퓨팅 | 분산 교육을 위한 AWS Batch 템플릿 |
4.amazon-eks | 컴퓨팅 | Amazon EKS로 훈련할 매니페스트 파일 |
5.sagemaker-hyperpod | 컴퓨팅 | 분산 교육을 위한 SageMaker HyperPod 템플릿 |
더 많은 것이 추가될 예정입니다. 자유롭게 새로운 항목을 추가하세요(예: Ray?). EFA 및 권장 환경 변수에 대한 문서도 찾을 수 있습니다.
AWS ParallelCluster, Amazon EKS 및 일반 EC2용 Packer를 사용하여 사용자 지정 머신 이미지를 구축할 수 있습니다. 이러한 이미지는 Ansible 역할 및 플레이북을 기반으로 합니다.
모든 테스트 케이스는 3.test_cases/
아래에 있습니다. 각 테스트 케이스 디렉토리로 이동하여 실행 방법을 알아볼 수 있습니다.
테스트 케이스 | 슬럼 | 쿠버네티스 | 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 | ✅ | ❓ | ❓ |
유틸리티 스크립트 및 마이크로 벤치마크 예제는 4.validation_scripts/
아래에 설정됩니다. EFA Prometheus 내보내기 프로그램은 이 디렉터리에서 찾을 수 있습니다.
이름 | 댓글 |
---|---|
1.pytorch-env-validation | PyTorch 환경 검증 |
3.efa-node-exporter | Amazon EFA 모니터링 모듈이 있는 노드 내보내기 |
4.prometheus-grafana | SageMaker Hyperpod 클러스터를 모니터링하기 위한 배포 자산 |
5.nsight | Nvidia Nsight 시스템을 실행하여 워크로드를 프로파일링하는 방법을 보여줍니다. |
efa-versions.py | Nvidia 라이브러리, 드라이버 및 EFA 드라이버 버전을 다운로드하세요. |
통합 테스트는 pytest로 작성됩니다. 그냥 실행하세요:
pytest .
또는 stdout을 캡처하지 않고 모든 Docker 이미지를 다른 아티팩트로 유지하지 않고 테스트를 실행할 수 있습니다.
pytest -s --keep-artifacts=t
구축, 검토, 테스트에 참여해주신 모든 분들께 감사드립니다.