Build1 publisher3 min readPublished
Qwen 3.8's Apache-licensed 27B is the one you can actually own, and its KV cache is why
Two releases, two licences. Only the 27B is Apache 2.0, and because just 16 of its 64 layers keep a KV cache, long context costs a quarter of the usual memory.
The Engineer · Build desk
Drafted by a language model from the sources cited here and checked against its claim ledger before publication. How we use AISend a correction
What happened
- The release dates for Qwen 3.8 are taken from the Hugging Face commit log rather than a launch post, per the dev.to write-up.
- The 2.4 trillion parameter Qwen 3.8 A95B opened up on 12 August under Alibaba's own qwen3.8-max terms.
- Qwen 3.8 27B safetensors were uploaded on 13 August at 08:23 UTC, with an Apache 2.0 LICENSE file following the next morning.
- Hugging Face reports Qwen/Qwen3.8-2.4T-A95B as license: other with license_name: qwen3.8-max, i.e. open weights but not an open licence.
- Qwen 3.8 27B has 27B dense parameters across 64 layers with hidden size 5120.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
Qwen 3.8 shipped as two models under two different licences, and only one of them is something you can put on a card you own. Everything below comes from a single dev.to walkthrough that reads its dates off the Hugging Face commit log rather than a launch post, so treat the timeline as sourced from commits, not announcements [1].
By that account, the 2.4 trillion parameter A95B opened on 12 August under Alibaba's own qwen3.8-max terms, while Qwen 3.8 27B's safetensors went up on 13 August at 08:23 UTC with an Apache 2.0 LICENSE file arriving the next morning [2][3]. Hugging Face lists the big model as `license: other` with `license_name: qwen3.8-max` [4]. That is open weights, not an open licence, and the difference is a legal review rather than a download.
The 27B is 27 billion dense parameters across 64 layers at hidden size 5120 [5]. The part that matters operationally sits in `config.json`: `layer_types` reads 48 linear attention layers and 16 full attention layers, alternating three to one under `full_attention_interval: 4` [6]. Those two counts add to the stated 64 [7]. Only the 16 full-attention layers keep a KV cache [8].
That single fact is why the long window is usable. With 4 KV heads at `head_dim` 256, one fp16 token costs 2 x 4 x 256 x 2 bytes, or 4 KB, per full-attention layer [9][10]. A conventional 64 layer model pays that 64 times over, 256 KB per token; this one pays it 16 times, 64 KB [11]. That is a four-fold reduction [12], and the post puts a 128K session at 8 GB of cache instead of 32 GB [13].
Quant sizes are the usual mess. Read on 14 August 2026, lmstudio-community's Q4_K_M was 16.8 GB and ggml-org's was 19.0 GB for the same nominal quant [14], a 2.2 GB spread on identical labels [15]. Work the arithmetic on a 24 GB card: the 19.0 GB pack leaves about 5 GB, which at 64 KB per token is roughly 80,000 tokens of cache; the 16.8 GB pack leaves about 115,000 [16]. The same 5 GB on a conventional 64 layer dense model buys about 20,000 [17]. Those numbers ignore compute buffers and activations, so shade them down. The post's own guidance: 24 GB runs Q4_K_M whole with headroom, 16 GB fits IQ4_XS whole, 12 GB is 2-bit only, and 32 GB of Apple unified memory is comfortable [18].
The failure mode worth internalising is the chat template. `--jinja` is not optional, and the post calls it the single biggest source of "this quant is broken" reports [19]. Without the model's own template there is no reliable turn boundary, so it either runs past the stop token or answers in a clipped voice and loses history between turns [20]. Sharper still: the official template wraps every assistant turn in a think block even when reasoning is empty, then opens another at generation, and across several turns those nest until history is truncated [21]. Several GGUF packs already ship a corrected `chat_template.jinja` [22]. Vision is a separate 0.9 GB `mmproj` file; skip it and you have a text model that will apologise for not seeing your image [23].
Watch whether the corrected template lands upstream, whether pack sizes converge on the same nominal quants, and what the qwen3.8-max terms permit before anyone builds product on the 2.4T. Note also that the walkthrough closes by recommending Locally Uncensored, an AGPL wrapper of its own [24]; discount the framing accordingly.