{"abstract":"Warmup reaches its base rate before the final warmup step.","category":"Learning rate schedules","checks":7,"contract":"Return base * step / warmup_steps for steps in [0,warmup_steps], then base.","contract_signature":"step, base, warmup_steps","evaluation_group":"lr-schedule-linear-warmup","failed_approach":"Adding one to every warmup index fixes the endpoint direction but makes the initial rate nonzero.","family":"w3-learning-rate-schedules-linear-warmup","id":"FA-99041","implementations":{"attempt":{"sha256":"542afbd8a895f492344191dc3d281d0e8d94415aeb670799308eb921a3f9d1f7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(step, base, warmup_steps):\n    return base if step>=warmup_steps else base*(step+1)/warmup_steps\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('midpoint',solve(N,12,4),12*min(N,4)/4); check('start',solve(0,12,4),0); check('end',solve(4,12,4),12); check('after',solve(5,12,4),12); check('single interval',solve(1,6,1),6); check('fraction',solve(1,10,4),2.5); check('distinct warmup point',solve(2,12,4),6)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"4fadcebdb0db0514d5d1fc0f7a8e696721a103df40c16851d88a3a439ea0d1f4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(step, base, warmup_steps):\n    return base if step>=warmup_steps else base*step/(warmup_steps-1)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('midpoint',solve(N,12,4),12*min(N,4)/4); check('start',solve(0,12,4),0); check('end',solve(4,12,4),12); check('after',solve(5,12,4),12); check('single interval',solve(1,6,1),6); check('fraction',solve(1,10,4),2.5); check('distinct warmup point',solve(2,12,4),6)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"These are toy scalar contracts with integer steps and finite parameters; they do not model framework defaults or optimizer state. 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w3-learning-rate-schedules-linear-warmup","generated_at":"2026-09-30T16:48:19.909891+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic scalar schedule makes step-to-rate mapping explicit for a small training loop.","root_cause":"The denominator is one less than the number of warmup intervals, so the ramp reaches base early.","sha256":"8de772f00f5d13156dc1e3ee32b7a0d8ca2c59005a0355bfbe3ae00b7fa75f8b","title":"Warmup reaches its base rate before the final warmup step · case 01","variant":1,"variant_policy":"The fixture code references N, supplied as 1 through 5. Fixed boundary checks may repeat. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":29.216,"exit_code":1,"observations":[{"actual":6.0,"check":"midpoint","expected":3.0,"passed":false},{"actual":3.0,"check":"start","expected":0,"passed":false},{"actual":12,"check":"end","expected":12,"passed":true},{"actual":12,"check":"after","expected":12,"passed":true},{"actual":6,"check":"single interval","expected":6,"passed":true},{"actual":5.0,"check":"fraction","expected":2.5,"passed":false},{"actual":9.0,"check":"distinct warmup point","expected":6,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"midpoint\", \"actual\": 6.0, \"expected\": 3.0, \"passed\": false}, {\"check\": \"start\", \"actual\": 3.0, \"expected\": 0, \"passed\": false}, {\"check\": \"end\", \"actual\": 12, \"expected\": 12, \"passed\": true}, {\"check\": \"after\", \"actual\": 12, \"expected\": 12, \"passed\": true}, {\"check\": \"single interval\", \"actual\": 6, \"expected\": 6, \"passed\": true}, {\"check\": \"fraction\", \"actual\": 5.0, \"expected\": 2.5, \"passed\": false}, {\"check\": \"distinct warmup point\", \"actual\": 9.0, \"expected\": 6, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":28.883,"exit_code":1,"observations":[{"actual":4.0,"check":"midpoint","expected":3.0,"passed":false},{"actual":0.0,"check":"start","expected":0,"passed":true},{"actual":12,"check":"end","expected":12,"passed":true},{"actual":12,"check":"after","expected":12,"passed":true},{"actual":6,"check":"single interval","expected":6,"passed":true},{"actual":3.3333333333333335,"check":"fraction","expected":2.5,"passed":false},{"actual":8.0,"check":"distinct warmup point","expected":6,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"midpoint\", \"actual\": 4.0, \"expected\": 3.0, \"passed\": false}, {\"check\": \"start\", \"actual\": 0.0, \"expected\": 0, \"passed\": true}, {\"check\": \"end\", \"actual\": 12, \"expected\": 12, \"passed\": true}, {\"check\": \"after\", \"actual\": 12, \"expected\": 12, \"passed\": true}, {\"check\": \"single interval\", \"actual\": 6, \"expected\": 6, \"passed\": true}, {\"check\": \"fraction\", \"actual\": 3.3333333333333335, \"expected\": 2.5, \"passed\": false}, {\"check\": \"distinct warmup point\", \"actual\": 8.0, \"expected\": 6, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}