Novi-Nano-Instruct / README.md
GGUFGuy's picture
Update README.md
b1a79f3 verified
|
Raw History Blame Contribute Delete
6.36 kB
---
language:
- en
library_name: transformers
pipeline_tag: text-generation
tags:
- novi
- novi-nano
- novi-nano-instruct
- causal-lm
- gpt2
- from-scratch
- instruction-tuning
- chatml
datasets:
- Novi-AI/Novi-510x
---
# Novi-Nano-Instruct
![Novi-Nano Banner](banner.jpg)
**Novi-Nano-Instruct** is a tiny instruction-tuned causal language model developed by **Novi-AI**.
It is based on **Novi-Nano-Base** and fine-tuned on a small instruction dataset to experiment with instruction following and conversational behavior at an extremely small scale.
⚑ **1.26M parameters · 500 training examples · 256-token context**
## Model Details
### Architecture
| Property | Value |
| --------------- | -----------------------: |
| Model type | Causal Language Model |
| Base model | `Novi-AI/Novi-Nano-Base` |
| Parameters | **1,258,848** |
| Vocabulary size | **8,195** |
| Context length | **256** |
| Embedding size | **96** |
| Layers | **4** |
| Attention heads | **4** |
| FFN size | **384** |
| Tensor type | **F32** |
## Instruction Tuning
Novi-Nano-Instruct was trained from **Novi-Nano-Base** using a small instruction dataset containing **510 examples**.
### Dataset
| Split | Examples |
| ---------- | -------: |
| Training | **500** |
| Validation | **10** |
The model uses a ChatML-style format with:
```text
<|im_start|>
<|im_end|>
```
Training loss was applied specifically to the assistant responses, allowing the model to focus on learning how to respond to user instructions.
### Training Configuration
| Property | Value |
| ----------------------- | -------: |
| Epochs | **5** |
| Batch size | **16** |
| Gradient accumulation | **2** |
| Effective batch size | **32** |
| Maximum sequence length | **256** |
| Learning rate | **2e-5** |
| Precision | **FP32** |
| Device | **CPU** |
## Training Statistics
The final training run produced:
| Metric | Result |
| --------------------------- | --------------: |
| Final validation loss | **5.153667** |
| Final validation perplexity | **173.0650** |
| Training examples | **500** |
| Validation examples | **10** |
| Training time | **~32 seconds** |
Because the validation set contains only **10 examples**, these metrics should be considered experimental rather than a comprehensive benchmark.
## Tokenizer
Novi-Nano-Instruct uses the custom tokenizer developed for Novi-Nano.
The original tokenizer vocabulary was **8,192 tokens**, with additional tokens already present in the tokenizer.
Two ChatML tokens were added for instruction tuning:
* `<|im_start|>` β€” **8193**
* `<|im_end|>` β€” **8194**
The final tokenizer size is **8,195 tokens**.
The tokenizer was originally trained using data from:
* FineWeb-Edu
* FineWeb-HQ
* SmolLM-Cosmopedia
## Intended Use
Novi-Nano-Instruct is primarily intended for:
* πŸ”¬ Research and experimentation
* πŸ§ͺ Small-model instruction-tuning experiments
* πŸŽ“ Educational purposes
* πŸ’¬ Tiny conversational-model experiments
* πŸ’» Lightweight local inference
* πŸ› οΈ Experimenting with extremely small instruction-tuned models
As an **experimental 1.26M-parameter model**, it is not intended to compete with modern billion-parameter language models.
## Limitations
Novi-Nano-Instruct is an extremely small experimental language model trained on only **500 instruction examples**.
Because of its size and limited training data, it may:
* Generate incoherent text
* Repeat phrases
* Produce unrelated responses
* Fail to follow instructions
* Produce factual errors
* Have very limited world knowledge
* Perform poorly on reasoning tasks
* Struggle with longer conversations
* Lose context beyond its 256-token window
* Produce malformed or unexpected responses
Generation quality is currently **highly experimental**. The model can generate text, but it does not yet consistently produce reliable assistant-style responses.
This model should be considered a **research and experimentation model**, rather than a production-ready conversational AI.
## Usage
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "Novi-AI/Novi-Nano-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": "You are Novi-Nano, a helpful AI assistant."
},
{
"role": "user",
"content": "Give a synonym for 'quiet'."
}
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=50,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
## Chat Template
Novi-Nano-Instruct uses a ChatML-style conversation format:
```text
<|im_start|>system
You are Novi-Nano, a helpful AI assistant.<|im_end|>
<|im_start|>user
Give a synonym for 'quiet'.<|im_end|>
<|im_start|>assistant
A synonym is 'silent'.<|im_end|>
```
For generation, the assistant message is opened automatically by the chat template.
## Project History
Novi AI follows the earlier **AppleMind** experiments, with Novi becoming the primary project for developing small language models.
**AppleMind β†’ Novi AI β†’ Novi-Nano β†’ Novi-Nano-Instruct** πŸš€
## Acknowledgements
Novi-Nano was built using the open-source machine-learning ecosystem and datasets made available by the community.
Special thanks to:
* Hugging Face πŸ€—
* FineWeb
* SmolLM
* Cosmopedia
## License
This model is released under the **Apache 2.0** license.
---
## 🧠 Novi AI
**Small models. Big experiments.**
Novi-Nano-Instruct explores instruction tuning at an extremely small scale, with just **1.26 million parameters** and **500 training examples**.
It is intentionally tiny β€” exploring how far instruction following can go with a fraction of the parameters used by modern LLMs.
*Novi AI 2026 β€” Project Kairo*