deepspeedai/DeepSpeed
DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective.
DeepSpeed – 확장 가능한 딥러닝 학습 프레임워크
이것이 무엇인가 DeepSpeed는 (PyTorch 기반으로 구축된) 오픈소스 라이브러리로, 수억 개에서 수천억 개의 파라미터에 이르는 매우 큰 딥러닝 모델을 다양한 하드웨어(NVIDIA, AMD, Intel Gaudi, Xeon CPU 등)에서 효율적으로 학습할 수 있게 해줍니다. 시스템 수준의 최적화, 메모리 절약 기술, 병렬 처리 프리미티브를 제공하여 연구자와 엔지니어가 저수준 CUDA/HIP 코드를 작성하지 않고도 모델 크기와 속도를 확장할 수 있습니다.
주요 기능
- ZeRO 제품군 – GPU 간에 모델 상태를 분할하여 수조 개의 파라미터 학습을 가능하게 하는 메모리 최적화 옵티마이저(ZeRO, ZeRO-Infinity).
- 3차원 병렬 처리 – 데이터, 텐서, 파이프라인 병렬 처리를 결합하여 하드웨어 활용도를 극대화합니다.
- 오프로드 엔진 – SuperOffload, ZeRO-Offload, ZenFlow, Ulysses-Offload는 데이터를 CPU, GPU 메모리 또는 다른 가속기로 이동시켜 GPU 메모리 압력을 줄입니다.
- 특수 커널 – 통신과 계산을 중첩하는 맞춤형 C++/CUDA/HIP 연산(예: AMD용 System DMA, DeepNVMe I/O 스케일링).
- 통합 레이어 – Hugging Face Transformers, Accelerate, PyTorch-Lightning, MosaicML Composer, Determined AI, MMEngine 등에 대한 즉시 사용 가능한 어댑터.
- 다양한 하드웨어 백엔드 지원 – NVIDIA, AMD, Intel Gaudi, Intel Xeon/XPU, Huawei Ascend NPU 및 커뮤니티 기여 가속기.
일반적인 워크플로우
deepspeedpip 패키지를 설치합니다(또는 사용자 정의 연산을 위해 소스에서 빌드).- 표준 PyTorch 학습 스크립트를 작성합니다.
- DeepSpeed에 사용할 병렬 처리 및 메모리 오프로드 전략을 알려주는 작은 JSON 구성을 추가합니다.
deepspeed train.py --deepspeed_config cfg.json으로 실행합니다.ds_report를 사용하여 어떤 연산이 컴파일되었고 어떤 하드웨어 기능이 활성화되었는지 확인합니다.
왜 중요한가 DeepSpeed는 세계에서 가장 큰 언어 모델 중 일부(예: Microsoft의 530B 파라미터 MT-NLG, BLOOM(176B), Jurassic-1(178B))를 학습하는 데 사용되어 AI 연구의 최전선까지 확장할 수 있음을 입증했습니다. 오픈소스 특성 덕분에 누구나 이러한 결과를 재현하거나 새로운 병렬 처리 아이디어를 실험할 수 있습니다.
시작하기 및 리소스
- 설치 –
pip install deepspeed(PyTorch ≥ 2.0 및 CUDA/ROCm 컴파일러 필요). Windows는 일부 기능 제한과 함께 지원됩니다. - 문서 – https://www.deepspeed.ai/ (시작 가이드, JSON 구성 참조, API 문서).
- 커뮤니티 – 정기적인 공개 Zoom 오피스 아워, Slack 워크스페이스, 활발한 GitHub 토론.
- 예제 – 저장소에는 ZeRO-Offload, SDMA all-gather, 장문 시퀀스 학습(Arctic Long Sequence Training) 등을 위한 예제 스크립트가 포함되어 있습니다.
누가 사용해야 하는가
- 매우 큰 트랜스포머 모델을 구축하거나 미세 조정하는 연구자.
- 멀티 GPU 또는 이기종 클러스터에서 최대 성능을 끌어내야 하는 엔지니어.
- 기존 PyTorch 코드베이스에 드롭인 가속 레이어를 원하는 팀.
위의 모든 정보는 프로젝트의 README에서 직접 가져온 것입니다.
관련
- Dispatch
- 프로젝트
- Dispatch
- 프로젝트
- 프로젝트