v1.9.0
Breaking Changes📦 accelerateView on GitHub →
⚠ 1 breaking✨ 5 features🐛 6 fixes🔧 4 symbols
Summary
This release introduces native support for the trackio experiment tracking library and includes significant speedups for model loading, alongside various minor improvements and fixes for FSDP and DeepSpeed configurations.
⚠️ Breaking Changes
- The behavior of `find_executable_batch_size()` has changed: it will no longer halve the batch size after an Out-Of-Memory (OOM) error. Instead, it will multiply the batch size by 0.9 as the default back-off strategy.
Migration Steps
- If you rely on `find_executable_batch_size()` and were expecting the batch size to be halved on OOM, update your expectations as it now uses a 0.9 multiplier.
- To use trackio, initialize the accelerator with `accelerator = Accelerator(log_with="trackio")` and call `accelerator.init_trackers()` with appropriate arguments, including `init_kwargs` if hosting the dashboard on Spaces.
✨ New Features
- Added support for trackio, a lightweight, free experiment tracking library, usable via `log_with="trackio"` in Accelerator initialization.
- Introduced `clear_device` option to disable clearing the cache when setting tensor to device during model loading, speeding up the process.
- Model loading speedup (4-5x in Diffusers) achieved by using `non_blocking` transfers and syncing only before returning control.
- FSDP now supports e5e2 and defaults to hybrid when a launcher is used.
- FP8 can now be used without direct `Accelerator()` configuration.
🐛 Bug Fixes
- Fixed an issue where W&B configuration was not saved in offline mode.
- Prevented `accelerate/data_loader.py` from yielding if the base dataloader is empty.
- Added a warning mechanism for invalid keys.
- Fixed an error when using DDP + Dtensor models.
- Fixed a typo in the fsdp2 example.
- Added a check in `no_sync()` to prevent errors when using deepspeed zero2/3.
🔧 Affected Symbols
Acceleratorfind_executable_batch_size()set_module_tensor_to_deviceno_sync()