File size: 4,877 Bytes
a99b942
 
6b30954
 
f14777f
6b30954
f14777f
6b30954
 
 
 
 
 
 
67a36a3
a99b942
 
e8af1f2
a99b942
966df28
a99b942
8329cbb
6b30954
8329cbb
6b30954
966df28
6b30954
67a36a3
966df28
67a36a3
 
8329cbb
67a36a3
6b30954
a99b942
8329cbb
 
67a36a3
e8af1f2
 
 
8329cbb
6b30954
8329cbb
a99b942
e8af1f2
a99b942
fcfa841
 
8329cbb
67a36a3
31f7a9f
555e4b5
67a36a3
 
 
 
8329cbb
 
 
fcfa841
 
 
 
 
 
 
 
 
 
8329cbb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67a36a3
966df28
67a36a3
8329cbb
966df28
 
e8af1f2
8329cbb
e8af1f2
966df28
e8af1f2
8329cbb
e8af1f2
 
 
8329cbb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
---
datasets:
  - HuggingFaceFW/fineweb-edu
  - HuggingFaceFW/finepdfs-edu
language:
  - en
pipeline_tag: text-generation
library_name: pytorch
tags:
  - base-model
  - causal-lm
  - text-generation
  - multiscreen
  - triton
  - litgpt
---

# ObsidianSmall-Base — Multiscreen 8.7M

**ObsidianSmall-Base** is an **8.7M-parameter English base language model** pretrained from scratch on **3,999,989,760 tokens**.

It is the first public checkpoint in this model family built entirely from **Multiscreen blocks**.

> This is a base completion model, not an instruction-tuned or chat-aligned assistant.

## Model details

| Property | Value |
|---|---:|
| Architecture | Pure Multiscreen |
| Parameters | 8,716,506 |
| Blocks | 9 |
| Hidden width | 256 |
| Query heads | 8 |
| Head size | 32 |
| Key / value dimensions | 16 / 128 |
| Query chunk / window | 128 / 256 |
| MLP / FFN | None |
| Context length | 1,024 |
| Vocabulary size | 4,096 |
| Training tokens | 3,999,989,760 |
| Validation loss / PPL | 2.592 / 13.359 |

Multiscreen replaces conventional self-attention and MLP/FFN sublayers with its own sequence-mixing blocks.

## Benchmarks

Zero-shot task results were measured with `lm-evaluation-harness`.

| Benchmark | Accuracy | Normalized |
|---|---:|---:|
| BLiMP | 71.891% | — |
| HellaSwag | 26.957% | 27.415% |
| ARC Easy | 33.712% | 33.291% |
| ARC Challenge | 17.833% | 21.843% |
| PIQA | 56.583% | 55.114% |
| SciQ | 70.700% | 60.000% |
| ArithMark-2.0 | 26.160% | — |
| ArithMark-3.0 | **28.800%** | — |

### WikiText-2 perplexity

Full WikiText-2 evaluation using rolling log-likelihood with a maximum context length of 1,024 tokens.

| Metric | Result |
|---|---:|
| Word perplexity | 125.057 |
| Byte perplexity | **2.467** |
| Bits per byte | 1.303 |

## Install

```bash
git lfs install
git clone https://huggingface.co/Dream-W/ObsidianSmall-Base
cd ObsidianSmall-Base

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
```

For NVIDIA CUDA with Triton:

```bash
python -m pip install -r requirements-gpu.txt
```

For evaluation:

```bash
python -m pip install -r requirements-eval.txt
```

The repository includes the required custom PyTorch/LitGPT runtime. It is not currently compatible with `transformers.AutoModelForCausalLM`.

## Generate text

```bash
CUDA_VISIBLE_DEVICES=0 \
MULTISCREEN_BACKEND=triton \
PYTHONPATH="$PWD/runtime" \
python -u generate.py \
  --backend triton \
  --device cuda \
  --prompt "Once upon a time" \
  --max-new-tokens 128 \
  --temperature 0.8 \
  --top-k 40
```

Interactive completion:

```bash
CUDA_VISIBLE_DEVICES=0 \
MULTISCREEN_BACKEND=triton \
PYTHONPATH="$PWD/runtime" \
python -u generate.py \
  --backend triton \
  --device cuda \
  --interactive
```

CPU execution is available with `MULTISCREEN_BACKEND=torch`, `--backend torch`, and `--device cpu`.

## Evaluate

The bundled evaluator accepts any compatible `lm-evaluation-harness` task through `--tasks`.

```bash
MODEL="$PWD"
mkdir -p "$MODEL/results"

CUDA_VISIBLE_DEVICES=0 \
MULTISCREEN_BACKEND=triton \
TOKENIZERS_PARALLELISM=false \
PYTHONPATH="$MODEL/runtime:$MODEL/evaluation" \
python -u "$MODEL/evaluation/lm_eval_obsidian_official.py" \
  --checkpoint-dir "$MODEL" \
  --tokenizer-dir "$MODEL" \
  --tasks hellaswag \
  --batch-size 32 \
  --device cuda \
  --max-length 1024 \
  --progress-every 100 \
  --output "$MODEL/results/hellaswag.json"
```

Multiple tasks:

```bash
--tasks "hellaswag,arc_easy,arc_challenge,piqa,sciq,blimp"
```

Custom continuation-style multiple-choice datasets can be evaluated with `evaluation/custom_mcq.py`.

```bash
CUDA_VISIBLE_DEVICES=0 \
MULTISCREEN_BACKEND=triton \
PYTHONPATH="$PWD/runtime" \
python -u evaluation/custom_mcq.py \
  --model-dir . \
  --hf-dataset AxiomicLabs/Arithmark-3.0 \
  --split train \
  --context-field ctx \
  --choices-field endings \
  --label-field label \
  --group-by difficulty topic \
  --backend triton \
  --device cuda \
  --output results/arithmark-3.json
```

## Backends and decoding

| Backend | Setting | Use |
|---|---|---|
| Automatic | `MULTISCREEN_BACKEND=auto` | Select a compatible backend |
| Triton | `MULTISCREEN_BACKEND=triton` | Optimized NVIDIA CUDA execution |
| PyTorch | `MULTISCREEN_BACKEND=torch` | CPU and compatibility fallback |

Incremental Multiscreen KV-cache decoding is not implemented. Generation uses full-sequence decoding and processes the current context again for every generated token.

## Training data

The pretraining curriculum included FineWeb-Edu, FinePDFs-Edu, DCLM, FineWiki, NVIDIA Common Crawl Code, and NVIDIA Common Crawl Math.

## Limitations

The model has only 8.7M parameters and may produce repetitive, inaccurate, or incoherent text. It is English-focused, has no instruction-following or safety alignment, and was trained for a maximum context length of 1,024 tokens.