docs(embeddinggemma): quantization is bf16, not Q4_1 - #693
Conversation
|
Is there a reason we aren't just using safetensors, since it is not quantized anyway? Other than hiding xclbin stuff I mean. |
|
Not my call on the format, but two things from the artefacts, since I had them open. The xclbins aren't hidden in the container — they ship as plain files next to it. And "not quantized anyway" is true of this model and no other. Worth saying that the premise of your question is this PR: until it lands, the docs still say Drafted with Claude Code. The measurements are my own, and I re-checked every number above before posting. |
But we already know precisely what the q4nx container is and isn't, how it's layed out, and what it does. They keep fiddling with small but annoying parts, and xclbins are per-family shape. It definitely does not ever hide anything but the tensors in it. Importantly, embedding models aren't the same as other models no matter how it's done. It seems to Me there's no sense packing with no quants, it just requires unpacking. There are legitimately two paths. |
|
Thanks for elaborating — I agree the q4nx container format itself isn't the issue, and I'm not proposing to change how this model is packed. My point is narrower: regardless of which of the two legitimate packing paths a model takes, the docs table should state which one was actually used for That mismatch is what caused the confusion in #661 — anyone debugging VRAM/size expectations for this model would reasonably start from the documented So: no objection to embedding models having their own packing path — just asking that the doc table reflect which path this particular model actually took. Happy to adjust the label if |
docs/docs/models/embeddinggemma.mdline 14 declaresQ4_1. The shipped model is not quantised.What the repo itself says.
src/model_list.jsongivesembed-gemma/300m:It is the only entry in that file carrying
none, and the docs page is the only placeQ4_1appears for this model.What the artefact says.
model.q4nxis 615,197,168 bytes for a ~308M-parameter model — 2.0 bytes per parameter, i.e. bf16 despite the.q4nxextension. Genuine 4-bit weights would be near 0.5 bytes/parameter. Verified independently on two machines and two FLM builds (v0.9.45 and v1.0.3), and a header parse reports 316 of 316 tensors as BF16; the same parser finds 197 quantised tensors in theQwen3-1.7B-NPU2container, so that is a finding rather than a parser artefact.Why
bf16and notnone.docs/docs/models/smolvla.mdalready uses- **Quantization:** bf16, so this follows existing usage on the docs side while agreeing withmodel_list.json.Why it is worth fixing. This line sent #661 down a dead end: the opening report named coarse quantisation as the likely cause of an embedding defect, on the strength of this line, and two of us spent time ruling it out. The likely origin looks innocent — the v1.0.3 release notes upgrade the Qwen3.5 family and Qwen3.6-MoE "from Q4_1 to Q4_K", so
Q4_1was a real value for the LLM containers; it just does not describe this one.One-line change, docs only.