Model reference · open weights
Domyn-Small is an open-weight language model from domyn. Domyn-Small-v1.0 (BF16) weighs 19.6 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the domyn/Domyn-Small-v1.0 model card, 2026-10-01
What it is
| Released by | domyn |
|---|---|
| Released | 2026-05-09 |
| Parameters | 9.8B |
| VRAM | 19.6 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … RTX 4060 Ti 16 GB 2 smaller cards | ||||
| RTX 3090 24 GB | 2 | 17K | 23.4 GB | |
| RTX 4090 24 GB | 2 | 16K | 23.4 GB | |
| RTX 5090 32 GB | 7 | 1 | all 32K | 31.0 GB |
| L40S 48 GB | 17 | 4 | all 32K | 44.0 GB |
| A100 80 GB | 42 | 10 | all 32K | 78.2 GB |
| H100 80 GB | 38 | 9 | all 32K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 50 | 12 | all 32K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 60 | 15 | all 32K | 107 GB |
| H200 141 GB | 83 | 20 | all 32K | 138 GB |
| B200 180 GB | 111 | 27 | all 32K | 176 GB |
| 2× RTX 3060 12 GB tensor parallel | 1 | 10K | 11.6 GB a card | |
| 2× RTX 4060 Ti 16 GB tensor parallel | 7 | 1 | all 32K | 15.4 GB a card |
| 2× RTX 4090 24 GB tensor parallel | 18 | 4 | all 32K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 18 | 4 | all 32K | 23.4 GB a card |
| 2× RTX 5090 32 GB tensor parallel | 30 | 7 | all 32K | 31.0 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 21.9 GB | 25.9 GB |
| 5 | 27.2 GB | 47.4 GB |
| 8 | 31.3 GB | 63.5 GB |
| 16 | 42.0 GB | 106 GB |
| 32 | 63.5 GB | 192 GB |
| 64 | 106 GB | 364 GB |
One card, with vLLM's small-card settings.
From the model card
Domyn Small is a 10B-parameter open-weight reasoning model designed for resource-constrained, agentic, and fine-tunable deployments. It pairs a dual-mode (thinking on/off) inference design with grouped-query attention, a native 32k context window (extensible to 131k via YaRN), and tool calling. On reasoning benchmarks it reaches accuracy comparable to leading 7–10B reasoning peers while spending roughly 2–4× fewer reasoning tokens — placing it on a favourable accuracy/cost Pareto frontier for production inference and downstream fine-tuning.
Fine-tune Domyn Small to your domain to unlock its real power and to retain full ownership and control over the resulting model.
thinking on for deep multi-step reasoning, thinking off for fast, compact output. Toggleable from the system prompt or the API.A full architecture and training-recipe specification is available in the Domyn Small technical report.
from openai import OpenAI
client = OpenAI(
base_url="http:///v1",
api_key="none",
)
response = client.chat.completions.create(
model="domyn/Domyn-Small-v1.0",
messages=[
{"role": "system", "content": "You are Domyn Small, a helpful assistant."},
{"role": "user", "content": "What is the capital of Italy?"},
],
)
print(response.choices[0].message.content)
We recommend vLLM ≥ 0.9.2 for all the snippets below.
vllm serve domyn/Domyn-Small-v1.0 \
--tensor-parallel-size 1 \
--dtype bfloat16 \
--max-model-len 32768 \
--max-num-seqs 256 \
--gpu-memory-utilization 0.9
To have vLLM automatically extract the model's `` blocks and expose them as a structured reasoning_content field, add a reasoning-parser flag. Which flag to use depends on your vLLM version.
**vLLM …` format as OLMo 3, and earlier vLLM releases work with the OLMo 3 parser directly:
vllm serve domyn/Domyn-Small-v1.0 \
--tensor-parallel-size 1 \
--dtype bfloat16 \
--max-model-len 32768 \
--max-num-seqs 256 \
--gpu-memory-utilization 0.9 \
--reasoning-parser olmo3
vLLM ≥ 0.21.0 (recommended) — use the Domyn-specific parser plugin shipped with this checkpoint (reasoning_parser_plugin.py). It reads the per-request enable_thinking flag (or the thinking on / thinking off system-prompt directive) and routes streamed output to the correct lane (reasoning vs content) for both modes.
vllm serve domyn/Domyn-Small-v1.0 \
--tensor-parallel-size 1 \
--dtype bfloat16 \
--max-model-len 32768 \
--max-num-seqs 256 \
--gpu-memory-utilization 0.9 \
--reasoning-parser think_block \
--reasoning-parser-plugin /path/to/reasoning_parser_plugin.py
Replace /path/to/ with the actual path to the plugin file bundled with the checkpoint. The parser name think_block is the registration string declared inside the plugin and must match exactly.
YaRN scaling may impact model quality on inputs shorter than 32k. Enable it only when you actually need contexts beyond the native 32,768-token window.
vllm serve domyn/Domyn-Small-v1.0 \
--tensor-parallel-size 1 \
--dtype bfloat16 \
# vLLM < 0.12.0
--rope-scaling '{"rope_type": "yarn", "factor": 4, "original_max_position_embeddings": 32768}' \
# vLLM >= 0.12.0
--hf-overrides '{"rope_parameters": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 32768}}' \
--max-model-len 131072
Tool calling requires three extra flags and the bundled plugin files (shipped with this model checkpoint):
vllm serve domyn/Domyn-Small-v1.0 \
--tensor-parallel-size 1 \
--dtype bfloat16 \
--max-model-len 32768 \
--max-num-seqs 256 \
--gpu-memory-utilization 0.9 \
--enable-auto-tool-choice \
--tool-call-parser xml_tool_call \
--tool-parser-plugin /path/to/tool_parser_plugin.py \
--chat-template /path/to/chat_template.jinja
Replace /path/to/ with the actual paths to the files bundled with the checkpoint.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "domyn/Domyn-Small-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, dtype=torch.bfloat16, device_map="auto"
)
messages = [
{
"role": "system",
"content": "Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.