Accelerate 1.0.0 リリース候補のお知らせ
TL;DR
Accelerate 1.0.0 のリリース候補が利用可能になり、FP8 サポート、DeepSpeed マルチモデルオーケストレーション、torch.compile 統合、そして新しいデータローダーとパイプラインプリミティブを提供しながら、大規模トレーニングと推論のための API を安定化させました。
Accelerate 1.0.0 とは
Accelerate は、シンプルなマルチ GPU/TPU ヘルパーから、transformers、diffusers、peft、trl などの Hugging Face パッケージのほとんどを支えるフルスタックライブラリへと進化しました。バージョン 1.0.0 は最初のリリース候補シリーズであり、400 B パラメータモデルの時代に備えるための機能セットを統合しています。
主な機能は次のとおりです:
- Unified low‑level training API – 6 つのハードウェアバックエンド(CPU、GPU、TPU、XPU、NPU、MLU)をサポートし、元の PyTorch トレーニングループの 99 % を保持します。
- Command‑line launcher – スクリプト用にハードウェア設定を抽象化する
accelerate launchインターフェースです。 - Big‑model inference – 限られたリソース上で推論とパラメータ効率の高いファインチューニングを可能にする
device_map="auto"メカニズムです。
これらのコンポーネントにより、Accelerate は Hugging Face における大規模モデル開発の事実上の基盤となっています。
なぜ 1.0 マイルストーンが重要なのか
1.0 リリースは、ライブラリが Accelerator オブジェクトを中心に「機能完備」状態になるまで遅延されました。安定した 1.0 バージョンとするために、以下の不足していた機能が追加されました:
- FP8 training support – MS‑AMP と
TransformersEngineの両方との統合です(リポジトリ内の FP8 ベンチマークディレクトリを参照)。 - DeepSpeed multi‑model orchestration – 複数モデルを同時にトレーニングする実験的サポートです。
- torch.compile compatibility – 大規模モデル推論 API で有効化されています(
torch>=2.5が必要)。 - torch.distributed.pipelining – 代替の分散推論戦略として提供されます。
- torchdata.StatefulDataLoader – オプションのデータローディング機構として提供されます。
これらの追加により、Accelerate は新興ハードウェアやソフトウェアのトレンドに対応しつつ、公開 API を壊すことなく利用できるようになりました。
Accelerate の今後の方向性
Accelerate 1.0 は、今後の PyTorch イノベーションを迅速に統合するプラットフォームとして位置付けられています。チームは以下のような進化領域を見込んでいます:
- DeepSpeed multi‑model API – 任意のモデルコレクションのラップを簡素化するために、かなりの API 再設計が必要になる可能性があります。
- Native FP8, new sharding, and FSDPv2 –
torchaoとtorchtitanが成熟するにつれ、Accelerate は内部を調整してこれらの機能を提供し、ユーザーレベルの体験を安定させます。 - Benchmarking suite for FP8 variants – 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 では、コードの更新が必要な複数の非推奨事項が導入されました:
- Data‑loader configuration – 引数
dispatch_batches、split_batches、even_batches、use_seedable_samplerは、accelerate.utils.DataLoaderConfigurationを介して提供し、AcceleratorにAccelerator(dataloader_config=DataLoaderConfiguration(...))として渡す必要があります。 - Mixed‑precision flags –
Accelerator().use_fp16とAcceleratorState().use_fp16は削除されました。代わりにaccelerator.mixed_precision == "fp16"を使用してください。 - Autocast API –
cache_enabled引数は受け付けられなくなりました。Accelerator(kwargs_handlers=[AutocastKwargs(... )])を通じてAutocastKwargs(cache_enabled=True)インスタンスを提供してください。 - TPU detection –
accelerate.utils.is_tpu_availableをaccelerate.utils.is_torch_xla_availableに置き換えてください。 - Checkpoint sharding –
accelerate.utils.modeling.shard_checkpointをhuggingface_hubライブラリのsplit_torch_state_dict_into_shardsに置き換えてください。 - tqdm wrapper – 最初の位置引数(ブール値)は削除されました。代わりに名前付き引数
main_process_onlyを使用してください。 - Rich traceback control – 環境変数
ACCELERATE_DISABLE_RICHは廃止されました。リッチトレースバックはACCELERATE_ENABLE_RICH=1で有効化してください。 - FSDP backward prefetch – 設定
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