Accelerate 1.0.0 リリース候補のお知らせ

TL;DR

Accelerate 1.0.0 のリリース候補が利用可能になり、FP8 サポート、DeepSpeed マルチモデルオーケストレーション、torch.compile 統合、そして新しいデータローダーとパイプラインプリミティブを提供しながら、大規模トレーニングと推論のための API を安定化させました。


Accelerate 1.0.0 とは

Accelerate は、シンプルなマルチ GPU/TPU ヘルパーから、transformersdiffuserspefttrl などの 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 FSDPv2torchaotorchtitan が成熟するにつれ、Accelerate は内部を調整してこれらの機能を提供し、ユーザーレベルの体験を安定させます。
  • Benchmarking suite for FP8 variants – Accelerate は、FP8 実装(transformer_engineMS‑AMPnanotron など)とベースラインの 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.0rc1
  • cpu-release-1.0.0rc1
  • gpu-fp8-transformerengine-release-1.0.0rc1
  • gpu-deepspeed-release-1.0.0rc1

これらのイメージには、対応するオプション依存関係(FP8、DeepSpeed など)が含まれています。

移行支援 – 破壊的変更と非推奨事項

Accelerate 1.0 では、コードの更新が必要な複数の非推奨事項が導入されました:

  • Data‑loader configuration – 引数 dispatch_batchessplit_batcheseven_batchesuse_seedable_sampler は、accelerate.utils.DataLoaderConfiguration を介して提供し、AcceleratorAccelerator(dataloader_config=DataLoaderConfiguration(...)) として渡す必要があります。
  • Mixed‑precision flagsAccelerator().use_fp16AcceleratorState().use_fp16 は削除されました。代わりに accelerator.mixed_precision == "fp16" を使用してください。
  • Autocast APIcache_enabled 引数は受け付けられなくなりました。Accelerator(kwargs_handlers=[AutocastKwargs(... )]) を通じて AutocastKwargs(cache_enabled=True) インスタンスを提供してください。
  • TPU detectionaccelerate.utils.is_tpu_availableaccelerate.utils.is_torch_xla_available に置き換えてください。
  • Checkpoint shardingaccelerate.utils.modeling.shard_checkpointhuggingface_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_policyfsdp_backward_prefetch に名称が変更されました。

ドキュメントには、各変更に対する移行ガイドと例が提供されています。

終わりに

Accelerate は控えめなユーティリティから Hugging Face エコシステムの基盤へと成長し、総ダウンロード数は 1 億件を超え、日間ダウンロードは約 30 万件に達しています。1.0.0 のリリース候補は、コミュニティに新機能をテストし、最終リリース前に移行する機会を提供します。ユーザーは GitHub と Hugging Face のソーシャルメディアでプロジェクトをフォローし、最新情報を入手してください。

参考文献

Sources