Skip to content

Finalize generated GGUF support matrix - #604

Merged
justinchuby merged 2 commits into
mainfrom
justinchuby-finalize-gguf-support-matrix
Aug 25, 2026
Merged

Finalize generated GGUF support matrix#604
justinchuby merged 2 commits into
mainfrom
justinchuby-finalize-gguf-support-matrix

Conversation

@justinchuby

Copy link
Copy Markdown
Member

Summary

  • generate the authoritative GGUF support matrix from the pinned llama.cpp census at 8d9af256337d1a501250f9bbf4c0859a654bddd6 (2026-08-23T16:59:42Z)
  • lock documentation to all 147 architectures, 25 active stored qtypes, 60 projector strings, and 87 tokenizer pre-types in 56 semantic groups
  • distinguish graph construction/importability from real runtime support and downgrade every architecture/projector without complete evidence
  • fail runtime publication closed unless canonical architecture, exact runtime/version, immutable source identity, tensor/qtype census, graph-shaping import route, serialized graph, tokenizer/config, and complete staged package all match structured evidence
  • document exact-copy versus conversion qtype routes, CLI/Hub provenance, tokenizer/mmproj/MTP behavior, transaction limitations, and downstream-runtime scope

Final verdicts

  • architectures: 147 total; 52 graph-supported; 51 fully importable; 0 runtime-supported
  • stored qtypes: 25 active; 24 routed; Q2_0 deferred because pinned gguf-py has no dequantizer
  • projectors: 60 total; 2 graph-importable (gemma4v, muse-glimmer); 0 runtime-supported
  • tokenizers: 87 exact identifiers in 56 semantic groups; exact copy only when a vocabulary-identical embedded tokenizer.huggingface.json is present

Local validation

  • python scripts/generate_gguf_support_docs.py --check
  • lintrunner f --output oneline --all-files
  • lintrunner -a
  • GGUF/CLI/coverage suite: 3,375 passed, 225 skipped
  • broad non-integration suite: 7,027 passed, 52 skipped, 1 subtest passed (known unrelated glm_moe_dsa baseline excluded)
  • two independent full-diff reviews: CLEAN
  • final cross-stack policy review: CLEAN

Waivers and limitations

This PR closes importer/registry/documentation policy; it does not add a new model architecture or claim downstream runtime readiness.

  • L1-L3 architecture-model checklist items: not applicable to this registry/importer closure; existing graph/CLI/import suites cover changed behavior.
  • L4/L5 and representative real-weight full-logit/generation parity: not claimed globally. Their absence is why runtime verdicts remain deferred/rejected.
  • fp16/bf16/CUDA/DirectML/cross-EP semantic parity: not claimed by this matrix without architecture-specific real evidence.
  • ORT GenAI, Foundry Local, and Olive: optional downstream probes; absence does not gate Mobius graph export and implies no runtime support.
  • direct source-backed GGUF external-data reuse: not implemented. Packages are self-contained; source-range manifests, source-backed locking/recovery, and source-reference symlink containment are not claimed.
  • publication uses staged files plus two renames and in-process rollback; it is not a single-step atomic exchange, crash-durable transaction, or multi-process lock.

Stacked on #603 / justinchuby-close-gguf-tokenizer-census.

Comment thread scripts/generate_gguf_support_docs.py Fixed
Comment thread scripts/generate_gguf_support_docs.py Fixed
Comment thread src/mobius/integrations/gguf/_docs.py Fixed
Comment thread src/mobius/integrations/gguf/_docs.py Fixed
Comment thread src/mobius/integrations/gguf/_docs.py Fixed
Comment thread src/mobius/integrations/gguf/_docs.py Fixed
Comment thread src/mobius/integrations/gguf/_docs.py Fixed
Comment thread src/mobius/integrations/gguf/_docs_test.py Fixed
Comment thread src/mobius/integrations/gguf/_runtime_evidence.py Fixed
Comment thread src/mobius/integrations/gguf/_runtime_evidence_test.py Fixed
@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown

🏗️ Architecture Diff

Comparing aa191992e0df5a

Model Sub-model Changes Status

No architecture changes detected.


Legend: ⚪ No change · 🔵 Minor (attrs/inits) · 🟡 Moderate (nodes added/removed) · 🔴 Major (interface changed)

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown

Performance Comparison

Comparing aa191992e0df5a

Model Metric Baseline Current Delta
bert (feature-extraction) model_size_bytes 359 KB 359 KB +0.0%
bert (feature-extraction) num_nodes 68 68 +0.0%
falcon model_size_bytes 364 KB 364 KB +0.0%
falcon num_nodes 66 66 +0.0%
gemma2 model_size_bytes 428 KB 428 KB +0.0%
gemma2 num_nodes 105 105 +0.0%
gpt2 model_size_bytes 388 KB 388 KB +0.0%
gpt2 num_nodes 54 54 +0.0%
llama model_size_bytes 425 KB 425 KB +0.0%
llama num_nodes 60 60 +0.0%
llama (static-cache) model_size_bytes 425 KB 425 KB +0.0%
llama (static-cache) num_nodes 56 56 +0.0%
mamba (ssm-text-generation) model_size_bytes 296 KB 296 KB +0.0%
mamba (ssm-text-generation) num_nodes 94 94 +0.0%
phi3 model_size_bytes 421 KB 421 KB +0.0%
phi3 num_nodes 58 58 +0.0%
phi3 (static-cache) model_size_bytes 421 KB 421 KB +0.0%
phi3 (static-cache) num_nodes 54 54 +0.0%
qwen2 model_size_bytes 425 KB 425 KB +0.0%
qwen2 num_nodes 60 60 +0.0%
qwen2 (static-cache) model_size_bytes 425 KB 425 KB +0.0%
qwen2 (static-cache) num_nodes 56 56 +0.0%
qwen3_5_moe (hybrid-text-generation) model_size_bytes 506 KB 506 KB +0.0%
qwen3_5_moe (hybrid-text-generation) num_nodes 264 264 +0.0%
qwen3_5_text (hybrid-text-generation) model_size_bytes 458 KB 458 KB +0.0%
qwen3_5_text (hybrid-text-generation) num_nodes 126 126 +0.0%
qwen3_5_vl (hybrid-qwen-vl) model_size_bytes 977 KB 977 KB +0.0%
qwen3_5_vl (hybrid-qwen-vl) num_nodes 428 428 +0.0%
t5 (seq2seq) model_size_bytes 836 KB 836 KB +0.0%
t5 (seq2seq) num_nodes 176 176 +0.0%
whisper (speech-to-text) model_size_bytes 1008 KB 1008 KB +0.0%
whisper (speech-to-text) num_nodes 128 128 +0.0%

No performance regressions.

@justinchuby
justinchuby force-pushed the justinchuby-close-gguf-tokenizer-census branch from 5a4757e to bf14467 Compare August 25, 2026 16:46
Base automatically changed from justinchuby-close-gguf-tokenizer-census to main August 25, 2026 16:48
@justinchuby
justinchuby requested a review from a team August 25, 2026 16:48
justinchuby and others added 2 commits August 25, 2026 09:52
Generate an exhaustive support matrix from the pinned llama.cpp census and lock it to the architecture, qtype, projector, and tokenizer registries. Fail runtime publication closed unless immutable source, import-route, graph, tokenizer, runtime configuration, and package evidence all match.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Apply the repository formatters to the generated support documentation and runtime-evidence tests after transplanting the PR onto the squash-merged parent.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
@justinchuby
justinchuby force-pushed the justinchuby-finalize-gguf-support-matrix branch from 7326da4 to 2e0df5a Compare August 25, 2026 16:56
Copilot AI lite review requested due to automatic review settings August 25, 2026 16:56
@justinchuby
justinchuby merged commit ab11232 into main Aug 25, 2026
18 of 22 checks passed
@justinchuby
justinchuby deleted the justinchuby-finalize-gguf-support-matrix branch August 25, 2026 16:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR “finalizes” the GGUF support matrix by generating docs from pinned llama.cpp census data and by making GGUF runtime packaging explicitly fail-closed unless structured, immutable runtime evidence exists. It strengthens provenance/identity tracking across GGUF parsing, graph import-route capture, and package emission so the documentation and the runtime gate cannot drift.

Changes:

  • Add structured runtime-evidence plumbing and enforce fail-closed runtime packaging (architecture verdict + immutable source identity + import-route + package hash checks).
  • Introduce a generator-backed documentation pipeline for the GGUF architecture / qtype / projector / tokenizer matrices (plus CI-style staleness checks).
  • Harden GGUF source identity handling (reader open-time identity check, logical source filename preservation, upstream pin date surfaced in docs).

Reviewed changes

Copilot reviewed 26 out of 27 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/gguf_test.py Updates CLI/runtime packaging tests to account for new runtime gate inputs (arch + registry verdicts).
tests/cli_test.py Adds coverage ensuring deferred runtime architectures fail before creating output directories.
src/mobius/integrations/gguf/_upstream.py Exposes pinned upstream commit date for doc generation.
src/mobius/integrations/gguf/_upstream_data/llamacpp_pin.json Records upstream commit_date alongside the pinned commit SHA.
src/mobius/integrations/gguf/_tokenizer.py Adds source_identity override so tokenizer manifests don’t have to record machine-local paths.
src/mobius/integrations/gguf/_tokenizer_test.py Switches doc-table validation to the centralized GGUF docs generator check.
src/mobius/integrations/gguf/_spec.py Makes runtime default to DEFERRED and adds structured runtime evidence IDs validation when runtime is SUPPORTED.
src/mobius/integrations/gguf/_spec_test.py Updates spec tests for the new runtime default + evidence ID requirements.
src/mobius/integrations/gguf/_runtime_package.py Adds runtime-evidence gating, identity checks, and package hashing to fail closed on any mismatch.
src/mobius/integrations/gguf/_runtime_package_test.py Adds tests for early rejection paths (deferred arch, MTP, save_model=False) and evidence-bound packaging.
src/mobius/integrations/gguf/_runtime_evidence.py Introduces the structured runtime evidence schema + hashing/identity utilities.
src/mobius/integrations/gguf/_runtime_evidence_test.py Tests evidence binding behavior and graph-package identity hashing (including symlink rejection).
src/mobius/integrations/gguf/_reader.py Adds open-time stat-identity capture and a source_matches_path() check for later provenance binding.
src/mobius/integrations/gguf/_mmproj.py Separates “graph-importable” vs “runtime-supported” projector gating.
src/mobius/integrations/gguf/_mmproj_registry.py Adds is_importable and updates supported-projector listing to reflect graph importability.
src/mobius/integrations/gguf/_mmproj_registry_test.py Moves projector-matrix doc drift checks to the centralized generator check.
src/mobius/integrations/gguf/_docs.py Adds the authoritative GGUF docs generator and a strict staleness/pin guard.
src/mobius/integrations/gguf/_docs_test.py Adds closure tests for doc generation counts, pin closure, and runtime-evidence fail-closed policy.
src/mobius/integrations/gguf/_builder.py Captures import-route identity, logical source filename, and (when enabled) artifact identity for evidence binding.
src/mobius/integrations/gguf/_builder_test.py Adds unit coverage for logical Hub-relative filename preservation.
src/mobius/integrations/gguf/_arch_registry.py Downgrades runtime verdicts to DEFERRED with a consistent “runtime evidence pending” reason across specs.
src/mobius/integrations/gguf/_arch_registry_test.py Switches architecture doc drift checks to the centralized generator check and updates guidance.
src/mobius/integrations/gguf/init.py Updates public docs to reflect fail-closed runtime packaging status.
src/mobius/main.py Adds runtime preflight gate and plumbs --runtime-version into runtime packaging.
scripts/generate_gguf_support_docs.py Adds a script to refresh/check generated GGUF documentation blocks.
docs/cli_reference.md Updates CLI documentation for the stricter runtime packaging gate and new options/semantics.
docs/api/build_from_gguf.md Replaces hand-maintained matrices with generated blocks and expands policy/limitations documentation.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/cli_reference.md
Comment on lines +397 to +402
Runtime packaging requires a validated embedded `tokenizer.huggingface.json`;
opaque tokenizer pre-types are never reconstructed. Deferred/rejected
architecture, tokenizer, draft-pairing, or mmproj checks run before durable
output. Multimodal packages use `decoder`, `vision_encoder`, optional
`audio_encoder`, and `embedding`; an admitted trailing MTP head is persisted
under `mtp/`.
Comment thread src/mobius/__main__.py
Comment on lines 724 to 728
gguf_path,
output_dir,
runtime=runtime,
runtime_version=getattr(args, "runtime_version", None),
external_data=args.external_data,
justinchuby added a commit that referenced this pull request Aug 25, 2026
## Summary

- clean up still-valid typing, documentation, test robustness,
error-message,
  maintainability, and performance findings left by the GGUF PR stack
- preserve the behavioral fixes merged in #625-#632
- hash reused multi-GB GGUF sources once, at the final pre-publication
integrity
  gate, while retaining cheap identity checks around staging

Exact base: `2db9d33debdc254d879a51b14434c9a81c230f4f`

Exact head: `4541ed2bc9d2ab4227484510b4a85b2d9113eb25`

## Reconstructed original 17-item low-priority tranche

The persisted audit retained only the totals, so this list was
reconstructed
from the live threads and current source. All but the already-fixed #596
comment are addressed in this PR.

| PR | Comment | Disposition |
|---|---:|---|
| #550 | 3837144656 | Implemented: correct tuple return annotation |
| #552 | 3837389183 | Implemented: multichannel waveform shape docs |
| #559 | 3837716261 | Implemented: name-based cache assertions |
| #573 | 3854308350 | Implemented: one final GGUF hash, with integrity
regression coverage |
| #574 | 3854345521 | Implemented: `TensorRole \| None` typing |
| #574 | 3854345597 | Implemented: removed obsolete verdict filtering |
| #577 | 3854472859 | Implemented: documented SSM sequence length |
| #578 | 3843112613 | Implemented: documented F64 passthrough |
| #579 | 3854518332 | Implemented: generalized fused-projection error |
| #580 | 3854576300 | Implemented: removed brittle node counts |
| #583 | 3854681386 | Implemented: documented conditional draft outputs
|
| #587 | 3854816872 | Implemented: corrected MTP output contract docs |
| #596 | 3846110059 | Already fixed on base: unambiguous GQA bias
comment |
| #600 | 3855174281 | Implemented: metadata-count-only MTP error |
| #607 | 3855776048 | Implemented: stable route-field assertions |
| #607 | 3855776086 | Implemented: public tensor iterator |
| #609 | 3856486136 | Implemented: fail-closed LM-head comment |

## Current unresolved-thread disposition

This covers all 48 Copilot threads returned by the reproducible
#600-#630
query. The one human #623 thread is excluded.

| PR | Comment | Current-main disposition and evidence |
|---|---:|---|
| #600 | 3855174177 | Already fixed by #629: package cycle and
reserved-sidecar validation |
| #600 | 3855174238 | Already fixed by #629: explicit MTP sidecar
naming/loading |
| #600 | 3855174281 | Implemented here: error no longer invents an
observed block count |
| #602 | 3848155961 | Outside exact stack; already fixed: top-level
`expert_dtype` is classified before early return |
| #602 | 3848155983 | Outside exact stack; still-valid behavioral
block-quant validation, unchanged |
| #602 | 3848156000 | Outside exact stack; still-valid truncated-read
behavioral finding, unchanged |
| #602 | 3848156022 | Outside exact stack; still-valid descriptor
byte/dtype validation, unchanged |
| #602 | 3848156040 | Outside exact stack; still-valid expert-bank
payload validation, unchanged |
| #603 | 3855249765 | Already fixed by #630: runtime preflight preserves
shard sets |
| #603 | 3855249840 | Already fixed by #630: success output follows
durable runtime publication |
| #604 | 3855343082 | Implemented here: graph-only MTP persistence
distinguished from runtime rejection |
| #604 | 3855343131 | Already fixed by #630: runtime success messages
are atomic |
| #607 | 3855776001 | Implemented here: missing generation golden skips
before provenance read |
| #607 | 3855776048 | Implemented here: only stable route fields are
asserted |
| #607 | 3855776086 | Implemented here: tensor count uses
`tensor_items_raw()` |
| #608 | 3856079371 | Still-valid behavioral cache-symlink containment
finding; unchanged |
| #608 | 3856079415 | Still-valid behavioral lowercase-digest validation
finding; unchanged |
| #609 | 3856486136 | Implemented here: comment matches value-preserving
policy |
| #610 | 3855541683 | Already fixed by #628: Falcon bias precedence is
explicit |
| #610 | 3855541761 | Already fixed by #628: CTRL tiny config exercises
projection biases |
| #611 | 3856595840 | Implemented here: runtime test resolves the
distribution providing the module |
| #612 | 3855677383 | Already fixed by #625: supported-version
endianness detection |
| #612 | 3855677427 | Implemented here: shared `INT64_MAX` sentinel |
| #612 | 3855677460 | Implemented here: shared PLaMo2 width inference |
| #612 | 3855677486 | Implemented here: accepted PLaMo2 activation
spellings are explicit |
| #613 | 3855845678 | Implemented here: canonical issue URL |
| #613 | 3855845757 | Implemented here: Mamba-1 function-registration
docs |
| #613 | 3855845806 | Implemented here: test expects the canonical issue
URL |
| #614 | 3855988545 | Implemented here: removed stale Nemotron-H
divergence comments |
| #614 | 3855988597 | Already fixed by #628: zero-head geometry raises
actionable `ValueError` |
| #615 | 3856082290 | Already fixed by #626: dense GraniteHybrid bias
closure |
| #618 | 3856729330 | Implemented here: required routes filter ORT GenAI
evidence |
| #618 | 3856729409 | Implemented here: env-selected runtime version is
authoritative |
| #618 | 3856729490 | Stale/N/A: PR-description-only matrix claim;
repository workflow claims one pinned version |
| #618 | 3856729563 | Implemented here: schema tail restored to normal
indentation |
| #619 | 3856342484 | Already fixed on base: Kimi Linear uses
`/issues/605` |
| #619 | 3856342532 | Already fixed by #628: config rejects convolution
kernels below 2 |
| #619 | 3856342580 | Already fixed by #628: GGUF contract rejects
convolution kernels below 2 |
| #620 | 3855717041 | Already fixed by #627: tied LM-head-only
checkpoints are retained |
| #621 | 3856722324 | Already fixed by #628: Kimi-K3 required metadata
is complete |
| #623 | 3855931210 | N/A to current main: comment belongs to open,
unmerged #623 |
| #623 | 3855939302 | N/A to current main: comment belongs to open,
unmerged #623 |
| #623 | 3855939358 | N/A to current main: comment belongs to open,
unmerged #623 |
| #623 | 3855939394 | N/A to current main: comment belongs to open,
unmerged #623 |
| #624 | 3856777152 | Implemented here: runtime compatibility reuses the
emitted model type |
| #625 | 3857049733 | Implemented here: unsupported header reports both
endian candidates |
| #629 | 3857313182 | Newer post-audit behavioral sidecar-symlink
cleanup finding; unchanged |
| #629 | 3857313251 | Newer post-audit cross-platform path-safety
finding; unchanged |

## Validation

- affected GGUF/package/ORT GenAI/model/schema tests: 1,040 passed
- broad non-integration suite: 7,851 passed, 56 skipped, 1 subtest
passed
- generated GGUF docs checks: 7 passed
- initialized `lintrunner`; full lint/format passed
- GPT-5.6 Sol medium review: one integrity finding fixed; re-review
found no significant issues

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants