Accelerate 1.0.0 릴리스 후보 발표
TL;DR
Accelerate 1.0.0 릴리스 후보가 이제 제공되며, FP8 지원, DeepSpeed 멀티 모델 오케스트레이션, torch.compile 통합, 그리고 새로운 데이터 로더 및 파이프라인 기본 요소를 제공하고, 대규모 학습 및 추론을 위한 API를 안정화합니다.
Accelerate 1.0.0이란
Accelerate는 단순한 멀티 GPU/TPU 도우미에서 대부분의 Hugging Face 패키지를 지원하는 풀스택 라이브러리로 발전했습니다. 여기에는 transformers, diffusers, peft, trl이 포함됩니다. 버전 1.0.0은 첫 번째 릴리스 후보 시리즈이며, 400 B 파라미터 모델 시대에 대비할 수 있도록 라이브러리를 준비시키는 여러 기능을 통합합니다.
주요 기능은 다음과 같습니다:
- 통합 저수준 훈련 API – 원래 PyTorch 훈련 루프의 99 %를 유지하면서 CPU, GPU, TPU, XPU, NPU, MLU 등 여섯 가지 하드웨어 백엔드를 지원합니다.
- 명령줄 실행기 – 스크립트의 하드웨어 구성을 추상화하는
accelerate launch인터페이스입니다. - 대형 모델 추론 – 제한된 자원에서도 추론 및 파라미터 효율적인 미세 조정을 가능하게 하는
device_map="auto"메커니즘입니다.
이러한 구성 요소들 덕분에 Accelerate는 Hugging Face에서 대규모 모델 개발을 위한 사실상의 기반이 되었습니다.
왜 1.0 마일스톤이 중요한가
1.0 릴리스는 라이브러리가 Accelerator 객체를 중심으로 “기능 완전” 상태에 도달할 때까지 지연되었습니다. 다음과 같은 누락된 요소들이 추가되어 안정적인 1.0 버전을 정당화했습니다:
- FP8 훈련 지원 – MS‑AMP와
TransformersEngine모두와의 통합 (레포지토리의 FP8 벤치마크 디렉터리를 참고하세요). - DeepSpeed 멀티 모델 오케스트레이션 – 여러 모델을 동시에 훈련하는 실험적 지원.
- torch.compile 호환성 – 대형 모델 추론 API에 대해 활성화됨 (
torch>=2.5필요). - torch.distributed.pipelining – 대안적인 분산 추론 전략으로 제공.
- torchdata.StatefulDataLoader – 선택적인 데이터 로딩 메커니즘으로 제공.
이러한 추가 기능으로 Accelerate는 공개 API를 깨뜨리지 않으면서 새로운 하드웨어 및 소프트웨어 트렌드를 수용할 수 있게 되었습니다.
Accelerate의 향후 방향
Accelerate 1.0은 다가오는 PyTorch 혁신을 빠르게 통합하기 위한 플랫폼으로 자리 잡았습니다. 팀은 여러 진화 영역을 예상합니다:
- DeepSpeed 멀티 모델 API – 임의의 모델 컬렉션을 감싸는 작업을 단순화하기 위해 상당한 API 재설계가 필요할 수 있습니다.
- 네이티브 FP8, 새로운 샤딩, 그리고 FSDPv2 –
torchao와torchtitan이 성숙함에 따라 Accelerate는 내부 구조를 조정해 이러한 기능을 제공하면서 사용자 수준 경험을 안정적으로 유지할 것입니다. - FP8 변형 벤치마크 스위트 – Accelerate는 FP8 구현(
transformer_engine,MS‑AMP,nanotron등)과 기본 BF16 간의 즉시 사용 가능한 성능 비교를 제공하는 것을 목표로 합니다.
궁극적인 목표는 연구자들이 최첨단 분산 훈련 기법을 실험하는 장벽을 낮추고, 빠르게 변화하는 PyTorch 생태계에 발맞추는 것입니다.
Accelerate 1.0.0 RC 사용 방법
릴리스 후보는 pip와 Docker를 통해 배포됩니다. 사전 릴리스 패키지는 다음과 같이 설치합니다:
pip install --pre accelerate
또는 Docker 이미지를 가져옵니다:
docker pull huggingface/accelerate:gpu-release-1.0.0rc1
사용 가능한 태그는 다음과 같습니다:
gpu-release-1.0.0rc1cpu-release-1.0.0rc1gpu-fp8-transformerengine-release-1.0.0rc1gpu-deepspeed-release-1.0.0rc1
이 이미지들은 해당 옵션 의존성(FP8, DeepSpeed 등)을 포함합니다.
마이그레이션 지원 – 파괴적 변경 및 폐기
Accelerate 1.0은 코드 업데이트가 필요한 여러 폐기 사항을 도입합니다:
- 데이터 로더 구성 –
dispatch_batches,split_batches,even_batches,use_seedable_sampler인자는 이제accelerate.utils.DataLoaderConfiguration을 통해 제공되어Accelerator(dataloader_config=DataLoaderConfiguration(...))형태로Accelerator에 전달되어야 합니다. - 혼합 정밀도 플래그 –
Accelerator().use_fp16및AcceleratorState().use_fp16이 제거되었습니다; 대신accelerator.mixed_precision == "fp16"을 사용하세요. - Autocast API –
cache_enabled인자는 더 이상 허용되지 않습니다.Accelerator(kwargs_handlers=[AutocastKwargs(... )])를 통해AutocastKwargs(cache_enabled=True)인스턴스를 제공하세요. - TPU 감지 –
accelerate.utils.is_tpu_available를accelerate.utils.is_torch_xla_available로 교체합니다. - 체크포인트 샤딩 –
accelerate.utils.modeling.shard_checkpoint를huggingface_hub라이브러리의split_torch_state_dict_into_shards로 교체합니다. - tqdm 래퍼 – 첫 번째 위치 인자(불리언)가 제거되었습니다; 대신 명명된 인자
main_process_only를 사용하세요. - Rich 트레이스백 제어 – 환경 변수
ACCELERATE_DISABLE_RICH는 더 이상 사용되지 않으며,ACCELERATE_ENABLE_RICH=1로 Rich 트레이스백을 활성화합니다. - FSDP 역방향 프리패치 – 설정
fsdp_backward_prefetch_policy가fsdp_backward_prefetch로 이름이 변경되었습니다.
문서에는 각 변경 사항에 대한 마이그레이션 가이드와 예제가 제공됩니다.
마무리 생각
Accelerate는 소규모 유틸리티에서 Hugging Face 생태계의 핵심 요소로 성장했으며, 총 1억 건 이상의 다운로드와 일일 약 30만 건의 다운로드를 기록했습니다. 1.0.0 릴리스 후보는 커뮤니티가 새로운 기능을 테스트하고 최종 출시 전에 마이그레이션할 수 있는 기회를 제공합니다. 사용자는 업데이트를 위해 GitHub와 Hugging Face 소셜을 팔로우하도록 권장됩니다.
참고 자료
- Accelerate GitHub 저장소: https://github.com/huggingface/accelerate
- FP8 벤치마크 디렉터리: https://github.com/huggingface/accelerate/tree/main/benchmarks/fp8
- DeepSpeed 멀티 모델 가이드: https://huggingface.co/docs/accelerate/usage_guides/deepspeed_multiple_model
- 분산 추론 파이프라인 가이드: https://huggingface.co/docs/accelerate/main/en/usage_guides/distributed_inference#memory-efficient-pipeline-parallelism-experimental
Sources
- OriginalAccelerate 1.0.0