card: plain documents in the training mix (six models against their twins)
Browse files
README.md
CHANGED
|
@@ -196,6 +196,47 @@ million-key read exactly (`reports/capacity_far/gate/`). The models' weights are
|
|
| 196 |
[AbstractPhil/alephllm-nano-beatrix-training](https://huggingface.co/AbstractPhil/alephllm-nano-beatrix-training) (`bed/weights/`); the
|
| 197 |
code is `geolip/nano_beatrix/capacity_far.py` in the trainer, run by its notebooks `colab/nano_capacity_far_lane{1,2,3}.ipynb`.
|
| 198 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 199 |
## Caveats
|
| 200 |
|
| 201 |
- Small synthetic beds: a 4-layer width-128 core, full attention at context 256, 64 value tokens, at most 512 compartments.
|
|
|
|
| 196 |
[AbstractPhil/alephllm-nano-beatrix-training](https://huggingface.co/AbstractPhil/alephllm-nano-beatrix-training) (`bed/weights/`); the
|
| 197 |
code is `geolip/nano_beatrix/capacity_far.py` in the trainer, run by its notebooks `colab/nano_capacity_far_lane{1,2,3}.ipynb`.
|
| 198 |
|
| 199 |
+
## Plain documents in the training mix (2026-10-27)
|
| 200 |
+
|
| 201 |
+
In the stages above every training row was formatted: half the rows of a batch were record rows (records, an index, questions) and
|
| 202 |
+
the rest were text with framed lookups placed in it, each row opened by a document byte and a mode byte. The text measurement reads
|
| 203 |
+
held-out documents from their first byte, a form no training row had. On one of the six held models (seed 4) that left a failure the
|
| 204 |
+
training loss never saw: opened by the document byte, a plain document was read as if it were a record's content, and its held-out
|
| 205 |
+
text cost 2.24 bits a byte against about 1.44 on the other seeds.
|
| 206 |
+
|
| 207 |
+
This stage replaced one non-record row in four with a plain document from the training corpus, started at its first byte, so the
|
| 208 |
+
measured form is trained. Nothing else changed: the record rows are the same rows byte for byte, and six seeds were trained with the
|
| 209 |
+
held models' recipe.
|
| 210 |
+
|
| 211 |
+
| seed | held-out text, bits a byte: with / without | a document's first 64 bytes: with / without | document read as a record: with / without | key-hard look | answer through its own index | wrong looks at 10^6 | minutes |
|
| 212 |
+
|---|---|---|---|---|---|---|---|
|
| 213 |
+
| 1 | 1.3987 / 1.4422 | 1.90 / 2.69 | no / no | 1.0000 | 0.9990 | 0.0000 | 17.8 |
|
| 214 |
+
| 2 | 1.4077 / 1.4402 | 1.91 / 2.55 | no / no | 1.0000 | 0.1899 | 0.0000 | 17.9 |
|
| 215 |
+
| 3 | 1.4029 / 1.4472 | 1.90 / 2.72 | no / no | 1.0000 | 0.2274 | 0.0000 | 17.8 |
|
| 216 |
+
| 4 | 1.4063 / 2.2379 | 1.92 / 5.01 | no / yes | 1.0000 | 0.9984 | 0.0000 | 17.9 |
|
| 217 |
+
| 5 | 1.3989 / 1.4455 | 1.92 / 2.88 | no / no | 1.0000 | 0.9994 | 0.0000 | 17.9 |
|
| 218 |
+
| 6 | 1.3906 / 1.4197 | 1.91 / 2.53 | no / no | 1.0000 | 0.1908 | 0.0000 | 17.9 |
|
| 219 |
+
|
| 220 |
+
What the numbers say:
|
| 221 |
+
|
| 222 |
+
- **The failure is gone on every seed.** No model reads a document as a record (0 of 6 flagged, against 1 of 6
|
| 223 |
+
without the plain rows), and a document's first 64 bytes cost 1.90-1.92 bits a byte against 2.53-2.88 (the failed seed 5.01) without them. Seed 4, the seed that
|
| 224 |
+
failed, now reads held-out text like the others.
|
| 225 |
+
- **The text improves everywhere, not just at the start.** 6 of 6 models read held-out text better than the model of the same
|
| 226 |
+
seed without plain documents, by 0.029-0.047 bits a byte on the 5 seeds whose comparison model had not failed, and the middle
|
| 227 |
+
of a document improves as well as its start: whole documents teach the text's own continuity, which rows cut by records and frames
|
| 228 |
+
do not.
|
| 229 |
+
- **The lookups and the capacity are untouched.** The key-hard lookups stay exact (the lowest model 1.0000), the answers given the
|
| 230 |
+
record's address stay at .999, and no model makes a wrong look at a million competing keys (the worst 0.0000).
|
| 231 |
+
- **The written index stays a matter of seed.** Three of the six write their own index right (four of six without the plain rows);
|
| 232 |
+
the others write the right address for about a fifth of the keys, an outcome seen on some seeds of every model family in this
|
| 233 |
+
line.
|
| 234 |
+
|
| 235 |
+
The models are in this repository under `bed/weights/<run>/` (the run names end in `_plain16`; the plain rows add `_p75d`), with
|
| 236 |
+
their run records, look records and capacity records under `bed/reports/`. The trainer is
|
| 237 |
+
[AbstractEyes/geolip-nano-beatrix-trainer](https://github.com/AbstractEyes/geolip-nano-beatrix-trainer) (`--plant=0.75
|
| 238 |
+
--plain_doc=1`), run by its notebook `colab/nano_plain16.ipynb`.
|
| 239 |
+
|
| 240 |
## Caveats
|
| 241 |
|
| 242 |
- Small synthetic beds: a 4-layer width-128 core, full attention at context 256, 64 value tokens, at most 512 compartments.
|