News
- Traing focus more in coding task
- Improve instruct response of base model
Results
lm-evaluation-harness 0.4.12, chat template applied, max_gen_toks=4096,
full datasets. Base measured under the identical harness.
Table with columns: Qwen3.8-27B, Kiwen-27B, Kiwen1.1-27B | Qwen3.8-27B | Kiwen-27B | Kiwen1.1-27B |
|---|
| GSM8K strict | 67.4 | 72.78 | 96.4 |
| GSM8K flexible | 74.9 | 84.38 | 96.7 |
| IFEval prompt strict | 80.4 | 84.29 | 83.9 |
| IFEval inst strict | 82.5 | 86.45 | 87.5 |
| IFEval prompt loose | 83.2 | 86.69 | 87.2 |
| IFEval inst loose | 84.3 | 88.01 | 89.7 |
| VMLU val (744) | 83.5 | 86.02 | 84.8 |
GSM8K moves by 29 points. That is the headline number and it is real, on the
full 1,319-item set. Base and fine-tune were run back to back in the same job so
the two columns share their conditions. A second independent run of the
fine-tune scored 96.2 / 96.4, which puts the run-to-run spread around 0.3.
VMLU moves much less: +1.3 over the base, against Kiwen-27B's +2.5. The gain is
real but small. The training mix is weighted toward reasoning and tool use, not
toward Vietnamese factual recall, so a model tuned directly for that recall
stays ahead. Base VMLU breaks down as STEM 93.4, Social Science 82.4,
Other 78.6, Humanity 74.7, and the humanities gap is where the headroom is.
Internal benchmark
On an internal 20-task suite the model won 5, lost 6 and tied 5, median delta 0.0.
The wins are concentrated in classification and routing:
Table with columns: Task, Delta| Task | Delta |
|---|
| Translation | +22.9 |
| Intent classification | +20.9 |
| Intent routing | +20.7 |
| Multi-turn tool calling | +15.1 |
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
m = "beyoru/Kiwen1.1-27B"
tok = AutoTokenizer.from_pretrained(m)
model = AutoModelForCausalLM.from_pretrained(m, dtype="auto", device_map="auto")
msgs = [{"role": "user", "content": "Natalia sold clips to 48 friends in April, "
"and half as many in May. How many total?"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True,
enable_thinking=True, return_tensors="pt").to(model.device)
print(tok.decode(model.generate(ids, max_new_tokens=4096)[0][ids.shape[-1]:]))
Set enable_thinking=False for extraction, classification and formatting tasks.
The model was trained with both modes and respects the flag.
Serving with SGLang:
python -m sglang.launch_server --model-path beyoru/Kiwen1.1-27B \
--context-length 262144
Citation
@misc{kiwen27bk3,
title = {Kiwen1.1-27B},
author = {beyoru},
year = {2026},
url = {https://huggingface.co/beyoru/Kiwen1.1-27B}
}
License & Attribution
Built on:
Kiwen1.1-27B is released under the Apache-2.0 license.