TL;DR

Qwen 3.6-35B-A3B là model local mạnh nhất cuối tháng 4/2026 — Apache 2.0, chạy được trên 1 con RTX 3090. Nhược điểm: <think> block dài lê thê, ăn context và làm chậm mọi vòng agent. Một dev (@andthatto) thử áp một grammar nhỏ ép cấu trúc cho phần thinking và báo: HumanEval+ dùng ít hơn 22× token think, accuracy không giảm; LiveCodeBench public slice +14% pass@1 kèm ~5× ít tổng token. Đây là một datapoint anecdotal, nhưng kỹ thuật đứng sau (grammar-constrained decoding áp lên CoT) là hướng nghiên cứu đang nóng và trick có thể reproduce ngay với llama.cpp hoặc vLLM.

Có gì mới

Trick rất đơn giản về ý tưởng: mọi reasoning model dòng Qwen3/Qwen3.5/Qwen3.6 đều phát ra một block bao quanh bởi cặp tag <think>...</think> trước khi đưa câu trả lời cuối. Thông thường block này là free-form — model muốn nói gì cũng được. Tác giả định nghĩa một grammar BNF/GBNF cực nhỏ (vài rule kiểu Plan → Steps → Verify hoặc enumerate-hypotheses), gắn vào inference engine, rồi để runtime mask logit ở mỗi bước decode sao cho output trong block <think> luôn là prefix hợp lệ của grammar. Câu trả lời ngoài block thì để model tự do.

Hệ quả thực nghiệm theo tweet: model bỏ filler ("Let me think...", "Wait, actually..."), không re-state đề bài, không lặp loop tự nghi ngờ. Token think giảm khủng. Trong một benchmark còn improve accuracy.

Vì sao đáng quan tâm

Long reasoning đang là tax ngầm trên mọi reasoning model open-source. Bạn mua Qwen 3.6 vì "frontier for local" nhưng mỗi prompt thực tế ngốn 3–10K token think trước khi ra câu trả lời 200 token. Với agent loop (gọi model 20 lần/task), con số đó nhân chồng — local inference từ "có thể chạy" thành "không kịp uống cà phê".

Mọi giải pháp hiện có đều có cost: tắt thinking (/no_think) thường mất accuracy; cap max-think-tokens cắt giữa câu; fine-tune "concise CoT" cần GPU và data. Grammar là one-line change tại inference, không đụng weights, không train, không deploy lại model. Nếu reproduce được trên benchmark độc lập, đây là free lunch hiếm gặp.

Technical facts

Hạng mụcSố liệu
HumanEval+ — token think22× ít hơn baseline, accuracy giữ nguyên
LiveCodeBench (public slice) — pass@1+14%
LiveCodeBench — tổng token~5× ít hơn
ModelQwen 3.6-35B-A3B (MoE, ~3B active/token, 128K context, Apache 2.0)
Bench Qwen 3.6 chính thứcHumanEval+ 90.24%, LiveCodeBench v5 70.7, SWE-bench 73.4%
Runtime hỗ trợ GCDllama.cpp (GBNF), vLLM, Outlines, Guidance
Cost trick0 GPU-hour, 0 data — pure inference-time

So với các cách khác

  • Tắt thinking (/no_think): cắt token mạnh nhất nhưng thường mất accuracy trên task khó. Grammar giữ reasoning on, chỉ định hình.
  • Max-think-tokens cap: cắt ngang câu, model chưa kịp kết luận. Grammar buộc model hoàn thành một cấu trúc thought hợp lệ ngắn hơn.
  • Fine-tune concise CoT: hiệu quả tương đương nhưng cần data + GPU + release weights mới. Grammar không.
  • CRANE / type-constrained codegen: những hướng đó constrain câu trả lời. Trick này constrain quá trình suy nghĩ, để câu trả lời tự do — đảo ngược hoàn toàn.

Use cases

  • Local inference trên 3090/4090: mỗi token là vài ms wall-clock. Cắt 5–22× token think biến Qwen 3.6 từ "chờ rất lâu" thành "interactive".
  • Agent loop: 1 task gọi model 20 lần thì token compounding ăn budget. Grammar cắt thẳng cost và latency.
  • Pipeline code-gen có pass@1: CI bot, autograder, agent coding — nếu LiveCodeBench +14% giữ được trên dữ liệu của bạn, đây là upgrade quality miễn phí.
  • Research probing: thêm bằng chứng rằng "long CoT" chứa rất nhiều token low-information.

Limitations & pricing

  • Single-source. Một tweet, chưa có grammar public, chưa có code repo, chưa có log chạy lại. Treat anecdotal cho tới khi có người third-party reproduce.
  • Contamination risk: LiveCodeBench public slice chính là phần dễ bị contamination nhất. +14% có thể co lại trên held-out slice.
  • Chưa rõ generalize: chỉ test code (HumanEval+, LiveCodeBench). Có thể không transfer sang math (AIME), agentic (SWE-bench), open-ended reasoning.
  • Grammar design là công sức ẩn: grammar tệ có thể crash accuracy. Tác giả chưa share của họ.
  • Runtime requirement: cần engine có GCD. HF transformers thuần phải gắn thêm Outlines/Guidance.
  • Pricing: Qwen 3.6-35B-A3B free (Apache 2.0). Trick free hoàn toàn — không thêm compute.

What's next

Trong 1–2 tháng tới khả năng cao sẽ thấy: (1) reproduction từ các indie khác trên HumanEval+ và LiveCodeBench full slice; (2) open-source grammar template cho Qwen-style think block — chờ một HF repo và một PR vào llama.cpp; (3) cross-model test trên DeepSeek-R, Llama 4 reasoning, GLM-4.5; (4) nếu cộng đồng giữ được con số, Qwen team có thể ship một "concise mode" SFT variant chính chủ. Lúc đó trick sẽ thành rule.

Trong lúc chờ, ai đang chạy Qwen 3.6 local có llama.cpp với GBNF — viết một grammar 5 dòng kiểu thought ::= plan steps verify, đo HumanEval+ side-by-side, share log. Đây là loại thí nghiệm 30 phút có thể tạo PR thật vào ecosystem.

Nguồn: tweet gốc @andthatto, Qwen blog, Qwen3.6-35B-A3B HF, CRANE paper, Aidan Cooper — Constrained Decoding.