1,019 Downloads Updated 6 days ago
ollama run tobestyledintro/qwen3.8-9b-distill
Updated 6 days ago
6 days ago
d84b0a599062 · 6.7GB
Vision · Tools · Thinking · 262K context · Apache-2.0
Qwen3.8-9B-Distill is a dense 9B reasoning model: it brings the reasoning behaviour of a frontier-scale teacher (Qwen3.8, 2.4T-A95B) into a model that fits on a single consumer GPU. Every answer opens with a <think> block learned from real teacher traces, not synthetic self-generated reasoning.
It also keeps everything from the Qwen3.5 base: native function calling (no wrapper, no tool-specific fine-tune), vision, and a 262,144-token context.
Original weights and GGUF quants by empero-ai · base model Qwen/Qwen3.5-9B · this Ollama packaging is a community repack, all credit to empero-ai.
| Tag | Quant | Size | Notes |
|---|---|---|---|
latest |
Q4_K_M | 6.7 GB | best size/quality compromise (incl. 0.9 GB vision projector) |
q6_k |
Q6_K | 8.5 GB | near-lossless |
q8_0 |
Q8_0 | 10.7 GB | max quality |
ollama run tobestyledintro/qwen3.8-9b-distill # latest = Q4_K_M
ollama run tobestyledintro/qwen3.8-9b-distill:q6_k
# chat
ollama run tobestyledintro/qwen3.8-9b-distill
# long context (native 262144)
ollama run tobestyledintro/qwen3.8-9b-distill --ctx 131072
# vision: drag an image, or
ollama run tobestyledintro/qwen3.8-9b-distill "Extract the total from ./invoice.png"
API — thinking can be turned off (the model then answers directly, no <think> block):
curl http://localhost:11434/api/chat -d '{
"model": "tobestyledintro/qwen3.8-9b-distill",
"think": false,
"messages": [{"role": "user", "content": "17*23 ?"}]
}'
Python (vision):
import ollama
r = ollama.chat(
model='tobestyledintro/qwen3.8-9b-distill',
messages=[{'role': 'user', 'content': 'What is in this image?',
'images': ['screenshot.png']}],
)
print(r.message.content)
Tool calling (native, returns structured tool_calls):
tools = [{"type": "function", "function": {
"name": "get_weather",
"description": "Weather for a city",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}}}]
r = ollama.chat(model='tobestyledintro/qwen3.8-9b-distill',
messages=[{'role': 'user', 'content': 'Weather in Paris? Use get_weather.'}],
tools=tools)
print(r.message.tool_calls) # -> get_weather(city='Paris')
<think> block (real teacher traces). Disable it with think: false if you want short, direct answers. Strip <think>...</think> before showing output to end users.tool_calls (no XML to handle yourself).Author’s recommendation: temperature=0.6, top_p=0.95, top_k=20 — these are the defaults baked into this model. Allow generous output length: reasoning needs room (16k tokens is a reasonable budget), and greedy decoding on long generations is a known repetition-loop failure mode for this class of model.
Measured on 1× RTX 5090 (32 GB), Q4_K_M fully offloaded:
| short factual answer | 140 tok/s |
| Python code generation | 118 tok/s |
| tool call | structured tool_calls, correct arguments |
| vision | reads text from an image correctly |
| architecture | qwen3_5 (Qwen3_5ForConditionalGeneration) |
| parameters | ~9B dense |
| layers | 32 |
| context | 262144 |
| vision | clip, depth 27, hidden 1152, projection 4096 |
| quantization | Q4_K_M (upstream GGUF, unmodified weights) |