Figure 1: HYZ-01-9B was compared against rivals many times larger than itself on five benchmarks. In Belebele TR, the rivals are Q4_KS quantized versions; HYZ-01-9B was measured at full precision.
Today, we introduce HYZ-01-9B: an open-source, thinking-capable, and multimodal language model developed by ntr-dev on behalf of NeuroTürk. HYZ-01-9B is built on top of a multilingual base model; it was created by merging five models specialized in coding, agent behavior, terminal usage, and long-context reasoning using the DARE-TIES method.
The model can be used for chat, question answering, mathematics, reasoning, code generation, and tool calling. Its primary languages are Turkish and English; however, the model is multilingual. The goal is not only to improve Turkish but to deliver a strong, efficient, and generally capable model at the 9B scale. The model is released under the Apache 2.0 license.
| Field | Value |
|---|---|
| Developer | NeuroTürk / ntr-dev |
| License | Apache 2.0 |
| Model type | Image-Text-to-Text, thinking-capable multimodal language model |
| Languages | Turkish, English; multilingual |
| Parameters | 9B |
| Precision | BF16 |
| Context | 262,144 tokens; up to 1,048,576 via dynamic scaling |
| GGUF | Community conversions available; official release planned |
We did not train HYZ-01-9B from scratch. The fine-tuning process and the identities of the expert models used are confidential. What is open is the merging method and the rationale behind it.
On top of a multilingual base model, we selected five expert models that had gone through various fine-tuning processes by the open-source community. These models were strong in different areas such as coding, agent behavior, terminal usage, and long-context reasoning. We then merged them into a single model using DARE-TIES.
DARE prunes the unnecessary parts of each model's difference from the base model. TIES resolves sign conflicts between models. Thus, the five specializations meet in a single 9B model without overpowering each other. We performed the merge in BF16 precision. This approach relies on the power of open source: we take the labor produced by the community and transform it into a stronger, single-piece model.
HYZ-01-9B was compared against rivals 3 to 26 times larger than itself. In mathematics, the gap is clear: we rank first on GSM8K with 96.21. The runner-up, Llama-3.2-90B, is about ten times larger than us; yet it is 3.1 points behind. In reasoning, the situation is more balanced: on GPQA Diamond, we are 1.01 points behind Qwen3.5-27B; we are 0.71 points ahead of the approximately 120-billion-parameter gpt-oss-120b. On MMLU-Pro, only 0.18 points separate us from Qwen2.5-32B; we surpass the 235-billion-parameter Qwen3-235B-A22B by 0.87 points. In language understanding, the picture favors us: we beat Qwen3-235B-Instruct on HellaSwag; on Belebele TR, we are at the top with 89.44.
| Model | GSM8K (8-shot CoT) |
|---|---|
| HYZ-01-9B | 96.21 |
| Llama-3.2-90B | 93.1 |
| DeepSeek-V4-Pro | 92.6 |
| Qwen2-72B | 89.5 |
| Model | GPQA Diamond (0-shot CoT) | MMLU-Pro (5-shot) |
|---|---|---|
| HYZ-01-9B | 80.81 | 69.05 |
| Qwen3.5-27B | 81.82 | — |
| gpt-oss-120b | 80.1 | — |
| GLM-4.7-Flash | 75.2 | — |
| Qwen2.5-32B | — | 69.23 |
| Mimo-VL-7B-Pro | — | 68.50 |
| Qwen3-235B-A22B | — | 68.18 |
| Model | HellaSwag (10-shot) | Belebele TR (0-shot) |
|---|---|---|
| HYZ-01-9B | 78.05 | 89.44 |
| Qwen3-235B-Instruct | 75.27 | — |
| Llama-3.1-8B-Instruct | 69.97 | — |
| Mistral-7B-Instruct-v0.3 | 69.61 | — |
| Qwen3.5-27B (Q4_KS) | — | 87.1 |
| Gemma-3-27B (Q4_KS) | — | 83.3 |
| Qwen3.5-8B (Q4_KS) | — | 78.5 |
The model runs in thinking mode by default. It starts its response with a <think> block, then gives the final answer. For simple tasks, this may be unnecessarily long; you can turn it off with enable_thinking=False.
In addition to text, it also accepts image and video input. It supports tool calling in a structured format and works with OpenAI-compatible clients.
The context window is natively 262,144 tokens, configured to extend up to 1,048,576 tokens via dynamic scaling. For these long values, we recommend separately verifying quality and memory usage in your own workload.
Required versions: Transformers ≥ 5.3.0 · vLLM ≥ 0.17.1 · SGLang ≥ 0.5.9
Thinking on: temperature=1.0, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=1.5, repetition_penalty=1.0
Thinking off: temperature=0.7, top_p=0.8, top_k=20, min_p=0.0, presence_penalty=1.5, repetition_penalty=1.0
vllm serve neuroturk/HYZ-01-9B \
--served-model-name HYZ-01-9B \
--host 0.0.0.0 --port 8000 \
--max-model-len 262144 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--reasoning-parser qwen3 \
--trust-remote-code
For text-only mode, add --language-model-only.
python -m sglang.launch_server \
--model-path neuroturk/HYZ-01-9B \
--served-model-name HYZ-01-9B \
--host 0.0.0.0 --port 8000 \
--context-length 262144 \
--tool-call-parser qwen3_coder \
--reasoning-parser qwen3
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="HYZ-01-9B",
messages=[{"role": "user", "content": "What is the capital of Türkiye?"}],
temperature=1.0, top_p=0.95,
extra_body={"top_k": 20, "presence_penalty": 1.5},
# To turn thinking off:
# "chat_template_kwargs": {"enable_thinking": False}
)
message = response.choices[0].message
reasoning = getattr(message, "reasoning_content", None) or getattr(message, "reasoning", None)
print("reasoning:", reasoning)
print("answer:", message.content)
tools = [{"type": "function", "function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]}}}]
response = client.chat.completions.create(
model="HYZ-01-9B",
messages=[{"role": "user", "content": "What is the weather like in Ankara?"}],
tools=tools, tool_choice="auto", temperature=0.6)
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)
# -> get_weather {"city": "Ankara"}
response = client.chat.completions.create(
model="HYZ-01-9B",
messages=[{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}},
{"type": "text", "text": "Describe this image in one sentence."}]}])
print(response.choices[0].message.content)
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
name = "neuroturk/HYZ-01-9B"
tokenizer = AutoTokenizer.from_pretrained(name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
name, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True)
messages = [{"role": "user", "content": "What is artificial intelligence? Explain briefly."}]
inputs = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt", return_dict=True,
# enable_thinking=False, # to turn thinking off
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=4096, do_sample=True,
temperature=1.0, top_p=0.95, top_k=20)
text = tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:],
skip_special_tokens=False).replace("<|im_end|>", "").strip()
if "</think>" in text:
reasoning, answer = text.split("</think>", 1)
else:
reasoning, answer = "", text
print("reasoning:", reasoning.strip()); print("answer:", answer.strip())
HYZ-01-9B is built on the labor of the open-source community. Without the fine-tuning processes, open-source models, and evaluation tools produced by the community, this model could not have come to be. Therefore, we look forward to support from the community: your testing, feedback, and spreading the project will directly influence the development of this model and future versions.
GGUF: We currently do not have an official GGUF release. We have left multilingual GGUF conversions to the community; you can find them in the quantized section of the model page. If demand grows sufficiently, we will release an official GGUF.
You can try the model for free on our web interface. Because our server resources are limited, responses may slow down during peak hours. This is a limitation of the server, not the model. As community support grows, this situation will improve.
As support comes, we will release new models. We plan to put the models we release through training such as RL and DPO. Our goal is to push the model's reasoning, instruction following, and Turkish performance one step further.
The community's interest will determine our roadmap. Your testing, breaking, criticizing, and giving feedback is the most valuable thing for us. The developer identity (ntr-dev) will also be revealed in the future based on community support.
The model follows instructions well, but it may still produce incorrect, inconsistent, or fabricated outputs. It performs best in Turkish and English; problems may occur in other languages. When thinking mode is on, responses may contain long reasoning traces; for simple tasks, turning it off is more efficient. Context lengths beyond 262,144 tokens are supported at the configuration level; quality and memory usage should be verified separately. Evaluations were performed on text only; no separate measurement has been made for image and video capabilities. For critical areas such as law, medicine, and finance, human verification of outputs is recommended.
@misc{neuroturk2026hyz01,
title = {HYZ-01-9B: A Powerful Multilingual Model at 9 Billion Parameters},
author = {ntr-dev and NeuroTürk},
year = {2026},
url = {https://neuroturk.ai}
}