---
library_name: transformers
base_model: Qwen/Qwen3-8B-Base
tags:
- multilingual
- reasoning
- LLM
- qwen3
license: apache-2.0
datasets:
- lightonai/Dolci-Think-SFT-32B-Multilingual
language:
- zh
pipeline_tag: text-generation
---
# Qwen3-8B-ZH
`Qwen3-8B-ZH` is a **native reasoning model** fine-tuned from [`Qwen/Qwen3-8B-Base`](https://huggingface.co/Qwen/Qwen3-8B-Base) to reason in Chinese. This model produces its **entire reasoning trace in Chinese** before delivering the final answer in Chinese.
It is released alongside the paper [**Rethinking the Multilingual Reasoning Gap with Layer Swap**](https://arxiv.org/abs/2605.26735).
## Model details
- **Base model:** `Qwen/Qwen3-8B-Base`
- **Language:** Chinese (CoT and answer)
- **Training:** Full SFT, ~10B tokens, 2 epochs
- **Context length:** 32,768 tokens
- **Dataset:** [`lightonai/Dolci-Think-SFT-32B-Multilingual`](https://huggingface.co/datasets/lightonai/Dolci-Think-SFT-32B-Multilingual) (Chinese split).
> [!NOTE]
> The model was trained on data derived from `allenai/Dolci-Think-SFT-32B`, released under the ODC-BY-1.0 license.
## Related models
This model is part of a Chinese specialist trio designed to study the native reasoning gap:
| Model | CoT language | Description |
|---|---|---|
| [`lightonai/Qwen3-8B-ZH`](https://huggingface.co/lightonai/Qwen3-8B-ZH) | Chinese | Native reasoning specialist |
| [`lightonai/Qwen3-8B-ZH-Swap`](https://huggingface.co/lightonai/Qwen3-8B-ZH-Swap) | Chinese | Layer Swap: middle layers (L13–L20) of `Qwen3-8B-EN` transplanted into `Qwen3-8B-ZH` |
| [`lightonai/Qwen3-8B-ZH-Pivot-EN`](https://huggingface.co/lightonai/Qwen3-8B-ZH-Pivot-EN) | English | Same Chinese Q&A pairs, but CoT in English |
| [`lightonai/Qwen3-8B-EN`](https://huggingface.co/lightonai/Qwen3-8B-EN) | English | English specialist |
## Evaluation
All scores are mean accuracy (%) on the **Chinese** version of each benchmark, with sample standard deviation across runs. AIME 24/25 is averaged over 30 runs; the others over 10 runs, using the recommended generation parameters.
| Model | MGSM-Rev2 | Global-MMLU-Lite | GPQA-Diamond | AIME 24/25 | HumanEvalPlus | Average |
|---|:---:|:---:|:---:|:---:|:---:|:---:|
| `Qwen3-8B-ZH` | 88.92 | 74.85 | 50.71 | 53.89 | 85.62 | 70.80 |
| `Qwen3-8B-ZH-Swap` | 88.24 | 76.42 | 52.58 | 55.17 | 85.69 | 71.62 |
| `Qwen3-8B-ZH-Pivot-EN` | 94.84 | 76.15 | 54.19 | 59.06 | 85.19 | 73.89 |
| `Qwen3-8B-EN` | 76.04 | 75.00 | 47.53 | 50.00 | 83.88 | 66.49 |
**Benchmarks used:**
- [`lightonai/gpqa_diamond_multilingual`](https://huggingface.co/datasets/lightonai/gpqa_diamond_multilingual)
- [`lightonai/aime24_multilingual`](https://huggingface.co/datasets/lightonai/aime24_multilingual)
- [`lightonai/aime25_multilingual`](https://huggingface.co/datasets/lightonai/aime25_multilingual)
- [`lightonai/HumanEvalPlus_multilingual`](https://huggingface.co/datasets/lightonai/HumanEvalPlus_multilingual)
- [`lightonai/mgsm-rev2`](https://huggingface.co/datasets/lightonai/mgsm-rev2)
- [`CohereLabs/Global-MMLU-Lite`](https://huggingface.co/datasets/CohereLabs/Global-MMLU-Lite)
## Usage
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "lightonai/Qwen3-8B-ZH"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
messages = [{"role": "user", "content": "计算:24 × 17 = ?"}]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)
outputs = model.generate(inputs, max_new_tokens=32768, temperature=1.0, top_p=0.95, top_k=20)
print(tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True))
```
Recommended sampling: `temperature=1.0`, `top_p=0.95`, `top_k=20`, `min_p=0`.
## Citation
If you find our work helpful, feel free to give us a cite.
```bibtex
@misc{lasbordes2026rethinking,
title = {Rethinking the Multilingual Reasoning Gap with Layer Swap},
author = {Lasbordes, Maxence and Chatelain, Amélie and Seddah, Djamé},
year = {2026},
eprint = {2605.26735},
archivePrefix= {arXiv},
primaryClass = {cs.CL}
}
```