Repository navigation
glm: the config parser reads quantization_config inside text_config too, as EXL3 admission does - #2327
Merged
Conversation
Bizuayeu
force-pushed
the
pr/glm-exl3-nested-config
branch
2 times, most recently
from
November 6, 2026 08:41
2797bde to
8ce2cfe
Compare
Owner
|
Thanks @Bizuayeu, a good catch from reading #2094's admission. This is right:
No device run is needed, since no checkpoint we know of reaches this differently. It goes in the landing queue now and lands once CI on this head is green. The one CHANGELOG conflict, with #2293, is the usual top-of-Unreleased one, and we'll take care of it at landing. |
Owner
|
/atc exchange 79c7a1a61668541f0dbef334bde927b878bcd584c285556938f92db932a0f1ae |
ashhart
force-pushed
the
pr/glm-exl3-nested-config
branch
from
November 6, 2026 21:18
8ce2cfe to
2443fcb
Compare
…oo, as EXL3 admission does cuda_exl3.zig's block() admits a checkpoint whose quantization_config sits at the top level or inside text_config, top level first, but config.zig's parse read the top level only. A pack that nests it passed admission, parsed with exl3 false, and the loader then asked it for NVFP4 dense weights. parse now looks in the same two places in the same order.
ashhart
force-pushed
the
pr/glm-exl3-nested-config
branch
from
November 6, 2026 22:43
2443fcb to
83deb5f
Compare
Owner
|
Thank you @Bizuayeu. This is merged into main with your commits under your own name, so you're listed as a TensorFold contributor. It ships in the next release, credited to you in the changelog and the release notes. |
4 tasks done
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.
What this changes
GLM's config parser now reads
quantization_configwhere EXL3 admission does: at the top level, else insidetext_config.cuda_exl3.zig'sblock(), behindisExl3andadmit(cuda_engine.zig:113), takes either, toplevel first, but
config.zig'sparseread the top level only. A checkpoint that nests it was admitted as EXL3,parsed with
exl3false, and the loader then asked it for NVFP4 dense weights (cuda_weights.zig:338).parsenowlooks in the same two places in the same order. A top-level block parses as before.
glm cuda: EXL3 mcg experts at any whole-bit width, mixed by projection #2094 (comment)).
atc overlap --json: against main754c3e9a3, 3 clean, 7 conflicting and 40 unknown. Test-merged here, only Metal: a request's stats list its prompt pass widths, on every text family #2293conflicts with this branch and not with main: both add a line at the head of the CHANGELOG's Unreleased. The other
conflicts are with main itself.
Checks on this head
8ce2cfe4f, this commit on main34d42fcc8. The tests below ran onbe6e7dc01, the same commit onmain
d1e91b518; rebasing moved its CHANGELOG line to the new head of Unreleased, and the line now ends with thispull request's number. Nothing else changed.
python3 tools/zig/lean_check.py, on the base and on this head: 325 on main754c3e9a3and 325 onthis commit on it (
3887db711), 0 new; 425 and 425 ond1e91b518andbe6e7dc01.zig build test: 559/559 steps; 7,303 passed, 0 failed, 61 skipped.zig build test-golden(5/5 steps),test-exl3-cuda-host(7/7),compile-cuda-tests(10/10, native and-Dtarget=aarch64-linux-gnu) andcompile-config-server(7/7): pass.zig fmt --check build.zig zig: clean.quantBlock'stext_configline removed,zig build testfails the new test and only it (7,302 passed,1 failed, 61 skipped).
8ce2cfe4f, 7 of 7 (zig,zig-windows,zig-macos-dev-tools,fmt,release-pathsandbenchmark-clientson Ubuntu and Windows).zig build test-exl3-prompt-hostdoes not build on maind1e91b518either(
exl3_prompt_host.zig:59: missing struct fieldb32), with or without this commit. No CUDA device run (seeReceipt).
Receipt
n/a: the change is where the config parser looks for
quantization_config. No GLM EXL3 checkpoint I know of nests itinside
text_config, so none reaches the loader differently to run; a top-level block parses as before, the parsetest's first case. The parse test covers the nested form and the order (a top-level block naming another method wins
over a nested
exl3one, asblock()reads it).Checklist
quantBlock'stext_configline removed,zig build testfails the new test and only it; it has no dependency toskip on).