Skip to content

Share one implementation between adam and adamw - #86

Merged
jessegrabowski merged 2 commits into
pymc-devs:mainfrom
jessegrabowski:share-adam-implementation
Aug 12, 2026
Merged

Share one implementation between adam and adamw#86
jessegrabowski merged 2 commits into
pymc-devs:mainfrom
jessegrabowski:share-adam-implementation

Conversation

@jessegrabowski

@jessegrabowski jessegrabowski commented Aug 12, 2026

Copy link
Copy Markdown
Member

The step counter, moment buffers, bias corrections and amsgrad handling were duplicated verbatim between the two rules, and #73 was a bug caused by exactly that pair drifting apart. Now one private helper, with the state namespace as an argument so the two keep separate buffers.

The two arithmetic groupings stay as separate branches rather than folded into one. They agree in exact arithmetic and differ in the last bits — folding them moves about a third of float32 adam results — so this is bit-exact against the old code for adam, adamw, either with amsgrad, and adamw with a mask.

The step counter, moment buffers, bias corrections and amsgrad handling were duplicated verbatim; pymc-devs#73 was a bug caused by exactly that pair drifting. The two arithmetic groupings are kept as separate branches rather than folded, since folding moves a third of float32 adam results in the last bits.
Seven positional arguments, three of them adjacent floats, so transposing beta1 and beta2 at a call site would have been silent.
@codecov-commenter

codecov-commenter commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.46%. Comparing base (5e64a44) to head (415bd08).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #86      +/-   ##
==========================================
- Coverage   95.48%   95.46%   -0.03%     
==========================================
  Files          45       45              
  Lines        1818     1807      -11     
==========================================
- Hits         1736     1725      -11     
  Misses         82       82              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jessegrabowski
jessegrabowski merged commit 5860ec9 into pymc-devs:main Aug 12, 2026
7 checks passed
@jessegrabowski
jessegrabowski deleted the share-adam-implementation branch August 12, 2026 01:18
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