Skip to content

Honor scheduler adjustment during gradient accumulation - #4262

Closed
vineethsaivs wants to merge 1 commit into
huggingface:mainfrom
vineethsaivs:fix-scheduler-adjustment-20260914
Closed

vineethsaivs wants to merge 1 commit into
huggingface:mainfrom
vineethsaivs:fix-scheduler-adjustment-20260914

Conversation

@vineethsaivs

Copy link
Copy Markdown
Contributor

GradientAccumulationPlugin(adjust_scheduler=True) is silently treated as False because default-valued options are omitted from the stored kwargs.

Cause: GradientState uses a False fallback although the plugin declares True.

Fix: Match the declared default, guard schedulers without a step counter, and use OneCycle last_epoch to limit actual scheduler updates. Restoring the default otherwise exposes plateau schedulers without _step_count and stops OneCycle early.

Test: PYTHONPATH=src ACCELERATE_USE_CPU=true python -m pytest tests/test_scheduler.py -k SchedulerAdjustmentTester -q. Both new test methods and four subcases pass. Eight existing single-process scheduler checks pass. Restoring the default alone reproduced a plateau AttributeError and premature OneCycle stopping, both covered by the fix. Changed-file pre-commit passes. CPU only; nine host-conditional tests skip on this Mac.

Match the declared default, guard schedulers without a step counter, and use OneCycle last_epoch to limit actual scheduler updates.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants