Repository navigation
feat(gguf): serve Qwen2, Qwen3 and Qwen3 MoE GGUF checkpoints - #707
Merged
Merged
Conversation
25 of 42 tasks
void-mckenzie
pushed a commit
to void-mckenzie/FreeToken
that referenced
this pull request
Oct 16, 2026
…g#707 landed the claim itself)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Serves llama.cpp
qwen2(Qwen2 / Qwen2.5),qwen3(Qwen3 dense) andqwen3moe(Qwen3 MoE, e.g. Qwen3-30B-A3B, Qwen3-235B-A22B, Qwen3-Coder-30B-A3B) GGUF files on the existingqwen2,qwen3andqwen3_moemodel classes, YaRN long-context variants included.Changes
models/{qwen2,qwen3,qwen3_moe}/gguf.py(new): one per family.ffn_gate_up_expsincluded.attn_qkvmatrix (and bias) of files converted with--fuse-qkvasqkv_proj..scaletensors.model.pyof the three families:embed_tokenstakes the quant config, so a quantizedtoken_embdis served packed.gguf/config.py,register.py,kernel/aot_models.py: register the three archs and claim them in the AOT model table. Also claims the two Qwen3.5 GGUF archs from feat(gguf): serve Qwen3.5 dense and MoE GGUF checkpoints #701, which were missing, sotest_every_registry_architecture_is_claimed_by_an_aot_entryfailed on main.Tested models
RTX PRO 6000 Blackwell (sm_120),
ft serve --model-path <file>. AIME25 problems 1–8 × 2 samples (temperature 0.6, top_p 0.95, top_k 20). Also 48 staggered requests at concurrency 16.Staggered requests: no corrupted output on any file.
Results
ggml.dequantize, every float tensor is bf16-exact against the HF checkpoint, and Q8_0 tensors reach cos 0.99997, the 30B's experts included. Dry load against the meta-built model matches 339/339 params (30B-A3B), 290/290 (4B) and 198/198 (Qwen2.5-1.5B).--fuse-qkv: HF Qwen2.5-1.5B, Qwen3-4B and Qwen3-30B-A3B converted to Q8_0 with and without--fuse-qkvload to byte-identical state dicts (198, 290 and 339 tensors), withqkv_projread fromattn_qkv.tests/models,tests/moeandtests/kernels/test_ggml.py: 578 pass. The 5 failures aretest_quant_configcases that fail identically on main.Not covered