Image-Text-to-Text
Transformers
Safetensors
qwen3_5
thinklite
reasoning
efficient-reasoning
qwen3.8
conversational
Instructions to use Sparset/Thinklite-27B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Sparset/Thinklite-27B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Sparset/Thinklite-27B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Sparset/Thinklite-27B") model = AutoModelForMultimodalLM.from_pretrained("Sparset/Thinklite-27B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Sparset/Thinklite-27B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Sparset/Thinklite-27B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Sparset/Thinklite-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/Sparset/Thinklite-27B
- SGLang
How to use Sparset/Thinklite-27B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Sparset/Thinklite-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Sparset/Thinklite-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Sparset/Thinklite-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Sparset/Thinklite-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use Sparset/Thinklite-27B with Docker Model Runner:
docker model run hf.co/Sparset/Thinklite-27B
|
Download README.md from Sparset/Thinklite-27B: direct link, hf CLI and curl.
- Browser
- Download file 18.9 kB
-
https://huggingface.co/Sparset/Thinklite-27B/resolve/main/README.md
- Command line
-
hf download hf://Sparset/Thinklite-27B/README.md
-
curl -L -o README.md https://huggingface.co/Sparset/Thinklite-27B/resolve/main/README.md
18.9 kB
| 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>↓ 47.0%</strong></td><td class="tl"><strong>2.0x</strong></td><td class="tl"><strong>↓ 28.0%</strong></td><td class="tl"><strong>1.3x</strong></td></tr> | |
| <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td>↓ 45.8%</td><td>1.7x</td><td>↓ 16.4%</td><td>1.2x</td></tr> | |
| <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>↓ 35.6%</td><td>1.6x</td><td>↓ 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">↓ 63%</td><td class="tl"><strong>↓ 43%</strong></td><td class="tl"><strong>↓ 69%</strong></td><td class="tl">↓ 41%</td><td class="tl"><strong>↓ 38%</strong></td><td class="tl">↓ 28%</td><td class="tl">↓ 47.0%</td></tr> | |
| <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td><strong>↓ 68%</strong></td><td>↓ 33%</td><td>↓ 58%</td><td><strong>↓ 51%</strong></td><td>↓ 20%</td><td><strong>↓ 44%</strong></td><td>↓ 45.8%</td></tr> | |
| <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>↓ 40%</td><td>↓ 34%</td><td>↓ 44%</td><td>↓ 44%</td><td>↓ 32%</td><td>↓ 20%</td><td>↓ 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>↓ 21%</strong></td><td class="tl"><strong>↓ 46%</strong></td><td class="tl"><strong>↓ 23%</strong></td><td class="tl"><strong>↓ 41%</strong></td><td class="tl"><strong>↓ 17%</strong></td><td class="tl"><strong>↓ 19%</strong></td><td class="tl">↓ 28.0%</td></tr> | |
| <tr><td class="name">ThinkingCap-Qwen3.8-27B</td><td>↓ 12%</td><td>↓ 23%</td><td>↓ 18%</td><td>↓ 19%</td><td>↓ 15%</td><td>↓ 12%</td><td>↓ 16.4%</td></tr> | |
| <tr><td class="name">Swift-1.5-Qwen3.8-27b</td><td>↓ 5%</td><td>↓ 22%</td><td>↓ 13%</td><td>↓ 15%</td><td>↓ 13%</td><td>↓ 7%</td><td>↓ 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">↓ 15%</td><td class="tl">↓ 15%</td><td class="tl">↓ 32%</td><td class="tl">↓ 36%</td><td class="tl">↓ 30%</td><td class="tl">↓ 15%</td><td class="tl">↓ 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). | |