You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Window "SSSSL" — more short windows, slightly worse
11
000e04d
1.430230
4.5
discard
Softcap 12 — tied, no meaningful improvement
12
b0df72e
1.452558
2.8
discard
Batch 4K/2 — too noisy despite 1372 steps
13
398387c
1.443693
4.5
discard
EMBEDDING_LR=0.8 — worse than default 0.6
14
24408f3
1.433078
4.5
discard
WEIGHT_DECAY=0.15 — slightly worse than 0.2
15
7186347
1.435216
4.4
discard
MLP_RATIO=1.25 — worse than 1.5, not the sweet spot
Comparison vs M1 Max (mar11)
Metric
M1 Max (mar11)
M4 Pro (mar14)
Best val_bpb
1.621
1.429
Memory
64 GB
24 GB
GPU Cores
32
16
Peak Memory Used
11.3 GB
4.5 GB
Training Steps
~388*
751
TOTAL_BATCH_SIZE
16,384
8,192
DEVICE_BATCH_SIZE
8
4
MLP_RATIO
1.5
1.5
WARMDOWN_RATIO
0.7
0.7
*M1 Max mar11 step count is estimated from their total_tokens/batch_size.
Key Observations
Why M4 Pro beat M1 Max despite less hardware
No memory swapping: The M1 Max baseline used 94 GB on a 64 GB machine (heavy swap). The M4 Pro baseline used 32 GB on 24 GB (also swapping). But the optimized M4 Pro config uses only 4.5 GB — fully in-memory with zero swap overhead.
Smaller batch = more steps: M4 Pro went further with batch 8K (vs M1 Max at 16K). The M4 Pro's faster per-core performance (~40% faster than M1) made each step faster, so 8K batch worked where M1 Max found it "too noisy" — the extra steps compensated for gradient noise.
Step speed dominates: On M4 Pro, the critical factor is maximizing training steps within the 5-minute window. Every experiment that increased model size (depth, width, MLP ratio) failed because fewer steps outweighed the per-step quality gains.
Parameters tested but confirmed optimal at defaults