appvoid commited on
Commit
9f0e0ef
·
verified ·
1 Parent(s): 0dab379

Qwen90M step 0; complete resumable checkpoint

Browse files
README.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ pipeline_tag: text-generation
4
+ tags: [qwen3, byte-level, pretraining]
5
+ ---
6
+ # Qwen90M Byte
7
+ 24 vanilla Qwen3 layers, width 640, MLP 1440, 10 query / 2 KV heads, head dimension 64.
8
+ 90,148,352 tied-embedding parameters. 259 tokens: bytes 0–255, PAD 256, BOS 257, EOS 258.
9
+ Trained from scratch; this is a base model, not a Qwen instruction checkpoint.
10
+
11
+ Load the model with `AutoModelForCausalLM.from_pretrained(repo)`.
12
+ Load its custom byte tokenizer with `AutoTokenizer.from_pretrained(repo, trust_remote_code=True)`.
13
+ Training records begin with BOS; prepend `tokenizer.bos_token_id` to encoded generation prompts.
14
+ See training_config.json and coverage.json for the mixture and consumed data statistics.
15
+ Model weights are FP32 masters trained under BF16 autocast. Use dtype=torch.bfloat16 for GPU inference.
byte_vocab.json ADDED
@@ -0,0 +1,261 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "<0x00>": 0,
3
+ "<0x01>": 1,
4
+ "<0x02>": 2,
5
+ "<0x03>": 3,
6
+ "<0x04>": 4,
7
+ "<0x05>": 5,
8
+ "<0x06>": 6,
9
+ "<0x07>": 7,
10
+ "<0x08>": 8,
11
+ "<0x09>": 9,
12
+ "<0x0A>": 10,
13
+ "<0x0B>": 11,
14
+ "<0x0C>": 12,
15
+ "<0x0D>": 13,
16
+ "<0x0E>": 14,
17
+ "<0x0F>": 15,
18
+ "<0x10>": 16,
19
+ "<0x11>": 17,
20
+ "<0x12>": 18,
21
+ "<0x13>": 19,
22
+ "<0x14>": 20,
23
+ "<0x15>": 21,
24
+ "<0x16>": 22,
25
+ "<0x17>": 23,
26
+ "<0x18>": 24,
27
+ "<0x19>": 25,
28
+ "<0x1A>": 26,
29
+ "<0x1B>": 27,
30
+ "<0x1C>": 28,
31
+ "<0x1D>": 29,
32
+ "<0x1E>": 30,
33
+ "<0x1F>": 31,
34
+ "<0x20>": 32,
35
+ "<0x21>": 33,
36
+ "<0x22>": 34,
37
+ "<0x23>": 35,
38
+ "<0x24>": 36,
39
+ "<0x25>": 37,
40
+ "<0x26>": 38,
41
+ "<0x27>": 39,
42
+ "<0x28>": 40,
43
+ "<0x29>": 41,
44
+ "<0x2A>": 42,
45
+ "<0x2B>": 43,
46
+ "<0x2C>": 44,
47
+ "<0x2D>": 45,
48
+ "<0x2E>": 46,
49
+ "<0x2F>": 47,
50
+ "<0x30>": 48,
51
+ "<0x31>": 49,
52
+ "<0x32>": 50,
53
+ "<0x33>": 51,
54
+ "<0x34>": 52,
55
+ "<0x35>": 53,
56
+ "<0x36>": 54,
57
+ "<0x37>": 55,
58
+ "<0x38>": 56,
59
+ "<0x39>": 57,
60
+ "<0x3A>": 58,
61
+ "<0x3B>": 59,
62
+ "<0x3C>": 60,
63
+ "<0x3D>": 61,
64
+ "<0x3E>": 62,
65
+ "<0x3F>": 63,
66
+ "<0x40>": 64,
67
+ "<0x41>": 65,
68
+ "<0x42>": 66,
69
+ "<0x43>": 67,
70
+ "<0x44>": 68,
71
+ "<0x45>": 69,
72
+ "<0x46>": 70,
73
+ "<0x47>": 71,
74
+ "<0x48>": 72,
75
+ "<0x49>": 73,
76
+ "<0x4A>": 74,
77
+ "<0x4B>": 75,
78
+ "<0x4C>": 76,
79
+ "<0x4D>": 77,
80
+ "<0x4E>": 78,
81
+ "<0x4F>": 79,
82
+ "<0x50>": 80,
83
+ "<0x51>": 81,
84
+ "<0x52>": 82,
85
+ "<0x53>": 83,
86
+ "<0x54>": 84,
87
+ "<0x55>": 85,
88
+ "<0x56>": 86,
89
+ "<0x57>": 87,
90
+ "<0x58>": 88,
91
+ "<0x59>": 89,
92
+ "<0x5A>": 90,
93
+ "<0x5B>": 91,
94
+ "<0x5C>": 92,
95
+ "<0x5D>": 93,
96
+ "<0x5E>": 94,
97
+ "<0x5F>": 95,
98
+ "<0x60>": 96,
99
+ "<0x61>": 97,
100
+ "<0x62>": 98,
101
+ "<0x63>": 99,
102
+ "<0x64>": 100,
103
+ "<0x65>": 101,
104
+ "<0x66>": 102,
105
+ "<0x67>": 103,
106
+ "<0x68>": 104,
107
+ "<0x69>": 105,
108
+ "<0x6A>": 106,
109
+ "<0x6B>": 107,
110
+ "<0x6C>": 108,
111
+ "<0x6D>": 109,
112
+ "<0x6E>": 110,
113
+ "<0x6F>": 111,
114
+ "<0x70>": 112,
115
+ "<0x71>": 113,
116
+ "<0x72>": 114,
117
+ "<0x73>": 115,
118
+ "<0x74>": 116,
119
+ "<0x75>": 117,
120
+ "<0x76>": 118,
121
+ "<0x77>": 119,
122
+ "<0x78>": 120,
123
+ "<0x79>": 121,
124
+ "<0x7A>": 122,
125
+ "<0x7B>": 123,
126
+ "<0x7C>": 124,
127
+ "<0x7D>": 125,
128
+ "<0x7E>": 126,
129
+ "<0x7F>": 127,
130
+ "<0x80>": 128,
131
+ "<0x81>": 129,
132
+ "<0x82>": 130,
133
+ "<0x83>": 131,
134
+ "<0x84>": 132,
135
+ "<0x85>": 133,
136
+ "<0x86>": 134,
137
+ "<0x87>": 135,
138
+ "<0x88>": 136,
139
+ "<0x89>": 137,
140
+ "<0x8A>": 138,
141
+ "<0x8B>": 139,
142
+ "<0x8C>": 140,
143
+ "<0x8D>": 141,
144
+ "<0x8E>": 142,
145
+ "<0x8F>": 143,
146
+ "<0x90>": 144,
147
+ "<0x91>": 145,
148
+ "<0x92>": 146,
149
+ "<0x93>": 147,
150
+ "<0x94>": 148,
151
+ "<0x95>": 149,
152
+ "<0x96>": 150,
153
+ "<0x97>": 151,
154
+ "<0x98>": 152,
155
+ "<0x99>": 153,
156
+ "<0x9A>": 154,
157
+ "<0x9B>": 155,
158
+ "<0x9C>": 156,
159
+ "<0x9D>": 157,
160
+ "<0x9E>": 158,
161
+ "<0x9F>": 159,
162
+ "<0xA0>": 160,
163
+ "<0xA1>": 161,
164
+ "<0xA2>": 162,
165
+ "<0xA3>": 163,
166
+ "<0xA4>": 164,
167
+ "<0xA5>": 165,
168
+ "<0xA6>": 166,
169
+ "<0xA7>": 167,
170
+ "<0xA8>": 168,
171
+ "<0xA9>": 169,
172
+ "<0xAA>": 170,
173
+ "<0xAB>": 171,
174
+ "<0xAC>": 172,
175
+ "<0xAD>": 173,
176
+ "<0xAE>": 174,
177
+ "<0xAF>": 175,
178
+ "<0xB0>": 176,
179
+ "<0xB1>": 177,
180
+ "<0xB2>": 178,
181
+ "<0xB3>": 179,
182
+ "<0xB4>": 180,
183
+ "<0xB5>": 181,
184
+ "<0xB6>": 182,
185
+ "<0xB7>": 183,
186
+ "<0xB8>": 184,
187
+ "<0xB9>": 185,
188
+ "<0xBA>": 186,
189
+ "<0xBB>": 187,
190
+ "<0xBC>": 188,
191
+ "<0xBD>": 189,
192
+ "<0xBE>": 190,
193
+ "<0xBF>": 191,
194
+ "<0xC0>": 192,
195
+ "<0xC1>": 193,
196
+ "<0xC2>": 194,
197
+ "<0xC3>": 195,
198
+ "<0xC4>": 196,
199
+ "<0xC5>": 197,
200
+ "<0xC6>": 198,
201
+ "<0xC7>": 199,
202
+ "<0xC8>": 200,
203
+ "<0xC9>": 201,
204
+ "<0xCA>": 202,
205
+ "<0xCB>": 203,
206
+ "<0xCC>": 204,
207
+ "<0xCD>": 205,
208
+ "<0xCE>": 206,
209
+ "<0xCF>": 207,
210
+ "<0xD0>": 208,
211
+ "<0xD1>": 209,
212
+ "<0xD2>": 210,
213
+ "<0xD3>": 211,
214
+ "<0xD4>": 212,
215
+ "<0xD5>": 213,
216
+ "<0xD6>": 214,
217
+ "<0xD7>": 215,
218
+ "<0xD8>": 216,
219
+ "<0xD9>": 217,
220
+ "<0xDA>": 218,
221
+ "<0xDB>": 219,
222
+ "<0xDC>": 220,
223
+ "<0xDD>": 221,
224
+ "<0xDE>": 222,
225
+ "<0xDF>": 223,
226
+ "<0xE0>": 224,
227
+ "<0xE1>": 225,
228
+ "<0xE2>": 226,
229
+ "<0xE3>": 227,
230
+ "<0xE4>": 228,
231
+ "<0xE5>": 229,
232
+ "<0xE6>": 230,
233
+ "<0xE7>": 231,
234
+ "<0xE8>": 232,
235
+ "<0xE9>": 233,
236
+ "<0xEA>": 234,
237
+ "<0xEB>": 235,
238
+ "<0xEC>": 236,
239
+ "<0xED>": 237,
240
+ "<0xEE>": 238,
241
+ "<0xEF>": 239,
242
+ "<0xF0>": 240,
243
+ "<0xF1>": 241,
244
+ "<0xF2>": 242,
245
+ "<0xF3>": 243,
246
+ "<0xF4>": 244,
247
+ "<0xF5>": 245,
248
+ "<0xF6>": 246,
249
+ "<0xF7>": 247,
250
+ "<0xF8>": 248,
251
+ "<0xF9>": 249,
252
+ "<0xFA>": 250,
253
+ "<0xFB>": 251,
254
+ "<0xFC>": 252,
255
+ "<0xFD>": 253,
256
+ "<0xFE>": 254,
257
+ "<0xFF>": 255,
258
+ "<bos>": 257,
259
+ "<eos>": 258,
260
+ "<pad>": 256
261
+ }
complete.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "step": 0,
3
+ "files": {
4
+ "config.json": "cbc72137da3dae65085a2a8c39ad7634d16bf92d785ca00d283ee82fe32b37e7",
5
+ "generation_config.json": "54ed0d19f6226888c91157964ede8a892bd5ae175bfad85336152b3d9b6cd7c4",
6
+ "model.safetensors": "1c688d2ef10bd45dcb2ed3ca6945c4cc383ba4cc356d90bbb93b725e427338c1",
7
+ "tokenization_byte.py": "279b9990f77b1eaedc7c1184fe13d60273a713ead856200f1fb9ae323c7b1e03",
8
+ "tokenizer_config.json": "0ecbd4fd39e35125800d806af981ba0cacd8a7ba5f02c9e729c4ecc54af6d300",
9
+ "special_tokens_map.json": "20d4b94d0e657c3f44d9123522c106e7315b6c1a1b6d259478f17bd2918b1263",
10
+ "byte_vocab.json": "57a1cd2e70dd5b7cc6fd2eaa12ebfcd173c1620fa5d45c2c6282511c29b6a5f6",
11
+ "trainer.pt": "21aa2cccd888f3918a44b02c1ad179a74c9924c4304886988affaf97c4132422",
12
+ "training_config.json": "528161bcd9687da465595131ceb9bfb223ac3e494a1c6d5fcfdbd97b88324bd8",
13
+ "performance.json": "b95a1befd575f8d9a02b43fd0cc41c54243f5297127b93d2656e0292ba15e77e",
14
+ "shard_scheduler.json": "c16912023ae706fc358e0de73ec412ec549d6d440abc128e7900e41c5c63a6f3",
15
+ "coverage.json": "1db676f88d72dde495669f8f42a2a0104a6dc4ec5bfa810967263316d2335d79",
16
+ "README.md": "9ce0f9efacbc46177a7e818b6aed274d84e7145ff944b5c7d6ecd5d33b9d4419"
17
+ },
18
+ "signature": "9fee47918905b0750bee87876aa424f021ccc4507ee8db22a11d01fbc6109063"
19
+ }
config.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3ForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 257,
8
+ "dtype": "float32",
9
+ "eos_token_id": 258,
10
+ "head_dim": 64,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 640,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 1440,
15
+ "layer_types": [
16
+ "full_attention",
17
+ "full_attention",
18
+ "full_attention",
19
+ "full_attention",
20
+ "full_attention",
21
+ "full_attention",
22
+ "full_attention",
23
+ "full_attention",
24
+ "full_attention",
25
+ "full_attention",
26
+ "full_attention",
27
+ "full_attention",
28
+ "full_attention",
29
+ "full_attention",
30
+ "full_attention",
31
+ "full_attention",
32
+ "full_attention",
33
+ "full_attention",
34
+ "full_attention",
35
+ "full_attention",
36
+ "full_attention",
37
+ "full_attention",
38
+ "full_attention",
39
+ "full_attention"
40
+ ],
41
+ "max_position_embeddings": 2048,
42
+ "max_window_layers": 28,
43
+ "model_type": "qwen3",
44
+ "num_attention_heads": 10,
45
+ "num_hidden_layers": 24,
46
+ "num_key_value_heads": 2,
47
+ "pad_token_id": 256,
48
+ "rms_norm_eps": 1e-06,
49
+ "rope_scaling": null,
50
+ "rope_theta": 100000.0,
51
+ "sliding_window": null,
52
+ "tie_word_embeddings": true,
53
+ "transformers_version": "4.57.1",
54
+ "use_cache": false,
55
+ "use_sliding_window": false,
56
+ "vocab_size": 259
57
+ }
coverage.json ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "step": 0,
3
+ "stats": {},
4
+ "sources": {
5
+ "climbmix": {
6
+ "page": 0,
7
+ "row": 0,
8
+ "start": null,
9
+ "epoch": 0,
10
+ "offset": 0,
11
+ "documents": 0
12
+ },
13
+ "rewrite6": {
14
+ "page": 0,
15
+ "row": 0,
16
+ "start": null,
17
+ "epoch": 0,
18
+ "offset": 0,
19
+ "documents": 0
20
+ },
21
+ "openmath": {
22
+ "page": 0,
23
+ "row": 0,
24
+ "start": null,
25
+ "epoch": 0,
26
+ "offset": 0,
27
+ "documents": 0
28
+ },
29
+ "ultra_qa": {
30
+ "page": 0,
31
+ "row": 0,
32
+ "start": null,
33
+ "epoch": 0,
34
+ "offset": 0,
35
+ "documents": 0
36
+ },
37
+ "ultra_style": {
38
+ "page": 0,
39
+ "row": 0,
40
+ "start": null,
41
+ "epoch": 0,
42
+ "offset": 0,
43
+ "documents": 0
44
+ },
45
+ "cortex": {
46
+ "page": 0,
47
+ "row": 0,
48
+ "start": null,
49
+ "epoch": 0,
50
+ "offset": 0,
51
+ "documents": 0
52
+ }
53
+ }
54
+ }
generation_config.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 257,
4
+ "eos_token_id": 258,
5
+ "pad_token_id": 256,
6
+ "transformers_version": "4.57.1",
7
+ "use_cache": false
8
+ }
latest.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"step": 0, "files": {"config.json": "cbc72137da3dae65085a2a8c39ad7634d16bf92d785ca00d283ee82fe32b37e7", "generation_config.json": "54ed0d19f6226888c91157964ede8a892bd5ae175bfad85336152b3d9b6cd7c4", "model.safetensors": "1c688d2ef10bd45dcb2ed3ca6945c4cc383ba4cc356d90bbb93b725e427338c1", "tokenization_byte.py": "279b9990f77b1eaedc7c1184fe13d60273a713ead856200f1fb9ae323c7b1e03", "tokenizer_config.json": "0ecbd4fd39e35125800d806af981ba0cacd8a7ba5f02c9e729c4ecc54af6d300", "special_tokens_map.json": "20d4b94d0e657c3f44d9123522c106e7315b6c1a1b6d259478f17bd2918b1263", "byte_vocab.json": "57a1cd2e70dd5b7cc6fd2eaa12ebfcd173c1620fa5d45c2c6282511c29b6a5f6", "trainer.pt": "21aa2cccd888f3918a44b02c1ad179a74c9924c4304886988affaf97c4132422", "training_config.json": "528161bcd9687da465595131ceb9bfb223ac3e494a1c6d5fcfdbd97b88324bd8", "performance.json": "b95a1befd575f8d9a02b43fd0cc41c54243f5297127b93d2656e0292ba15e77e", "shard_scheduler.json": "c16912023ae706fc358e0de73ec412ec549d6d440abc128e7900e41c5c63a6f3", "coverage.json": "1db676f88d72dde495669f8f42a2a0104a6dc4ec5bfa810967263316d2335d79", "README.md": "9ce0f9efacbc46177a7e818b6aed274d84e7145ff944b5c7d6ecd5d33b9d4419"}, "signature": "9fee47918905b0750bee87876aa424f021ccc4507ee8db22a11d01fbc6109063", "folder": "step-000000000000"}
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1c688d2ef10bd45dcb2ed3ca6945c4cc383ba4cc356d90bbb93b725e427338c1
3
+ size 360622744
performance.json ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cache_key": {
3
+ "version": 1,
4
+ "kind": "gpu",
5
+ "gpu": {
6
+ "name": "NVIDIA RTX PRO 6000 Blackwell Server Edition",
7
+ "total_memory": 101975851008,
8
+ "capability": [
9
+ 12,
10
+ 0
11
+ ]
12
+ },
13
+ "torch": "2.8.0+cu128",
14
+ "cuda": "12.8",
15
+ "python": "3.13.11",
16
+ "packages": {
17
+ "transformers": "4.57.1",
18
+ "numpy": "2.2.6",
19
+ "pyarrow": "21.0.0",
20
+ "huggingface_hub": "0.36.0"
21
+ },
22
+ "settings": {
23
+ "context": 2048,
24
+ "global_batch": 90,
25
+ "microbatch_candidates": [
26
+ 8,
27
+ 16,
28
+ 32,
29
+ 48,
30
+ 64,
31
+ 72,
32
+ 76,
33
+ 80,
34
+ 86,
35
+ 90
36
+ ],
37
+ "batch_selection": "max_batch",
38
+ "gradient_checkpointing": false,
39
+ "compile_model": true,
40
+ "autotune_microbatch": true,
41
+ "attention_backend": "flash",
42
+ "vram_fraction": 0.95
43
+ },
44
+ "source": "e6d135a4487a9fd1907e12903cda79e75fd61305fad149fda7ec5281279dc18b",
45
+ "requested_microbatch_ceiling": 90
46
+ },
47
+ "cache_reused": false,
48
+ "attention": "PyTorch FlashAttention (forced; forward/backward verified)",
49
+ "selected": {
50
+ "microbatch": 86,
51
+ "mode": "compiled",
52
+ "microbatch_seconds": 0.8818629400000191,
53
+ "peak_gb": 84.78368663787842,
54
+ "fits_budget": true,
55
+ "estimated_update_seconds": 0.9349941874999956,
56
+ "input_tokens_per_second": 199722.64624250587
57
+ },
58
+ "measurements": [
59
+ {
60
+ "microbatch": 8,
61
+ "mode": "eager",
62
+ "microbatch_seconds": 0.15782159200000478,
63
+ "peak_gb": 14.079077243804932,
64
+ "fits_budget": true,
65
+ "estimated_update_seconds": 1.793421506500053,
66
+ "input_tokens_per_second": 103813.42497165725
67
+ },
68
+ {
69
+ "microbatch": 16,
70
+ "mode": "eager",
71
+ "microbatch_seconds": 0.3450626039999918,
72
+ "peak_gb": 27.397329807281494,
73
+ "fits_budget": true,
74
+ "estimated_update_seconds": 1.9234990809999601,
75
+ "input_tokens_per_second": 94962.47817106481
76
+ },
77
+ {
78
+ "microbatch": 32,
79
+ "mode": "eager",
80
+ "microbatch_seconds": 0.7818640030000097,
81
+ "peak_gb": 54.14767265319824,
82
+ "fits_budget": true,
83
+ "estimated_update_seconds": 2.185234111500023,
84
+ "input_tokens_per_second": 83820.20370363462
85
+ },
86
+ {
87
+ "microbatch": 48,
88
+ "mode": "eager",
89
+ "microbatch_seconds": 1.1685763079999845,
90
+ "peak_gb": 80.94732475280762,
91
+ "fits_budget": true,
92
+ "estimated_update_seconds": 2.190914332499986,
93
+ "input_tokens_per_second": 84122.87612457851
94
+ },
95
+ {
96
+ "microbatch": 8,
97
+ "mode": "compiled",
98
+ "microbatch_seconds": 0.08803204299999834,
99
+ "peak_gb": 8.428553104400635,
100
+ "fits_budget": true,
101
+ "estimated_update_seconds": 1.0060347614999898,
102
+ "input_tokens_per_second": 186114.0494035826
103
+ },
104
+ {
105
+ "microbatch": 16,
106
+ "mode": "compiled",
107
+ "microbatch_seconds": 0.1704058820000114,
108
+ "peak_gb": 16.191233158111572,
109
+ "fits_budget": true,
110
+ "estimated_update_seconds": 0.9576335650000658,
111
+ "input_tokens_per_second": 192293.8317352086
112
+ },
113
+ {
114
+ "microbatch": 32,
115
+ "mode": "compiled",
116
+ "microbatch_seconds": 0.34082671699997036,
117
+ "peak_gb": 31.810625553131104,
118
+ "fits_budget": true,
119
+ "estimated_update_seconds": 0.9493586249999737,
120
+ "input_tokens_per_second": 192285.39527904938
121
+ },
122
+ {
123
+ "microbatch": 48,
124
+ "mode": "compiled",
125
+ "microbatch_seconds": 0.5061537779999981,
126
+ "peak_gb": 47.43971490859985,
127
+ "fits_budget": true,
128
+ "estimated_update_seconds": 0.9468006980000041,
129
+ "input_tokens_per_second": 194217.6553308279
130
+ },
131
+ {
132
+ "microbatch": 64,
133
+ "mode": "compiled",
134
+ "microbatch_seconds": 0.6658512800000267,
135
+ "peak_gb": 63.073320388793945,
136
+ "fits_budget": true,
137
+ "estimated_update_seconds": 0.9295456565000109,
138
+ "input_tokens_per_second": 196848.76178355434
139
+ },
140
+ {
141
+ "microbatch": 72,
142
+ "mode": "compiled",
143
+ "microbatch_seconds": 0.7430151979999664,
144
+ "peak_gb": 70.97307014465332,
145
+ "fits_budget": true,
146
+ "estimated_update_seconds": 0.9250642054999503,
147
+ "input_tokens_per_second": 198456.23669195347
148
+ },
149
+ {
150
+ "microbatch": 76,
151
+ "mode": "compiled",
152
+ "microbatch_seconds": 0.78068104700003,
153
+ "peak_gb": 74.84185981750488,
154
+ "fits_budget": true,
155
+ "estimated_update_seconds": 0.9241739715000392,
156
+ "input_tokens_per_second": 199374.63654089966
157
+ },
158
+ {
159
+ "microbatch": 80,
160
+ "mode": "compiled",
161
+ "microbatch_seconds": 0.8210239410000213,
162
+ "peak_gb": 78.72572612762451,
163
+ "fits_budget": true,
164
+ "estimated_update_seconds": 0.9229792625000073,
165
+ "input_tokens_per_second": 199555.69115370748
166
+ },
167
+ {
168
+ "microbatch": 86,
169
+ "mode": "compiled",
170
+ "microbatch_seconds": 0.8818629400000191,
171
+ "peak_gb": 84.78368663787842,
172
+ "fits_budget": true,
173
+ "estimated_update_seconds": 0.9349941874999956,
174
+ "input_tokens_per_second": 199722.64624250587
175
+ },
176
+ {
177
+ "microbatch": 90,
178
+ "mode": "compiled",
179
+ "microbatch_seconds": 0.9259720020000373,
180
+ "peak_gb": 88.6924238204956,
181
+ "fits_budget": false,
182
+ "estimated_update_seconds": 0.9259720020000373,
183
+ "input_tokens_per_second": 199055.69455867045
184
+ }
185
+ ],
186
+ "failures": [
187
+ {
188
+ "microbatch": 64,
189
+ "mode": "eager",
190
+ "reason": "oom"
191
+ },
192
+ {
193
+ "microbatch": 72,
194
+ "mode": "eager",
195
+ "reason": "oom"
196
+ },
197
+ {
198
+ "microbatch": 76,
199
+ "mode": "eager",
200
+ "reason": "oom"
201
+ },
202
+ {
203
+ "microbatch": 80,
204
+ "mode": "eager",
205
+ "reason": "oom"
206
+ },
207
+ {
208
+ "microbatch": 86,
209
+ "mode": "eager",
210
+ "reason": "oom"
211
+ },
212
+ {
213
+ "microbatch": 90,
214
+ "mode": "eager",
215
+ "reason": "oom"
216
+ }
217
+ ],
218
+ "selection_policy": "max_batch",
219
+ "budget_gb": 89.6964394569397,
220
+ "reserve_gb": 2.1791439056396484,
221
+ "note": "Forward/backward throughput; excludes optimizer, data, logging and checkpoint time."
222
+ }
shard_scheduler.json ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": 1,
3
+ "startup_batch_seconds": [
4
+ 17.862166522000052,
5
+ 0.01599195200003578,
6
+ 0.012736249999989013,
7
+ 0.10922379700002693,
8
+ 0.015912060000005113,
9
+ 0.014246264000007614,
10
+ 0.01397435499995936,
11
+ 0.10559937200002878
12
+ ],
13
+ "source_benchmarks": [
14
+ {
15
+ "source": "climbmix",
16
+ "rows": 256,
17
+ "tokens": 721064,
18
+ "bytes": 302776,
19
+ "generation_seconds": 0.6739276440000594,
20
+ "write_seconds": 0.00442227799999273,
21
+ "read_seconds": 0.04565144100001817,
22
+ "tokens_per_second": 1062967.6168812835,
23
+ "note": "Bounded fresh sample; full-page latency is an extrapolation.",
24
+ "estimated_pages_for_buffer": 1,
25
+ "required_token_positions_per_second": 78853.96613762408,
26
+ "required_pages_per_second_upper_estimate": 0.00683486193125923
27
+ },
28
+ {
29
+ "source": "rewrite6",
30
+ "rows": 256,
31
+ "tokens": 156675,
32
+ "bytes": 68694,
33
+ "generation_seconds": 0.12810849499999222,
34
+ "write_seconds": 0.001732062999963091,
35
+ "read_seconds": 0.002349199000036606,
36
+ "tokens_per_second": 1206672.263377472,
37
+ "note": "Bounded fresh sample; full-page latency is an extrapolation.",
38
+ "estimated_pages_for_buffer": 1,
39
+ "required_token_positions_per_second": 9856.74576720301,
40
+ "required_pages_per_second_upper_estimate": 0.003932003258019391
41
+ },
42
+ {
43
+ "source": "openmath",
44
+ "rows": 256,
45
+ "tokens": 270174,
46
+ "bytes": 90063,
47
+ "generation_seconds": 0.6564187429999038,
48
+ "write_seconds": 0.002473517999987962,
49
+ "read_seconds": 0.0032515120000198294,
50
+ "tokens_per_second": 410042.7581134458,
51
+ "note": "Bounded fresh sample; full-page latency is an extrapolation.",
52
+ "estimated_pages_for_buffer": 1,
53
+ "required_token_positions_per_second": 19713.49153440602,
54
+ "required_pages_per_second_upper_estimate": 0.004560369320883491
55
+ },
56
+ {
57
+ "source": "ultra_qa",
58
+ "rows": 256,
59
+ "tokens": 1026361,
60
+ "bytes": 365167,
61
+ "generation_seconds": 0.46967248600003586,
62
+ "write_seconds": 0.004728889000034542,
63
+ "read_seconds": 0.0050225659999796335,
64
+ "tokens_per_second": 2163486.5624068812,
65
+ "note": "Bounded fresh sample; full-page latency is an extrapolation.",
66
+ "estimated_pages_for_buffer": 1,
67
+ "required_token_positions_per_second": 29570.23730160903,
68
+ "required_pages_per_second_upper_estimate": 0.0018006723086229548
69
+ },
70
+ {
71
+ "source": "ultra_style",
72
+ "rows": 256,
73
+ "tokens": 811870,
74
+ "bytes": 338806,
75
+ "generation_seconds": 0.5208254859999215,
76
+ "write_seconds": 0.004081093000081637,
77
+ "read_seconds": 0.004787273000033565,
78
+ "tokens_per_second": 1546694.2737633225,
79
+ "note": "Bounded fresh sample; full-page latency is an extrapolation.",
80
+ "estimated_pages_for_buffer": 1,
81
+ "required_token_positions_per_second": 29570.23730160903,
82
+ "required_pages_per_second_upper_estimate": 0.0022763987231337094
83
+ },
84
+ {
85
+ "source": "cortex",
86
+ "rows": 128,
87
+ "tokens": 80537,
88
+ "bytes": 22745,
89
+ "generation_seconds": 0.07537080299994159,
90
+ "write_seconds": 0.003962095000019872,
91
+ "read_seconds": 0.042780299000014566,
92
+ "tokens_per_second": 1015177.8395898147,
93
+ "note": "Bounded fresh sample; full-page latency is an extrapolation.",
94
+ "estimated_pages_for_buffer": 23,
95
+ "required_token_positions_per_second": 29570.23730160903,
96
+ "required_pages_per_second_upper_estimate": 0.36716338206798155
97
+ }
98
+ ],
99
+ "gpu_measurement": "Selected forward/backward estimate; replaced by live successful update timings.",
100
+ "layout": "Logical pages unchanged; multiple pages per immutable TAR shard.",
101
+ "candidate_shard_mib": [
102
+ 16,
103
+ 32,
104
+ 64,
105
+ 128,
106
+ 256
107
+ ],
108
+ "local_shard_size_benchmark": [
109
+ {
110
+ "target_mib": 16,
111
+ "actual_bytes": 16107520,
112
+ "pages": 6,
113
+ "packing_seconds": 0.03508346299997811,
114
+ "read_seconds": 0.0015898530000413302,
115
+ "io_bytes_per_second": 439216350.1111124,
116
+ "target_reached": true
117
+ },
118
+ {
119
+ "target_mib": 32,
120
+ "actual_bytes": 18657280,
121
+ "pages": 8,
122
+ "packing_seconds": 0.04401178199998412,
123
+ "read_seconds": 0.0016850460000341627,
124
+ "io_bytes_per_second": 408283918.5247723,
125
+ "target_reached": false
126
+ },
127
+ {
128
+ "target_mib": 64,
129
+ "actual_bytes": 18657280,
130
+ "pages": 8,
131
+ "packing_seconds": 0.04403130000002875,
132
+ "read_seconds": 0.0015284270000393008,
133
+ "io_bytes_per_second": 409512550.4148024,
134
+ "target_reached": false
135
+ },
136
+ {
137
+ "target_mib": 128,
138
+ "actual_bytes": 18657280,
139
+ "pages": 8,
140
+ "packing_seconds": 0.04190044699998907,
141
+ "read_seconds": 0.001583749000019452,
142
+ "io_bytes_per_second": 429058870.0316856,
143
+ "target_reached": false
144
+ },
145
+ {
146
+ "target_mib": 256,
147
+ "actual_bytes": 18657280,
148
+ "pages": 8,
149
+ "packing_seconds": 0.042332877000035296,
150
+ "read_seconds": 0.0015621619999137693,
151
+ "io_bytes_per_second": 425043021.37700915,
152
+ "target_reached": false
153
+ }
154
+ ],
155
+ "shard_benchmark_scope": "Local packing/read measurements; upload capacity measured only on real data commits. Targets larger than available pages are sample-limited.",
156
+ "estimated_fresh_generation_batch_seconds": 0.1434574083060457,
157
+ "selected": {
158
+ "prefetch_batches": 65,
159
+ "prefetch_capacity_limit": 512,
160
+ "batch_memory_estimate_bytes": 688946,
161
+ "producer_batch_seconds": 2.3582960475177965,
162
+ "producer_p95_seconds": 17.862166522000052,
163
+ "gpu_update_seconds": 0.9349941874999956,
164
+ "producer_batches_per_second": 0.4240349726458394,
165
+ "gpu_batches_per_second": 1.06952536536491,
166
+ "producer_headroom": 0.39647023472057946,
167
+ "sustainable": false,
168
+ "buffer_seconds": 60.774622187499716,
169
+ "buffer_drain_seconds": 100.69863274989008,
170
+ "shard_target_mib": 32,
171
+ "upload_pages_per_commit": 15,
172
+ "max_pending_pages": 1842,
173
+ "generation_bytes_per_second": 1035119.2626246791,
174
+ "upload_bytes_per_second": 6146691.738378885,
175
+ "upload_sustainable": true,
176
+ "logical_page_rows": 4096,
177
+ "logical_cortex_page_rows": 128,
178
+ "estimated_full_shards_per_hour": 111.0562487080349,
179
+ "selection_policy": "Smallest shard within 90% of measured local peak, enlarged to amortize 30 seconds of measured page production; bounded to 256 MiB."
180
+ },
181
+ "upload_measurements": [
182
+ {
183
+ "seconds": 0.8211703489999991,
184
+ "bytes": 5047481,
185
+ "pages": 1,
186
+ "shards": 1
187
+ }
188
+ ],
189
+ "cache_key": {
190
+ "version": 1,
191
+ "kind": "data",
192
+ "gpu": {
193
+ "name": "NVIDIA RTX PRO 6000 Blackwell Server Edition",
194
+ "total_memory": 101975851008,
195
+ "capability": [
196
+ 12,
197
+ 0
198
+ ]
199
+ },
200
+ "torch": "2.8.0+cu128",
201
+ "cuda": "12.8",
202
+ "python": "3.13.11",
203
+ "packages": {
204
+ "transformers": "4.57.1",
205
+ "numpy": "2.2.6",
206
+ "pyarrow": "21.0.0",
207
+ "huggingface_hub": "0.36.0"
208
+ },
209
+ "settings": {
210
+ "context": 2048,
211
+ "global_batch": 90,
212
+ "page_rows": 4096,
213
+ "cortex_page_rows": 128,
214
+ "mix": {
215
+ "climbmix": 40,
216
+ "ultra_qa": 15,
217
+ "ultra_style": 15,
218
+ "cortex": 15,
219
+ "openmath": 10,
220
+ "rewrite6": 5
221
+ },
222
+ "cpu_threads": 4
223
+ },
224
+ "source": "f8722b66ff2f92bca174f36564336149e85c65c48b964d05ff3a4d5d85da308f",
225
+ "cpu": "unknown",
226
+ "cpu_count": 20,
227
+ "microbatch": 86
228
+ },
229
+ "cache_reused": false
230
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<bos>",
3
+ "eos_token": "<eos>",
4
+ "pad_token": "<pad>"
5
+ }
tokenization_byte.py ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import os
3
+ from transformers import PreTrainedTokenizer
4
+
5
+
6
+ BYTE_PREFIX = "<0x"
7
+ PAD_TOKEN = "<pad>"
8
+ BOS_TOKEN = "<bos>"
9
+ EOS_TOKEN = "<eos>"
10
+
11
+
12
+ class ByteTokenizer(PreTrainedTokenizer):
13
+ """Lossless UTF-8 byte tokenizer used by Qwen90M.
14
+
15
+ IDs:
16
+ 0..255 -> raw byte values
17
+ 256 -> PAD
18
+ 257 -> BOS
19
+ 258 -> EOS
20
+
21
+ No UNK token is required because every UTF-8 string is representable as bytes.
22
+ """
23
+
24
+ vocab_files_names = {"vocab_file": "byte_vocab.json"}
25
+ model_input_names = ["input_ids", "attention_mask"]
26
+
27
+ def __init__(
28
+ self,
29
+ vocab_file=None,
30
+ pad_token=PAD_TOKEN,
31
+ bos_token=BOS_TOKEN,
32
+ eos_token=EOS_TOKEN,
33
+ unk_token=None,
34
+ model_max_length=1024,
35
+ padding_side="left",
36
+ clean_up_tokenization_spaces=False,
37
+ **kwargs,
38
+ ):
39
+ # Transformers v5 loads values from tokenizer_config.json into this
40
+ # constructor. Make every value that we also forward to PythonBackend
41
+ # an explicit argument so it is consumed exactly once instead of being
42
+ # duplicated inside **kwargs.
43
+ self.vocab_file = vocab_file
44
+ kwargs.setdefault("split_special_tokens",True)
45
+ super().__init__(
46
+ pad_token=pad_token,
47
+ bos_token=bos_token,
48
+ eos_token=eos_token,
49
+ unk_token=unk_token,
50
+ model_max_length=model_max_length,
51
+ padding_side=padding_side,
52
+ clean_up_tokenization_spaces=clean_up_tokenization_spaces,
53
+ **kwargs,
54
+ )
55
+
56
+ @property
57
+ def vocab_size(self):
58
+ return 259
59
+
60
+ def get_vocab(self):
61
+ vocab = {f"<0x{i:02X}>": i for i in range(256)}
62
+ vocab[PAD_TOKEN] = 256
63
+ vocab[BOS_TOKEN] = 257
64
+ vocab[EOS_TOKEN] = 258
65
+ return vocab
66
+
67
+ def _tokenize(self, text, **kwargs):
68
+ return [f"<0x{b:02X}>" for b in text.encode("utf-8", errors="replace")]
69
+
70
+ def _convert_token_to_id(self, token):
71
+ if token == PAD_TOKEN:
72
+ return 256
73
+ if token == BOS_TOKEN:
74
+ return 257
75
+ if token == EOS_TOKEN:
76
+ return 258
77
+ if isinstance(token, str) and token.startswith(BYTE_PREFIX) and token.endswith(">"):
78
+ try:
79
+ value = int(token[3:-1], 16)
80
+ if 0 <= value <= 255:
81
+ return value
82
+ except ValueError:
83
+ pass
84
+ # This branch should be unreachable for text encoded by this tokenizer.
85
+ return 0
86
+
87
+ def _convert_id_to_token(self, index):
88
+ index = int(index)
89
+ if 0 <= index <= 255:
90
+ return f"<0x{index:02X}>"
91
+ if index == 256:
92
+ return PAD_TOKEN
93
+ if index == 257:
94
+ return BOS_TOKEN
95
+ if index == 258:
96
+ return EOS_TOKEN
97
+ return "<0x00>"
98
+
99
+ def convert_tokens_to_string(self, tokens):
100
+ out = []
101
+ buf = bytearray()
102
+
103
+ def flush():
104
+ nonlocal buf
105
+ if buf:
106
+ out.append(bytes(buf).decode("utf-8", errors="replace"))
107
+ buf = bytearray()
108
+
109
+ for token in tokens:
110
+ idx = self._convert_token_to_id(token)
111
+ if isinstance(token, str) and 0 <= idx <= 255 and token.startswith(BYTE_PREFIX):
112
+ buf.append(idx)
113
+ else:
114
+ flush()
115
+ out.append(str(token))
116
+ flush()
117
+ return "".join(out)
118
+
119
+ def build_inputs_with_special_tokens(self, token_ids_0, token_ids_1=None):
120
+ # BET pretraining did not automatically insert BOS/EOS around ordinary text.
121
+ if token_ids_1 is None:
122
+ return list(token_ids_0)
123
+ return list(token_ids_0) + list(token_ids_1)
124
+
125
+ def create_token_type_ids_from_sequences(self, token_ids_0, token_ids_1=None):
126
+ n = len(token_ids_0) + (len(token_ids_1) if token_ids_1 is not None else 0)
127
+ return [0] * n
128
+
129
+ def save_vocabulary(self, save_directory, filename_prefix=None):
130
+ os.makedirs(save_directory, exist_ok=True)
131
+ name = "byte_vocab.json" if filename_prefix is None else f"{filename_prefix}-byte_vocab.json"
132
+ path = os.path.join(save_directory, name)
133
+ vocab = {f"<0x{i:02X}>": i for i in range(256)}
134
+ vocab.update({PAD_TOKEN: 256, BOS_TOKEN: 257, EOS_TOKEN: 258})
135
+ with open(path, "w", encoding="utf-8") as f:
136
+ json.dump(vocab, f, indent=2, sort_keys=True)
137
+ return (path,)
138
+
tokenizer_config.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "256": {
4
+ "content": "<pad>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "257": {
12
+ "content": "<bos>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "258": {
20
+ "content": "<eos>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ }
27
+ },
28
+ "auto_map": {
29
+ "AutoTokenizer": [
30
+ "tokenization_byte.ByteTokenizer",
31
+ null
32
+ ]
33
+ },
34
+ "bos_token": "<bos>",
35
+ "clean_up_tokenization_spaces": false,
36
+ "eos_token": "<eos>",
37
+ "extra_special_tokens": {},
38
+ "model_max_length": 2048,
39
+ "pad_token": "<pad>",
40
+ "padding_side": "left",
41
+ "split_special_tokens": true,
42
+ "tokenizer_class": "ByteTokenizer",
43
+ "unk_token": null
44
+ }
trainer.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:21aa2cccd888f3918a44b02c1ad179a74c9924c4304886988affaf97c4132422
3
+ size 340197
training_config.json ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_repo": "appvoid/void-byte",
3
+ "data_repo": "appvoid/void-byte-data",
4
+ "run_name": "void-byte-v1",
5
+ "context": 2048,
6
+ "global_batch": 90,
7
+ "micro_batch": 86,
8
+ "microbatch_candidates": [
9
+ 8,
10
+ 16,
11
+ 32,
12
+ 48,
13
+ 64,
14
+ 72,
15
+ 76,
16
+ 80,
17
+ 86,
18
+ 90
19
+ ],
20
+ "batch_selection": "max_batch",
21
+ "allow_global_batch_change": true,
22
+ "max_update_retries": 16,
23
+ "fp32_micro_batch": 2,
24
+ "min_recovery_lr_factor": 0.015625,
25
+ "eval_generation_families": 12,
26
+ "eval_max_new_tokens": 192,
27
+ "mix": {
28
+ "climbmix": 40,
29
+ "ultra_qa": 15,
30
+ "ultra_style": 15,
31
+ "cortex": 15,
32
+ "openmath": 10,
33
+ "rewrite6": 5
34
+ },
35
+ "lr": 0.0003,
36
+ "warmup_steps": 1000,
37
+ "max_steps": null,
38
+ "min_lr_ratio": 0.1,
39
+ "weight_decay": 0.1,
40
+ "grad_clip": 1.0,
41
+ "seed": 20260925,
42
+ "save_every": 5000,
43
+ "eval_every": 5000,
44
+ "log_every": 100,
45
+ "gradient_checkpointing": false,
46
+ "cpu_threads": 4,
47
+ "page_rows": 4096,
48
+ "cortex_page_rows": 128,
49
+ "prefetch_batches": 65,
50
+ "prefetch_low_water": 32,
51
+ "memory_pages": 12,
52
+ "cache_gb": 20,
53
+ "force_rebenchmark": false,
54
+ "scheduler_benchmark_batches": 8,
55
+ "scheduler_buffer_seconds": 60,
56
+ "scheduler_max_prefetch_gb": 1.0,
57
+ "scheduler_max_batches": 512,
58
+ "scheduler_safety": 1.5,
59
+ "scheduler_update_every": 100,
60
+ "shard_target_mib": 64,
61
+ "data_upload_pages": 32,
62
+ "data_upload_seconds": 120,
63
+ "data_upload_max_pending": 256,
64
+ "metrics_upload_every": 100,
65
+ "compile_model": true,
66
+ "benchmark_compile": true,
67
+ "autotune_microbatch": true,
68
+ "attention_backend": "flash",
69
+ "vram_fraction": 0.95,
70
+ "upload": true,
71
+ "hub_resume": true,
72
+ "work_dir": "/marimo/qwen90m_workspace/runs/void-byte-v1",
73
+ "data_recipe": "c0b0679d54277afcf4c85726fd0998265697a759188400782be4a859641ba658",
74
+ "trainer_recipe": "bc45094ca6fe6129cd1201f38cc5978b80014fa21be8d01ea684cb56d8d1644b"
75
+ }