File size: 18,943 Bytes
734144a
 
 
 
 
 
 
 
 
 
 
 
 
 
9d24c4d
 
 
 
 
 
734144a
0232d2d
 
 
 
734144a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226dbcd
9d24c4d
0232d2d
 
2aa8161
734144a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e8a2e4a
734144a
e8a2e4a
734144a
e8a2e4a
 
 
 
 
 
 
 
734144a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80c5962
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dc813cc
80c5962
 
 
 
 
 
 
 
 
 
 
 
 
734144a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80c5962
 
734144a
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
---
license: apache-2.0
base_model: Qwen/Qwen3.8-27B
pipeline_tag: image-text-to-text
library_name: transformers
tags:
- thinklite
- reasoning
- efficient-reasoning
- qwen3.8
---

<img src="thinklite-banner.png?v=2" alt="Thinklite-27B: Qwen 3.8 27B made efficient" style="width:100%;max-width:100%;height:auto;display:block;margin-bottom:1em;" />

> [!NOTE]
> **Qwen3.8-27B that thinks with half the tokens and keeps 99.6% of its accuracy.** At
> `reasoning_effort="xhigh"`, Thinklite-27B uses 47% less reasoning than Qwen3.8-27B on average over six benchmarks and
> writes half as many output tokens, so its time-to-final-output (TTFO) is about 2x shorter, while it keeps 99.6% of
> the base model's average accuracy (89.8 against 90.2). At `reasoning_effort="low"` it uses 28% less reasoning and
> keeps 97.5% of the base model's accuracy (2.2 points below).

> Check out the official [Thinklite-27B-GGUF](https://huggingface.co/Sparset/Thinklite-27B-GGUF), a 16.5 GB Q4_K_M
> for llama.cpp and Ollama that uses 48% less reasoning than Qwen3.8-27B quantized the same way at 99.3% of its
> accuracy.

<style>
.tl-table { display:table !important; width:100% !important; table-layout:fixed !important; border-collapse:separate; border-spacing:0; overflow:hidden; border:1px solid rgba(246,246,243,0.16); border-radius:0; background:#090909; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; font-size:13px; color:rgba(246,246,243,0.80); }
.tl-table th { padding:10px 6px; text-align:center; font-weight:600; color:rgba(246,246,243,0.55); background:#101010; border-right:1px solid rgba(246,246,243,0.16); border-bottom:1px solid rgba(246,246,243,0.16); }
.tl-table td { padding:10px 6px; text-align:center; color:rgba(246,246,243,0.80); background:#090909; border-right:1px solid rgba(246,246,243,0.16); border-bottom:1px solid rgba(246,246,243,0.16); vertical-align:middle; font-variant-numeric:tabular-nums; }
.tl-table tr > :last-child { border-right:0; }
.tl-table tbody tr:last-child td { border-bottom:0; }
.tl-table .group { color:#F6F6F3; font-weight:700; border-bottom:2px solid #3E61EB; }
.tl-table .name { padding-left:16px; text-align:left; color:#F6F6F3; font-weight:600; }
.tl-table .tl { background:rgba(62,97,235,0.16); }
.tl-table th.tl { color:#8DA2F5; }
.tl-table td.tl strong, .tl-table td.tl { color:#F6F6F3; }
.tl-table strong { color:#F6F6F3; }
.tl-table .up { color:#8DA2F5; font-weight:700; }
.tl-table .section { padding:10px 16px; text-align:left; color:#8DA2F5; background:#101010; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:12px; }
.tl-table .avg td { border-top:2px solid #3E61EB; font-weight:700; }
@media (max-width: 640px) {
  .tl-table { display:block !important; overflow-x:auto !important; table-layout:auto !important; }
  .tl-table th, .tl-table td { min-width:92px; }
  .tl-table th:first-child, .tl-table td:first-child { min-width:140px; }
}
.model-card-content blockquote.note, blockquote.note { border-width:0 !important; box-shadow:inset 4px 0 0 #3E61EB !important; background:rgba(62,97,235,0.14) !important; border-radius:0 !important; padding:12px 18px 12px 22px !important; }
blockquote.note p { margin:0 !important; font-style:normal !important; }
/* Plain blockquotes (no [!NOTE]) render as a grey card, used for the pointer to the GGUF release. */
.model-card-content blockquote:not(.note), blockquote:not(.note) { border-width:0 !important; box-shadow:inset 4px 0 0 rgba(246,246,243,0.35) !important; background:rgba(246,246,243,0.07) !important; border-radius:0 !important; padding:12px 18px 12px 22px !important; color:rgba(246,246,243,0.85) !important; }
blockquote:not(.note) p { margin:0 !important; font-style:normal !important; quotes:none !important; }
</style>

<table class="tl-table">
  <thead>
    <tr><th rowspan="2" style="text-align:left;padding-left:16px;vertical-align:bottom;">Model</th><th class="group" colspan="2">reasoning_effort = xhigh</th><th class="group" colspan="2">reasoning_effort = low</th></tr>
    <tr><th>Reasoning vs base</th><th>TTFO speed-up</th><th>Reasoning vs base</th><th>TTFO speed-up</th></tr>
  </thead>
  <tbody>
    <tr><td class="name tl">Thinklite-27B</td><td class="tl"><strong>&#8595; 47.0%</strong></td><td class="tl"><strong>2.0x</strong></td><td class="tl"><strong>&#8595; 28.0%</strong></td><td class="tl"><strong>1.3x</strong></td></tr>
    <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td>&#8595; 45.8%</td><td>1.7x</td><td>&#8595; 16.4%</td><td>1.2x</td></tr>
    <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>&#8595; 35.6%</td><td>1.6x</td><td>&#8595; 12.7%</td><td>1.1x</td></tr>
  </tbody>
</table>

- *Reasoning vs base*: the change in mean reasoning tokens per answer against Qwen3.8-27B at the same effort,
  averaged over the six benchmarks below.
- *TTFO speed-up*: TTFO (time-to-final-output) is how long a user waits until the model's complete final
  output is there, thinking included. The speed-up is Qwen3.8-27B's TTFO divided by the model's, over all 4,291
  requests for one user. All four models share the Qwen3.8-27B architecture and decode at the same speed
  (Thinklite-27B 26.3 vs base 26.2 tokens/s for a single user on the same GPU), and the prompts are identical, so
  TTFO falls in proportion to the tokens a model writes.

## Side-by-side comparisons

### Debugging

<video src="https://huggingface.co/Sparset/Thinklite-27B/resolve/main/thinklite-side-by-side.mp4" controls autoplay muted loop playsinline style="width:100%;height:auto;display:block;"></video>

Qwen3.8-27B and Thinklite-27B get the same debugging prompt (retry code plus two logs: find the duplicate charges to
refund and the fix) with the same seed, each model on one NVIDIA RTX PRO 6000 serving 20 requests at once. Both answer correctly; Thinklite-27B is done
in 2:36.9 with 3,381 tokens, the base model in 11:04.9 with 14,313 tokens (4.2x). The video plays at 22x speed and the
clocks show the measured time. This is the largest speed-up of 20 paired runs of this prompt. Thinklite-27B was correct in 19 of the 20
runs and the base model in all 20; over the 19 correct runs the median speed-up was 2.7x.

### Building a 3D physics lab

<video src="https://huggingface.co/Sparset/Thinklite-27B/resolve/main/thinklite-physics-lab-side-by-side.mp4" controls autoplay muted loop playsinline style="width:100%;height:auto;display:block;"></video>

Both models get the same objective: build an interactive 3D science lab as a single HTML file in which everything has
to follow realistic physics. Objects have real sizes and masses and fall under real gravity (9.81 m/s²): a hinged door
swings with its momentum and stops at its frame, glassware tips over when bumped and shatters when it hits something
hard, a rubber ball bounces high while a heavy steel ball barely bounces, a block tower topples and a pendulum swings.
Both models run at `reasoning_effort="xhigh"` on the same NVIDIA RTX PRO 6000. The numbers are the total tokens and
generation time each model needed to reach a working version of the lab: Thinklite-27B 87,134 tokens in 56.7 min, the
base model 127,661 tokens in 87.6 min (1.5x). The video shows one working game per model; it is not a measure of how
often each model succeeds.

## How it works

Reasoning models spend much of their output on thinking that does not change the answer: restating the question,
repeating a step, re-checking a result that was already checked. Thinklite-27B is fine-tuned from Qwen3.8-27B on its
own verified-correct answers to reach the same answers by a shorter route. Only the thinking gets shorter; the visible
answer keeps its full length and format. It is a drop-in replacement for Qwen3.8-27B with the same chat template,
tokenizer and `reasoning_effort` control.

## Benchmarks

**Setup:**
- We ran all four models ourselves on one frozen suite: identical prompts, chat template, sampling, token caps and
  scoring. Compared models, both also built on Qwen3.8-27B and run in bf16:
  [bottlecapai/ThinkingCap-Qwen3.8-27B](https://huggingface.co/bottlecapai/ThinkingCap-Qwen3.8-27B) (revision `7891e03`)
  and [ukisai/Swift-1.5-Qwen3.8-27b](https://huggingface.co/ukisai/Swift-1.5-Qwen3.8-27b) (revision `b4c84d42`).
- vLLM 0.30.0, bf16 weights, FP8 KV cache, temperature 1.0, top_p 0.95, top_k 20, 64 concurrent requests, one NVIDIA
  RTX PRO 6000 Blackwell (96 GB). All answers were scored together on one machine.
- One sample per question (two on AIME 2025). Answers that hit their cap were rerun once with a 131,072-token cap;
  truncated or unparseable answers count as incorrect.

- **GSM8K**: 1,319 problems
- **AIME 2025**: 30 problems x 2 samples, avg@2
- **MMLU-Pro**: 1,000-question stratified subset
- **IFEval**: 541 prompts, prompt-level strict
- **LiveCodeBench v6 (LCB)**: 131 problems (2025-02 to 2025-04), pass@1
- **BFCL v4**: 1,240 non-live function-calling cases

### `reasoning_effort="xhigh"`

<table class="tl-table">
  <thead>
    <tr><th style="width:26%;text-align:left;padding-left:16px;">Model</th><th>GSM8K</th><th>AIME 2025</th><th>MMLU-Pro</th><th>IFEval</th><th>LCB v6</th><th>BFCL v4</th><th>Average</th></tr>
  </thead>
  <tbody>
    <tr><td class="section" colspan="8">Accuracy (%)</td></tr>
    <tr><td class="name tl">Thinklite-27B</td><td class="tl">96.8</td><td class="tl">95.0</td><td class="tl">84.4</td><td class="tl">89.1</td><td class="tl"><strong>84.7</strong></td><td class="tl">88.9</td><td class="tl">89.82</td></tr>
    <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td>97.0</td><td><strong>100.0</strong></td><td>86.5</td><td>90.9</td><td><strong>84.7</strong></td><td><strong>89.0</strong></td><td>91.37</td></tr>
    <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>96.9</td><td><strong>100.0</strong></td><td><strong>86.6</strong></td><td>90.9</td><td><strong>84.7</strong></td><td>87.6</td><td>91.12</td></tr>
    <tr><td class="name">Qwen3.8-27B</td><td><strong>97.2</strong></td><td>93.3</td><td>86.3</td><td><strong>91.5</strong></td><td>84.0</td><td>88.7</td><td>90.17</td></tr>
    <tr><td class="section" colspan="8">Reasoning tokens vs Qwen3.8-27B</td></tr>
    <tr><td class="name tl">Thinklite-27B</td><td class="tl">&#8595; 63%</td><td class="tl"><strong>&#8595; 43%</strong></td><td class="tl"><strong>&#8595; 69%</strong></td><td class="tl">&#8595; 41%</td><td class="tl"><strong>&#8595; 38%</strong></td><td class="tl">&#8595; 28%</td><td class="tl">&#8595; 47.0%</td></tr>
    <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td><strong>&#8595; 68%</strong></td><td>&#8595; 33%</td><td>&#8595; 58%</td><td><strong>&#8595; 51%</strong></td><td>&#8595; 20%</td><td><strong>&#8595; 44%</strong></td><td>&#8595; 45.8%</td></tr>
    <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>&#8595; 40%</td><td>&#8595; 34%</td><td>&#8595; 44%</td><td>&#8595; 44%</td><td>&#8595; 32%</td><td>&#8595; 20%</td><td>&#8595; 35.6%</td></tr>
  </tbody>
</table>

<details>
<summary>Mean reasoning tokens per answer</summary>

| Benchmark | Thinklite-27B | ThinkingCap-Qwen3.8-27B | Swift-1.5-Qwen3.8-27b | Qwen3.8-27B |
|---|---|---|---|---|
| GSM8K | 163 (-63%) | 141 (-68%) | 267 (-40%) | 443 |
| AIME 2025 | 11,236 (-43%) | 13,228 (-33%) | 12,961 (-34%) | 19,642 |
| MMLU-Pro | 1,343 (-69%) | 1,785 (-58%) | 2,404 (-44%) | 4,295 |
| IFEval | 1,082 (-41%) | 891 (-51%) | 1,031 (-44%) | 1,830 |
| LiveCodeBench v6 | 17,079 (-38%) | 21,936 (-20%) | 18,770 (-32%) | 27,589 |
| BFCL v4 | 143 (-28%) | 113 (-44%) | 159 (-20%) | 200 |
| **Average change** | **-47.0%** | **-45.8%** | **-35.6%** | - |
| **All output tokens, 4,291 requests** | **5,822,599 (-50%)** | **6,724,080 (-42%)** | **7,319,314 (-37%)** | **11,533,518** |

</details>

### `reasoning_effort="low"`

<table class="tl-table">
  <thead>
    <tr><th style="width:26%;text-align:left;padding-left:16px;">Model</th><th>GSM8K</th><th>AIME 2025</th><th>MMLU-Pro</th><th>IFEval</th><th>LCB v6</th><th>BFCL v4</th><th>Average</th></tr>
  </thead>
  <tbody>
    <tr><td class="section" colspan="8">Accuracy (%)</td></tr>
    <tr><td class="name tl">Thinklite-27B</td><td class="tl">96.7</td><td class="tl">81.7</td><td class="tl">83.3</td><td class="tl">84.3</td><td class="tl">71.0</td><td class="tl">91.2</td><td class="tl">84.70</td></tr>
    <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td>97.2</td><td>86.7</td><td><strong>84.8</strong></td><td>85.8</td><td>72.5</td><td><strong>91.5</strong></td><td>86.40</td></tr>
    <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>97.1</td><td><strong>90.0</strong></td><td>84.7</td><td>86.0</td><td><strong>73.3</strong></td><td>91.2</td><td>87.04</td></tr>
    <tr><td class="name">Qwen3.8-27B</td><td><strong>97.4</strong></td><td><strong>90.0</strong></td><td>84.4</td><td><strong>86.1</strong></td><td>72.5</td><td>90.8</td><td>86.88</td></tr>
    <tr><td class="section" colspan="8">Reasoning tokens vs Qwen3.8-27B</td></tr>
    <tr><td class="name tl">Thinklite-27B</td><td class="tl"><strong>&#8595; 21%</strong></td><td class="tl"><strong>&#8595; 46%</strong></td><td class="tl"><strong>&#8595; 23%</strong></td><td class="tl"><strong>&#8595; 41%</strong></td><td class="tl"><strong>&#8595; 17%</strong></td><td class="tl"><strong>&#8595; 19%</strong></td><td class="tl">&#8595; 28.0%</td></tr>
    <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td>&#8595; 12%</td><td>&#8595; 23%</td><td>&#8595; 18%</td><td>&#8595; 19%</td><td>&#8595; 15%</td><td>&#8595; 12%</td><td>&#8595; 16.4%</td></tr>
    <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>&#8595; 5%</td><td>&#8595; 22%</td><td>&#8595; 13%</td><td>&#8595; 15%</td><td>&#8595; 13%</td><td>&#8595; 7%</td><td>&#8595; 12.7%</td></tr>
  </tbody>
</table>

<details>
<summary>Mean reasoning tokens per answer</summary>

| Benchmark | Thinklite-27B | ThinkingCap-Qwen3.8-27B | Swift-1.5-Qwen3.8-27b | Qwen3.8-27B |
|---|---|---|---|---|
| GSM8K | 144 (-21%) | 160 (-12%) | 173 (-5%) | 183 |
| AIME 2025 | 6,521 (-46%) | 9,324 (-23%) | 9,416 (-22%) | 12,125 |
| MMLU-Pro | 854 (-23%) | 908 (-18%) | 963 (-13%) | 1,103 |
| IFEval | 386 (-41%) | 537 (-19%) | 557 (-15%) | 659 |
| LiveCodeBench v6 | 8,882 (-17%) | 9,183 (-15%) | 9,341 (-13%) | 10,741 |
| BFCL v4 | 78 (-19%) | 85 (-12%) | 90 (-7%) | 96 |
| **Average change** | **-28.0%** | **-16.4%** | **-12.7%** | - |
| **All output tokens, 4,291 requests** | **3,748,880 (-23%)** | **4,121,634 (-16%)** | **4,303,835 (-12%)** | **4,896,249** |

</details>

## Image understanding

Thinklite-27B accepts images like Qwen3.8-27B. Its training data was text only and its vision encoder is
byte-for-byte the base model's, so we checked that the fine-tuned language model still reads what it sees: 88 questions
from six public image datasets, each answerable only from the picture (a chart, a scanned document, an infographic, a
math figure, an exam diagram or a photo). Both models got the same image and question at `reasoning_effort="low"`,
with the same seeds and sampling as the benchmarks above.

<table class="tl-table">
  <thead>
    <tr><th style="width:26%;text-align:left;padding-left:16px;">Model</th><th>ChartQA</th><th>DocVQA</th><th>InfoVQA</th><th>MathVista</th><th>MMMU</th><th>A-OKVQA</th><th>Average</th></tr>
  </thead>
  <tbody>
    <tr><td class="section" colspan="8">Score (%)</td></tr>
    <tr><td class="name tl">Thinklite-27B</td><td class="tl">100.0</td><td class="tl">100.0</td><td class="tl"><strong>91.1</strong></td><td class="tl">87.5</td><td class="tl">100.0</td><td class="tl">87.5</td><td class="tl"><strong>94.35</strong></td></tr>
    <tr><td class="name">Qwen3.8-27B</td><td>100.0</td><td>100.0</td><td>88.1</td><td>87.5</td><td>100.0</td><td>87.5</td><td>93.85</td></tr>
    <tr><td class="section" colspan="8">Reasoning tokens vs Qwen3.8-27B</td></tr>
    <tr><td class="name tl">Thinklite-27B</td><td class="tl">&#8595; 15%</td><td class="tl">&#8595; 15%</td><td class="tl">&#8595; 32%</td><td class="tl">&#8595; 36%</td><td class="tl">&#8595; 30%</td><td class="tl">&#8595; 15%</td><td class="tl">&#8595; 24.0%</td></tr>
  </tbody>
</table>

- 16 questions per dataset (12 for InfographicVQA and MMMU), a seeded random sample of each validation or testmini
  split. Scores: ChartQA relaxed accuracy (numbers within 5%), DocVQA and InfographicVQA ANLS, multiple-choice or exact
  accuracy for MathVista, MMMU and A-OKVQA. No answer was cut off or unparseable.
- Both models answered the same 83 of 88 questions correctly; the only score difference is partial ANLS credit on one
  InfographicVQA answer.
- 18 of the questions (3 per dataset) also ran at `reasoning_effort="xhigh"`: Thinklite-27B answered 17 correctly
  and Qwen3.8-27B 16, with 52% less reasoning per answer (758 vs 1,565 tokens).
- This is a check, not a full benchmark: one question moves a dataset's score by 6 to 8 points. It shows that image
  understanding is kept, not that it improved.

## Usage

**vLLM**

```bash
vllm serve Sparset/Thinklite-27B --reasoning-parser qwen3 --max-model-len 135168 --kv-cache-dtype fp8
```

```python
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="-")
reply = client.chat.completions.create(
    model="Sparset/Thinklite-27B",
    messages=[{"role": "user", "content": "How many primes are there below 100?"}],
    temperature=1.0, top_p=0.95,
    extra_body={"top_k": 20, "chat_template_kwargs": {"enable_thinking": True, "reasoning_effort": "xhigh"}},
)
print(reply.choices[0].message.content)
```

Set `reasoning_effort` to `"low"`, `"medium"` or `"xhigh"`, exactly as with Qwen3.8-27B. The benchmarks used
temperature 1.0, top_p 0.95 and top_k 20, as recommended for the base model.

**Transformers**

```python
from transformers import AutoModelForImageTextToText, AutoProcessor
model = AutoModelForImageTextToText.from_pretrained("Sparset/Thinklite-27B", dtype="auto", device_map="auto")
processor = AutoProcessor.from_pretrained("Sparset/Thinklite-27B")
```

## Files

Merged bf16 safetensors with the tokenizer, chat template and processor files of Qwen3.8-27B.

## Limitations

- One benchmark run per effort; the small benchmarks (AIME 2025 with 60 answers, LiveCodeBench with 131) carry wide
  confidence intervals.
- At xhigh, accuracy is below the base model on IFEval (89.1 vs 91.5) and MMLU-Pro (84.4 vs 86.3).
- At low effort, the average accuracy is 2.2 points below the base model, mostly from AIME 2025 (81.7 vs 90.0).
- Long single-answer code was less reliable than the base model's: in the game test above, 1 of 5 games fully worked
  against 3 of 5.
- The vision encoder is unchanged from Qwen3.8-27B and training data was text only; image understanding was checked
  on 88 questions, not a full vision benchmark.
- No safety tuning beyond the base model's. Check the model on your own tasks before relying on it.

## License

Apache-2.0, the license of the base model [Qwen/Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B).