File size: 5,775 Bytes
a9154af
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bb96254
 
8c55c89
 
 
 
 
 
bb96254
a9154af
 
 
 
bb96254
 
 
 
 
 
 
 
 
 
8c55c89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a9154af
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bb96254
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
---
license: apache-2.0
language:
- en
- ru
pipeline_tag: text-generation
tags:
- custom-code
- cubic-attention
- depth-memory
- muon
---

# Cubic Hier 150M

A 157M parameter bilingual research language model built on a
custom attention block: a differentiable **depth-memory** path that lets every
layer read a compressed copy of the state at every earlier layer, plus
hierarchical group retrieval in the two penultimate attention layers.

Training stage of this checkpoint: **complete (dpo done)** (step 0).

## Read this before comparing the numbers

The table below is **not** an architecture comparison. This model saw
**3 billion** pretraining tokens. SmolLM2-135M saw roughly **2 trillion** β€” a
600x larger data budget on a model of the same size. Pythia-160M saw ~300B.
Any gap in the table is dominated by that difference, not by the attention
design. Read it as "what 3B tokens buys you", nothing more.

All rows were produced by the same script, the same prompt formats and the
same log-likelihood protocol in a single run, so the rows are comparable to
each other. They are **not** directly comparable to published numbers from
other harnesses, which differ in prompt formatting, few-shot count and
normalization.

MMLU at this scale is at chance (25%) for every model in the table, this one
included. It is reported because it was requested, not because it is
informative below roughly 1B parameters.

## Results

| Model | Params | hellaswag | arc_easy | arc_challenge | piqa | winogrande | openbookqa | sciq | boolq | lambada_openai | mmlu | Avg | Ξ” chance |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CubicHierLM-157M (base format) | 157M | 30.1 | 39.1 | 25.3 | 57.8 | 50.8 | 25.2 | 70.4 | 61.8 | 20.1 | 27.1 | 40.8 | +10.8 |
| CubicHierLM-157M (chat, direct prompt) | 157M | 29.7 | 36.6 | 24.1 | 57.1 | 49.1 | 29.2 | 66.5 | 43.7 | 0.7 | 25.7 | 36.2 | +6.2 |
| CubicHierLM-157M (chat, reasoning prompt) | 157M | 30.1 | 35.7 | 24.0 | 57.1 | 50.8 | 28.8 | 65.9 | 42.2 | 1.1 | 26.3 | 36.2 | +6.2 |
| HuggingFaceTB/SmolLM2-135M | 135M | 43.9 | 59.9 | 29.2 | 68.2 | 53.3 | 32.4 | 79.9 | 61.1 | 41.1 | 23.1 | 49.2 | +19.2 |
| EleutherAI/pythia-160m | 162M | 29.0 | 37.7 | 24.7 | 58.7 | 50.7 | 25.2 | 63.6 | 43.9 | 10.9 | 24.1 | 36.9 | +6.9 |
| facebook/opt-125m | 125M | 30.3 | 40.9 | 22.7 | 61.8 | 50.4 | 27.4 | 68.9 | 55.8 | 38.1 | 24.2 | 42.1 | +12.1 |
| _random chance_ | β€” | 25.0 | 25.0 | 25.0 | 50.0 | 50.0 | 25.0 | 25.0 | 50.0 | 0.0 | 25.0 | β€” | +0.0 |

Headline metric per task: `acc_norm` for multiple choice with unequal-length
options, `acc` otherwise. Evaluated on an evenly strided subsample of up to 1500 examples per task.

**Read `Ξ” chance`, not `Avg`.** The tasks have different random-guess floors β€”
0% for LAMBADA, 25% for the four-way questions, 50% for the binary ones β€” so a
plain average across them is not a meaningful quantity. `Ξ” chance` is the mean
margin over the random baseline and is the column that actually compares.

Two further caveats. BoolQ's validation set is about 62% "yes", so any score
near 62 means the model is answering yes to everything and carries no signal.
ARC-Challenge, OpenBookQA, WinoGrande and MMLU sit at chance for every model
of this size and should not be read as differences.

## The three prompt formats

This model is scored three times, because it went through instruction SFT and
DPO and therefore has a chat format the baselines do not have:

- **base format** β€” plain `Question: ... Answer:` with no chat tokens. This is
  the row comparable to the baseline models.
- **chat, direct prompt** β€” the exact SFT framing (`<bos>`, `<|system|>`,
  `<|user|>`, `<|assistant|>`) with the concise-answer system prompt.
- **chat, reasoning prompt** β€” the same framing with the `<think>` system
  prompt.

**The reasoning row is not a chain-of-thought evaluation.** Every task here is
scored by the log-probability of each answer option; nothing is generated, so
no reasoning trace ever exists. That row measures only whether the reasoning
system prompt shifts which answer the model prefers. Measuring actual
chain-of-thought would require generating traces, which this architecture has
no KV cache for.

## Architecture

- 16 layers, dim 800, 10 heads, SwiGLU 2176, 32k byte-level BPE with digit splitting
- RoPE base 500k, per-head QK-RMSNorm, sequence length 4096
- **Depth memory**: a shared compressor produces a rank-200 key/value pair from
  the input of every layer; each later layer attends over that history with a
  learned per-layer bias, and injects the result through three multiplicative
  gates (content, agreement, mixing). The path is fully differentiable β€” it is
  not detached.
- **Hierarchical retrieval** in layers 13 and 14: cosine scoring against
  key-group means over 128-token groups, causal top-group routing, then one
  fused attention over the selected groups. Layer 15 is full global causal
  attention.
- Trained with hybrid Muon (matrices, with a boosted depth group) + AdamW
  (embeddings, norms, gates), warmup-stable-decay, and a one-token-ahead
  multi-token-prediction auxiliary loss.

## Usage

This is **not** a Transformers-compatible checkpoint. The architecture lives in
`modeling_cubic.py` in this repository.

```python
python inference_example.py
```

## Limitations

Small, experimental, trained on a compute-optimal but tiny token budget.
It will confabulate. Do not use it for anything factual, safety-relevant or
mathematical without independent verification. Bilingual EN/RU by design, but
Russian coverage is 13% of pretraining and correspondingly weaker.

Raw metrics: hellaswag=30.1, arc_easy=39.1, arc_challenge=25.3, piqa=57.8, winogrande=50.8, openbookqa=25.2, sciq=70.4, boolq=61.8, lambada_openai=20.1, mmlu=27.1