Hugging Face Accelerate

Training and inference at scale made simple, efficient and adaptable

Hugging Face Accelerate is a library that enables the same PyTorch code to run across any distributed configuration, to simplify model training and inference at scale.

Accelerate includes a W&B Tracker which we show how to use below. You can also read more about Accelerate Trackers in Hugging Face.

Start logging with Accelerate

To get started with Accelerate and W&B you can follow the pseudocode below:

from accelerate import Accelerator

# Tell the Accelerator object to log with wandb
accelerator = Accelerator(log_with="wandb")

# Initialise your wandb run, passing wandb parameters and any config information
accelerator.init_trackers(
    project_name="my_project", 
    config={"dropout": 0.1, "learning_rate": 1e-2}
    init_kwargs={"wandb": {"entity": "my-wandb-team"}}
    )

...

# Log to wandb by calling `accelerator.log`, `step` is optional
accelerator.log({"train_loss": 1.12, "valid_loss": 0.8}, step=global_step)


# Make sure that the wandb tracker finishes correctly
accelerator.end_training()

Explaining more, you need to:

  1. Pass log_with="wandb" when initialising the Accelerator class
  2. Call the init_trackers method and pass it:
  • a project name via project_name
  • any parameters you want to pass to wandb.init() via a nested dict to init_kwargs
  • any other experiment config information you want to log to your wandb run, via config
  1. Use the .log method to log to Weigths & Biases; the step argument is optional
  2. Call .end_training when finished training

Access the W&B tracker

To access the W&B tracker, use the Accelerator.get_tracker() method. Pass in the string corresponding to a tracker’s .name attribute, which returns the tracker on the main process.

wandb_tracker = accelerator.get_tracker("wandb")

From there you can interact with wandb’s run object like normal:

wandb_tracker.log_artifact(some_artifact_to_log)

Accelerate Articles

Below is an Accelerate article you may enjoy

HuggingFace Accelerate Super Charged With W&B
  • In this article, we’ll look at what HuggingFace Accelerate has to offer and how simple it is to perform distributed training and evaluation, while logging results to W&B.

Read the Hugging Face Accelerate Super Charged with W&B report.