---
license: apache-2.0
language:
- en
tags:
- text-generation
- causal-lm
- pytorch
- sft
- instruction-tuned
- chat
- reasoning
- tool-use
- hybrid
- gated-deltanet
- gqa
- tercet
pipeline_tag: text-generation
library_name: tiny_gdn
datasets:
- HuggingFaceFW/fineweb-edu
- HuggingFaceTB/smoltalk2
- HuggingFaceTB/smoltalk
- nvidia/Llama-Nemotron-Post-Training-Dataset
- nvidia/Nemotron-Post-Training-Dataset-v1
- nvidia/Nemotron-Agentic-v1
- nvidia/Nemotron-SFT-Agentic-v2
- nvidia/Nemotron-SFT-Instruction-Following-Chat-v2
- nvidia/Nemotron-Instruction-Following-Chat-v1
- nvidia/Nemotron-Cascade-2-SFT-Data
- Agent-Ark/Toucan-1.5M
- interstellarninja/hermes_reasoning_tool_use
- NousResearch/Hermes-3-Dataset
- allenai/WildChat-4.8M
- open-thoughts/OpenThoughts3-1.2M
- teknium/OpenHermes-2.5
- open-r1/Mixture-of-Thoughts
- CohereLabs/aya_dataset
- NousResearch/hermes-function-calling-v1
- simplescaling/s1K-1.1
- allenai/tulu-3-sft-personas-instruction-following
- Salesforce/xlam-function-calling-60k
- THUDM/LongAlign-10k
base_model: kerzgrr/Tercet-R-1.0
---
# Tercet-R-1.1
### Reasoning + tool-call chat model (~502M) — latest Tercet-R snapshot
[](.)
[](.)
[](LICENSE)
[](https://huggingface.co/spaces/kerzgrr/tercet-r-1.1-demo)
*A ~502M hybrid GDN-2 + GQA model, continued on multi-turn tools and instruction following*
---
## What this is
**Tercet-R-1.1** is the latest public reasoning / tool-use checkpoint in the Tercet-R line.
- Previous public snapshot: [`kerzgrr/Tercet-R-1.0`](https://huggingface.co/kerzgrr/Tercet-R-1.0)
- Base (pretrain): [`kerzgrr/Tercet-base`](https://huggingface.co/kerzgrr/Tercet-base)
- Live demo: [`kerzgrr/tercet-r-1.1-demo`](https://huggingface.co/spaces/kerzgrr/tercet-r-1.1-demo)
- Hub weights are the **EMA** snapshot in **bfloat16**
This upload is the latest **complete** stage-3 SFT checkpoint (optimizer step **5,300**). The stage-3 run is still in progress toward a much longer schedule; 1.1 is the snapshot that existed when this repo was published.
Initialization was the instruct-run EMA at step 5,000 (`tercet-r-instruct`), not the public 1.0 file (that release packaged instruct step 4,500). The chat contract is unchanged.
---
## Chat contract
### Thinking
Each assistant turn is prefixed with a **zero-loss control token**:
| Mode | Prefix | Typical body |
|------|--------|----------------|
| think | `<\|think\|>\n` | `…` then the answer |
| no-think | `<\|no_think\|>\n` | answer only |
`inference.py` streams the `` region live (dim yellow) and hides the control tokens.
### Tool calls (SmolTalk JSON)
```
{"name": "web-search", "arguments": {"query": "…"}}
```
Stage-3 also saw `stateful_python_code_exec` leftovers from earlier Cascade-2 SFT. `inference.py` auto-runs:
| Built-in | Tool name | Observation |
|----------|-----------|-------------|
| `--tools web-search` | `web-search` | Tavily-shaped JSON (Tavily if `TAVILY_API_KEY` is set, else DuckDuckGo + Wikipedia) |
| `--tools python` | `stateful_python_code_exec` | Jupyter-style stdout / last value from a restricted interpreter |
| `--tools calculator` | `calculator` | Numeric result of a math expression |
### Tool results
Each observation is a `tool` (or `user`) turn prefixed with:
```
<|tool_response|>
{observation}
```
---
## Install & run
```bash
pip install torch safetensors tokenizers huggingface_hub
hf download kerzgrr/Tercet-R-1.1 inference.py --local-dir .
python inference.py
```
```bash
python inference.py --prompt "What is the capital of France?"
python inference.py --tools web-search,python,calculator
python inference.py --no-think --prompt "Reply in one sentence."
```
`inference.py` auto-downloads weights / tokenizer / `tiny_gdn/` and auto-installs pinned `flash-linear-attention`. Git is required on `PATH`.
| Flag | Default | Description |
|------|---------|-------------|
| `--prompt` | — | One-shot user message |
| `--system` | — | System prompt, used verbatim |
| `--think` / `--no-think` | think | Assistant control prefix |
| `--tools` | — | Built-ins: `web-search`, `python`, `calculator` (comma-separated) |
| `--temperature` | `0.7` | Sampling temperature |
| `--max-new-tokens` | `4096` | Max generation length |
| `--device` | `cuda` if available | `cuda` / `cpu` |
Interactive commands: `/think` `/no_think` `/system …` `/reset` `/exit`.
---
## Model architecture
Same TinyGDN hybrid as [`Tercet-base`](https://huggingface.co/kerzgrr/Tercet-base) (501,635,264 parameters):
| | |
|--|--|
| **Layers** | 32 (GDN-2 ×3 + GQA every 4th) |
| **Hidden** | 1,024 |
| **MLP** | SwiGLU 2,624 |
| **Attention** | 8 Q / 2 KV, head dim 128, partial RoPE |
| **Linear** | Gated DeltaNet-2, 8 heads × 128 |
| **Vocab** | 49,152 BPE |
| **Context** | 16,384 |
---
## Training
| Stage | Details |
|-------|---------|
| **Base** | [HuggingFaceFW/fineweb-edu](https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu) → [`Tercet-base`](https://huggingface.co/kerzgrr/Tercet-base) |
| **Mid + instruct SFT** | [HuggingFaceTB/smoltalk2](https://huggingface.co/datasets/HuggingFaceTB/smoltalk2) Mid / SFT → instruct EMA @ step 5,000 |
| **Stage-3 SFT** | Multi-turn mix: Nemotron PTD v1, Agentic v1/v2 (including `web-search`), IF-Chat v1/v2, Cascade-2 instruction following, Toucan 1.5M, Hermes-3, Hermes reasoning tool-use, WildChat-4.8M. Seq 16,384, AdamW 3×10⁻⁵, 27.5 hours so far, 602M training tokens |
| **Checkpoint** | optimizer step 5,300 (latest complete stage-3 snapshot) |
| **Weights** | EMA (this repo's `model.safetensors`) |
| **Val loss (EMA)** | 2.027 (ppl 7.59) on the stage-3 holdout — a harder mix than the instruct-only 1.0 val set |
Stage-3 does **not** re-include Cascade-2 `math/math_tool.jsonl`. The restricted Python tool in `inference.py` is there so leftover `stateful_python_code_exec` calls still compute instead of failing open.
---
## Limitations
- **In-progress run**: this is a mid-stage-3 snapshot, not a finished 1.1 train
- **Scale**: ~502M is a research / edge model, not a frontier system
- Requires `flash-linear-attention`; not GGUF / llama.cpp compatible today
- The Python tool is a restricted interpreter (math-oriented imports only)
---
## Model family
| Model | Stage | Hub |
|-------|-------|-----|
| Tercet-base | Pretrain | [`kerzgrr/Tercet-base`](https://huggingface.co/kerzgrr/Tercet-base) |
| Tercet | SFT chat | [`kerzgrr/Tercet`](https://huggingface.co/kerzgrr/Tercet) |
| Tercet-R-1.0 | SFT reasoning + tools | [`kerzgrr/Tercet-R-1.0`](https://huggingface.co/kerzgrr/Tercet-R-1.0) |
| **Tercet-R-1.1** | **Stage-3 SFT (latest)** | **this repo** |
| Demo | ZeroGPU Space | [`kerzgrr/tercet-r-1.1-demo`](https://huggingface.co/spaces/kerzgrr/tercet-r-1.1-demo) |
---
## Citation
```bibtex
@misc{tercetr11,
title={Tercet-R-1.1: A 502M Hybrid GDN-2 + GQA Reasoning Model},
author={kerzgrr},
year={2026},
url={https://huggingface.co/kerzgrr/Tercet-R-1.1}
}
```
---
*R is for reasoning.*