DeepSpeed
Jump to navigation
Jump to search
DeepSpeed
Overview
DeepSpeed는 Microsoft의 대규모 모델 분산 학습 프레임워크. ZeRO 기술로 GPU 메모리 효율 극대화. 100B+ 파라미터 모델 학습 가능.
Summary
- * 무엇인가? Microsoft 대규모 모델 분산 학습 프레임워크. ZeRO 기술
- * 왜 필요한가? 제한된 GPU로 대규모 모델 학습. 메모리 효율↑
- * 언제 사용하는가? 10B+ 파라미터 모델 학습, 분산 훈련
---
Purpose
이 문서가 존재하는 이유
- Goal: DeepSpeed의 개념, 사용법, 설정 가이드 제공
- Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
- Non-goals: 고급 커스터마이징, 내부 소스 코드 분석
---
Key Concepts
---
Architecture
DeepSpeed는 ZeRO(Zero Redundancy Optimizer)를 핵심 기술로 사용. Stage 1(옵티마이저 분할), Stage 2(그라디언트 분할), Stage 3(매개변수 분할)으로 메모리 효율 향상. CPU/NVMe 오프로딩 지원.
---
Workflow
1. 1. DeepSpeed 설치(pip install deepspeed)
2. 2. DeepSpeed 설정 파일(deepspeed_config.json) 작성
3. 3. 기존 PyTorch 코드에 DeepSpeed 통합
4. 4. deepspeed 명령어로 훈련 실행
5. 5. ZeRO Stage 설정 (Stage 3 권장)
6. 6. 메모리 사용량 및 성능 모니터링
---
Configuration
{config_code}---
Best Practices
- ZeRO Stage 3으로 최대 메모리 효율
- CPU offloading으로 GPU 메모리 절약
- activation checkpointing으로 메모리 50% 절감
- gradient accumulation으로 가상 배치 크기 증가
- DeepSpeed와 Hugging Face Trainer 통합 권장
---
Limitations
- 설정 복잡도 높음
- 추론 속도는 TensorRT에 미흡
- 모든 연산이 DeepSpeed 지원 안 됨
---
References
---