Cukinator commited on
Commit
2cb6c4e
Β·
verified Β·
1 Parent(s): 8dcd097

Update README: add V3 Val Loss/PPL results table, bf16+lr_scale finding

Browse files
Files changed (1) hide show
  1. README.md +37 -23
README.md CHANGED
@@ -109,21 +109,29 @@ step checkpoints (sample of English narrative):
109
 
110
  ## Round 3 β€” cold-start rescue (interrupted)
111
 
112
- After the audit, configurations were updated to apply corrections such as **bf16 AMP** (instead of fp16), **`lr_scale=2.0` on BitLinear**, and an increased budget of **150 tok/param**.
113
-
114
- The current trainings were interrupted prematurely due to cloud credit exhaustion (AMD MI300X, 192GB VRAM). None of them generated the final JSON. Extracted from the Hugging Face Hub (`Cukinator/cpu1-ablation-checkpoints-v3`), here are the completion percentages of each run before termination:
115
-
116
- | Run | Architecture | Params | Target Steps | Last Step | Progress |
117
- |-----|-------------|-------:|-------------:|----------:|---------:|
118
- | run_01 | Transformer + BPE (16K vocab) + FP16 | 54.7M | 62,500 | 12,173 | **19.5%** |
119
- | run_02 | Transformer + Byte + LocalByteDecoder | 38.8M | 62,500 | 10,963 | **17.5%** |
120
- | run_04 | MLGRU + Byte + Ternary | 38.9M | 62,500 | 6,074 | **9.7%** |
121
- | run_05 | + FPResidual | 39.0M | 62,500 | 4,390 | **7.0%** |
122
- | run_06 | + Bolmo patch embedding | 39.0M | 62,500 | 4,237 | **6.8%** |
123
- | run_08 | Folded Transformer + Byte + Ternary | 38.9M | 62,500 | 3,858 | **6.2%** |
124
- | run_13 | Small CPU-1 + BPE (4K vocab) | 12.5M | 12,500 | 9,290 | **74.3%** |
125
- | run_14 | Small CPU-1 byte-level (Qwen distillation) | 10.7M | 12,500 | 9,775 | **78.2%** |
126
- | run_15 | Small CPU-1 byte + hidden distillation | 10.7M | 12,500 | 2,350 | **18.8%** |
 
 
 
 
 
 
 
 
127
 
128
  The extremely slow progress (<20% in 1 day for 50M models) was caused by a severe CPU context-switching bottleneck when orchestrating 16 concurrent processes on a single MI300X GPU.
129
 
@@ -141,18 +149,24 @@ at step 10 and at step 1326** (the entire training). The bottleneck is the
141
  cold-start dynamics of straight-through-estimator (STE) ternary
142
  quantisation, not the data budget.
143
 
144
- ### V1 vs V3 Architecture: Isolating the Problem
145
 
146
- When analyzing the ablation results, the classic V1 Transformer architecture in FP16 (`run_02`) works perfectly (Loss: 1.72, PPL: 5.56). However, the complete V3 architecture (`run_07`, CPU-1 with MLGRU, Bolmo, and DeleteGate) using ternary weights collapses to random noise (Loss: 5.56, PPL: 258.8).
147
 
148
- To isolate the cause of the collapse, we compared the same V1 architecture but forced the use of ternary weights (`run_08`):
149
 
150
- | Model | Base Architecture | Weights | Loss | Perplexity | Result |
151
- |---|---|---|---|---|---|
152
- | `run_08` | V1 (Classic Transformer) | Ternary | 5.56 | 260.4 | ❌ Stuck |
153
- | `run_07` | V3 (MLGRU + Bolmo + DeleteGate) | Ternary | 5.56 | 258.8 | ❌ Stuck |
 
 
 
 
 
 
154
 
155
- **Conclusion:** Both models crashed against the same numerical wall (Loss = ~5.56, the uniform entropy of 256 bytes)! This completely absolves the V3 architecture (MLGRU/DeleteGate/Bolmo). The failure is exclusively due to the training mechanics of the 1.58-bit ternary weights (BitLinear) in a *cold-start* condition at this scale.
156
 
157
  Published 1.58-bit models (BitNet b1.58 at 700M+ with 30–143 tok/param;
158
  Slender-Mamba with FP16 warm-start) reach functional performance, but the
 
109
 
110
  ## Round 3 β€” cold-start rescue (interrupted)
111
 
112
+ After the audit, configurations were updated to apply corrections: **bf16 AMP** (instead of fp16), **`lr_scale=2.0` on BitLinear**, and an increased budget of **150 tok/param**.
113
+
114
+ The trainings were interrupted prematurely due to cloud credit exhaustion (AMD MI300X, 192GB VRAM). Val Loss and Perplexity were measured from the interrupted checkpoints (evaluated on the last 3 shards of the validation set, 100 batches):
115
+
116
+ ### 50M runs (Round 3)
117
+
118
+ | Run | Architecture | Params | Progress | Val Loss | Perplexity | Notes |
119
+ |-----|-------------|-------:|---------:|---------:|-----------:|-------|
120
+ | run_01 | Transformer + BPE (16K vocab) + FP16 | 54.7M | 19.5% (12,173 / 62,500 steps) | β€” | β€” | ❌ Diverged (NaN weights) |
121
+ | run_02 | Transformer + Byte + LocalByteDecoder | 38.8M | 17.5% (10,963 / 62,500 steps) | β€” | β€” | ❌ Diverged (NaN weights) |
122
+ | run_04 | MLGRU + Byte + Ternary | 38.9M | 9.7% (6,074 / 62,500 steps) | **1.3064** | **3.69** | βœ… Converging |
123
+ | run_05 | + FPResidual | 39.0M | 7.0% (4,390 / 62,500 steps) | **1.3422** | **3.83** | βœ… Converging |
124
+ | run_06 | + Bolmo patch embedding | 39.0M | 6.8% (4,237 / 62,500 steps) | **0.6261** | **1.87** | βœ… Converging |
125
+ | run_07 | + DeleteGate (CPU-1 complete) | 39.0M | β€” | β€” | β€” | ⚠️ Checkpoint not found in V3 repo |
126
+ | run_08 | Folded Transformer + Byte + Ternary | 38.9M | 6.2% (3,858 / 62,500 steps) | β€” | β€” | ❌ Diverged (NaN weights) |
127
+
128
+ ### 10M runs (Round 3)
129
+
130
+ | Run | Architecture | Params | Progress | Val Loss | Perplexity | Notes |
131
+ |-----|-------------|-------:|---------:|---------:|-----------:|-------|
132
+ | run_13 | Small CPU-1 + BPE (4K vocab) | 12.5M | 74.3% (9,290 / 12,500 steps) | 25.01 | ~4.9Γ—10⁸ | BPE cold-start collapse |
133
+ | run_14 | Small CPU-1 byte-level (Qwen distillation) | 10.7M | 78.2% (9,775 / 12,500 steps) | **0.5305** | **1.70** | βœ… Strong convergence |
134
+ | run_15 | Small CPU-1 byte + hidden distillation | 10.7M | 18.8% (2,350 / 12,500 steps) | **0.9696** | **2.64** | βœ… Converging |
135
 
136
  The extremely slow progress (<20% in 1 day for 50M models) was caused by a severe CPU context-switching bottleneck when orchestrating 16 concurrent processes on a single MI300X GPU.
137
 
 
149
  cold-start dynamics of straight-through-estimator (STE) ternary
150
  quantisation, not the data budget.
151
 
152
+ ### V3 Key Finding: bf16 AMP + lr_scale=2.0 Breaks the Ternary Plateau
153
 
154
+ In V1/V2, **all** ternary runs (Round 1 and Round 2) were stuck at Loss β‰ˆ 5.55 nats β€” the uniform entropy of the 256-byte vocabulary. The V3 recipe applied two fixes: **bf16 AMP** (replacing fp16) and **`lr_scale=2.0` for BitLinear**.
155
 
156
+ Even with only 6–10% of target training completed, the V3 ternary runs show **real convergence** for the first time:
157
 
158
+ | Run | Round | Architecture | Val Loss | Perplexity | Notes |
159
+ |-----|-------|-------------|---------|-----------|-------|
160
+ | run_04 | V1 | MLGRU + Byte + Ternary | 5.57 | 261.7 | ❌ Stuck at uniform floor |
161
+ | run_04 | V3 | MLGRU + Byte + Ternary | **1.3064** | **3.69** | βœ… Real convergence |
162
+ | run_05 | V1 | + FPResidual | 5.55 | 257.7 | ❌ Stuck |
163
+ | run_05 | V3 | + FPResidual | **1.3422** | **3.83** | βœ… Real convergence |
164
+ | run_06 | V1 | + Bolmo patch embedding | 5.56 | 258.8 | ❌ Stuck |
165
+ | run_06 | V3 | + Bolmo patch embedding | **0.6261** | **1.87** | βœ… Real convergence |
166
+ | run_14 | V1 | Small CPU-1 byte (10M) | 5.58 | 263.9 | ❌ Stuck |
167
+ | run_14 | V3 | Small CPU-1 byte (10M) | **0.5305** | **1.70** | βœ… Strong convergence |
168
 
169
+ **Conclusion:** The V3 recipe (bf16 AMP + 2Γ— LR for BitLinear) successfully breaks the cold-start ternary collapse that plagued all V1/V2 runs. These results are from early-interrupted checkpoints at 6–78% of training β€” final trained models would be expected to achieve significantly lower loss.
170
 
171
  Published 1.58-bit models (BitNet b1.58 at 700M+ with 30–143 tok/param;
172
  Slender-Mamba with FP16 warm-start) reach functional performance, but the