File size: 10,594 Bytes
35c4fb3
 
a2b94c1
 
 
35c4fb3
 
a2b94c1
 
 
 
 
 
 
 
 
 
 
35c4fb3
a2b94c1
 
 
 
 
35c4fb3
 
0a15108
35c4fb3
 
 
 
 
a2b94c1
35c4fb3
 
 
 
 
a2b94c1
35c4fb3
 
 
 
a2b94c1
 
 
 
 
 
 
35c4fb3
 
a2b94c1
 
 
 
 
35c4fb3
 
 
 
 
 
 
a2b94c1
 
 
 
 
 
 
35c4fb3
 
 
 
 
a2b94c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35c4fb3
a2b94c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35c4fb3
 
 
 
 
 
 
 
 
 
a2b94c1
35c4fb3
 
 
a2b94c1
35c4fb3
a2b94c1
35c4fb3
a2b94c1
35c4fb3
a2b94c1
 
 
 
 
 
35c4fb3
a2b94c1
35c4fb3
a2b94c1
35c4fb3
a2b94c1
35c4fb3
a2b94c1
35c4fb3
 
 
a2b94c1
35c4fb3
a2b94c1
 
 
35c4fb3
 
 
 
 
 
 
a2b94c1
 
 
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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
---
language:
  - en
library_name: transformers
pipeline_tag: text-generation
license: apache-2.0
tags:
  - novi-ai
  - language-model
  - pretrained-model
  - preview
  - small-language-model
  - bananamind-2-style
  - causal-lm
  - base-model
  - pretrained-from-scratch
  - project-kairo
  - triton
datasets:
  - HuggingFaceTB/smollm-corpus
  - mlfoundations/dclm-baseline-1.0
  - HuggingFaceTB/finemath
  - nvidia/OpenMathInstruct-2
  - HuggingFaceTB/smoltalk
---

# Novi Mini Base Preview 1

**An early preview of Novi Mini Base by Novi AI.**

Novi Mini Base is a compact language model pretraining project featuring a **BananaMind 2-style architecture**, using a downscaled Cagliostro v3 design as its architectural basis.

This repository contains an intermediate checkpoint from the ongoing pretraining run.

## Model Information

| Property | Details |
|---|---|
| Model name | Novi Mini Base (Preview 1) |
| Organization | Novi AI |
| Model type | Causal Language Model |
| Architecture style | BananaMind 2-style |
| Architectural basis | Downscaled Cagliostro v3 |
| Parameters | **9,968,128 (~9.97M)** |
| Hidden size | 256 |
| Transformer layers | 10 |
| Attention heads | 4 |
| Key/value heads | 2 |
| Head dimension | 64 |
| Intermediate size | 768 |
| Tokenizer | Byte-level BPE |
| Vocabulary size | 8,192 |
| Context length | 2,048 tokens during training |
| Training objective | Causal next-token prediction |
| Training token target | 15 billion |
| Training schedule | Warmup + stable phase + cosine cooldown |
| Model class | `ProjectKairoMiniForCausalLM` |

## Training Progress

This preview corresponds to checkpoint **168000**.

| Metric | Value |
|---|---:|
| Current checkpoint | **168,000** |
| Total planned steps | **457,764** |
| Overall progress | **36.70%** |
| Stable-phase progress | **43.18%** |
| Target training tokens | **15,000,000,000** |
| Stable phase | 85% |
| Cosine cooldown | 15% |

Training is ongoing. The final model may differ from this preview.

## Architecture

Novi Mini Base follows a **BananaMind 2-style decoder-only Transformer architecture**.

Its architectural basis is a scaled-down Cagliostro v3 design, adapted for a compact configuration.

### Architecture Components

| Component | Implementation |
|---|---|
| Attention | Grouped-Query Attention (GQA) |
| Position encoding | Rotary Position Embeddings (RoPE) |
| Query normalization | RMSNorm |
| Key normalization | RMSNorm |
| Main normalization | RMSNorm |
| Feed-forward network | SwiGLU |
| Attention implementation | PyTorch Scaled Dot Product Attention |
| Input embeddings | Learned token embeddings |
| Output projection | Language-model head |
| Embedding weights | Tied input/output embeddings |

### Model Dimensions

| Configuration | Value |
|---|---:|
| Vocabulary size | 8,192 |
| Hidden size | 256 |
| Transformer layers | 10 |
| Query heads | 4 |
| KV heads | 2 |
| Head dimension | 64 |
| Intermediate dimension | 768 |
| RoPE theta | 100,000 |
| RMSNorm epsilon | 0.000001 |

## Triton Acceleration

The training script includes optional custom Triton kernels for selected operations.

The accelerated operations include:

- **RMSNorm:** Fused normalization forward and backward operations.
- **SwiGLU:** Fused activation and multiplication forward and backward operations.
- **RoPE:** Rotary position embedding forward and backward operations.

Attention continues to use PyTorch SDPA, while linear projections use the model's existing PyTorch layers.

Triton is optional. If it is unavailable or disabled, the model falls back to its PyTorch implementations.

Set `NOVI_DISABLE_TRITON=1` to explicitly disable the Triton kernels.

## Training

Novi Mini Base is pretrained from scratch using **BananaAll**.

The training script configures a total target of **15 billion tokens**, divided into two training phases.

### Training Configuration

| Setting | Value |
|---|---:|
| Training framework | BananaAll |
| Training mode | Pretraining |
| Training objective | Next-token prediction |
| Target tokens | **15 billion** |
| Sequence length | 2,048 |
| Per-device batch size | 2 |
| Gradient accumulation | 8 |
| Effective batch size | 16 sequences on one GPU |
| Learning rate | **0.003** |
| Warmup steps | 2,000 |
| Stable phase | 85% |
| Cooldown phase | 15% |
| Scheduler | Custom warmup-stable-cosine cooldown |
| Weight decay | 0.01 |
| Adam beta 1 | 0.9 |
| Adam beta 2 | 0.95 |
| Maximum gradient norm | 1.0 |
| Precision | Automatic |
| Torch compilation | Enabled, with fallback |
| Random seed | 1337 |
| Logging interval | 100 steps |
| Checkpoint interval | 500 steps |

The configured 457,764 optimizer steps assume the single-GPU batch configuration used for this run. The script calculates the planned step count from the token quotas, sequence length, batch size, and gradient accumulation.

### Learning-Rate Schedule

The training schedule has three stages:

1. **Warmup:** The learning rate increases over the first 2,000 optimizer steps.
2. **Stable:** The learning rate remains at its configured maximum through the stable training phase.
3. **Cosine cooldown:** The learning rate gradually decreases during the final 15% of training.

The stable phase and cooldown phase each have their own dataset mixture.

## Training Data

The training configuration uses five Hugging Face dataset repositories, with multiple configurations from some repositories.

### Dataset Sources

| Dataset | Configuration |
|---|---|
| `HuggingFaceTB/smollm-corpus` | `fineweb-edu-dedup` |
| `HuggingFaceTB/smollm-corpus` | `cosmopedia-v2` |
| `mlfoundations/dclm-baseline-1.0` | Default |
| `HuggingFaceTB/finemath` | `finemath-3plus` |
| `HuggingFaceTB/finemath` | `infiwebmath-3plus` |
| `nvidia/OpenMathInstruct-2` | Default |
| `HuggingFaceTB/smoltalk` | `all` |

All configured sources use their `train` split.

### Stable Phase Dataset Weights

| Dataset configuration | Weight |
|---|---:|
| SmolLM Corpus — FineWeb-Edu Dedup | 43.7% |
| DCLM Baseline 1.0 | 28.3% |
| SmolLM Corpus — Cosmopedia v2 | 16.0% |
| FineMath — FineMath 3+ | 5.0% |
| OpenMathInstruct 2 | 3.0% |
| FineMath — InfiWebMath 3+ | 2.0% |
| SmolTalk | 2.0% |
| **Total** | **100%** |

### Cosine Cooldown Dataset Weights

| Dataset configuration | Weight |
|---|---:|
| SmolLM Corpus — FineWeb-Edu Dedup | 37.0% |
| DCLM Baseline 1.0 | 5.0% |
| SmolLM Corpus — Cosmopedia v2 | 25.0% |
| FineMath — FineMath 3+ | 15.0% |
| OpenMathInstruct 2 | 13.0% |
| SmolTalk | 5.0% |
| **Total** | **100%** |

The training worker streams dataset rows and samples from the configured mixture. Each phase receives its own token allocation, with the dataset weights determining the relative token quotas.

The training script also records the resolved dataset token allocations in `dataset_tokens.json` when the run completes.

## Tokenizer

Novi Mini Base uses a byte-level BPE tokenizer trained from the configured pretraining dataset mixture.

| Property | Value |
|---|---|
| Tokenizer algorithm | BPE |
| Pre-tokenizer | ByteLevel |
| Decoder | ByteLevel |
| Vocabulary size | 8,192 |
| Minimum token frequency | 2 |
| Special tokens | `[PAD]`, `[BOS]`, `[EOS]`, `[UNK]` |
| Tokenizer training samples | 10,000 |

The tokenizer is trained separately before model initialization. The model vocabulary is then configured to match the tokenizer.

## Checkpoints

The training script automatically uploads checkpoints to Hugging Face every 500 optimizer steps.

It also supports automatic recovery by locating the newest complete remote checkpoint and resuming training from its saved state.

A complete recovery checkpoint includes model weights, optimizer state, scheduler state, trainer state, and random-number-generator state.

**Checkpoint repository:**

https://huggingface.co/Novi-AI/Novi-Mini-Base-Checkpoints

## Loading the Model

Novi Mini Base uses a custom Transformers architecture.

The model repository includes custom configuration and modeling files. Loading may require `trust_remote_code=True`.

Only enable remote model code after reviewing and trusting the repository's implementation.

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Novi-AI/Novi-Mini-Base-Preview-1"

tokenizer = AutoTokenizer.from_pretrained(
    model_id,
    trust_remote_code=True,
)

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
)

model.eval()

prompt = "The future of small language models is"

inputs = tokenizer(prompt, return_tensors="pt")

with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=100,
        do_sample=True,
        temperature=0.8,
        top_p=0.9,
        pad_token_id=tokenizer.pad_token_id,
        eos_token_id=tokenizer.eos_token_id,
    )

print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```

This is a basic text-continuation example. Novi Mini Base is a pretrained base model, not an instruction-tuned chatbot.

## Intended Use

This is an experimental pretrained model intended for:

- Language-model experimentation.
- Fine-tuning experiments.
- Small-model research.
- Architecture evaluation.
- Testing lightweight language models.
- Studying compact autoregressive pretraining.

This preview is not intended to be treated as a finished production model.

## Limitations

Novi Mini Base has approximately 9.97 million parameters, making it considerably smaller than most general-purpose language models.

It may:

- Produce repetitive or incoherent text.
- Generate inaccurate or fabricated information.
- Struggle with complex reasoning.
- Have limited factual knowledge.
- Fail to maintain consistency over longer sequences.
- Perform poorly on instruction-following tasks.

The model is a base pretrained checkpoint, so it is not specifically optimized for conversational instruction following.

## Evaluation

No independent benchmark results are included in this preview.

Training progress and loss measurements should not be interpreted as benchmark scores or proof of model quality.

## Project

Developed by **Novi AI** as part of **Project Kairo**.

- Preview model: `Novi-AI/Novi-Mini-Base-Preview-1`
- Main model: `Novi-AI/Novi-Mini-Base`
- Checkpoints: `Novi-AI/Novi-Mini-Base-Checkpoints`

## Disclaimer

This repository contains an intermediate training preview. Performance, capabilities, and output quality are not representative of the final model.

The model is experimental and may produce inaccurate, incomplete, or nonsensical outputs.

---

*Novi AI 2026 — Project Kairo*