RecurLoRA: Quantization-Stable Shallow Recurrence with Low-Rank Corrective Adapters#1181
RecurLoRA: Quantization-Stable Shallow Recurrence with Low-Rank Corrective Adapters#1181Tanush1912 wants to merge 3 commits intoopenai:mainfrom
Conversation
Novel contribution: shallow recurrence (layers 4,5 repeated once each) with rank-2 LoRA corrections on attention projections, RMSNorm before repeat, and learnable alpha scaling. 13 virtual layers from 11 physical layers at 28KB (0.18%) parameter overhead. Hyperparameter changes from PR openai#1179 base (1.1105 BPB): - NEGATIVE_SLOPE: 0.5 -> 0.9 (validated +0.013 BPB in issue openai#140) - QK_GAIN_INIT: 1.5 -> 4.0 (validated +0.006 BPB in PR openai#1176) - TTT_ENABLED: 1 (score-first, legal variant) - WARMDOWN_ITERS: 4000 (extended from 3500) - BIGRAM_DIM: 160 (from 112) Status: WIP - awaiting compute for 3-seed validation runs.
Both A and B matrices now initialized with N(0, 1e-3) instead of one being zero. This ensures all LoRA parameters receive gradients from step 1, critical in a 600s training budget where delayed activation wastes precious optimization steps. Alpha default raised from 0.4 to 0.6 to amplify early correction signal.
- Rename submission folder to RecurLoRA_Slope09_QKGain4_TTT - Rewrite README: lead with architectural contribution, add scaling hypothesis, constraint-aware framing, prior failure table - Fix LoRA gradient flow description (warm-init, not cold-start) - Update submission.json title to match
Community Review — RecurLoRA: Quantization-Stable Shallow Recurrence with Low-Rank Corrective AdaptersBPB: 1.1182 | Compliance: LOOKS CLEAN — score-first-per-chunk TTT (legal #1416/#1423 pattern) What I found in the code (head SHA The TTT path at line 432 implements the score-first-per-chunk pattern: each chunk is scored under Per Issue #402 and Issue #677, TTT is legal when each token is scored before the adapter updates on it, and that's what the code does here — chunk CPU smoke test (CT2038 proteus-engine, 2026-04-11): import OK in 0.18s, dim=512, layers=11, vocab=1024, code=73082 B, SMOKE_TEST_PASS Verdict: LOOKS CLEAN. Recommendation to @cocohearts @valerio-oai @0hq @yuzhougu-oai @notapplica: MERGE pending standard checks (3-seed validation, 16MB artifact cap, 10-min wallclock on 8×H100 SXM). The compliance picture matches the legal reference frontier and no flags were raised by the classification pass. Auto-classification caveat: this review was drafted by the AST-based classifier against a template derived from manually-reviewed cluster PRs (#1420, #1450, #1487, #1541, #1529, #1533, #1518). If I've misread a subtlety in your eval path — e.g., multi-epoch TTT that I mistook for single-pass, or a target-in-key lookup I missed in a helper function — please flag it and I'll re-run the audit manually. Reviewed by @MatoTeziTanka — The Agora. CPU smoke test (CT2038 proteus-engine, 2026-04-11): import OK in 0.18s, dim=512, layers=11, vocab=1024, code=73082 B, SMOKE_TEST_PASS. Classification via deterministic AST-based |
|
@MatoTeziTanka Thanks for the review! Applied for compute credits but haven't heard back yet, so full 3-seed training runs are still blocked. Will update the PR with results as soon as I can get access to 8xH100s. |
Not to be a Debbie downer but there is plenty of evidence you won't get those credits. You can track this in the open issues as well as the agora and read the red banner staring at you in the face. |
Summary
Why this direction
Weight sharing has consistently failed in this competition due to quantization error accumulation across repeated layers (e.g. PR #363: +4.3 BPB at 3 cycles).
However, PR #686 demonstrated that shallow recurrence (<=2 repeats) remains stable under int6 quantization (~1.1182 BPB), suggesting that limited reuse is viable.
RecurLoRA builds on this by introducing per-pass low-rank corrective adapters:
This enables increased effective depth (11 -> 13 layers) without incurring the instability of deep recurrence, effectively reallocating parameters from duplicated layers into increased depth under a fixed 16MB budget.
Status
Implementation complete and validated for:
Full training runs (3 seeds + ablations) queued pending compute.
Test plan