Fetching from the wire…
Public story · 2026-09-02 · high
Build b10760 keeps one layer in F32 after an activation spike past 65504 turned into inf, then NaN, downstream.
Why now: Build b10760 carries the fix for this exact overflow.
The Qwen3-tts code predictor produced NaN output in llama.cpp, and the cause traced to a single layer's numeric range. That's a hazard for anyone quantizing models to save memory. One layer running past F16's range corrupts every output downstream, with nothing louder than NaN to show for it.
The ffn_down weight in that predictor sees intermediate activations peaking around 1.5e5, past F16's 65504 ceiling. Since mul_mat casts its input to match the weight's type, storing ffn_down in F16 turned that peak into infinity. The residual connection carried the infinity forward, and the next rms_norm turned it into NaN.
The b10760 release fixes it by keeping that one layer in F32 while the rest of the model stays quantized. A reference forward pass run in float32 puts the real value at 145109. The graph's F16 path put it at 145396. That's close enough to confirm the layer's activations run that high, and that F16 was never going to hold them.
The fix is narrow by design. Nobody moved the whole model to F32. They moved one layer. Precision needs are decided per layer, not per model. A weight's own magnitude doesn't say whether it's safe to shrink. The activations flowing through it do, and those aren't visible until something breaks.
Each link below shares sources, entities, or timing with this story.
Build b10691 fixes a null-pipeline crash for F16 src1 mul_mat and mul_mat_id by declining unsupported shapes in supports_op and aborting on a nil pipeline in encoder_set_pipeline, sharing the mm dispatch between both paths so support checks and execution can't disagree. Build...
Build b10677 fixes ggml_vk_graph_optimize, where is_src_of didn't treat two views of one tensor as dependent, so the optimizer reordered nodes across aliased reads and writes. Maintainers describe the result as silently wrong tokens under greedy decoding, different output on e...
Build b10669 binds the f16 KV cache in place for the oneDNN SDPA path, and the commit does the arithmetic on Qwen3.8 27B Q4_K_S at a live KV length of 34,816: 71.3 MB per tensor, 142.6 MB staged per call for K and V, 285.2 MB per call, 16 calls per ubatch, so 4.56 GB of memory...
Terminal-based coding agent powered by Qwen 3.5. Ships with Qwen-Agent framework and Qwen3-Coder (code-specialized model). Build agentic applications using a completely open-weight stack. GitHub ---
Build b10731 implements rollback for qwen4exp, which MTP speculative decoding needs so the target state can move back by the number of rejected draft tokens (GitHub). Without it the context was classified for full removal and the server serialized the entire recurrent state to...
Alibaba announced it August 3: sparse MoE with ~95B active per token, 1M context, 128k max output, $2/M input and $6/M output with $0.25/M cached. 67.4 on Terminal-Bench 2.1 (up from 61.0 for 3.7 Max), #4 on Frontend Code Arena at 1,668 Elo, #2 on Vals Index among open-weight...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.