kacperwikiel commited on
Commit
d48f320
·
verified ·
1 Parent(s): 6eb6530

Upload folder using huggingface_hub

Browse files
Files changed (4) hide show
  1. README.md +108 -0
  2. bdh_150M_en.json +182 -0
  3. bdh_150M_en.meta.json +21 -0
  4. config.json +21 -0
README.md ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ language:
4
+ - en
5
+ - pl
6
+ library_name: custom
7
+ pipeline_tag: text-generation
8
+ tags:
9
+ - pytorch
10
+ - bdh
11
+ - fast-weights
12
+ - scaling
13
+ - language-model
14
+ base_model: pathwaycom/bdh
15
+ datasets:
16
+ - SlayerLab/research-mix-v1
17
+ ---
18
+
19
+ # BDH-150M-EN — Byte-Level BDH Scaling Study Checkpoint
20
+
21
+ A **150M-parameter BDH (Fast Weight Layers)** model trained to completion (30k steps) on a 970M-token byte-level research mix (80% EN fineweb-edu / 20% PL speakleash). This is the largest rung of the SlayerLab BDH scaling ladder.
22
+
23
+ ## Training summary
24
+
25
+ | Metric | Value |
26
+ |---|---|
27
+ | Params | ~151M |
28
+ | Steps | 30,000 (completed) |
29
+ | Seq len | 2048 (byte-level) |
30
+ | Data | research-mix-v1, 970M tokens, byte-level (vocab 256, no tokenizer) |
31
+ | Optimizer | AdamW lr=1e-3 → 1e-4 cosine, wd 0.1, warmup 1000 |
32
+ | Grad clip | ZClip |
33
+ | **Final val loss** | **1.099** |
34
+ | Hardware | RunPod A4000, single GPU |
35
+
36
+ ## Learning curve (val loss per 500 steps, from step 15500)
37
+
38
+ ```
39
+ step val_loss
40
+ 15500 1.233
41
+ 16000 1.325
42
+ 16500 1.115
43
+ 17000 1.273
44
+ 17500 1.460
45
+ 18000 1.169
46
+ 18500 1.250
47
+ 19000 1.258
48
+ 19500 1.270
49
+ 20000 1.260
50
+ 20500 1.203
51
+ 21000 1.175
52
+ 21500 1.152
53
+ 22000 1.241
54
+ 22500 1.402
55
+ 23000 1.199
56
+ 23500 1.125
57
+ 24000 1.079
58
+ 24500 1.114
59
+ 25000 1.215
60
+ 25500 1.197
61
+ 26000 1.286
62
+ 26500 1.178
63
+ 27000 1.390
64
+ 27500 1.216
65
+ 28000 1.531
66
+ 28500 1.090
67
+ 29000 1.115
68
+ 29500 1.186
69
+ 30000 1.099
70
+ ```
71
+
72
+ Full metrics (incl. steps 0–15000 from the pre-resume backup) in `bdh_150M_en.json`.
73
+
74
+ ## Architecture
75
+
76
+ - `BDH` from [pathwaycom/bdh](https://github.com/pathwaycom/bdh) — looped latent recurrence / fast weights
77
+ - `n_layer=8, n_embd=256, n_head=4, mlp_internal_dim_multiplier=768`
78
+ - Vocab: **byte-level (vocab 256)** — no tokenizer, works directly on UTF-8 bytes
79
+ - **~151M parameters** · seq length 2048
80
+
81
+ ## Files
82
+
83
+ - `model.safetensors` — weights (state dict, `model.*` keys, compatible with `pathwaycom/bdh`)
84
+ - `config.json` — architecture + training config
85
+ - `bdh_150M_en.json` — full training metrics (loss, grad_norm per step)
86
+ - `bdh_150M_en.meta.json` — run metadata
87
+
88
+ ## Load
89
+
90
+ ```python
91
+ import sys, torch
92
+ sys.path.insert(0, "path/to/pathwaycom/bdh")
93
+ import bdh as bdh_mod
94
+ from safetensors.torch import load_file
95
+
96
+ cfg = bdh_mod.BDHConfig(
97
+ n_layer=8, n_embd=256, n_head=4,
98
+ mlp_internal_dim_multiplier=768, dropout=0.1,
99
+ vocab_size=256,
100
+ )
101
+ model = bdh_mod.BDH(cfg).bfloat16()
102
+ sd = load_file("model.safetensors")
103
+ model.load_state_dict({k.replace("model.", ""): v for k, v in sd.items()}, strict=False)
104
+ ```
105
+
106
+ ## Context
107
+
108
+ Part of the **BDH scaling study** (25M → 50M → 150M) — results & baselines comparison in [SlayerLab/bdh-scaling](https://huggingface.co/SlayerLab/bdh-scaling). Smaller rung: [SlayerLab/bdh-25m-pl](https://huggingface.co/SlayerLab/bdh-25m-pl).
bdh_150M_en.json ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "step": 15500,
4
+ "val_loss": 1.2332948386669158,
5
+ "tok_per_s": 448.71070718611645
6
+ },
7
+ {
8
+ "step": 16000,
9
+ "val_loss": 1.3245196878910064,
10
+ "tok_per_s": 448.7678029095942
11
+ },
12
+ {
13
+ "step": 16500,
14
+ "val_loss": 1.1150229454040528,
15
+ "tok_per_s": 448.6196532024642
16
+ },
17
+ {
18
+ "step": 17000,
19
+ "val_loss": 1.2729529201984406,
20
+ "tok_per_s": 448.67497951718235
21
+ },
22
+ {
23
+ "step": 17500,
24
+ "val_loss": 1.4596619069576264,
25
+ "tok_per_s": 448.59215489049996
26
+ },
27
+ {
28
+ "step": 18000,
29
+ "val_loss": 1.1688364386558532,
30
+ "tok_per_s": 448.6222510800553
31
+ },
32
+ {
33
+ "step": 18000,
34
+ "train_loss": 1.3487612009048462,
35
+ "lr": 0.00036618364045870307,
36
+ "grad_norm": 0.34604644906931464
37
+ },
38
+ {
39
+ "step": 18500,
40
+ "val_loss": 1.2496637105941772,
41
+ "tok_per_s": 448.5615559629563
42
+ },
43
+ {
44
+ "step": 19000,
45
+ "val_loss": 1.2581392109394074,
46
+ "tok_per_s": 448.5842420987772
47
+ },
48
+ {
49
+ "step": 19500,
50
+ "val_loss": 1.2702396273612977,
51
+ "tok_per_s": 448.53713417595446
52
+ },
53
+ {
54
+ "step": 20000,
55
+ "val_loss": 1.2604210555553437,
56
+ "tok_per_s": 448.5645251286915
57
+ },
58
+ {
59
+ "step": 20500,
60
+ "val_loss": 1.2029548704624176,
61
+ "tok_per_s": 448.55135546547194
62
+ },
63
+ {
64
+ "step": 21000,
65
+ "val_loss": 1.1747850239276887,
66
+ "tok_per_s": 448.5514952802606
67
+ },
68
+ {
69
+ "step": 21000,
70
+ "train_loss": 1.0948173999786377,
71
+ "lr": 0.00021936163686749426,
72
+ "grad_norm": 0.3434591920738562
73
+ },
74
+ {
75
+ "step": 21500,
76
+ "val_loss": 1.151973706483841,
77
+ "tok_per_s": 448.5321764246468
78
+ },
79
+ {
80
+ "step": 22000,
81
+ "val_loss": 1.2406252056360245,
82
+ "tok_per_s": 448.5538931263004
83
+ },
84
+ {
85
+ "step": 22500,
86
+ "val_loss": 1.4019580364227295,
87
+ "tok_per_s": 448.52137279121513
88
+ },
89
+ {
90
+ "step": 23000,
91
+ "val_loss": 1.1993014097213746,
92
+ "tok_per_s": 448.5355570162402
93
+ },
94
+ {
95
+ "step": 23500,
96
+ "val_loss": 1.1249394536018371,
97
+ "tok_per_s": 448.51751414452775
98
+ },
99
+ {
100
+ "step": 24000,
101
+ "val_loss": 1.0788813531398773,
102
+ "tok_per_s": 448.5232277857164
103
+ },
104
+ {
105
+ "step": 24000,
106
+ "train_loss": 0.978234052658081,
107
+ "lr": 0.00010192068998515702,
108
+ "grad_norm": 0.36711832860966803
109
+ },
110
+ {
111
+ "step": 24500,
112
+ "val_loss": 1.1137298941612244,
113
+ "tok_per_s": 448.50620361324445
114
+ },
115
+ {
116
+ "step": 25000,
117
+ "val_loss": 1.2152933448553085,
118
+ "tok_per_s": 448.51861800640285
119
+ },
120
+ {
121
+ "step": 25500,
122
+ "val_loss": 1.1968701273202895,
123
+ "tok_per_s": 448.50543316114755
124
+ },
125
+ {
126
+ "step": 26000,
127
+ "val_loss": 1.2862209349870681,
128
+ "tok_per_s": 448.51639794143944
129
+ },
130
+ {
131
+ "step": 26500,
132
+ "val_loss": 1.1776897311210632,
133
+ "tok_per_s": 448.49371621448375
134
+ },
135
+ {
136
+ "step": 27000,
137
+ "val_loss": 1.3898986995220184,
138
+ "tok_per_s": 448.5057616047337
139
+ },
140
+ {
141
+ "step": 27000,
142
+ "train_loss": 0.987281084060669,
143
+ "lr": 2.6156122096850034e-05,
144
+ "grad_norm": 0.43130715447864404
145
+ },
146
+ {
147
+ "step": 27500,
148
+ "val_loss": 1.2164547741413116,
149
+ "tok_per_s": 448.50054071928116
150
+ },
151
+ {
152
+ "step": 28000,
153
+ "val_loss": 1.531364518404007,
154
+ "tok_per_s": 448.5084187749349
155
+ },
156
+ {
157
+ "step": 28500,
158
+ "val_loss": 1.0895077019929886,
159
+ "tok_per_s": 448.4949893963017
160
+ },
161
+ {
162
+ "step": 29000,
163
+ "val_loss": 1.1150718003511428,
164
+ "tok_per_s": 448.4911373769222
165
+ },
166
+ {
167
+ "step": 29500,
168
+ "val_loss": 1.1861544340848922,
169
+ "tok_per_s": 448.48317166289644
170
+ },
171
+ {
172
+ "step": 30000,
173
+ "val_loss": 1.0986640840768813,
174
+ "tok_per_s": 448.4938181301738
175
+ },
176
+ {
177
+ "step": 30000,
178
+ "train_loss": 1.1195892095565796,
179
+ "lr": 2.933889520218003e-12,
180
+ "grad_norm": 0.3072912989186937
181
+ }
182
+ ]
bdh_150M_en.meta.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "meta": {
3
+ "model": "bdh",
4
+ "size_m": 150,
5
+ "steps": 30000,
6
+ "seq_len": 2048,
7
+ "warmup": 1000,
8
+ "seed": 0,
9
+ "config": {
10
+ "arch": "bdh",
11
+ "size_m": 150,
12
+ "mult": 768,
13
+ "checkpointed": 1
14
+ },
15
+ "data": "research-mix-v1 970M tok byte-level (80%EN fineweb-edu / 20%PL speakleash)",
16
+ "optimizer": "AdamW lr=1e-3 wd=0.1 cos->1e-4 warmup1000",
17
+ "clip": "ZClip",
18
+ "world": 1,
19
+ "rank": 0
20
+ }
21
+ }
config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BDH"
4
+ ],
5
+ "vocab_size": 256,
6
+ "n_layer": 8,
7
+ "n_embd": 256,
8
+ "n_head": 4,
9
+ "mlp_internal_dim_multiplier": 768,
10
+ "dropout": 0.1,
11
+ "seq_len": 2048,
12
+ "model_type": "bdh",
13
+ "size_m": 150,
14
+ "training": {
15
+ "steps": 30000,
16
+ "data": "research-mix-v1 970M tok byte-level (80% EN fineweb-edu / 20% PL speakleash)",
17
+ "optimizer": "AdamW lr=1e-3 wd=0.1 cos->1e-4 warmup1000",
18
+ "clip": "ZClip",
19
+ "final_val_loss": 1.099
20
+ }
21
+ }