HuggingFaceTB/smoltalk
Viewer • Updated • 2.2M • 27.1k • 425
A ~268M hybrid GDN-2 + GQA model, supervised fine-tuned for chat
Couplet is the supervised fine-tuned (SFT) chat checkpoint for the Couplet family.
kerzgrr/Couplet-basekerzgrr/Monostich-2| Stage | Details |
|---|---|
| Base | 5.47B-token FineWeb-Edu pretrain → Couplet-base |
| SFT mix | HuggingFaceTB/smoltalk + NousResearch/Hermes-3-Dataset |
| Epochs | 1 full epoch |
| Assistant targets | 977,656,016 |
| Wall time | 12.47 hours |
| Final step | optimizer step 10,619 |
| Weights | EMA (Hub model.safetensors is EMA @ bfloat16) |
| Seq length | 8,192 (packed SFT) |
| Peak LR | 1 × 10⁻⁴ AdamW, cosine → 10% min |
| Final val loss (EMA) | 1.2862 (ppl 3.62) |
<|begin_of_text|><|im_start|>system
{system}<|im_end|>
<|im_start|>user
{user}<|im_end|>
<|im_start|>assistant
{assistant}<|im_end|>
Generation prompt ends at <|im_start|>assistant\n.
Same TinyGDN hybrid as the base (267,857,662 parameters):
| Layers | 28 (GDN-2 ×3 + GQA every 4th) |
| Hidden | 768 |
| MLP | SwiGLU 2,048 |
| Attention | 6 Q / 2 KV, head dim 128, partial RoPE |
| Linear | Gated DeltaNet-2, 6 heads × 128 |
| Vocab | 49,152 BPE |
Official 541-prompt Google IFEval scorer, zero-shot ChatML, greedy decoding (temperature=0, max_new_tokens=1280):
| Metric | Score |
|---|---|
| Prompt-level strict | 16.3% (88 / 541) |
| Instruction-level strict | 28.4% (237 / 834) |
| Prompt-level loose | 18.5% (100 / 541) |
| Instruction-level loose | 31.4% (262 / 834) |
pip install torch safetensors tokenizers huggingface_hub
hf download kerzgrr/Couplet inference.py --local-dir .
python inference.py --prompt "What is the capital of France?"
inference.py auto-downloads weights/tokenizer/tiny_gdn/ and auto-installs pinned flash-linear-attention (Windows applies Hub patches). Git is required on PATH.
Interactive chat:
python inference.py
| Flag | Default | Description |
|---|---|---|
--prompt |
— | One-shot user message |
--system |
— | Optional system prompt |
--temperature |
0.7 |
Sampling temperature |
--top-p |
0.9 |
Nucleus sampling |
--top-k |
50 |
Top-k |
--max-new-tokens |
256 |
Max generation length |
--device |
cuda if available |
cuda / cpu |
flash-linear-attention; not GGUF / llama.cpp compatible today| Model | Stage | Hub |
|---|---|---|
| Monostich | SFT (~100M LLaMA) | kerzgrr/Monostich |
| Monostich-2-base | Pretrain (~150M hybrid) | kerzgrr/Monostich-2-base |
| Monostich-2 | SFT (~150M hybrid) | kerzgrr/Monostich-2 |
| Couplet-base | Pretrain (~268M hybrid) | kerzgrr/Couplet-base |
| Couplet | SFT (~268M hybrid) | this repo |
@misc{couplet2026,
title={Couplet: A 268M Hybrid GDN-2 + GQA Chat Model},
author={kerzgrr},
year={2026},
url={https://huggingface.co/kerzgrr/Couplet}
}
kerzgrr/Couplet-baseA couplet is a pair of lines — compact, connected, and complete.
Base model
kerzgrr/Couplet-base