Skip to content

Releases: huggingface/accelerate

v0.19.0: IPEX Support, Foundations for Transformers Integration, FP8 for Ada Lovelace GPUs, and Squashed Bugs

08 May 12:38
baebae3
Compare
Choose a tag to compare

What's New

  • Support for Intel IPEX support has been added, check out the how-to guide now!
  • Various modifications have been added to begin work on having 🤗 Accelerate be the foundation for the Trainer, keep an eye on the repos to see how our progress is coming along!
  • FP8 training is now supported on Ada Lovelance GPUs
  • The wandb integration now supports logging of images and tables through tracker.log_images and tracker.log_tables respectively
  • Many, many squashed bugs! (see the full detailed report for just what they were)
  • 17 new contributors to the framework, congratulations to all who took their first step! 🚀

What's Changed

New Contributors

Full Changelog: v0.18.0...v0.19.0

v0.18.0: GradientState enhancements and Big Model Inference Fixes

24 Mar 14:52
ecd1288
Compare
Choose a tag to compare

What's Changed

  • A new GradientAccumulationPlugin has been added to handle more configurations with the GradientState. Specifically you can optionally disable having Accelerate automatically adjust the length of the scheduler relative to gradient accumulation steps through it. Otherwise Accelerate will now automatically handle ensuring that the schedulers built for non-gradient accumulation will work during gradient accumulation
  • Some fixes related to the launch configuration and TPU launches were adjusted, and the dynamo_backend warning has been silenced.
  • Big model inference saw a number of fixes related to linear layers, drop_last on linear layers, tied weight loading, and handling of multiple tied parameters
  • A new integration example with RunhouseML has been added, read more here: https://github.com/huggingface/accelerate/tree/main/examples#simple-multi-gpu-hardware-launcher

Breaking Changes

  • find_tied_parameters now deals with groups of tied parameters (instead of only pairs of them). As a result it now returns a list of list of strings instead of a dictionary.

What's New?

New Contributors

Full Changelog: v0.17.1...v0.18.0

v0.17.1: Patch release

13 Mar 21:02
c266cf0
Compare
Choose a tag to compare

v0.17.0: PyTorch 2.0 support, Process Control Enhancements, TPU pod support and FP8 mixed precision training

09 Mar 18:22
1a63f7d
Compare
Choose a tag to compare

PyTorch 2.0 support

This release fully supports the upcoming PyTorch 2.0 release. You can choose to use torch.compile or not and then customize the options in accelerate.config or via a TorchDynamoPlugin.

Process Control Enhancements

This release adds a new PartialState, which contains most of the capabilities of the AcceleratorState however it is designed to be used by the user to assist in any process control mechanisms around it. With this, users also now do not need to have if accelerator.state.is_main_process when utilizing classes such as the Tracking API, as these now will automatically use only the main process for their work by default.

  • Refactor process executors to be in AcceleratorState by @muellerzr in #1039

TPU Pod Support (Experimental)

Launching from TPU pods is now supported, please see this issue for more information

FP8 mixed precision training (Experimental)

This release adds experimental support for FP8 mixed precision training, which requires the transformer-engine library as well as a Hopper GPU (or higher).

What's new?

Significant community contributions

The following contributors have made significant changes to the library over the last release:

  • @Yard1
    • Refactor launch for greater extensibility (#1123)

v0.16.0: Improved and Interactive Documentation, DataLoader Improvements

31 Jan 19:53
36beea9
Compare
Choose a tag to compare

New code exploration doc tool

A new interactive tool has been introduced to the documentation to help users quickly learn how to utilize features of the framework before providing more details on them as shown below:
image

Not only does it provide a code diff, but it also includes an explanation and links to more resources the user should check out to learn more:

image

Try it out today in the docs

Skip batches in dataloaders

When resuming training, you can more efficiently skip batches in your dataloader with the new skip_first_batches function (also available as a method on your Accelerator).

DeepSpeed integration enhancements:

A new ZeRO-3 init context manager is added to provide granular control to users in situations involving nested/multiple models. Refactoring of DeepSpeed Config file support to remove ambiguity between it and Accelerate config.

Adding support for auto entries in the DeeSpeed config file to be filled via the accelerate launch command. Try it out today by referring to the section Things to note when using DeepSpeed Config File

  • ds zero-3 init context manager by @pacman100 in #932
  • raise error for duplicate accelerate config values when using deepspeed_config_file by @pacman100 in #941

What's new?

v0.15.0: Pytorch 2.0 stack support

02 Dec 16:03
cf22df9
Compare
Choose a tag to compare

PyTorch 2.0 stack support

We are very excited by the newly announced PyTorch 2.0 stack and you can try it using Accelerate on any model by using the dynamo_backend argument of the Accelerator, or when filling your config with accelerate config.

Note that to get the best performance, we recommend:

  • using an Ampere GPU (or more recent)
  • sticking to fixed shaped for now

New CLI commands

  • Added two new commands, accelerate config update and accelerate config default. The first will update a config file to have the latest keys added from latter releases of Accelerate, and the second will create a default configuration file automatically mimicking write_default_config() introduced in #851 and #853 by @muellerzr
  • Also introduced a filterable help for accelerate launch which will show options relevant to the choices shown, such as accelerate launch --multi_gpu will show launch parameters relevant to multi-gpu training.

What's new?

Significant community contributions

The following contributors have made significant changes to the library over the last release:

v0.14.0: Megatron-LM integration and support for PyTorch 1.13

08 Nov 19:36
4e2c511
Compare
Choose a tag to compare

Megatron LM integration

Accelerate now supports Megatron-LM for the three model classes (BERT, GPT-2 and T5). You can learn more in the documentation.

  • Megatron-LM integration by @pacman100 in #667
  • ensure megatron is 2.2.0+ by @jeffra in #755
  • updating docs to use fork of megatron-lm and minor example/docs fix by @pacman100 in #766
  • adding support to return logits and generate for Megatron-LM GPT models by @pacman100 in #819

PyTorch 1.13 support

Fixes a bug that returned SIGKILL errors on Windows.

Kaggle support with the notebook_launcher

With Kaggle now giving instances with two T4 GPUs, Accelerate can leverage this to do multi-gpu training from the notebook

What's new?

Significant community contributions

The following contributors have made significant changes to the library over the last release:

v0.13.2 Patch release

17 Oct 15:13
8d0a3ee
Compare
Choose a tag to compare

v0.13.1 Patch release

07 Oct 16:33
0f3828a
Compare
Choose a tag to compare

v0.13.0 Launcher update (multinode and GPU selection) and mutliple bug fixes

05 Oct 18:47
a54cd0a
Compare
Choose a tag to compare

Better multinode support in the launcher

The accelerate command launch did not work well for distributed training using several machines. This is fixed in this version.

Launch training on specific GPUs only

Instead of prefixing your launch command with CUDA_VISIBLE_DEVICES=xxx you can now specify the GPUs you want to use in your Accelerate config.

Better tracebacks and rich support

The tracebacks are now cleaned up to avoid printing several times the same error, and rich is integrated as an optional dependency.

What's new?