FAILURE MAP
← Case archive

FA-98976 / Optimizer update state / Open access

Adam bias correction reuses the previous update exponent · case 01

Adam bias correction reuses the previous update exponent.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The bias correction uses the previous exponent after the guarded first update.

THE FAILURE

The bias correction uses the previous exponent after the guarded first update.

Unsuccessful approach: Correcting the first-moment exponent but advancing the second-moment exponent by one puts the two moments on different scales.

Case contract

For positive integer t and beta values in [0,1), return [m/(1-b1**t),v/(1-b2**t)].

Why this case matters

Optimizer implementations must associate each parameter with its own mathematically specified update state.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(m, v, b1, b2, t):
    old=max(1,t-1)
    return [m/(1-b1**old),v/(1-b2**old)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('first moment step one',solve(2,4,0.5,0.5,1),[4,8])
check('second step',solve(1,3,0.5,0.5,2),[4/3,4])
check('coefficient zero',solve(3,5,0,0,1),[3,5])
check('different betas',solve(2,4,0.5,0.25,1),[4,16/3])
check('step three',solve(7,9,0.5,0.5,3),[8,72/7])
check('equal moment correction',solve(1,1,0.5,0.5,1),[2,2])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
first moment step one[4.0, 8.0][4, 8]Passed
second step[2.0, 6.0][1.3333333333333333, 4]Failed
coefficient zero[3.0, 5.0][3, 5]Passed
different betas[4.0, 5.333333333333333][4, 5.333333333333333]Passed
step three[9.333333333333334, 12.0][8, 10.285714285714286]Failed
equal moment correction[2.0, 2.0][2, 2]Passed

SHA-256 / 55c2264a5aa388411993c49e94b7108973af4d051815ab6d754129f5d23ec9c2

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(m, v, b1, b2, t):
    return [m/(1-b1**t),v/(1-b2**(t+1))]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('first moment step one',solve(2,4,0.5,0.5,1),[4,8])
check('second step',solve(1,3,0.5,0.5,2),[4/3,4])
check('coefficient zero',solve(3,5,0,0,1),[3,5])
check('different betas',solve(2,4,0.5,0.25,1),[4,16/3])
check('step three',solve(7,9,0.5,0.5,3),[8,72/7])
check('equal moment correction',solve(1,1,0.5,0.5,1),[2,2])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
first moment step one[4.0, 5.333333333333333][4, 8]Failed
second step[1.3333333333333333, 3.4285714285714284][1.3333333333333333, 4]Failed
coefficient zero[3.0, 5.0][3, 5]Passed
different betas[4.0, 4.266666666666667][4, 5.333333333333333]Failed
step three[8.0, 9.6][8, 10.285714285714286]Failed
equal moment correction[2.0, 1.3333333333333333][2, 2]Failed

SHA-256 / 700c0488ded44079e1af790a225a7c7dc32fac91ae7cc5f66f50fcd6412ef19a

HELD IN THE MEMBER ARCHIVE

The verified repair and its recorded checks are member-only.

This mechanism has 6 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.

Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.

Member access is invitation-based. Sign in with your invited account to inspect the repair.

Sign in to the archive ↗

Verification & scope

These are deterministic scalar or short-vector toy contracts, not claims about production optimizer APIs or training quality. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-30T16:48:18.999760+00:00.

Case digest / e37eb9467daacf20deeb8642af3333ded2dfffc4e765269a0b91045eda10908f