DeepSpeed

From HPCWIKI
Jump to navigation Jump to search

DeepSpeed

Template:Status

Template:TOC

Overview

DeepSpeed는 Microsoft의 대규모 모델 분산 학습 프레임워크. ZeRO 기술로 GPU 메모리 효율 극대화. 100B+ 파라미터 모델 학습 가능.

Summary

  • * 무엇인가? Microsoft 대규모 모델 분산 학습 프레임워크. ZeRO 기술
  • * 왜 필요한가? 제한된 GPU로 대규모 모델 학습. 메모리 효율↑
  • * 언제 사용하는가? 10B+ 파라미터 모델 학습, 분산 훈련

---

Purpose

이 문서가 존재하는 이유

  • Goal: DeepSpeed의 개념, 사용법, 설정 가이드 제공
  • Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
  • Non-goals: 고급 커스터마이징, 내부 소스 코드 분석

---

Key Concepts

Template:KeyConcepts

---

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

---

Related Pages