jbduran commited on
Commit
a3a2f23
Β·
verified Β·
1 Parent(s): 03225f6

Add model card

Browse files
Files changed (1) hide show
  1. README.md +48 -40
README.md CHANGED
@@ -13,15 +13,17 @@ tags:
13
 
14
  # BART
15
 
16
- A language model whose knowledge ends in **1930**. BART is trained from scratch on pre-1930
17
- public-domain books β€” no modern text anywhere in the corpus β€” to study what a model learns when its
18
- entire world is historical.
19
 
20
  πŸ“ [Read the write-up](https://www.unboundedlab.com/blog/bart) Β· 🌐 [Unbounded Labs](https://unboundedlab.com)
21
 
22
- ## The model
 
 
23
 
24
- `experiments/Think.Unbounded-d32-v2mix-cont`
25
 
26
  | | |
27
  |---|---|
@@ -31,56 +33,62 @@ entire world is historical.
31
  | Vocab | 32,768 (`rustbpe`) |
32
  | Training tokens | 20.13B |
33
  | Precision | fp8 (tensorwise) |
34
- | Midtrain schedule | 0% β†’ 21% β†’ 45% |
 
35
 
36
- It branches from `Think.Unbounded-d32` at step 5500, carrying the optimizer state, and continues on
37
- the corrected token-based midtrain mixtures. The parent run used mixtures whose ratios had been
38
- computed by document count, which under-delivered midtrain content badly β€” the continuation is the
39
- repair.
40
-
41
- ## What it's for
42
-
43
- BART exists to answer what a model trained *only* on historical text actually knows and how it
44
- writes. Because nothing after 1930 appears in training, it can be probed for period-authentic
45
- prose and for genuine historical reasoning without the usual contamination from modern sources β€”
46
- and it can be measured on whether modern concepts leak in at all. The companion benchmarks
47
- ([vintage-core](https://huggingface.co/datasets/jbduran/vintage-core),
48
- [vintage-gsm8k](https://huggingface.co/datasets/jbduran/vintage-gsm8k),
49
- [history-event-reconstruction](https://huggingface.co/datasets/jbduran/history-event-reconstruction))
50
- are period-adapted so the model isn't penalized for lacking knowledge it was never given.
51
-
52
- This is a research artifact, not a deployable chat model β€” it ships as raw nanochat checkpoints.
53
-
54
- ## Repository layout
55
 
56
  ```
57
- experiments/ 39 runs β€” each owns its tokenizer and base checkpoints
58
- evaluations/ vintage-core results across models
59
- archive/ legacy paths (pre-lineage-v1)
 
 
 
 
60
  ```
61
 
62
- SFT runs nest under their exact base parent; post-training runs nest under their exact SFT parent.
 
 
63
 
64
- **Reading experiment names:** `d12`/`d24`/`d32` is depth Β· `r11`–`r30` is the target
65
- parameter-to-data ratio Β· `ctx4096`/`ctx8192` is sequence length Β· `sssl` is the window pattern Β·
66
- `fulltok`/`randtok` is the tokenizer variant. The prefix tells you the corpus generation:
67
- `think-` = v1, `thinkcleaned-` = v2, `clean1930s-` = v3, `Think.Unbounded-` = v3 plus midtraining.
68
 
69
- ## Training data
 
 
 
 
 
 
 
70
 
71
  | Stage | Dataset |
72
  |---|---|
73
- | Pretraining | [bart-dataset-v3](https://huggingface.co/datasets/jbduran/bart-dataset-v3) ← [v2](https://huggingface.co/datasets/jbduran/bart-dataset-v2) ← [v1](https://huggingface.co/datasets/jbduran/bart-dataset-v1) |
74
  | Midtraining | [bart-midtrain](https://huggingface.co/datasets/zachnorton03/bart-midtrain) |
75
 
76
  Pipelines: [bart-dataset-scripts](https://github.com/OwenVoorhees/bart-dataset-scripts) Β·
77
  [bart-midtrain-scripts](https://github.com/OwenVoorhees/bart-midtrain-scripts)
78
 
79
- > **Note.** The `config.json` in each experiment records the repo and dataset names as they were at
80
- > training time (`jbduran/think.nano`, `think-dataset-clean-1930s`, `think-midtrain`). Those still
81
- > resolve β€” the Hub redirects renamed repos β€” but the midtrain mixture subfolders they point at
82
- > (`mixed/v2/ratio_21/data`) have since moved to `mixtures/v2-by-tokens/ratio_21/data`. The configs
83
- > are left as historical records of each run rather than rewritten.
 
 
 
 
 
 
 
 
 
 
 
 
 
84
 
85
  ## License
86
 
 
13
 
14
  # BART
15
 
16
+ A 1.68B-parameter language model whose knowledge ends in **1930**. BART is trained from scratch on
17
+ pre-1930 public-domain books β€” no modern text anywhere in the corpus β€” to study what a model learns
18
+ when its entire world is historical.
19
 
20
  πŸ“ [Read the write-up](https://www.unboundedlab.com/blog/bart) Β· 🌐 [Unbounded Labs](https://unboundedlab.com)
21
 
22
+ This repository holds **the final base model only**. For the other 38 training runs see
23
+ [bart-experiments](https://huggingface.co/jbduran/bart-experiments); for the instruction-tuned
24
+ version see [bart-sft](https://huggingface.co/jbduran/bart-sft).
25
 
26
+ ## Specifications
27
 
28
  | | |
29
  |---|---|
 
33
  | Vocab | 32,768 (`rustbpe`) |
34
  | Training tokens | 20.13B |
35
  | Precision | fp8 (tensorwise) |
36
+ | Final step | 9,600 |
37
+ | Run | `Think.Unbounded-d32-v2mix-cont` |
38
 
39
+ ## Contents
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
  ```
42
+ model_009600.pt final weights (8.99 GB)
43
+ meta_009600.json checkpoint metadata
44
+ config.json full training configuration
45
+ run.json lineage record
46
+ summary.json run summary
47
+ tokenizer/ rustbpe tokenizer, vocab 32,768
48
+ evals/ val_bpb, samples, vintage-core results
49
  ```
50
 
51
+ The optimizer shard and the eight earlier checkpoints (steps 6000–9500) live in
52
+ [bart-experiments](https://huggingface.co/jbduran/bart-experiments) under
53
+ `experiments/Think.Unbounded-d32-v2mix-cont/`.
54
 
55
+ ## Training
 
 
 
56
 
57
+ Pretrained on [bart-dataset-v3](https://huggingface.co/datasets/jbduran/bart-dataset-v3), then
58
+ midtrained on [bart-midtrain](https://huggingface.co/datasets/zachnorton03/bart-midtrain) with a
59
+ three-stage schedule that shifts the mixture from 0% β†’ 21% β†’ 45% midtrain while the learning rate
60
+ decays (nanochat WSD, decay from ~35%).
61
+
62
+ This run branches from `Think.Unbounded-d32` at step 5500, carrying optimizer state, and continues
63
+ on corrected token-based mixtures. The parent had computed its mixture ratios by document count,
64
+ which under-delivered midtrain content badly β€” this continuation is the repair.
65
 
66
  | Stage | Dataset |
67
  |---|---|
68
+ | Pretraining | [v3](https://huggingface.co/datasets/jbduran/bart-dataset-v3) ← [v2](https://huggingface.co/datasets/jbduran/bart-dataset-v2) ← [v1](https://huggingface.co/datasets/jbduran/bart-dataset-v1) |
69
  | Midtraining | [bart-midtrain](https://huggingface.co/datasets/zachnorton03/bart-midtrain) |
70
 
71
  Pipelines: [bart-dataset-scripts](https://github.com/OwenVoorhees/bart-dataset-scripts) Β·
72
  [bart-midtrain-scripts](https://github.com/OwenVoorhees/bart-midtrain-scripts)
73
 
74
+ ## What it's for
75
+
76
+ BART exists to answer what a model trained *only* on historical text actually knows and how it
77
+ writes. Because nothing after 1930 appears in training, it can be probed for period-authentic prose
78
+ and for historical reasoning without contamination from modern sources β€” and measured on whether
79
+ modern concepts leak in at all. The companion benchmarks
80
+ ([vintage-core](https://huggingface.co/datasets/jbduran/vintage-core),
81
+ [vintage-gsm8k](https://huggingface.co/datasets/jbduran/vintage-gsm8k),
82
+ [history-event-reconstruction](https://huggingface.co/datasets/jbduran/history-event-reconstruction))
83
+ are period-adapted so the model isn't penalized for lacking knowledge it was never given.
84
+
85
+ This is a base model shipped as a raw nanochat checkpoint β€” not instruction-tuned and not a chat
86
+ model. Use [bart-sft](https://huggingface.co/jbduran/bart-sft) for that.
87
+
88
+ > **Note.** `config.json` records repo and dataset names as they were at training time
89
+ > (`jbduran/think.nano`, `think-dataset-clean-1930s`, `think-midtrain`). Those still resolve via
90
+ > Hub redirects, but the midtrain mixture subfolders it points at have since moved. The config is
91
+ > kept as a historical record of the run rather than rewritten.
92
 
93
  ## License
94