CharlieChen commited on
Commit
6873fb8
·
verified ·
1 Parent(s): ea126db

Add original paper ladder checkpoint and evaluation metadata

Browse files
Files changed (4) hide show
  1. README.md +60 -0
  2. SHA256SUMS +1 -0
  3. final.pt +3 -0
  4. result.json +115 -0
README.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ tags:
5
+ - looped-transformer
6
+ - scaling-laws
7
+ - pytorch
8
+ - base-model
9
+ datasets:
10
+ - HuggingFaceFW/fineweb
11
+ pipeline_tag: text-generation
12
+ ---
13
+
14
+ # loop-grow-d12
15
+
16
+ Loop Grow, depth coordinate **d12**, from **How Model Growth, Recursion, and Boundary Operators Influence Scaling Exponents**.
17
+
18
+ This is the original final checkpoint used by the paper's FineWeb scaling ladder. It contains 494,272,512 stored parameters in FP32 (1.977 GB). This is a pretrained base language model, without instruction tuning. The checkpoint preserves the original training artifact and does not contain optimizer state for resuming training.
19
+
20
+ | Setting | Value |
21
+ | --- | --- |
22
+ | Training corpus | FineWeb |
23
+ | Tokenizer | GPT-2 (`tiktoken.get_encoding("gpt2")`) |
24
+ | Vocabulary | 50,257 tokens, padded to 50,304 model rows |
25
+ | Context length | 2,048 |
26
+ | Width | 1536 |
27
+ | Attention heads | 12 |
28
+ | Model depth mode | `loop` |
29
+ | Configured core repetitions | 4 |
30
+ | Final evaluation repetitions | 4 |
31
+ | Pretraining validation NLL | 2.918357 nats/token |
32
+
33
+ The depth coordinate is the ladder's scaling coordinate; it need not equal the number of executed Transformer blocks. `result.json` provides the model configuration, parameter counts, training settings, and recorded validation metrics. Validation NLL is measured on the pretraining corpus and is distinct from CORE answer NLL.
34
+
35
+ ## Files
36
+
37
+ - `final.pt`: original PyTorch checkpoint, including learned weights and training arguments.
38
+ - `result.json`: portable training metadata for reconstructing the model.
39
+ - `SHA256SUMS`: checksum of the original checkpoint.
40
+
41
+ ## Evaluation
42
+
43
+ Use the paper's codebase at [cue-engineering/loop](https://github.com/cue-engineering/loop), install its dependencies, and download this repository's files:
44
+
45
+ ```python
46
+ from huggingface_hub import snapshot_download
47
+ snapshot_download(repo_id="CharlieChen/loop-grow-d12", local_dir="checkpoints/loop-grow-d12")
48
+ ```
49
+
50
+ From the codebase root, run a bounded GPU smoke evaluation:
51
+
52
+ ```bash
53
+ CUDA_VISIBLE_DEVICES=0 python eval.py \
54
+ --checkpoint checkpoints/loop-grow-d12/final.pt \
55
+ --result-json checkpoints/loop-grow-d12/result.json \
56
+ --max-per-task 10 --seeds 0 1 2 \
57
+ --out checkpoints/loop-grow-d12/core_smoke.json
58
+ ```
59
+
60
+ The paper uses H100 GPUs, FlashAttention-3, and bfloat16 autocast. The custom `TransformerGPT` model is reconstructed by the paper code; this artifact is not a Transformers `AutoModel` checkpoint. Full CORE evaluation uses all 22 tasks and seeds 0/1/2; omit `--max-per-task` to run it. Smoke scores are not full-suite paper results.
SHA256SUMS ADDED
@@ -0,0 +1 @@
 
 
1
+ a4345d2cee220f98c86d02b6af7b8e3c4a7feb4e5400544cd1da2de5bb5b39b0 final.pt
final.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a4345d2cee220f98c86d02b6af7b8e3c4a7feb4e5400544cd1da2de5bb5b39b0
3
+ size 1977113897
result.json ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "parameter_count": 494272512,
3
+ "parameter_summary": {
4
+ "total": 494272512,
5
+ "parts": {
6
+ "blocks": 339738624,
7
+ "lm_head": 77266944,
8
+ "other": 77266944
9
+ }
10
+ },
11
+ "n_layer": 12,
12
+ "n_head": 12,
13
+ "n_embd": 1536,
14
+ "head_dim": 128,
15
+ "depth_scale_mode": "loop",
16
+ "core_repetitions": 4,
17
+ "core_layer_count": 4,
18
+ "resolved_core_layer_count": 4,
19
+ "prelude_layer_count": 4,
20
+ "resolved_prelude_layer_count": 4,
21
+ "coda_layer_count": 4,
22
+ "resolved_coda_layer_count": 4,
23
+ "effective_depth": 24,
24
+ "expected_effective_depth": 24.0,
25
+ "recurrence_rmsnorm": "recurrence_only",
26
+ "recurrence_emb_alpha": 0.707106781187,
27
+ "decoder_inject": true,
28
+ "core_residual_branch_scale": 1.0,
29
+ "resolved_core_residual_branch_scale": null,
30
+ "core_repetition_schedule": "late",
31
+ "core_repetition_crossover_fraction": 0.85,
32
+ "core_repetition_low": 2,
33
+ "core_repetition_breakpoints": null,
34
+ "lsched_lr_warmup_steps": 40,
35
+ "lsched_lr_change_steps": [
36
+ 5271
37
+ ],
38
+ "dep_grow_events": [],
39
+ "target_core_repetitions": 4,
40
+ "final_eval_active_core_repetitions": 4,
41
+ "observed_train_core_repetitions_mean": 2.3002257336343117,
42
+ "observed_train_core_repetitions_min": 2,
43
+ "observed_train_core_repetitions_max": 4,
44
+ "observed_train_core_repetitions_histogram": {
45
+ "2": 5271,
46
+ "4": 931
47
+ },
48
+ "recurrence_truncation_schedule": "none",
49
+ "recurrence_bp_window": 0,
50
+ "matrix_lr": 0.025809616490134198,
51
+ "embedding_lr": 0.008259077276842943,
52
+ "unembedding_lr": 0.0029200247744036183,
53
+ "lr_multiplier": 1.0,
54
+ "effective_matrix_lr": 0.025809616490134198,
55
+ "effective_embedding_lr": 0.008259077276842943,
56
+ "effective_unembedding_lr": 0.0029200247744036183,
57
+ "weight_decay": 0.05,
58
+ "matrix_weight_decay": 0.05,
59
+ "embedding_weight_decay": 0.05,
60
+ "unembedding_weight_decay": 0.05,
61
+ "embedding_wd_skip_norm": 0.0,
62
+ "adam_betas": [
63
+ 0.8,
64
+ 0.95
65
+ ],
66
+ "adam_eps": 1e-10,
67
+ "lr_schedule": "wsd",
68
+ "warmup_steps": 40,
69
+ "warmdown_ratio": 1.0,
70
+ "output_multiplier": 1.0,
71
+ "residual_branch_multiplier": 0.25,
72
+ "wte_init_std": 0.02,
73
+ "uniform_init_scale": 0.0441941738242,
74
+ "total_batch_size": 524288,
75
+ "device_batch_size": 16,
76
+ "num_epochs": 1,
77
+ "estimated_num_iterations": 6260,
78
+ "lr_schedule_steps": 6202,
79
+ "resolved_lr_schedule_steps": 6202,
80
+ "max_train_steps": 6202,
81
+ "resolved_max_train_steps": 6202,
82
+ "completed_epochs": 0,
83
+ "seed": 42,
84
+ "train_token_limit": 3284150517,
85
+ "val_token_limit": 10000000,
86
+ "token_limit_cutoff_devices": 16,
87
+ "active_train_tokens": 3284150517,
88
+ "packed_train_sequences_per_epoch": 1602560,
89
+ "packed_train_tokens_per_epoch": 3282042880,
90
+ "active_val_packed_sequences": 4864,
91
+ "active_val_packed_tokens": 9961472,
92
+ "val_loss": 2.9183570460269324,
93
+ "final_val_loss": 2.9183570460269324,
94
+ "final_train_loss": 2.948449089218614,
95
+ "best_val_loss": 2.9183570460269324,
96
+ "best_val_bpb": 0.9484911759835458,
97
+ "best_val_epoch": 1.0,
98
+ "train_val_per_epoch": [
99
+ {
100
+ "epoch": 1,
101
+ "step": 6202,
102
+ "train_loss": 2.948449089218614,
103
+ "val_loss": 2.9183570460269324,
104
+ "val_bpb": 0.9484911759835458
105
+ }
106
+ ],
107
+ "core_block_residual_rms": 1.0481101274490356,
108
+ "last_train_mfu": 47.116359427132814,
109
+ "last_train_tok_per_sec": 746514,
110
+ "last_train_step_time_seconds": 0.7023148536682129,
111
+ "total_training_time_seconds": 3265.4880912303925,
112
+ "total_wall_time_seconds": 3338.4041845798492,
113
+ "sequence_len": 2048,
114
+ "window_pattern": "L"
115
+ }