iskhare commited on
Commit
925b72e
·
verified ·
1 Parent(s): d5ca357

Save 13.5B generator checkpoint and corrected FP32 evaluation results

Browse files

Generator step 12875 with matching final tokenizer, resumable state, standalone exports, configs, SHA-256 manifest, and 640 corrected evaluation samples. Gen PPL 174.96 +/- 3.43; FP32 GPT-2 Large, TF32 disabled.

Files changed (24) hide show
  1. iclr-debug-two-stage-135b-20260916/generator/README.md +19 -0
  2. iclr-debug-two-stage-135b-20260916/generator/backup-manifest-step-12875.json +184 -0
  3. iclr-debug-two-stage-135b-20260916/generator/config.yaml +223 -0
  4. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/EVAL_DONE.json +1 -0
  5. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/README.md +18 -0
  6. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/comparison-to-step-6000.json +14 -0
  7. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluation-precision-fix.patch +39 -0
  8. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluator-provenance.json +6 -0
  9. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.json +0 -0
  10. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.samples.json +0 -0
  11. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.json +0 -0
  12. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.samples.json +0 -0
  13. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.json +0 -0
  14. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.samples.json +0 -0
  15. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.json +0 -0
  16. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.samples.json +0 -0
  17. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.json +0 -0
  18. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.samples.json +0 -0
  19. iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/summary.json +38 -0
  20. iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp-config.yaml +179 -0
  21. iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp.pt +3 -0
  22. iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae-config.yaml +117 -0
  23. iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae.pt +3 -0
  24. iclr-debug-two-stage-135b-20260916/generator/milestone-iter-12875.pt +3 -0
iclr-debug-two-stage-135b-20260916/generator/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Two-stage generator — 13.5B checkpoint
2
+
3
+ Run `iclr-debug-two-stage-135b-20260916`, generator step **12,875**: **13,500,416,000 input positions**. The generator uses the frozen **final step-128747 tokenizer** from this run, not the tokenizer selected at step 13000.
4
+
5
+ ## Files
6
+
7
+ - [Full resumable generator checkpoint](milestone-iter-12875.pt): generator + frozen tokenizer state, optimizer/scheduler, per-rank RNG state and training configuration.
8
+ - [Generator weights](exports/step-12875/ncp.pt) and [matching tokenizer weights](exports/step-12875/vqvae.pt).
9
+ - [Generator export configuration](exports/step-12875/ncp-config.yaml), [tokenizer export configuration](exports/step-12875/vqvae-config.yaml), and [training configuration](config.yaml).
10
+ - [Corrected evaluation report and samples](evaluation/step-12875-fp32/README.md).
11
+ - [File checksums and provenance](backup-manifest-step-12875.json).
12
+
13
+ ## Corrected evaluation
14
+
15
+ **Generation PPL 174.96 ± 3.43** (standard error across five seed means); mean within-sample token entropy **4.451 nats**. All **640 samples** scored (five seeds ×128), using GPT-2 Large in FP32 with TF32 disabled. Sampling is temperature 1 without top-k/top-p truncation and conditions on the true level-zero code; it is not strictly unconditional generation.
16
+
17
+ Compared with corrected checkpoint 6000 evaluation (PPL 254.71 ±6.38), measured PPL is 31.3% lower under the same protocol. The initial scheduled evaluation had TF32 enabled; only the corrected rerun is included here. The precision fix is preserved with the results.
18
+
19
+ Exported `.pt` files contain `model`, `args`, `step`, and source metadata. Configuration paths describe the original run environment; when evaluating downloaded exports, override the codec path with the downloaded `vqvae.pt` path. No training dataset files are included.
iclr-debug-two-stage-135b-20260916/generator/backup-manifest-step-12875.json ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "repo": "iskhare/iclr-debug",
3
+ "run": "iclr-debug-two-stage-135b-20260916",
4
+ "stage": "generator",
5
+ "checkpoint_step": 12875,
6
+ "input_positions": 13500416000,
7
+ "nonpadding_tokens": 13500199164,
8
+ "frozen_tokenizer_step": 128747,
9
+ "git_provenance": {
10
+ "commit": "1b5226d4bbdd34653cb5fdd58d436355fb76ac8c"
11
+ },
12
+ "evaluation": {
13
+ "protocol": {
14
+ "sampling": "random",
15
+ "temperature": 1.0,
16
+ "top_k": 0,
17
+ "top_p": 1.0,
18
+ "n_provided_levels": 1,
19
+ "n_levels": 16,
20
+ "document_aware_validation_sampling": true
21
+ },
22
+ "reference_model": "gpt2-large",
23
+ "checkpoint": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp.pt",
24
+ "checkpoint_step": 12875,
25
+ "seeds": [
26
+ 0,
27
+ 1,
28
+ 2,
29
+ 3,
30
+ 4
31
+ ],
32
+ "samples_per_seed": 128,
33
+ "total_scored_samples": 640,
34
+ "total_scored_tokens": 160606,
35
+ "per_seed_mean_ppl": {
36
+ "0": 174.84999848898158,
37
+ "1": 175.7877408538115,
38
+ "2": 181.86846905478473,
39
+ "3": 180.03543569697817,
40
+ "4": 162.28073772742675
41
+ },
42
+ "mean_gen_ppl": 174.96447636439655,
43
+ "gen_ppl_se": 3.427446856160439,
44
+ "mean_of_seed_median_ppl": 176.59298400878907,
45
+ "mean_entropy_nats": 4.4512376085625265,
46
+ "reference_dtype": "float32",
47
+ "tf32_allowed": false,
48
+ "training_continued_during_evaluation": true
49
+ },
50
+ "files": [
51
+ {
52
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/milestone-iter-12875.pt",
53
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/milestone-iter-12875.pt",
54
+ "size_bytes": 2565487435,
55
+ "sha256": "fefa9b7bf94073fe1f4145462c8fd497bf2f6a5dd9bfe611bada5b1b1658942f"
56
+ },
57
+ {
58
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/hf-generator-backup-step-12875/training-config.yaml",
59
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/config.yaml",
60
+ "size_bytes": 4572,
61
+ "sha256": "b72db37de5c634702e488e7f582115543c1ed551a01e1a4cef078a6d9dff2cc8"
62
+ },
63
+ {
64
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp.pt",
65
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp.pt",
66
+ "size_bytes": 427469662,
67
+ "sha256": "b0873bffc3887af02e0c889c9c05addb5ee394dc808f5cf65bf291a3141530b3"
68
+ },
69
+ {
70
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/hf-generator-backup-step-12875/ncp-config.yaml",
71
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp-config.yaml",
72
+ "size_bytes": 3528,
73
+ "sha256": "074aa573fc2402d4c77a27768b3b0760024469c234661d027949ce1cbbc23801"
74
+ },
75
+ {
76
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae.pt",
77
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae.pt",
78
+ "size_bytes": 1300864085,
79
+ "sha256": "482c95118ff9140d0fd68bf78871d3fb9e69f89c3acc850d8d94a6d70cca7177"
80
+ },
81
+ {
82
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/hf-generator-backup-step-12875/vqvae-config.yaml",
83
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae-config.yaml",
84
+ "size_bytes": 2204,
85
+ "sha256": "446865d8f1ecb472b2296e4a84b478b5893687638ac54c5926f090aa70e109b1"
86
+ },
87
+ {
88
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/summary.json",
89
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/summary.json",
90
+ "size_bytes": 969,
91
+ "sha256": "f677d9e6853198e694f03243866c2e0ef6956fcff661b1d6fe61e5f57e285040"
92
+ },
93
+ {
94
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/comparison-to-step-6000.json",
95
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/comparison-to-step-6000.json",
96
+ "size_bytes": 463,
97
+ "sha256": "0f6f08fbfb9bfd62636471c9af46c044dfb882ede8ae2695742b6cb5bbb33f72"
98
+ },
99
+ {
100
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/EVAL_DONE.json",
101
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/EVAL_DONE.json",
102
+ "size_bytes": 105,
103
+ "sha256": "1cff9a3bb595bc1a454616baae36cf3eeb1188017eb657a64480b9296123dfd5"
104
+ },
105
+ {
106
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluator-provenance.json",
107
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluator-provenance.json",
108
+ "size_bytes": 280,
109
+ "sha256": "f9c37941224a165b45cbb4bfe8f63cb2dff63d95e6f2d524ecfa82c66c9585a1"
110
+ },
111
+ {
112
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluation-precision-fix.patch",
113
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluation-precision-fix.patch",
114
+ "size_bytes": 1485,
115
+ "sha256": "7a7dd0e7464c8b4ffd65fec1c297110a620e97a96fe6f5ed7142aea546848fb4"
116
+ },
117
+ {
118
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.json",
119
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.json",
120
+ "size_bytes": 139932,
121
+ "sha256": "d14b7bc73e05fc6c8c3c5bae939f3bb3da1db3736661c5385648f0b1ff315209"
122
+ },
123
+ {
124
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.samples.json",
125
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.samples.json",
126
+ "size_bytes": 140314,
127
+ "sha256": "ee59620cef6d3685536a353c0e587d9fcc275d4242fb04b406b173dee3d0041f"
128
+ },
129
+ {
130
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.json",
131
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.json",
132
+ "size_bytes": 141028,
133
+ "sha256": "9fe4b4044ae6fb8ececbd31c0e87b90784495aceb3075262a2706b94f5527963"
134
+ },
135
+ {
136
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.samples.json",
137
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.samples.json",
138
+ "size_bytes": 141409,
139
+ "sha256": "f6c0cc7941171aa49e0250d07571dd89d451d0437345664075a0f47c8452f054"
140
+ },
141
+ {
142
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.json",
143
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.json",
144
+ "size_bytes": 142319,
145
+ "sha256": "e73da22610d9697a3a683867324e2da56c2a44c9d44b0f633c9a2d519697d6a3"
146
+ },
147
+ {
148
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.samples.json",
149
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.samples.json",
150
+ "size_bytes": 142700,
151
+ "sha256": "9e89e0ea0ceeca39f056e1b1a95f0c24ed2ba744a3ffdd7e22536c5b7a733882"
152
+ },
153
+ {
154
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.json",
155
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.json",
156
+ "size_bytes": 138849,
157
+ "sha256": "de5d41317ba91216645ef38e5e2708c2e9145d6291e1161e1202787e496879f7"
158
+ },
159
+ {
160
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.samples.json",
161
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.samples.json",
162
+ "size_bytes": 139230,
163
+ "sha256": "9b036f446f738e639b48a8ae840d4a2b65f36626a07bcdc7c78dfb0751c82bd6"
164
+ },
165
+ {
166
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.json",
167
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.json",
168
+ "size_bytes": 142436,
169
+ "sha256": "1fbdae18629d0ca026bbd739c6986812812f30debccc960ed227f3da56ef0da2"
170
+ },
171
+ {
172
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.samples.json",
173
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.samples.json",
174
+ "size_bytes": 142817,
175
+ "sha256": "d1a22e35e30f21eaf09d1d3202a944b501c25b519d27a2358d75b18c959b7f5a"
176
+ },
177
+ {
178
+ "local_path": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/hf-generator-backup-step-12875/evaluation-README.md",
179
+ "repo_path": "iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/README.md",
180
+ "size_bytes": 1603,
181
+ "sha256": "80c1bfba607c579138a913fce6fcb39f7828ed4fe3966a91bd1de034a265f104"
182
+ }
183
+ ]
184
+ }
iclr-debug-two-stage-135b-20260916/generator/config.yaml ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ task: mstok-next-concept
2
+ experiment: iclr-debug-two-stage-135b-20260916-generator
3
+ experiment_dir: /home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator
4
+ dataset:
5
+ train_source: /home/ubuntu/data/full_owt/train_gpt2.bin
6
+ validate_source: /home/ubuntu/data/full_owt/valid_gpt2.bin
7
+ pad_token_id: 50257
8
+ pre_tokenizer:
9
+ name: hf
10
+ tokenizer: hf
11
+ model_id: gpt2
12
+ special_tokens:
13
+ eos_token: <|endoftext|>
14
+ pad_token: <|pad|>
15
+ codec:
16
+ n_layers: 6
17
+ context_length: 256
18
+ embed_dim: 384
19
+ in_vocab_size: 50304
20
+ vqvae_vocab_size:
21
+ - 16384
22
+ - 16384
23
+ - 16384
24
+ - 16384
25
+ - 16384
26
+ - 16384
27
+ - 16384
28
+ - 16384
29
+ - 16384
30
+ - 16384
31
+ - 16384
32
+ - 16384
33
+ - 16384
34
+ - 16384
35
+ - 16384
36
+ - 16384
37
+ compression_factor: 1
38
+ dropout: 0.1
39
+ pre_quant_groupnorm: 4
40
+ pre_quant_dropout: 0.2
41
+ vector_quantizer_config:
42
+ clss: multiscale_residual_vector_quantizer
43
+ decay: 0.99
44
+ epsilon: 1.0e-05
45
+ commitment_cost: 0.25
46
+ learned_l1_sampling: true
47
+ learned_all_sampling: false
48
+ quant_resi:
49
+ enabled: true
50
+ ratio: 0.5
51
+ share_mode: 0
52
+ learnable_ratio: false
53
+ levels:
54
+ use_manual_levels: true
55
+ manual_levels:
56
+ - 1
57
+ - 4
58
+ - 9
59
+ - 16
60
+ - 25
61
+ - 36
62
+ - 49
63
+ - 64
64
+ - 81
65
+ - 100
66
+ - 121
67
+ - 144
68
+ - 169
69
+ - 196
70
+ - 225
71
+ - 256
72
+ aux:
73
+ fine_drop:
74
+ prob: 0.5
75
+ min_keep: 1
76
+ generator:
77
+ n_layer: 12
78
+ n_head: 12
79
+ bias: true
80
+ dropout: 0.1
81
+ n_embd: 768
82
+ context_length: 256
83
+ vocab_size:
84
+ - 16384
85
+ - 16384
86
+ - 16384
87
+ - 16384
88
+ - 16384
89
+ - 16384
90
+ - 16384
91
+ - 16384
92
+ - 16384
93
+ - 16384
94
+ - 16384
95
+ - 16384
96
+ - 16384
97
+ - 16384
98
+ - 16384
99
+ attn_pattern: block_diagonal
100
+ use_positional_encoding: true
101
+ use_level_encoding: true
102
+ prefix_len: 0
103
+ use_rope: true
104
+ rope_base: 10000
105
+ use_qk_norm: true
106
+ post_upsample_conv:
107
+ enabled: true
108
+ kernel_size: 3
109
+ use_relu2: true
110
+ use_flex_attention: true
111
+ shared_output_head: true
112
+ shared_head_per_level_bias: false
113
+ shared_head_per_level_scale: false
114
+ shared_head_adapter_rank: 0
115
+ objectives:
116
+ codec_weight: 1.0
117
+ ncp_weight: 1.0
118
+ soft_assignment_temperature: 1.0
119
+ prediction_temperature: 1.0
120
+ mstok_weight: 0.25
121
+ residual_weight: 1.0
122
+ reconstruction_weight: 1.0
123
+ teacher_ema_decay: 0.999
124
+ teacher_ema_warmup_steps: 1000
125
+ mstok_warmup_steps: 500
126
+ optimization:
127
+ codec_lr: 0.001
128
+ codec_min_lr: 0.0001
129
+ codec_warmup_iters: 0
130
+ codec_lr_decay_iters: 128747
131
+ generator_lr: 0.0005
132
+ generator_min_lr: 1.0e-05
133
+ generator_warmup_iters: 225
134
+ generator_lr_decay_iters: 128747
135
+ beta_1: 0.9
136
+ codec_beta_2: 0.99
137
+ generator_beta_2: 0.99
138
+ weight_decay: 0.1
139
+ max_grad_norm: 1.0
140
+ level_loss_alpha: 1.0
141
+ grad_accumulation_steps: 16
142
+ corruption:
143
+ mode: per_level
144
+ per_level_probs:
145
+ - 0.85
146
+ - 0.8321428571
147
+ - 0.8142857143
148
+ - 0.7964285714
149
+ - 0.7785714286
150
+ - 0.7607142857
151
+ - 0.7428571429
152
+ - 0.725
153
+ - 0.7071428571
154
+ - 0.6892857143
155
+ - 0.6714285714
156
+ - 0.6535714286
157
+ - 0.6357142857
158
+ - 0.6178571429
159
+ - 0.6
160
+ skip_level0: true
161
+ training:
162
+ log_interval: 10
163
+ eval_interval: 1000
164
+ checkpoint_interval: 1000
165
+ eval_batch_size: 4
166
+ val_iters: 25
167
+ keep_last: 3
168
+ seed: 55
169
+ codec_initialization_seed: 42
170
+ generator_initialization_seed: 55
171
+ total_iters: 128747
172
+ batch_size: 32
173
+ expected_world_size: 8
174
+ expected_global_batch_size: 4096
175
+ resume_checkpoint: null
176
+ milestone_steps:
177
+ - 954
178
+ - 4769
179
+ - 12875
180
+ - 25750
181
+ - 51499
182
+ - 77248
183
+ - 102997
184
+ - 128747
185
+ generation_eval_steps:
186
+ - 12875
187
+ - 25750
188
+ - 51499
189
+ - 77248
190
+ - 102997
191
+ - 128747
192
+ torch_compile:
193
+ enable: true
194
+ scope: loss
195
+ mode: default
196
+ dynamic: false
197
+ fullgraph: true
198
+ backend: inductor
199
+ mixed_precision:
200
+ enable: true
201
+ wandb:
202
+ entity: mstok
203
+ project: iclr-debug
204
+ group: full-owt-ctx256-16sq-135b-v1
205
+ enable: true
206
+ id: iclr-debug-two-stage-135b-20260916-generator
207
+ resume: allow
208
+ gradients_and_params:
209
+ enable: false
210
+ log: all
211
+ log_freq: 1000
212
+ export:
213
+ vqvae_config_template: /home/ubuntu/mstok-runs/iclr-debug-two-stage-20260916/config/repro-ctx256/vqvae.yaml
214
+ ncp_config_template: /home/ubuntu/mstok-runs/iclr-debug-two-stage-20260916/config/repro-ctx256/ncp-sharedhead.yaml
215
+ iclr_debug:
216
+ stage: generator
217
+ target_positions: 135000000000
218
+ lr_horizon_positions: 135000000000
219
+ stop_step: 128747
220
+ pilot: false
221
+ tokenizer_checkpoint: /home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/tokenizer/milestone-iter-128747.pt
222
+ tokenizer_steps: 128747
223
+ budget_unit: input positions including padding; log non-padding tokens separately
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/EVAL_DONE.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"step": 12875, "reference_dtype": "float32", "sampling": "supplied-level0-untruncated", "manual": true}
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/README.md ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Generator 13.5B evaluation — step 12,875
2
+
3
+ Corrected manual evaluation completed on 2026-09-17. Training continued during the evaluation.
4
+
5
+ | Checkpoint | Input positions | Mean generation PPL ± seed SE | Mean within-sample token entropy |
6
+ |---|---:|---:|---:|
7
+ | Step 6,000 | 6,291,456,000 | 254.71 ± 6.38 | 4.496 nats |
8
+ | Step 12,875 | 13,500,416,000 | 174.96 ± 3.43 | 4.451 nats |
9
+
10
+ The measured PPL reduction is 31.3%. Both evaluations use the identical corrected evaluator, five seeds × 128 samples, temperature 1, no top-k/top-p truncation, supplied true level-zero code, and FP32 GPT-2 Large with TF32 disabled. All 640 samples scored; no empty samples skipped. Standard error is across five seed means. Generation is conditioned on level zero, rather than strictly unconditional.
11
+
12
+ The frozen tokenizer is the final step-128747 tokenizer. The generator checkpoint is `../../milestone-iter-12875.pt`; standalone components are in `../../exports/step-12875/`.
13
+
14
+ [Aggregate results](summary.json) · [Comparison](comparison-to-step-6000.json)
15
+
16
+ Samples: [seed 0](random-seed-0.samples.json), [seed 1](random-seed-1.samples.json), [seed 2](random-seed-2.samples.json), [seed 3](random-seed-3.samples.json), [seed 4](random-seed-4.samples.json).
17
+
18
+ The original scheduled evaluation had TF32 enabled and is excluded from this upload. These results use the corrected evaluator; every per-seed JSON records `tf32_allowed=false`. The evaluator patch and source provenance are included here. Apply the patch to source commit `1b5226d4bbdd34653cb5fdd58d436355fb76ac8c` to reproduce the precision settings.
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/comparison-to-step-6000.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "earlier_step": 6000,
3
+ "current_step": 12875,
4
+ "earlier_positions": 6291456000,
5
+ "current_positions": 13500416000,
6
+ "earlier_gen_ppl": 254.70812987476478,
7
+ "current_gen_ppl": 174.96447636439655,
8
+ "relative_ppl_reduction_percent": 31.30785560302951,
9
+ "earlier_entropy_nats": 4.496167063090073,
10
+ "current_entropy_nats": 4.4512376085625265,
11
+ "same_protocol_and_evaluator_verified": true,
12
+ "all_seeds_precision_verified": true,
13
+ "total_samples": 640
14
+ }
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluation-precision-fix.patch ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/evaluation/eval_random_gen_ppl_checkpoint.py b/evaluation/eval_random_gen_ppl_checkpoint.py
2
+ index 2d5c741..748d300 100644
3
+ --- a/evaluation/eval_random_gen_ppl_checkpoint.py
4
+ +++ b/evaluation/eval_random_gen_ppl_checkpoint.py
5
+ @@ -22,6 +22,14 @@ from utils.misc import set_manual_seed
6
+ from utils.registry import trainers
7
+
8
+
9
+ +def seed_evaluation(seed, reference_dtype):
10
+ + # The shared seed helper enables TF32, so precision must be set afterward.
11
+ + set_manual_seed(seed)
12
+ + if reference_dtype == "float32":
13
+ + torch.backends.cuda.matmul.allow_tf32 = False
14
+ + torch.backends.cudnn.allow_tf32 = False
15
+ +
16
+ +
17
+ def main():
18
+ parser = argparse.ArgumentParser()
19
+ parser.add_argument("--ckpt", required=True)
20
+ @@ -40,10 +48,6 @@ def main():
21
+ parser.add_argument("--save-all-generations", action="store_true")
22
+ args = parser.parse_args()
23
+
24
+ - if args.ref_dtype == "float32":
25
+ - torch.backends.cuda.matmul.allow_tf32 = False
26
+ - torch.backends.cudnn.allow_tf32 = False
27
+ -
28
+ device = "cuda"
29
+ checkpoint = torch.load(args.ckpt, map_location="cpu", weights_only=False)
30
+ cfg = checkpoint["args"]
31
+ @@ -58,7 +62,7 @@ def main():
32
+ else:
33
+ cfg.optimization.stochastic_encode = {"enabled": False}
34
+
35
+ - set_manual_seed(args.seed)
36
+ + seed_evaluation(args.seed, args.ref_dtype)
37
+ Trainer = hydra.utils.get_class(trainers[cfg.task])
38
+ trainer = Trainer(cfg, device)
39
+ trainer.model.load_state_dict(checkpoint["model"])
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/evaluator-provenance.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "base_commit": "1b5226d4bbdd34653cb5fdd58d436355fb76ac8c",
3
+ "evaluator_sha256": "200a399bcc81981d2e3727bd727e8c11580d34ded05c13d0fdb83bf60e98e596",
4
+ "change": "Apply FP32 TF32 restrictions after the seed helper resets backend flags",
5
+ "training_checkout_unchanged": true
6
+ }
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-0.samples.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-1.samples.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-2.samples.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-3.samples.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/random-seed-4.samples.json ADDED
The diff for this file is too large to render. See raw diff
 
iclr-debug-two-stage-135b-20260916/generator/evaluation/step-12875-fp32/summary.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "protocol": {
3
+ "sampling": "random",
4
+ "temperature": 1.0,
5
+ "top_k": 0,
6
+ "top_p": 1.0,
7
+ "n_provided_levels": 1,
8
+ "n_levels": 16,
9
+ "document_aware_validation_sampling": true
10
+ },
11
+ "reference_model": "gpt2-large",
12
+ "checkpoint": "/home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp.pt",
13
+ "checkpoint_step": 12875,
14
+ "seeds": [
15
+ 0,
16
+ 1,
17
+ 2,
18
+ 3,
19
+ 4
20
+ ],
21
+ "samples_per_seed": 128,
22
+ "total_scored_samples": 640,
23
+ "total_scored_tokens": 160606,
24
+ "per_seed_mean_ppl": {
25
+ "0": 174.84999848898158,
26
+ "1": 175.7877408538115,
27
+ "2": 181.86846905478473,
28
+ "3": 180.03543569697817,
29
+ "4": 162.28073772742675
30
+ },
31
+ "mean_gen_ppl": 174.96447636439655,
32
+ "gen_ppl_se": 3.427446856160439,
33
+ "mean_of_seed_median_ppl": 176.59298400878907,
34
+ "mean_entropy_nats": 4.4512376085625265,
35
+ "reference_dtype": "float32",
36
+ "tf32_allowed": false,
37
+ "training_continued_during_evaluation": true
38
+ }
iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp-config.yaml ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ task: next-concept
2
+ experiment: iclr-debug-two-stage-135b-20260916-generator
3
+ experiment_dir: /home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/exports/step-12875
4
+ model:
5
+ n_layer: 12
6
+ n_head: 12
7
+ bias: true
8
+ dropout: 0.1
9
+ n_embd: 768
10
+ context_length: 256
11
+ vocab_size:
12
+ - 16384
13
+ - 16384
14
+ - 16384
15
+ - 16384
16
+ - 16384
17
+ - 16384
18
+ - 16384
19
+ - 16384
20
+ - 16384
21
+ - 16384
22
+ - 16384
23
+ - 16384
24
+ - 16384
25
+ - 16384
26
+ - 16384
27
+ attn_pattern: block_diagonal
28
+ use_positional_encoding: true
29
+ use_level_encoding: true
30
+ prefix_len: 0
31
+ use_rope: true
32
+ rope_base: 10000
33
+ use_qk_norm: true
34
+ post_upsample_conv:
35
+ enabled: true
36
+ kernel_size: 3
37
+ use_relu2: true
38
+ use_flex_attention: true
39
+ shared_output_head: true
40
+ shared_head_per_level_bias: false
41
+ shared_head_per_level_scale: false
42
+ shared_head_adapter_rank: 0
43
+ tokenizer:
44
+ pre_tokenizer:
45
+ name: hf
46
+ tokenizer: hf
47
+ model_id: gpt2
48
+ special_tokens:
49
+ eos_token: <|endoftext|>
50
+ pad_token: <|pad|>
51
+ vqvae:
52
+ n_layers: 6
53
+ context_length: 256
54
+ embed_dim: 384
55
+ in_vocab_size: 50304
56
+ vqvae_vocab_size:
57
+ - 16384
58
+ - 16384
59
+ - 16384
60
+ - 16384
61
+ - 16384
62
+ - 16384
63
+ - 16384
64
+ - 16384
65
+ - 16384
66
+ - 16384
67
+ - 16384
68
+ - 16384
69
+ - 16384
70
+ - 16384
71
+ - 16384
72
+ - 16384
73
+ compression_factor: 1
74
+ dropout: 0.1
75
+ pre_quant_groupnorm: 4
76
+ pre_quant_dropout: 0.2
77
+ vector_quantizer_config:
78
+ clss: multiscale_residual_vector_quantizer
79
+ decay: 0.99
80
+ epsilon: 1.0e-05
81
+ commitment_cost: 0.25
82
+ learned_l1_sampling: true
83
+ learned_all_sampling: false
84
+ quant_resi:
85
+ enabled: true
86
+ ratio: 0.5
87
+ share_mode: 0
88
+ learnable_ratio: false
89
+ levels:
90
+ use_manual_levels: true
91
+ manual_levels:
92
+ - 1
93
+ - 4
94
+ - 9
95
+ - 16
96
+ - 25
97
+ - 36
98
+ - 49
99
+ - 64
100
+ - 81
101
+ - 100
102
+ - 121
103
+ - 144
104
+ - 169
105
+ - 196
106
+ - 225
107
+ - 256
108
+ aux:
109
+ fine_drop:
110
+ prob: 0.5
111
+ min_keep: 1
112
+ checkpoint_path: /home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae.pt
113
+ dataset:
114
+ train_source: /home/ubuntu/data/full_owt/train_gpt2.bin
115
+ validate_source: /home/ubuntu/data/full_owt/valid_gpt2.bin
116
+ pad_token_id: 50257
117
+ wandb:
118
+ entity: mstok
119
+ project: owt-repro
120
+ group: owtsmall-repro-ctx256-sharedhead-ncp
121
+ enable: false
122
+ id: owtsmall-repro-ctx256-sharedhead-ncp-5ep
123
+ resume: allow
124
+ gradients_and_params:
125
+ enable: false
126
+ log: all
127
+ log_freq: 1000
128
+ optimization:
129
+ lr: 0.0005
130
+ reset_lr: true
131
+ warmup_iters: 300
132
+ lr_decay_iters: null
133
+ min_lr: 1.0e-05
134
+ beta_1: 0.9
135
+ beta_2: 0.99
136
+ weight_decay: 0.1
137
+ max_grad_norm: 1.0
138
+ grad_accumulation_steps: 4
139
+ corruption:
140
+ mode: per_level
141
+ per_level_probs:
142
+ - 0.85
143
+ - 0.8321428571
144
+ - 0.8142857143
145
+ - 0.7964285714
146
+ - 0.7785714286
147
+ - 0.7607142857
148
+ - 0.7428571429
149
+ - 0.725
150
+ - 0.7071428571
151
+ - 0.6892857143
152
+ - 0.6714285714
153
+ - 0.6535714286
154
+ - 0.6357142857
155
+ - 0.6178571429
156
+ - 0.6
157
+ skip_level0: true
158
+ level_loss_alpha: 1.0
159
+ training:
160
+ seed: 55
161
+ log_interval: 10
162
+ eval_interval: 5000
163
+ checkpoint_interval: 2500
164
+ val_iters: 100
165
+ total_iters: null
166
+ tqdm_interval: 10
167
+ n_epochs: 5
168
+ batch_size: 96
169
+ eval_batch_size: 96
170
+ demo_batch_size: 4
171
+ keep_last: 8
172
+ torch_compile:
173
+ enable: false
174
+ mode: default
175
+ dynamic: false
176
+ fullgraph: false
177
+ backend: inductor
178
+ mixed_precision:
179
+ enable: true
iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/ncp.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b0873bffc3887af02e0c889c9c05addb5ee394dc808f5cf65bf291a3141530b3
3
+ size 427469662
iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae-config.yaml ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ task: summarization
2
+ experiment: iclr-debug-two-stage-135b-20260916-generator
3
+ experiment_dir: /home/ubuntu/mstok-results/iclr-debug-two-stage-135b-20260916/generator/exports/step-12875
4
+ training:
5
+ seed: 42
6
+ log_interval: 10
7
+ eval_interval: 10000
8
+ checkpoint_interval: 10000
9
+ val_iters: 100
10
+ n_epochs: 10
11
+ total_iters: null
12
+ tqdm_interval: 10
13
+ batch_size: 256
14
+ eval_batch_size: 128
15
+ demo_batch_size: 4
16
+ model:
17
+ n_layers: 6
18
+ context_length: 256
19
+ embed_dim: 384
20
+ in_vocab_size: 50304
21
+ vqvae_vocab_size:
22
+ - 16384
23
+ - 16384
24
+ - 16384
25
+ - 16384
26
+ - 16384
27
+ - 16384
28
+ - 16384
29
+ - 16384
30
+ - 16384
31
+ - 16384
32
+ - 16384
33
+ - 16384
34
+ - 16384
35
+ - 16384
36
+ - 16384
37
+ - 16384
38
+ compression_factor: 1
39
+ dropout: 0.1
40
+ pre_quant_groupnorm: 4
41
+ pre_quant_dropout: 0.2
42
+ vector_quantizer:
43
+ clss: multiscale_residual_vector_quantizer
44
+ decay: 0.99
45
+ epsilon: 1.0e-05
46
+ commitment_cost: 0.25
47
+ learned_l1_sampling: true
48
+ learned_all_sampling: false
49
+ quant_resi:
50
+ enabled: true
51
+ ratio: 0.5
52
+ share_mode: 0
53
+ learnable_ratio: false
54
+ levels:
55
+ use_manual_levels: true
56
+ manual_levels:
57
+ - 1
58
+ - 4
59
+ - 9
60
+ - 16
61
+ - 25
62
+ - 36
63
+ - 49
64
+ - 64
65
+ - 81
66
+ - 100
67
+ - 121
68
+ - 144
69
+ - 169
70
+ - 196
71
+ - 225
72
+ - 256
73
+ aux:
74
+ fine_drop:
75
+ prob: 0.5
76
+ min_keep: 1
77
+ wandb:
78
+ entity: mstok
79
+ project: owt-repro
80
+ enable: false
81
+ group: owtsmall-repro-ctx256-vqvae
82
+ id: owtsmall-repro-ctx256-vqvae-10ep
83
+ resume: allow
84
+ gradients_and_params:
85
+ enable: false
86
+ log: all
87
+ log_freq: 1000
88
+ optimization:
89
+ lr: 0.001
90
+ lr_decay_iters: null
91
+ min_lr: null
92
+ beta_1: 0.9
93
+ beta_2: 0.99
94
+ weight_decay: 0.1
95
+ max_grad_norm: 1.0
96
+ grad_accumulation_steps: 2
97
+ torch_compile:
98
+ enable: false
99
+ mode: default
100
+ dynamic: false
101
+ fullgraph: false
102
+ backend: inductor
103
+ mixed_precision:
104
+ enable: true
105
+ opt_level: O1
106
+ loss_scale: dynamic
107
+ dataset:
108
+ train_source: /home/ubuntu/data/full_owt/train_gpt2.bin
109
+ validate_source: /home/ubuntu/data/full_owt/valid_gpt2.bin
110
+ pad_token_id: 50257
111
+ pre_tokenizer:
112
+ name: hf
113
+ tokenizer: hf
114
+ model_id: gpt2
115
+ special_tokens:
116
+ eos_token: <|endoftext|>
117
+ pad_token: <|pad|>
iclr-debug-two-stage-135b-20260916/generator/exports/step-12875/vqvae.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:482c95118ff9140d0fd68bf78871d3fb9e69f89c3acc850d8d94a6d70cca7177
3
+ size 1300864085
iclr-debug-two-stage-135b-20260916/generator/milestone-iter-12875.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fefa9b7bf94073fe1f4145462c8fd497bf2f6a5dd9bfe611bada5b1b1658942f
3
+ size 2565487435