huggingface/accelerate

🚀 A simple way to launch, train, and use PyTorch models on almost any device and distributed configuration, automatic mixed precision (including fp8), and easy-to-configure FSDP and DeepSpeed support

해결하는 문제

PyTorch 사용자는 분산 학습(멀티 GPU, TPU 또는 혼합 정밀도)에 필요한 상용구 코드를 작성하고 유지 관리하는 것이 지루하고 복잡하다고 느끼는 경우가 많습니다. 🤗 Accelerate는 하드웨어별 설정을 추상화하여 이러한 부담을 제거하는 동시에 사용자가 학습 루프를 완전히 제어할 수 있도록 합니다.

작동 방식

Accelerate는 PyTorch를 위한 가벼운 래퍼를 제공합니다. 표준 학습 스크립트에 몇 줄의 코드(특히 Accelerator 클래스 사용)를 추가함으로써 사용자는 모델, 옵티마이저 및 데이터 로더를 모든 장치 구성에 맞게 준비할 수 있습니다. 장치 배치 및 역전파(backward pass)를 자동으로 처리합니다.

또한, accelerate configaccelerate launch와 같은 선택적 CLI 도구를 제공하여 torch.distributed.run 또는 TPU 런처를 수동으로 관리할 필요 없이 환경을 구성하고 스크립트를 실행할 수 있습니다. DeepSpeed, FSDP 및 Megatron-LM와 같은 고급 통합도 지원합니다.

대상

자신만의 PyTorch 학습 루프 작성을 선호하지만, 하드웨어별 상용구 코드를 작성하지 않고도 모든 하드웨어 구성(단일 CPU, 멀티 GPU, TPU)에서 코드를 실행하고자 하는 개발자 및 연구자.

주요 특징

  • 하드웨어 불가지론(Hardware Agnostic): 단일/멀티 CPU, 단일/멀티 GPU 및 단일 또는 다중 노드에 걸친 TPU 지원.
  • 혼합 정밀도: FP16, BFloat16 및 FP8 혼합 정밀도 내장 지원.
  • 최소한의 코드 변경: 매우 적은 수정으로 기존 PyTorch 스크립트에 통합 가능.
  • CLI 도구: 전용 CLI를 통해 환경 구성 및 실행 프로세스 간소화.
  • Notebook 지원: Colab 또는 Kaggle과 같은 환경에서 분산 학습을 위한 notebook_launcher 포함.

관련

  • Dispatch
  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트