Slayer9-DQA-9M / README.md
Maggio33's picture
Update model card
c95204c verified
|
Raw History Blame Contribute Delete
9.39 kB
---
license: cc-by-sa-4.0
language:
- en
library_name: pytorch
pipeline_tag: text-generation
tags:
- tiny-lm
- arc-easy
- fine-tuned
datasets:
- allenai/qasc
- allenai/cosmos_qa
- allenai/quoref
- allenai/ropes
- tau/commonsense_qa
- rajpurkar/squad
- ucinlp/drop
- google/boolq
- allenai/ai2_arc
---
# Slayer9-DQA-9M
An 8,786,185-parameter decoder-only language model by Fabryka AI (Arkadiusz Słota), trained from scratch, annealed
with a question-answering mix and fine-tuned on ARC train. It is a research artifact for the Glint Tiny-ML leaderboard,
not a general-purpose or instruction-following model.
**Name.** *Slayer* is the SlayerLab model line; *9* is the ~9M-parameter family of this line; *DQA* stands for
decay-phase QA: question-answering data (reading passages with their questions, and short multiple-choice questions)
placed in the decay (annealing) phase of training, which is what distinguishes this recipe from our baseline; this
release uses the licence-clean QA pool listed below. *9M* is the size (8.79M unique parameters, the tied input/output
embedding counted once).
## Evaluation
**Status: test split read once for the selected checkpoint (seed 1373, see below). Weights are not uploaded yet.**
### Selected checkpoint (test, read once)
| metric | Glint-1.3 protocol | lm-evaluation-harness 0.4.13 (second column) |
|---|---|---|
| BLiMP (67 tasks, 67,000 pairs) | 73.83 | not measured |
| ARC-Easy test (2,376 questions) | 44.19 | not measured |
| WikiText-2 test, byte perplexity | 2.3971 | not measured |
| Overall / Efficiency (leaderboard formulas) | 71.16 / 79.60 | — |
For comparison, the leaderboard row of Qielbas Tiny 9M M2 (as of 2026-10-12) is BLiMP 75.68, ARC-Easy 47.43,
WikiText-2 2.3367, Efficiency 81.42; this model does not beat it.
**Validation overestimated this model.** Its validation Efficiency was 81.88; on test it is 79.60. Two causes, both
visible in the numbers: ARC-Easy 46.84 (validation) vs 44.19 (test), expected from choosing the best of fourteen
variants on validation; and BLiMP 77.24 on the validation half (first 34 tasks) vs 73.83 on all 67 tasks. For Qielbas
M2 the same two BLiMP numbers are 77.65 on our validation half A and 75.68 on the leaderboard (all 67 tasks), so the
half-A validation axis overestimates this recipe more than it overestimates M2.
Glint-1.3: zero-shot raw summed log-likelihood of the answer, first 256 tokens, raw accuracy; the protocol adds no
BOS of its own (the tokenizer's template does, see Model). lm-evaluation-harness uses a different prompt
(`Question: …\nAnswer:`) and reports `acc`; the two columns are not comparable as identical measurements. The
leaderboard row uses the Glint-1.3 column.
### Runs so far (validation split, descriptive)
Validation axis: ARC-Easy validation (570 questions), BLiMP half A (first 34 of the 67 BLiMP tasks, 34,000 pairs) and
WikiText-2 validation byte perplexity; the test axis is ARC-Easy test, full BLiMP and WikiText-2 test. Mean ± SD over
seeds. The baseline recipe is identical except that its annealing contains no question-answering pool.
| stage | n seeds | ARC-E val | BLiMP-A | WikiText-2 val byte ppl | Efficiency (val) |
|---|---|---|---|---|---|
| baseline recipe, pretrained | 7 | 40.37 ± 1.21 | 77.22 ± 0.60 | 2.3660 ± 0.0038 | 79.53 ± 0.56 |
| this recipe (QA annealing), pretrained | 7 | 40.40 ± 2.05 | 78.58 ± 0.63 | 2.3662 ± 0.0043 | 80.05 ± 0.82 |
| baseline recipe + ARC fine-tune | 7 | 42.96 ± 1.68 | 76.83 ± 0.57 | 2.3803 ± 0.0041 | 80.31 ± 0.74 |
| this recipe + ARC fine-tune | 7 | 43.58 ± 1.59 | 78.10 ± 0.57 | 2.3811 ± 0.0026 | 81.01 ± 0.67 |
| **Δ (this − baseline) after ARC fine-tune, paired by seed** | 7 | +0.62 ± 2.72 (5/7 > 0) | +1.27 ± 0.99 (7/7) | +0.001 ± 0.004 | **+0.70 ± 1.15 (5/7)** |
| this recipe + ARC fine-tune + 1 extra ARC-Easy epoch | 7 | 44.61 ± 1.64 | 77.95 ± 0.53 | 2.3874 ± 0.0037 | 81.32 ± 0.61 |
| **Δ (extra ARC-Easy epoch − ARC fine-tune), paired by seed** | 7 | | | | **+0.31 ± 0.39 (5/7)** |
Validation Efficiency of the seven QA-annealed models after the ARC fine-tune (seeds 1369–1375): 80.93 / 81.07 /
79.80 / 80.62 / 81.20 / 81.76 / 81.72; after the extra ARC-Easy epoch: 81.69 / 81.56 / 80.26 / 80.69 / 81.88 /
81.75 / 81.44.
**How the checkpoint was chosen.** Seven training seeds (1369–1375) were run with the same recipe. Rule (1) was fixed
before any result was known: take the seed with the highest leaderboard Efficiency on the validation axis (Efficiency
formula on ARC-Easy validation, BLiMP half A and WikiText-2 validation byte perplexity) after the ARC fine-tune
(ties → lower seed). Rule (2) was added at the owner's request after the pre-fine-tune validation results were known,
but before any fine-tuned or extra-epoch result was known: one extra epoch on ARC-Easy train only replaces the
fine-tune for all seeds if it improves validation Efficiency by at least +0.20 on average and for at least 5 of 7
seeds, in which case the highest of the seven extended models is taken. Rule (2) was met (+0.31, 5/7), so the selected
checkpoint is seed 1373 with the extra epoch (validation Efficiency 81.88). The test-axis evaluation was run **once**,
for that checkpoint only; the test splits were never used for training, fine-tuning, epoch choice or seed choice. The
test split was read without a separate confirmation run on fresh seeds (owner's decision). Choosing the best of
fourteen variants on validation inflated its validation number; the test numbers above are the result.
## Model
- 10 layers, d_model 224, 4 heads, RoPE (θ 100,000, interleaved), SwiGLU (×2.667), RMSNorm, QK-norm,
value residual; output head tied to the token embedding (stored once). Context 1,024 tokens.
- Tokenizer: BPE, 12,288 tokens (`tokenizer.json`, sha256 `235abda6ba9591b7…`). Its template prepends `<|endoftext|>`
(id 12285) to every encoded text: in training every document was preceded by this separator, so evaluation starts
the same way. Training data were tokenized without the template (the separator came from the document stream); all
reported scores use the tokenizer as shipped (default `encode()`).
- Files (after selection): `model.safetensors` (fp32 weights only), `config.json`, `tokenizer.json`, inference code,
`README.md`. Loading reproduces the logits of the training checkpoint exactly.
## Training
1. **Pretraining + annealing, 2.0B tokens total** (8,720 steps × 229,376 tokens). Pretraining mix: a subset of
`SlayerLab/minimal-en-corpus-5b` (by Dawid Majewski) restricted to FineWeb-Edu, DCLM-baseline and Wikipedia
documents (about 47 / 36 / 16 percent of tokens; 2.29B tokens available, ~0.87 epoch used); documents overlapping
WikiText-2 test/validation or ARC-Easy/Challenge test/validation/train were removed before selection (13-gram scan;
BLiMP was not scanned).
2. **QA annealing** (final 1,744 steps, 400M tokens): 19.0 percent from a question-answering pool (each passage once,
followed by all of its questions and answers; 4 passes over 18.99M unique tokens), 15.0 percent WikiText-103 train
(documents overlapping the union of evaluation test sets removed by a 13-gram filter), 66.0 percent the pretraining
mix. Pool sources (train splits only): QASC, Cosmos QA, Quoref, ROPES (CC BY 4.0), CommonsenseQA (MIT), SQuAD v1.1,
DROP (CC BY-SA 4.0), BoolQ (CC BY-SA 3.0). Questions that appear in ARC train were removed; 72 documents overlapping
WikiText-2 test/validation or ARC-Easy/Challenge test/validation/train were removed by a 13-gram scan (BLiMP was
not scanned).
3. **ARC fine-tune**: ARC-Easy + ARC-Challenge train (CC BY-SA 4.0; questions overlapping ARC test/validation
removed), listwise cross-entropy over raw answer likelihoods, 2 epochs (fixed, not selected), AdamW lr 5e-5
(constant), 15 percent language-model replay from the annealing mix; then **one extra epoch on ARC-Easy train only**
with the same settings (adopted by rule (2) above).
## Licence and attribution
Weights: CC BY-SA 4.0 (share-alike sources in training: Wikipedia and WikiText-103 (CC BY-SA 3.0 + GFDL), ARC,
SQuAD, DROP (CC BY-SA 4.0), BoolQ (CC BY-SA 3.0)). Other sources: FineWeb-Edu (ODC-By), DCLM-baseline (CC BY 4.0),
QASC, Cosmos QA, Quoref, ROPES (CC BY 4.0), CommonsenseQA (MIT). The pretraining corpus keeps each document's upstream
source and terms.
Sources (repository @ revision, licence): QASC `allenai/qasc`@a34ba204 CC BY 4.0 · Cosmos QA `allenai/cosmos_qa`@ed50fe83
(parquet conversion) CC BY 4.0 · Quoref `allenai/quoref`@41fed5bc CC BY 4.0 · ROPES `allenai/ropes`@d59f1e2e CC BY 4.0 ·
CommonsenseQA `tau/commonsense_qa`@94630fe3 MIT · SQuAD `rajpurkar/squad`@7b6d24c4 CC BY-SA 4.0 · DROP
`ucinlp/drop`@95cda593 CC BY-SA 4.0 · BoolQ `google/boolq`@35b264d0 CC BY-SA 3.0 · ARC `allenai/ai2_arc`@210d026f
CC BY-SA 4.0 · pretraining corpus `SlayerLab/minimal-en-corpus-5b`@bb3aec23, built from FineWeb-Edu
`HuggingFaceFW/fineweb-edu`@87f09149 ODC-By, DCLM-baseline `mlfoundations/dclm-baseline-1.0-parquet`@817d6752 CC BY 4.0
and Wikipedia `wikimedia/wikipedia`@b04c8d1c (20231101.en) CC BY-SA 3.0 + GFDL · WikiText-103
`Salesforce/wikitext`@b08601e0 CC BY-SA 3.0 + GFDL.
## Limitations
Very small model (8.8M parameters); trained on the leaderboard's ARC task (in-domain fine-tune, described above);
one selected seed out of seven.