Update README: add V3 Val Loss/PPL results table, bf16+lr_scale finding
Browse files
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
|
| 113 |
-
|
| 114 |
-
The
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
|
| 119 |
-
|
|
| 120 |
-
|
|
| 121 |
-
|
|
| 122 |
-
|
|
| 123 |
-
|
|
| 124 |
-
|
|
| 125 |
-
|
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
###
|
| 145 |
|
| 146 |
-
|
| 147 |
|
| 148 |
-
|
| 149 |
|
| 150 |
-
|
|
| 151 |
-
|---|---|---|---|---|---|
|
| 152 |
-
|
|
| 153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
|
| 155 |
-
**Conclusion:**
|
| 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
|