Maggio33 commited on
Commit
60626de
·
verified ·
1 Parent(s): 909dc79

Model card and SHA256SUMS of the release files

Browse files
Files changed (2) hide show
  1. README.md +130 -0
  2. SHA256SUMS +5 -0
README.md ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - pl
4
+ - en
5
+ license: apache-2.0
6
+ library_name: pytorch
7
+ pipeline_tag: text-generation
8
+ tags:
9
+ - polish
10
+ - causal-lm
11
+ - from-scratch
12
+ datasets:
13
+ - SlayerLab/slayer-pl-8x3b
14
+ ---
15
+
16
+ # Slayer1B 1.02
17
+
18
+ Decoder-only language model, 1 073 912 851 parameters, Polish-dominant. **Slayer1B 1.02 is Slayer1B 1.01 trained
19
+ further**: training resumed from the last checkpoint of 1.01 before its learning-rate decay (step 2250) and continued to
20
+ 5720 steps, i.e. twice the tokens of 1.01 (5 997 854 720 tokens, ≈ 5.6 tokens per parameter).
21
+
22
+ **From 1.02 on, the learning rate is not decayed at the end of a release.** Pre-training continues on the whole prepared
23
+ corpus of about 24 billion tokens, and the final learning-rate decay is applied once, at the end of the whole Slayer1B
24
+ line. Each release until then is a constant-learning-rate state; 1.00 and 1.01 ended with a decay. Scores of 1.02 and
25
+ later releases are therefore not directly comparable to 1.01: on the same batches at step 2800, the training loss of
26
+ 1.01 (in its decay) was 2.507 and that of 1.02 (constant lr) 2.581.
27
+
28
+ - Previous versions: [SlayerLab/Slayer1B-1.01](https://huggingface.co/SlayerLab/Slayer1B-1.01),
29
+ [SlayerLab/Slayer1B-1.00](https://huggingface.co/SlayerLab/Slayer1B-1.00)
30
+ - Training checkpoints (with optimizer state) and run record: [SlayerLab/Slayer1B-1.02-checkpoints](https://huggingface.co/SlayerLab/Slayer1B-1.02-checkpoints)
31
+ - Training curve and evaluations during training: https://track.fabryka.ai/run/21ae1234-82c2-42b7-887b-cbcc69901ae1
32
+
33
+ ## Results
34
+
35
+ Leaderboard protocol of https://track.fabryka.ai/models (`glint_parity_eval.py`, sha256 `d7a38ca0…`: zero-shot,
36
+ BLiMP raw summed log-probabilities, ARC-Easy raw accuracy, WikiText-2 non-overlapping 256-token chunks), fp32, final
37
+ checkpoint of each release.
38
+
39
+ | | 1.00 | 1.01 | **1.02** |
40
+ |---|---:|---:|---:|
41
+ | training tokens | 1.50 B | 3.00 B | **6.00 B** |
42
+ | end of training | lr decay | lr decay | **constant lr (no decay)** |
43
+ | ARC-Easy, accuracy % (2 376) | 42.89 | 47.98 | **48.99** |
44
+ | BLiMP, accuracy % (67 000) | 71.51 | 73.63 | **74.71** |
45
+ | WikiText-2, byte perplexity ↓ | 2.5857 | 2.4230 | **2.3735** |
46
+ | MultiBLiMP Polish, accuracy % (3 272) | 97.89 | 98.29 | **98.38** |
47
+ | ARC-Easy-PL, accuracy % (2 376) | 36.91 | 40.36 | **41.84** |
48
+
49
+ Paired comparison 1.01 (step 2860) → 1.02 (step 5720), same items, paired bootstrap (10 000 resamples, 95 % interval):
50
+
51
+ | task | difference, pp | 95 % interval | |
52
+ |---|---:|---|---|
53
+ | BLiMP | +1.08 | [+0.78; +1.37] | positive on this test |
54
+ | ARC-Easy-PL | +1.47 | [−0.13; +3.07] | unresolved |
55
+ | ARC-Easy | +1.01 | [−0.67; +2.74] | unresolved |
56
+ | MultiBLiMP Polish | +0.09 | [−0.40; +0.58] | unresolved |
57
+
58
+ This comparison combines two changes at once — twice the training tokens and no final learning-rate decay — so no
59
+ difference can be attributed to either of them separately.
60
+
61
+ ## Usage
62
+
63
+ The weights are a plain PyTorch state dict in safetensors; they are not a `transformers` AutoModel. The model class
64
+ is `GPT` in `train_gpt_ref_r23.py` (included).
65
+
66
+ ```python
67
+ import torch, load_slayer
68
+ from tokenizers import Tokenizer
69
+ model = load_slayer.load(".") # directory with the files of this repository
70
+ tok = Tokenizer.from_file("tokenizer.json")
71
+ ids = torch.tensor([tok.encode("Stolicą Polski jest").ids])
72
+ logits, _ = model(ids) # [batch, seq, 32768]
73
+ ```
74
+
75
+ ## Model
76
+
77
+ | | |
78
+ |---|---|
79
+ | Parameters | 1 073 912 851 (input and output embeddings tied, counted once) |
80
+ | Architecture | decoder-only transformer, 20 layers, d_model 2048, 16 attention heads (MHA, head dim 128) |
81
+ | Blocks | pre-norm RMSNorm, QK-norm, RoPE (θ = 500 000), value residual, SwiGLU MLP (hidden 5462), no biases |
82
+ | Context | 4096 tokens |
83
+ | Tokenizer | byte-level BPE, 32 768 tokens (`tokenizer.json`, sha256 `0640d3bd…`), EOS id 0 |
84
+
85
+ ## Training data
86
+
87
+ Source: `SlayerLab/slayer-pl-8x3b`, revision `d50df04a6ad46876fa559a87cca5d3e2a96e7098`. One stream of 4096-token
88
+ windows, each window at most once; the same order as 1.01 up to its step 2860:
89
+
90
+ | steps | pack | `train.bin` sha256 | tokens available | batches used |
91
+ |---|---|---|---:|---:|
92
+ | 1–1801 | pack-00 | `760ef0cc…` | 1 889 519 627 | 1801 |
93
+ | 1802–3594 | pack-01 | `0494df58…` | 1 880 520 445 | 1793 |
94
+ | 3595–5389 | pack-02 | `294a444d…` | 1 883 249 429 | 1795 |
95
+ | 5390–5720 | pack-03 | `7d675734…` | 1 890 850 536 | 331 |
96
+
97
+ Each pack has its own disjoint web slice; core, legal and English documents of each pack are selected from a
98
+ document-hash interval disjoint from those of earlier packs. Mixing weights (cl100k tokens): web 0.63, core 0.19,
99
+ legal 0.08, English 0.10. Shares of this tokenizer's tokens in the training split: pack-02 web 52.09 %, core 21.63 %,
100
+ legal 8.66 %, English 17.62 %; pack-03 51.68 / 22.27 / 8.59 / 17.46 (pack-00 and pack-01: see the 1.01 card).
101
+ Personal data: same rule-based masking as in 1.00 (tags `[EMAIL]`, `[TELEFON]`, `[PESEL]`, `[NIP]`, `[REGON]`,
102
+ `[DOWOD]`); masking does not guarantee removal of every personal datum. A 13-gram overlap check of pack-02 and pack-03
103
+ against the evaluation sets has not been run (pack-01: see the 1.01 card).
104
+
105
+ ## Training
106
+
107
+ | | |
108
+ |---|---|
109
+ | Hardware | 8 × NVIDIA RTX 5090 (32 GB), DDP |
110
+ | Batch | 256 × 4096 = 1 048 576 tokens per step |
111
+ | Steps | resumed at 2250 (1.01 `ckpt_2250.pt`, sha256 `aeddfb02…`), ran 2251 → 5720 (22:17 → 07:23 UTC, ≈ 113 000 tokens/s) |
112
+ | Tokens | 5720 × 1 048 576 = 5 997 854 720 in total |
113
+ | Schedule | constant lr 6e-4 throughout. The run was started with a final decay planned from step 4578; at step 3300, still at constant lr, it was resumed with the decay removed (training loss at step 3310 identical before and after) |
114
+ | Optimizer | Muon (lr 0.02) for hidden weight matrices + AdamW (lr 6e-4, weight decay 0.1) for the rest |
115
+ | Final training loss | 2.4187 (step 5720); mean of the values logged at steps 5630–5720: 2.4379 (1.01 at the end of its decay, steps 2770–2860: 2.5083) |
116
+ | Resume check | training loss at steps 2260, 2270, 2280 equal to 1.01 at the same steps (same batches, same lr) to four decimals |
117
+ | Checkpoints | every 150 steps from 2400, step 4576 and step 5720; all are constant-lr states |
118
+ | Trainer | `train_gpt_ref_r24.py`: the 1.00/1.01 trainer plus a chain of data streams and extra checkpoint steps; the model definition is unchanged (`train_gpt_ref_r23.py` in this repository) |
119
+
120
+ ## Limitations
121
+
122
+ - 1 073 912 851 parameters trained on 5 997 854 720 tokens (about 5.6 tokens per parameter).
123
+ - Released without a final learning-rate decay (see above).
124
+ - Polish-dominant data; English is a minority of the mixture.
125
+ - Base model: no instruction tuning, no safety tuning.
126
+
127
+ ## License
128
+
129
+ Weights: Apache-2.0. Training data components carry their own licenses, including CC-BY-SA partitions (see the 1.00
130
+ card and the dataset card).
SHA256SUMS ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 1c7cfc4bb1bd1dd1ce23c1b0982281b3f441ef3fb5d3994484787ebd12545d39 config.json
2
+ 53a04c726bebbf8d8a25ff1479ab4f70c3003022675d87332d130139cca1d020 load_slayer.py
3
+ 22583557d1b2f2af05fd5565a718ffc270298da22a785b40027c86c34e12b9e0 model.safetensors
4
+ 0640d3bd3674d7a6e59c540d945a2ad275a12e1bcaeb6007c37a90751f9815dd tokenizer.json
5
+ db36c150e95c184e82b5f84c3ee783fd5fd2c62e960a438177f543dc3eba1d0b train_gpt_ref_r23.py