Downloads · 30 days
9
1% of all-time downloads
dogukanvzr/Kumru-2B-Thinking-v1.0
Kumru-2B-Thinking-v1.0 is a text generation model from dogukanvzr. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
<p align="center" <img src="./assets/kumruheader.png" alt="Kumru-2B-Thinking-v1.0 header" width="100%" </p
Downloads · 30 days
9
1% of all-time downloads
All-time downloads
1.3K
Public
Parameters
2.4B
4.8 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors4.8 GB · 100%
From the Hugging Face model README
Kumru-2B-Thinking-v1.0 is a Turkish reasoning-oriented language model built on top of vngrs-ai/Kumru-2B.
It was fine-tuned with rank-128 LoRA on a curated Turkish reasoning dataset to make the model produce structured reasoning traces before giving its final answer.
The model usually answers in this format:
<think>
Türkçe akıl yürütme süreci burada yer alır.
</think>
Final cevap burada yer alır.
This release is intended for Turkish reasoning experiments, educational demos, benchmark studies, and further alignment or fine-tuning research. It is a compact 2.3B model, so it should be used with realistic expectations and external verification for tasks that require high reliability.
| Field | Value |
|---|---|
| Model name | dogukanvzr/Kumru-2B-Thinking-v1.0 |
| Base model | vngrs-ai/Kumru-2B |
| Approx. size | 2.3B parameters |
| Fine-tuning method | LoRA |
| LoRA rank | 128 |
| Main language | Turkish |
| Context length | 8192 tokens |
| Main output style | <think>...</think> + final answer |
| License | Apache-2.0 |
Kumru-2B-Thinking-v1.0 is designed to make a small Turkish language model better at producing structured and inspectable reasoning-style outputs.
The goal is not only to provide a short answer, but also to separate the model’s reasoning trace from the final answer. This makes the model useful for experiments where the reasoning process needs to be evaluated, parsed, compared, or used as synthetic training data.
The model is especially useful for:
Compared with the original Kumru-2B-Instruct baseline, this model shows better benchmark performance under the evaluation setup used in this release and more consistently follows a Turkish thinking-style response format.
Kumru-2B-Thinking-v1.0, Türkçe akıl yürütme formatı üretmesi için fine-tune edilmiş kompakt bir dil modelidir.
Model, cevap vermeden önce genellikle <think>...</think> bloğu içinde Türkçe bir düşünme/akıl yürütme bölümü üretir. Ardından final cevabı ayrı şekilde verir. Bu yapı, özellikle Türkçe reasoning çalışmaları, eğitim amaçlı demolar, benchmark denemeleri ve daha sonraki fine-tuning/RL çalışmalarında kullanışlıdır.
Bu modelin amacı, Türkçe görevlerde daha okunabilir ve ayrıştırılabilir reasoning çıktıları üretmektir. Model küçük ölçekli olduğu için matematik, kodlama, güncel bilgi, uzun bağlamlı karmaşık çıkarım ve yüksek riskli karar verme görevlerinde tek başına güvenilir bir sistem olarak kullanılmamalıdır.
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "dogukanvzr/Kumru-2B-Thinking-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
# Recommended for faster generation during inference
model.config.use_cache = True
messages = [
{
"role": "user",
"content": (
"Bir trende 96 yolcu var. İlk durakta yolcuların dörtte biri iniyor "
"ve 18 yolcu biniyor. İkinci durakta mevcut yolcuların üçte biri iniyor. "
"Son durumda trende kaç yolcu kalır?"
),
}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(
inputs,
max_new_tokens=1024,
temperature=0.7,
do_sample=True,
top_p=0.95,
repetition_penalty=1.05,
)
generated = tokenizer.decode(
outputs[0][inputs.shape[-1]:],
skip_special_tokens=True,
)
print(generated)
For reasoning-style interactive use:
generation_config = {
"max_new_tokens": 1024,
"temperature": 0.6,
"top_p": 0.95,
"do_sample": True,
"repetition_penalty": 1.05,
}
For more deterministic benchmark-style evaluation:
generation_config = {
"max_new_tokens": 1024,
"do_sample": False,
}
Practical notes:
max_new_tokens=768 or 1024 for reasoning-heavy tasks.model.config.use_cache = True is enabled.The model was trained to produce a visible reasoning block followed by the final answer:
<think>
Burada model problemi Türkçe olarak adım adım değerlendirir.
</think>
Burada final cevap yer alır.
For tasks where you need reliable extraction, explicitly request a final answer marker.
Example for multiple-choice tasks:
Aşağıdaki soruyu çöz. Seçenekleri dikkatlice değerlendir.
Cevabı düşünüp son satırda yalnızca şu formatta yaz:
FINAL_ANSWER: <A/B/C/D>
Example for numerical tasks:
Problemi adım adım çöz.
Son satırda yalnızca şu formatta yaz:
FINAL_ANSWER: <sayı>
A simple parser can separate the <think> block from the final answer:
import re
def split_thinking(text: str):
match = re.search(r"<think>(.*?)</think>", text, flags=re.DOTALL)
if not match:
return None, text.strip()
reasoning = match.group(1).strip()
final_answer = text[match.end():].strip()
return reasoning, final_answer
The model was evaluated on 7 Turkish benchmark tasks:
Evaluation setup:
7 tasks × 250 samples × 3 seeds × 2 decoding strategies
Reported metric:
Accuracy
For multiple-choice tasks, the answer was extracted from the final answer letter.
For GSM8K-TR, the final numerical answer was extracted.
max_new_tokens=1024max_new_tokens=1024 is recommended for this model because reasoning traces can be longer than normal instruction-tuned outputs.
| Model | MMLU-TR | ARC-TR | TruthQA-TR | Wino-TR | HSwag-TR | Belebele-TR | GSM8K-TR | Avg |
|---|---|---|---|---|---|---|---|---|
| Kumru-2B-Instruct | 8.6 | 4.7 | 23.9 | 18.8 | 6.8 | 8.0 | 1.1 | 10.3 |
| Kara-Kumru-v1.0 | 10.7 | 8.9 | 27.9 | 28.1 | 7.9 | 6.5 | 2.9 | 13.3 |
| Kumru-2B-Thinking-v1.0 | 18.4 | 19.7 | 20.9 | 19.3 | 20.7 | 16.5 | 1.9 | 16.8 |
| Model | MMLU-TR | ARC-TR | TruthQA-TR | Wino-TR | HSwag-TR | Belebele-TR | GSM8K-TR | Avg |
|---|---|---|---|---|---|---|---|---|
| Kumru-2B-Instruct | 6.7 | 5.1 | 22.0 | 7.6 | 4.3 | 6.7 | 2.3 | 7.8 |
| Kara-Kumru-v1.0 | 9.9 | 7.2 | 24.7 | 25.7 | 7.1 | 3.5 | 2.1 | 11.5 |
| Kumru-2B-Thinking-v1.0 | 19.3 | 17.1 | 18.1 | 13.3 | 17.9 | 14.8 | 1.3 | 14.5 |
Kumru-2B-Thinking-v1.0 improves over the Kumru-2B-Instruct baseline in the tested setup, especially on several Turkish multiple-choice reasoning benchmarks.
The main value of the model is not only the benchmark improvement, but also its ability to produce a consistent, inspectable Turkish reasoning format.
At the same time, this is still a compact 2.3B model. Absolute scores remain limited, especially for mathematical reasoning. For math, factual questions, or high-reliability use cases, answers should be verified externally.
<details> <summary>Additional token-budget visualizations</summary> <p align="center"> <img src="./assets/token_budget_delta_sampling.png" alt="Token budget delta sampling" width="92%"> </p> <p align="center"> <img src="./assets/token_budget_delta_greedy.png" alt="Token budget delta greedy" width="92%"> </p> </details>Kumru-2B-Thinking-v1.0 was fine-tuned from vngrs-ai/Kumru-2B using LoRA.
| Component | Value |
|---|---|
| Base model | vngrs-ai/Kumru-2B |
| Fine-tuning method | LoRA |
| LoRA rank | 128 |
| LoRA alpha | 128 |
| LoRA variant | rsLoRA |
| Max sequence length | 8192 |
| Precision | bf16 |
| Loss masking | Assistant-only |
| Main target language | Turkish |
| Main output format | <think>...</think> + final answer |
The fine-tuning objective was to teach the model to generate structured Turkish reasoning traces while preserving general instruction-following behavior from the base model.
The model was trained on a curated Turkish reasoning dataset.
Dataset used:
dogukanvzr/kumru-v5-dataset
The dataset format encourages the model to produce:
<think>...</think>The training data focuses on Turkish reasoning, instruction following, and answer formatting. The model is therefore expected to perform best on Turkish prompts.
Prompt:
Bir trende 96 yolcu var. İlk durakta yolcuların dörtte biri iniyor ve 18 yolcu biniyor. İkinci durakta mevcut yolcuların üçte biri iniyor. Şimdi trende kaç yolcu vardır?
Example style of output:
<think>
Başlangıçta trende 96 yolcu var.
İlk durakta yolcuların dörtte biri iner:
96 / 4 = 24
Bu durumda kalan yolcu sayısı:
96 - 24 = 72
Sonra 18 yolcu biner:
72 + 18 = 90
İkinci durakta mevcut yolcuların üçte biri iner:
90 / 3 = 30
Kalan yolcu sayısı:
90 - 30 = 60
</think>
Trende son durumda 60 yolcu vardır.
This model is suitable for:
This model should not be used as the sole source of truth for:
Kumru-2B-Thinking-v1.0 has several known limitations.
The model can produce step-by-step reasoning, but numerical accuracy is not guaranteed. Mathematical answers should be checked with a calculator, symbolic tool, or a stronger verifier model.
The model may hallucinate facts, dates, names, sources, or explanations. It does not have live internet access and should not be treated as a current knowledge system.
The model may sometimes overthink simple questions or produce longer reasoning than necessary. Use a lower max_new_tokens value for short responses and higher values for benchmark-style reasoning.
The model is Turkish-first. It may respond to English or mixed Turkish-English prompts, but quality is expected to be better on Turkish prompts.
The model is trained to use <think>...</think>, but downstream applications should still validate the output format if strict parsing is required.
The model has not been extensively safety-aligned beyond the behavior inherited from the base model and the fine-tuning data. Additional safety filtering is recommended for public-facing applications.
For best results:
max_new_tokens=768 or 1024 for reasoning-heavy tasks.temperature=0.6–0.7 for reasoning-style sampling.<think> block.This model inherits the architecture and tokenizer from vngrs-ai/Kumru-2B.
Fine-tuning was performed with LoRA adapters applied to the main attention and MLP projection layers, with additional trainable components where needed for reasoning-format adaptation.
The released checkpoint is provided in safetensors format for loading with the Hugging Face Transformers ecosystem.
The model uses a chat template compatible with Hugging Face apply_chat_template.
Recommended usage:
messages = [
{"role": "user", "content": "Sorunu Türkçe olarak buraya yaz."}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
)
The model was trained primarily for direct Turkish user instructions. For best results, place task instructions clearly in the user message.
Depending on hardware, the model can be loaded in bf16 or fp16.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "dogukanvzr/Kumru-2B-Thinking-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
model.config.use_cache = True
For limited VRAM environments, users may apply external quantization workflows such as bitsandbytes or GGUF conversion. Quantized releases are not guaranteed to match the benchmark results shown above unless evaluated separately.
If you use this model, please cite it as:
@misc{veziroglu2026kumru2bthinkingv1,
title = {Kumru-2B-Thinking-v1.0: A Turkish Reasoning-Oriented Fine-Tuned Language Model},
author = {Dogukan Veziroglu},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/dogukanvzr/Kumru-2B-Thinking-v1.0}}
}
This model is based on vngrs-ai/Kumru-2B.
Thanks to the VNGRS-AI team for releasing Turkish language models that make further Turkish NLP and reasoning experiments possible.
This model is released under the Apache-2.0 license.
Please also check the license and usage terms of the base model and any datasets used in your downstream application.
For questions, issues, or feedback, please use the Hugging Face community tab or contact the model author through the Hugging Face profile:
dogukanvzr