Add model card
Browse files
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
|
| 17 |
-
public-domain books β no modern text anywhere in the corpus β to study what a model learns
|
| 18 |
-
entire world is historical.
|
| 19 |
|
| 20 |
π [Read the write-up](https://www.unboundedlab.com/blog/bart) Β· π [Unbounded Labs](https://unboundedlab.com)
|
| 21 |
|
| 22 |
-
|
|
|
|
|
|
|
| 23 |
|
| 24 |
-
|
| 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 |
-
|
|
|
|
|
| 35 |
|
| 36 |
-
|
| 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 |
-
|
| 58 |
-
|
| 59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
```
|
| 61 |
|
| 62 |
-
|
|
|
|
|
|
|
| 63 |
|
| 64 |
-
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
| Stage | Dataset |
|
| 72 |
|---|---|
|
| 73 |
-
| Pretraining | [
|
| 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 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|