165 Commits
Author SHA1 Message Date
Marc Sun f13f7c13b6 v1.16.0dev 2026-09-09 15:05:32 +02:00
AmineDiroandMarc Sun b2ac5095f0 Fix FSDP2/ PEFT/FULL_STATE_DICT dropping every rank's adapter shard except rank 0 (#4206)
* fix lora full state checkpointing in FSDP2

* Add CPU regression test for FSDP2 adapter-only state dict

* Update src/accelerate/utils/fsdp_utils.py

* Update src/accelerate/utils/fsdp_utils.py

* Update tests/fsdp/peft_checkpointing.py

---------

Co-authored-by: Marc Sun <[email protected]>
2026-09-08 15:53:10 +02:00
Marc Sun 67bf4d644f v1.15.0dev 2026-06-11 15:46:37 +02:00
Marc Sun a5cb37c178 Fix all tests (#4072)
* update docker

* fix

* other fixes

* fix

* remove

* fix

* not needed anymore

* Rework nightly CI for speed and drop comet-ml test dependency

The nightly run took 1h30, dominated by run_deepspeed_tests_multi_gpu (88min)
which ran the whole tests/deepspeed suite twice: once via `make test_deepspeed`
and again via `make test_integrations` (which included tests/deepspeed).

- nightly.yml: collapse the four copy-pasted jobs into a single matrix job;
  each suite now runs exactly once per GPU shape (deepspeed jobs only run
  test_deepspeed, fsdp/tp/examples are covered by the core-image entries)
- Makefile: `test` now runs all suites even if one fails (full nightly signal)
  and fails at the end; remove `test_integrations` (orphaned by the above) and
  `extra_quality_checks` (references utils/check_*.py scripts that never
  existed in this repo)
- setup.py: remove comet-ml from the test_trackers extra; its import-time
  auto-patching breaks the example tests, which is why every CI job had to
  `pip uninstall comet_ml` before running them. The CometMLTracker itself is
  unaffected and its tests skip via require_comet_ml.
- test.yml / run_merge_tests.yml / self_hosted_integration_tests.yml: drop the
  now-unneeded comet_ml uninstall steps

* TEMP: trigger image build + chained nightly tests on this branch for validation

Rebuilds the docker images on pushes touching docker/** or setup.py (including
this branch, temporarily) and runs the nightly test suite on the fresh images.
Before merging, scope the push trigger back to main only.

* Fix remaining multi-GPU nightly failures

- test_peak_memory_usage.py: last remaining bare "glue" dataset id; new
  huggingface_hub rejects un-namespaced repo ids (HfUriError), use nyu-mll/glue
  like every other test script
- test_sync.py: raise rtol to 1e-2 in the grad-accumulation sync check; the
  observed reduction-order drift reaches ~5e-3 by iteration 4 on 2 GPUs, above
  the previous 2e-3

* Document comet-ml removal in test_trackers extra

* TEMP: run nightly tests on pushes to this branch (validation only, remove before merge)

* Pin debug_launcher gloo mesh to loopback

test_cpu.py::MultiCPUTester::test_ops flakes on hosted runners with
"Gloo connectFullMesh failed ... Connection closed by peer": gloo resolves the
machine hostname to pick the interface for its TCP mesh, which on CI runners
points at a transient internal IP. debug_launcher only ever spawns processes on
the local machine, so force the mesh over loopback via GLOO_SOCKET_IFNAME=lo.

* Fix grad-sync test at the source: split tolerance by assertion intent

check_model_parameters used one tolerance for two opposite checks: synced
grads must match (needs loose compare, reduction roundoff reaches ~5e-3) and
unsynced grads must differ (needs strict compare, the real cross-rank gap can
be as small as ~1e-2). No single rtol fits between those, so the failure just
moved between the two assertions depending on the run. The loosened rtol now
only applies to the must-match check; the must-differ check uses strict
allclose defaults.

* Remove temporary CI-validation triggers

Reverts the branch-scoped push triggers and the docker-build -> nightly chain
that were only there to validate the CI rework on this branch:
- nightly.yml: back to workflow_dispatch + schedule only
- build_docker_images.yml: restored to its main state

* Trim verbose comments

* Remove comet-ml removal note from setup.py
2026-06-10 23:38:57 +02:00
Marc Sun 74427420dc v1.14.0dev 2026-03-04 20:35:01 +01:00
Tom Aarsen 0cca1ddbe8 Update PR template, setup.py author email (#3851) 2025-11-25 12:15:55 +01:00
Marc Sun 139d14b1a1 v1.13.0dev 2025-11-21 12:29:15 +01:00
Marc Sun 0a0c9895bd v1.12.0dev 2025-10-20 16:43:43 +02:00
Marc Sun f0313a64a2 Fix tracking swanlab (#3810)
* py310 and some changes

* fix

* Revert "py310 and some changes"

This reverts commit 0434d29292.

* fix
2025-10-10 18:42:52 +02:00
Marc Sun df0c1870d9 Bump to python3.10 + update linter (#3809)
* py310 and some changes

* fix

* better
2025-10-10 18:22:51 +02:00
Marc Sun 6997855ace rm mlflow (#3783) 2025-09-19 11:32:37 +02:00
Marc Sun ff872f5f71 bump to 1.11.0dev0 2025-08-07 12:58:08 +02:00
Marc Sun 7ecc2d7f39 bump to v1.10.0-release 2025-07-16 16:26:03 +00:00
e2cc537db8 trackio (#3669)
* trackio

* Apply suggestions from code review

Co-authored-by: Steven Liu <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>

* seven -> eight

* Add trackio as a real tracker instead

* Sort

* Style

* Style

* Remove step

* Disable trackio on Python < 3.10

* Update src/accelerate/tracking.py

Co-authored-by: Steven Liu <[email protected]>

* More style

---------

Co-authored-by: Steven Liu <[email protected]>
Co-authored-by: Abubakar Abid <[email protected]>
2025-07-15 17:17:49 +02:00
Marc Sun a16d2bb3c1 bump to v1.9.0dev 2025-06-19 15:13:41 +02:00
Shaohon Chen 6597dae780 Integrate SwanLab for offline/online experiment tracking for Accelerate (#3605)
* add support for SwanLabTracker and update related documentation

* add emoji in FRAMWORK

* apply the style corrections and quality control

* add support for SwanLabTracker in tests

* fix bug in test_tracking
2025-06-18 15:42:29 +02:00
Marc Sun 417bc52965 bump to v1.8.0dev 2025-05-15 12:02:44 +02:00
583b26db3c Add FP8 runners + tweak building FP8 image (#3493)
* Initial test

* Try on push

* Only wf dispatch now

* keep trying

* Try again

* Try again

* source activate?

* Force bash

* Source activate accelerate to make it get the env propelry

* try using nightly docker

* Try this?

* Try this?

* Try this, proper output

* Try this, proper output

* Try via full conda activate(?)

* rm conda

* te fp8 tests

* add ao

* ao in setup too

* actually include fp8 deps

* FP8 docker image, use newer version

* Update docker image to take in input

* Test

* prior month

* igpu?

* Use only last 2 digits of year

* Build rest

* Apply style fixes

---------

Co-authored-by: [[ -z $EMAIL ]] && read -e -p "Enter your email (for git configuration): " EMAIL <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-15 11:39:43 +02:00
Marc Sun 9642a1ac81 bump to v1.7.0dev 2025-04-01 13:55:11 +02:00
cyyever 3169339f5b Bump ruff to 0.11.2 (#3471)
* ruff format

* Bump ruff to 0.11.2
2025-04-01 11:57:06 +02:00
cyyever a0edc8dcf2 Apply ruff py39 fixes (#3461)
* Apply ruff py39 fixes

* Ruff format
2025-03-31 19:10:08 +02:00
Luiz F. G. dos Santos f648feba97 Add log_artifact, log_artifacts and log_figure capabilities to the MLflowTracker. (#3419)
* Added artifacts and figure tracking at MLFlow tracker

* Added `log_artifact` to the MLFlowTracker

* Remove changes

* Added artifacts, artifacts and figure tracking at MLFlow tracker

* Improved the docstring

* added require_mlflow function at test_utils

* add test for MLflowTracker

* Bit of litting

* Refactor to a more robust test

* Revised the test asserts to something more robust.

* Removed incorrect import and some litting.

* removed commented code

* initiate tracker using Accelerator

* Added mlflow and matplotlib to setup.py. Guarded and decoredated the functions that required them.

* Guarded mlflow import

* added matplotlib required warning.

* ran style and quality
2025-03-12 18:11:29 +01:00
Zach Mueller 14fc61eeac Bump to 1.6.0.dev0 2025-03-12 10:13:18 -04:00
Ilyas MoutawwakilandZach Mueller d9e6af8773 HPU support (#3378)
* init

* style

* is_hpu_available

* fix

* import habana_frameworks.torch.distributed.hccl

* style

* test

* initialize dist proc group

* revert

* set backend to hccl only if hccl initialization sets a local rank

* force backend hccl and multi_hpu type when sure of distributed launch

* style

* pass accelerator tests

* pas big modeling tests with bigger atol/rtol for accelerators

* fix hpu device count and skip tests requiring hpu:x

* hpu autocast

* hpu rng_state

* hpu launch

* hpu special device placement

* hpu launch

* rng state

* distributed data loop tests

* enforce non contiguity after device memory allocation

* pass fsdp tests

* enforce pt_hpu_lazy_mode=0 when fsdp testing

* pass cli tests

* pass and document grad sync tests

* pass kwargs handler and autocast tests

* memory utils

* found source of int64 errors

* skip some modeling utils tests

* enable int64

* skip optimizer tests

* pass checkpointing tests

* pass accelerator tests with safetensors main

* more hpu stuff

* style

* remove PT_HPU_LAZY_MODE and PT_ENABLE_INT64_SUPPORT as they should be in the testing environment

* start testing on gaudi2

* support fp16 on gaudi2

* add testing order

* custom hpu fsdp env dict

* fix torch trace malloc

* test ddp half precision comm hooks

* fix

* fix

* remove lower bound for hpu

* use 0.72 as lower bound

* lower lower bound

* order deepspeed tests

* fix

* deepspeed_use_hpu

* assert non lazy mode with offloaded optimizer

* make patching torch with habana frameworks the default

* less of require_non_hpu

* skip test_multi_device_merge_fsdp_weights for now as it halts

* skip another flaky test

* format

* use habana_visible_modules

* patch torch hpu device count

* avoid setting HABANA_VISIBLE_MODULES

* don't play with habana visible devices/modules

* only with hpu

* fixes and skips

* skip

* fix device ids and add some todos

* skip offloading with generate()

* fix

* reduced atol/rtol for hpu

* fix

* tag deepspeed tests that should run first

* enable a test path that was skipped

* revert a test that was customized for gaudi1

* some patching to enable HABANA_VISIBLE_MODULES

* fix zero3 test

* misc

* test DTensor TP

* remove gaudi1

* test

* style

* comment

* pass pad_across_processes

* require_fp16

* pass memory utils test

* test_ddp_comm_hook

* skip half precision comm hooks on hpu

* fix

* is_fp16_available

* fp16

* tp as part of integration tests

* fix

* write_basic_config

* safetensors

* local sgd and masked_fill_fwd_i64

* fix num_processes in test_load_states_by_steps

* fp8 support

* test

* fix

* add a workflow

* Update src/accelerate/accelerator.py

* review comments

* ci

* style

* comments

* test

* habana_frameworks.torch

* patch device count

* fix

* fix

* require_fp8

* fix

* fix

* gaudi 1

* remove unnecessary

* fixed maskd fill error in transformers

* style

* balanced_memory pass on hpu

* remove for now

* run first

* Apply suggestions from code review

* style after merge

* Update src/accelerate/accelerator.py

Co-authored-by: Zach Mueller <[email protected]>

* Update src/accelerate/utils/transformer_engine.py

Co-authored-by: Zach Mueller <[email protected]>

* empty cache review comments

* test_scirpt.py error messages

* AccelerateTestCase for accelerator state cleanup

* test

* add gaudi1 workflow

* fp8 avilability

* fix

* reduce batch size

* concurrency

* check cuda as well

* nits and comments

* mark fsdp tests that require_fp16

* style

* mark deepspeed fp16 tests

* update image

* fix

* updated

* better msgs

* skip pippy

* test

* test on 2 device

* support up to 1% relative error in test_accelerate

* skip hpu fp16

* allow for 1 byte differene

* revert torch_device change

* style

* skip memory release since it's flaky

* add accelerator state cleanup to fixture

* fix

* atol

* fix

* more rtol

* equal grad test

* revert

* pass pippy on gaudi2 and skip on gaudi1

* enable sd 1.5 test with require fp16

* added warning on memory release

* don't log warning in memory release as it requires PartialState to be initialized

* Apply suggestions from code review

---------

Co-authored-by: Zach Mueller <[email protected]>
2025-03-11 11:16:57 -04:00
Zach Mueller 65356780d4 [Dev] Update release directions (#3352)
* Update release directions

* Update directions and makefile to account for testpypi fun
2025-01-21 08:59:43 -05:00
[[ -z $EMAIL ]] && read -e -p "Enter your email (for git configuration): " EMAIL 78b8126bff v1.4.0.dev0 2025-01-17 10:36:00 -05:00
Zach Mueller b13aadcb67 Bye bye torch <2 (#3331)
* Bye bye torch <1

* Add 2.6.0 dl args

* Rm require fsdp

* Adjust imports + 2.0 specific modeling code

* Bring back is_bf16
2025-01-09 12:11:08 -05:00
[[ -z $EMAIL ]] && read -e -p "Enter your email (for git configuration): " EMAIL 5f96369161 v1.2.0.dev 2024-11-20 19:24:51 -05:00
Zach Mueller 85f35647db 🚨 🚨 🚨 Goodbye Python 3.8! 🚨 🚨 🚨 (#3194) 2024-10-24 10:16:47 -04:00
[[ -z $EMAIL ]] && read -e -p "Enter your email (for git configuration): " EMAIL 52581c3f01 Change version 2024-10-09 10:50:12 -04:00
Benjamin Bossan 3fd02e60dc MAINT: Upgrade ruff to v0.6.4 (#3095)
* MNT Upgrade ruff to 0.6.4

Currently used version, 0.2.1, is quite old at this point.

Not a lot needed to be changed:

- Change ruff version in setup.py
- Remove deprecated ignore-init-module-imports option for ruff
- Type comparison should use is and not ==
- Use f-string instead of % formatting
- Some line wrapping and empty lines

* Oops
2024-09-10 10:43:37 -04:00
[[ -z $EMAIL ]] && read -e -p "Enter your email (for git configuration): " EMAIL b5235f21d8 0.35.0.dev 2024-09-02 18:18:42 -04:00
ad3f574a3b Add early support for torchdata.stateful_dataloader.StatefulDataLoader within the Accelerator (#2895)
* temporary commit

* checkout?

* dataloader wrapper

* tmp

* weird failing test

* trying multiple inheritance

* DataLoaderAdapter

* make style

* Some dark magic dynamic reflection (for backwards compat)

* typo

* some tests

* more mixin stuff

* maybe found broken test?

* this is a very invasive feature

* i think the feature is done?

* add xpu support (#2864)

* better tests

* discovered a bug

* maybe fixed bug?

* make style

* hopefully this is PR ready

* properly skip tests

* parameterize

* temporary commit

* checkout?

* dataloader wrapper

* tmp

* weird failing test

* trying multiple inheritance

* DataLoaderAdapter

* make style

* Some dark magic dynamic reflection (for backwards compat)

* typo

* some tests

* more mixin stuff

* maybe found broken test?

* this is a very invasive feature

* i think the feature is done?

* better tests

* discovered a bug

* maybe fixed bug?

* make style

* hopefully this is PR ready

* properly skip tests

* parameterize

* Update src/accelerate/utils/dataclasses.py

Co-authored-by: Zach Mueller <[email protected]>

* Update src/accelerate/data_loader.py

Co-authored-by: Zach Mueller <[email protected]>

* merge conflicts

* move imports

* make style

* merges are breaking tests

* fix test name

* Require safetensors>=0.4.3

* undo last commit

* minor style

* address pr comments

* Torchdata version 0.8.0 is stable now

* added docs and require torchdata>=0.8.0 for testing

* test base_dataloader attr doesn't cause infinite recursion

* address pr

* replace super().__iter__ with self.base_dataloader.__iter__

---------

Co-authored-by: Fanli Lin <[email protected]>
Co-authored-by: Zach Mueller <[email protected]>
2024-08-22 08:43:45 -04:00
Zach Mueller 52fae0960c Add end_training/destroy_pg to everything and unpin numpy (#3030)
* Add end_training/destroy_pg to everything

* Carry over to AcceleratorState

* If forked, ignore

* More numpy fun

* Skip only init
2024-08-20 10:40:12 -04:00
Marc Sun cd5698bb32 update version to 0.34.dev0 (#3007) 2024-08-12 12:13:37 -04:00
Zach Mueller dc3b5ad82e Fix deepspeed tests (#3003)
* Unpin deepspeed

* Include proper branch for docker image

* Properly working

* Revert all other changes
2024-08-09 15:35:25 -04:00
byi8220 32f368ec3f Require safetensors>=0.4.3 (#2957) 2024-07-29 07:35:34 -04:00
nullquant 3ebbe573ad Add huggingface_hub version to setup.py (#2932) 2024-07-15 10:11:41 -04:00
[[ -z $EMAIL ]] && read -e -p "Enter your email (for git configuration): " EMAIL 947f64ee62 Version update 2024-07-03 13:27:34 -04:00
Zach Mueller 1f7a79b428 Potentially fix tests (#2862)
* Potentially fix tests

* Try again with numpy sub 2
2024-06-18 11:38:30 +02:00
Zach Mueller 7141881b1f Push new release version 2024-06-07 10:05:51 -04:00
Zach Mueller 4ba436eccc Introduce shard-merging util for FSDP (#2772)
* Initial commit

* Now to test

* Store false

* Slight tweaks

* Fix naming

* Got it all working with tests

* Use not for safetensors arg

* rm change

* Add docs

* Adjust based on Marc's feedback

* Specify just weights

* Update tests to include CLI and swap namings

* Fin

* Rm unused

* Rm again
2024-05-16 13:49:50 -04:00
Zach Mueller 5b3a7f3892 Update setup.py + test falures found during release 2024-05-03 10:40:25 -04:00
Zach Mueller c7e5e41b8c Segment out a deepspeed docker image (#2707)
* Segment out a deepspeed docker image

* Update readme

* Keep pinned ds
2024-04-29 11:25:22 -04:00
Zach Mueller 6af157ea93 Add diffusers to req (#2711) 2024-04-25 08:31:54 -04:00
Zach Mueller f478201c28 Pin DS...again.. (#2679) 2024-04-16 12:07:59 -04:00
Zach Mueller 16488be9a4 Update version 2024-04-05 13:11:05 -04:00
Zach Mueller 7531e8c13e Unpin hub (#2625) 2024-04-04 10:33:49 -04:00
Zach Mueller f579d9550d Pin hub for tests (#2608) 2024-04-02 10:58:17 -04:00
Zach Mueller dd62fc90ce Unpin deepspeed (#2570) 2024-03-21 09:42:03 -04:00