DeepSpeed: 초거대 규모의 딥러닝 학습 및 메모리 효율성을 위한 시스템 최적화 라이브러리
DeepSpeed: 초거대 규모의 딥러닝 학습 및 메모리 효율성을 위한 시스템 최적화 라이브러리
해결하는 문제
DeepSpeed는 일반적으로 딥러닝 학습의 크기와 속도를 제한하는 메모리 및 연산 제약 사항을 극복하도록 설계되었습니다. 이를 통해 프로세스를 더욱 효율적이고 확장 가능하게 만들어 여러 GPU 및 하드웨어 가속기에서 수천억 개의 파라미터를 가진 거대 모델의 학습을 가능하게 합니다.
작동 방식
DeepSpeed는 메모리 사용량과 처리량을 최적화하기 위해 시스템 수준의 혁신 기술 세트를 활용합니다. 주요 기술은 다음과 같습니다:
- ZeRO (Zero Redundancy Optimizer): 사용 가능한 GPU 전체에 모델 상태를 분할하여 메모리 오버헤드를 줄입니다.
- 3D-Parallelism: 다양한 유형의 병렬화를 결합하여 학습을 확장합니다.
- Offloading: GPU 용량을 초과하는 모델을 처리하기 위해 GPU 메모리와 CPU/NVMe 간에 데이터를 이동합니다 (예: ZeRO-Infinity, ZenFlow, SuperOffload).
- Sequence Parallelism: 긴 컨텍스트 시퀀스 학습을 특별히 최적화합니다 (예: Ulysses Sequence Parallelism).
- Specialized Optimizers: 1-bit Adam과 같은 통신 효율적인 도구를 포함합니다.
대상 사용자
매우 큰 규모의 모델(예: LLM)을 학습시키고 NVIDIA, AMD, Intel, 그리고 기타 특화된 AI 가속기 전반에서 하드웨어 활용도를 극대화해야 하는 AI 연구원 및 엔지니어들을 위한 것입니다.
주요 특징
- Extreme Scale: MT-530B 및 BLOOM과 같은 세계적인 모델을 학습시키는 데 사용되었습니다.
- Broad Hardware Support: NVIDIA GPU, AMD GPU, Intel Gaudi/XPU, 및 Huawei Ascend NPU와 호환됩니다.
- Hugging Face Integration: Transformers 및 Accelerate 라이브러리와 깊게 통합되어 있습니다.
- Flexible Memory Management: "GPU 메모리 장벽"을 깨기 위해 CPU 및 NVMe로의 고급 Offloading 기능을 제공합니다.
Sources
- undefineddeepspeedai/DeepSpeed