Text Generation
Transformers
Safetensors
English
bananaall
novi-ai
language-model
pretrained-model
preview
small-language-model
bananamind-2-style
causal-lm
base-model
pretrained-from-scratch
project-kairo
triton
Instructions to use Novi-AI/Novi-Mini-Base-Preview-1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Novi-AI/Novi-Mini-Base-Preview-1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Novi-AI/Novi-Mini-Base-Preview-1")# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("Novi-AI/Novi-Mini-Base-Preview-1", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Novi-AI/Novi-Mini-Base-Preview-1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Novi-AI/Novi-Mini-Base-Preview-1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Novi-AI/Novi-Mini-Base-Preview-1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Novi-AI/Novi-Mini-Base-Preview-1
- SGLang
How to use Novi-AI/Novi-Mini-Base-Preview-1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Novi-AI/Novi-Mini-Base-Preview-1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Novi-AI/Novi-Mini-Base-Preview-1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Novi-AI/Novi-Mini-Base-Preview-1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Novi-AI/Novi-Mini-Base-Preview-1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Novi-AI/Novi-Mini-Base-Preview-1 with Docker Model Runner:
docker model run hf.co/Novi-AI/Novi-Mini-Base-Preview-1
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* |