vqlab 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vqlab-0.1.0/CHANGELOG.md +73 -0
- vqlab-0.1.0/CITATION.cff +16 -0
- vqlab-0.1.0/LICENSE +661 -0
- vqlab-0.1.0/MANIFEST.in +12 -0
- vqlab-0.1.0/PKG-INFO +346 -0
- vqlab-0.1.0/README.md +298 -0
- vqlab-0.1.0/docs/ALLOCATION-METHOD.md +677 -0
- vqlab-0.1.0/docs/CANONICAL-397B-NUMBERS.md +35 -0
- vqlab-0.1.0/docs/CORPORA.md +16 -0
- vqlab-0.1.0/docs/DENSE-VQ-DECODE.md +331 -0
- vqlab-0.1.0/docs/FAMILY-ONBOARDING-CHECKLIST.md +76 -0
- vqlab-0.1.0/docs/FINDINGS.md +749 -0
- vqlab-0.1.0/docs/GEMMA-DIVERGENCE-2026-09-07.md +216 -0
- vqlab-0.1.0/docs/GEOMETRY-CAMPAIGN.md +117 -0
- vqlab-0.1.0/docs/INDEX.md +57 -0
- vqlab-0.1.0/docs/KERNEL-COVERAGE.md +61 -0
- vqlab-0.1.0/docs/KL-TUNED-CODEBOOKS-PLAN.md +151 -0
- vqlab-0.1.0/docs/KernelProposals.md +478 -0
- vqlab-0.1.0/docs/MEASUREMENT.md +112 -0
- vqlab-0.1.0/docs/MEMORY-PLAYBOOK.md +33 -0
- vqlab-0.1.0/docs/MODEL-FAMILY-LEDGER.md +226 -0
- vqlab-0.1.0/docs/MTP-USAGE.md +273 -0
- vqlab-0.1.0/docs/MTP.md +766 -0
- vqlab-0.1.0/docs/ONBOARDING.md +99 -0
- vqlab-0.1.0/docs/PROVENANCE.md +151 -0
- vqlab-0.1.0/docs/RUNTIME-SETTINGS.md +160 -0
- vqlab-0.1.0/docs/RUNTIME-SHIP-PLAN.md +64 -0
- vqlab-0.1.0/docs/SKIPZERO.md +117 -0
- vqlab-0.1.0/docs/TWO-RUNTIMES.md +90 -0
- vqlab-0.1.0/docs/V2-RUNTIME.md +108 -0
- vqlab-0.1.0/docs/model-cards/GLM-5.3-Flash-VQ-2.7bpw.md +310 -0
- vqlab-0.1.0/docs/model-cards/GLM-5.3-Flash-VQ-3.1bpw.md +256 -0
- vqlab-0.1.0/docs/model-cards/GLM-5.3-Flash-VQ-3.6bpw.md +255 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-2.2bpw.md +343 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-2.4bpw.md +240 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-2.6bpw.md +283 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-3.1bpw.md +306 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-3.4bpw.md +181 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-3.8bpw.md +202 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-4.6bpw.md +258 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-5.4bpw.md +200 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.8-27B-VQ-3.9bpw.md +230 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.8-27B-VQ-4.5bpw.md +230 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.8-27B-VQ-4.8bpw.md +237 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-2.1bpw.md +341 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-3.2bpw.md +285 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-4.4bpw.md +294 -0
- vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-5.5bpw.md +293 -0
- vqlab-0.1.0/docs/model-cards/README.md +75 -0
- vqlab-0.1.0/docs/model-cards/_tools/.gitignore +1 -0
- vqlab-0.1.0/docs/model-cards/_tools/add_changelog_entry.py +55 -0
- vqlab-0.1.0/docs/model-cards/_tools/check_cards.py +51 -0
- vqlab-0.1.0/docs/model-cards/entry.md +18 -0
- vqlab-0.1.0/docs/model-cards/gemma-4-26b-a4b-it-VQ-6.2bpw.md +241 -0
- vqlab-0.1.0/docs/model-cards/gemma-4-e4b-it-VQ-PLE.md +208 -0
- vqlab-0.1.0/pyproject.toml +221 -0
- vqlab-0.1.0/setup.cfg +4 -0
- vqlab-0.1.0/src/vqlab/__init__.py +79 -0
- vqlab-0.1.0/src/vqlab/_layout.py +225 -0
- vqlab-0.1.0/src/vqlab/agents/CONTEXT.md +50 -0
- vqlab-0.1.0/src/vqlab/agents/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/agents/_fetch.py +46 -0
- vqlab-0.1.0/src/vqlab/agents/bug_report.py +107 -0
- vqlab-0.1.0/src/vqlab/agents/config_cmd.py +165 -0
- vqlab-0.1.0/src/vqlab/agents/doctor.py +234 -0
- vqlab-0.1.0/src/vqlab/agents/downloads.py +255 -0
- vqlab-0.1.0/src/vqlab/agents/first_run.py +77 -0
- vqlab-0.1.0/src/vqlab/agents/gui.py +511 -0
- vqlab-0.1.0/src/vqlab/agents/gui_static/index.html +1605 -0
- vqlab-0.1.0/src/vqlab/agents/jobs.py +257 -0
- vqlab-0.1.0/src/vqlab/agents/mcp/__init__.py +15 -0
- vqlab-0.1.0/src/vqlab/agents/mcp/common.py +8 -0
- vqlab-0.1.0/src/vqlab/agents/mcp/server.py +290 -0
- vqlab-0.1.0/src/vqlab/agents/mcp/tools_findings.py +32 -0
- vqlab-0.1.0/src/vqlab/agents/mcp/tools_runs.py +44 -0
- vqlab-0.1.0/src/vqlab/agents/mcp/tools_storage.py +38 -0
- vqlab-0.1.0/src/vqlab/agents/model_scan.py +271 -0
- vqlab-0.1.0/src/vqlab/agents/onboard.py +339 -0
- vqlab-0.1.0/src/vqlab/agents/scratch.py +526 -0
- vqlab-0.1.0/src/vqlab/agents/settings.py +242 -0
- vqlab-0.1.0/src/vqlab/agents/teachers.py +213 -0
- vqlab-0.1.0/src/vqlab/agents/updates.py +76 -0
- vqlab-0.1.0/src/vqlab/api.py +605 -0
- vqlab-0.1.0/src/vqlab/bench/CONTEXT.md +43 -0
- vqlab-0.1.0/src/vqlab/bench/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/bench/active_bytes.py +213 -0
- vqlab-0.1.0/src/vqlab/bench/box_quiet.py +70 -0
- vqlab-0.1.0/src/vqlab/bench/decode_ladder.py +663 -0
- vqlab-0.1.0/src/vqlab/bench/decode_timeline.py +447 -0
- vqlab-0.1.0/src/vqlab/bench/gdn_chunk_truth.py +162 -0
- vqlab-0.1.0/src/vqlab/bench/gpu_capture.py +99 -0
- vqlab-0.1.0/src/vqlab/bench/hc_micro.py +159 -0
- vqlab-0.1.0/src/vqlab/bench/host_attrib.py +116 -0
- vqlab-0.1.0/src/vqlab/bench/kernel_coverage.py +97 -0
- vqlab-0.1.0/src/vqlab/bench/lut_bench.py +252 -0
- vqlab-0.1.0/src/vqlab/bench/mtp_accept.py +172 -0
- vqlab-0.1.0/src/vqlab/bench/mtp_arms.py +59 -0
- vqlab-0.1.0/src/vqlab/bench/mtp_bench.py +71 -0
- vqlab-0.1.0/src/vqlab/bench/power.py +23 -0
- vqlab-0.1.0/src/vqlab/bench/prefill_bench.py +194 -0
- vqlab-0.1.0/src/vqlab/bench/prefill_timeline.py +159 -0
- vqlab-0.1.0/src/vqlab/bench/serve_timeline.py +174 -0
- vqlab-0.1.0/src/vqlab/bench/speed_pair.py +124 -0
- vqlab-0.1.0/src/vqlab/bench/speed_pair_knurlogic.py +213 -0
- vqlab-0.1.0/src/vqlab/bench/stage_bandwidth.py +249 -0
- vqlab-0.1.0/src/vqlab/bench/timeline_common.py +31 -0
- vqlab-0.1.0/src/vqlab/build/CONTEXT.md +41 -0
- vqlab-0.1.0/src/vqlab/build/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/build/build_dense.py +331 -0
- vqlab-0.1.0/src/vqlab/build/graft_extras.py +165 -0
- vqlab-0.1.0/src/vqlab/build/graft_vision.py +322 -0
- vqlab-0.1.0/src/vqlab/build/loo_bands.py +71 -0
- vqlab-0.1.0/src/vqlab/build/minibase.py +47 -0
- vqlab-0.1.0/src/vqlab/build/mix.py +161 -0
- vqlab-0.1.0/src/vqlab/build/mtp_extract.py +132 -0
- vqlab-0.1.0/src/vqlab/build/mtp_graft.py +165 -0
- vqlab-0.1.0/src/vqlab/build/mtp_head_ds4.py +143 -0
- vqlab-0.1.0/src/vqlab/build/mtp_pack.py +140 -0
- vqlab-0.1.0/src/vqlab/build/pack.py +288 -0
- vqlab-0.1.0/src/vqlab/build/pack_dense.py +128 -0
- vqlab-0.1.0/src/vqlab/build/pack_ple.py +112 -0
- vqlab-0.1.0/src/vqlab/build/ple_swap.py +121 -0
- vqlab-0.1.0/src/vqlab/build/reskeleton.py +181 -0
- vqlab-0.1.0/src/vqlab/build/sanitize_stream.py +157 -0
- vqlab-0.1.0/src/vqlab/build/slice_teacher.py +241 -0
- vqlab-0.1.0/src/vqlab/build/splice_ple.py +120 -0
- vqlab-0.1.0/src/vqlab/build/stream_convert.py +330 -0
- vqlab-0.1.0/src/vqlab/build/teacher_prep.py +85 -0
- vqlab-0.1.0/src/vqlab/build/unpack_dense.py +136 -0
- vqlab-0.1.0/src/vqlab/bundle/CONTEXT.md +22 -0
- vqlab-0.1.0/src/vqlab/bundle/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/bundle/add_model_file.py +333 -0
- vqlab-0.1.0/src/vqlab/bundle/patch_arch.py +56 -0
- vqlab-0.1.0/src/vqlab/bundle/rebundle_dense.py +80 -0
- vqlab-0.1.0/src/vqlab/bundle/vision_layout.py +142 -0
- vqlab-0.1.0/src/vqlab/cli.py +223 -0
- vqlab-0.1.0/src/vqlab/commands.py +490 -0
- vqlab-0.1.0/src/vqlab/config.py +637 -0
- vqlab-0.1.0/src/vqlab/core/CONTEXT.md +27 -0
- vqlab-0.1.0/src/vqlab/core/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/CONTEXT.md +17 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/artifact.py +296 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/artifact_size.py +27 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/codepack.py +49 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/hub.py +65 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/pin_record.py +45 -0
- vqlab-0.1.0/src/vqlab/core/artifacts/stamp_fields.py +40 -0
- vqlab-0.1.0/src/vqlab/core/box/CONTEXT.md +15 -0
- vqlab-0.1.0/src/vqlab/core/box/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/core/box/arch_finder.py +104 -0
- vqlab-0.1.0/src/vqlab/core/box/exo.py +26 -0
- vqlab-0.1.0/src/vqlab/core/box/gpu_lease.py +109 -0
- vqlab-0.1.0/src/vqlab/core/box/knurlogic_client.py +151 -0
- vqlab-0.1.0/src/vqlab/core/source/CONTEXT.md +18 -0
- vqlab-0.1.0/src/vqlab/core/source/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/core/source/clamps.py +42 -0
- vqlab-0.1.0/src/vqlab/core/source/expert_src.py +168 -0
- vqlab-0.1.0/src/vqlab/core/source/fit_store.py +473 -0
- vqlab-0.1.0/src/vqlab/core/source/mem_budget.py +83 -0
- vqlab-0.1.0/src/vqlab/core/source/ple_stream.py +196 -0
- vqlab-0.1.0/src/vqlab/core/source/teacher_profiles.py +74 -0
- vqlab-0.1.0/src/vqlab/family/CONTEXT.md +30 -0
- vqlab-0.1.0/src/vqlab/family/__init__.py +155 -0
- vqlab-0.1.0/src/vqlab/family/arch_equivalence.json +33 -0
- vqlab-0.1.0/src/vqlab/family/deepseek_v4.py +269 -0
- vqlab-0.1.0/src/vqlab/family/gemma4.py +187 -0
- vqlab-0.1.0/src/vqlab/family/glm5_next.py +215 -0
- vqlab-0.1.0/src/vqlab/family/model_loader.py +213 -0
- vqlab-0.1.0/src/vqlab/family/qwen3_5.py +159 -0
- vqlab-0.1.0/src/vqlab/family/qwen4_exp.py +123 -0
- vqlab-0.1.0/src/vqlab/family/registry.py +317 -0
- vqlab-0.1.0/src/vqlab/family/version_stamp.py +419 -0
- vqlab-0.1.0/src/vqlab/fit/CONTEXT.md +35 -0
- vqlab-0.1.0/src/vqlab/fit/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/fit/additive_codebooks.py +98 -0
- vqlab-0.1.0/src/vqlab/fit/fit_additive.py +224 -0
- vqlab-0.1.0/src/vqlab/fit/fit_dense_vq.py +257 -0
- vqlab-0.1.0/src/vqlab/fit/fit_moe.py +704 -0
- vqlab-0.1.0/src/vqlab/fit/fit_ple.py +189 -0
- vqlab-0.1.0/src/vqlab/fit/fits.py +216 -0
- vqlab-0.1.0/src/vqlab/fit/geo_build.py +664 -0
- vqlab-0.1.0/src/vqlab/fit/harvest_parts.py +142 -0
- vqlab-0.1.0/src/vqlab/fit/kmeans.py +290 -0
- vqlab-0.1.0/src/vqlab/fit/reselect.py +526 -0
- vqlab-0.1.0/src/vqlab/gate/CONTEXT.md +36 -0
- vqlab-0.1.0/src/vqlab/gate/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/gate/bundle_accept.py +109 -0
- vqlab-0.1.0/src/vqlab/gate/check_all.py +99 -0
- vqlab-0.1.0/src/vqlab/gate/check_bundle.py +391 -0
- vqlab-0.1.0/src/vqlab/gate/check_comparator.py +94 -0
- vqlab-0.1.0/src/vqlab/gate/check_release.py +756 -0
- vqlab-0.1.0/src/vqlab/gate/kernel_accept.py +118 -0
- vqlab-0.1.0/src/vqlab/gate/kernel_reference.py +23 -0
- vqlab-0.1.0/src/vqlab/gate/knurlogic_link.py +103 -0
- vqlab-0.1.0/src/vqlab/gate/leak_guard.py +131 -0
- vqlab-0.1.0/src/vqlab/gate/mtp_smoke_head.py +99 -0
- vqlab-0.1.0/src/vqlab/gate/parity.py +125 -0
- vqlab-0.1.0/src/vqlab/gate/pin.py +184 -0
- vqlab-0.1.0/src/vqlab/gate/smoke.py +313 -0
- vqlab-0.1.0/src/vqlab/gate/spelling.py +167 -0
- vqlab-0.1.0/src/vqlab/gate/tokenizer_match.py +75 -0
- vqlab-0.1.0/src/vqlab/gate/verify_artifact.py +209 -0
- vqlab-0.1.0/src/vqlab/gate/verify_dev_codebook.py +100 -0
- vqlab-0.1.0/src/vqlab/gate/vision_smoke.py +571 -0
- vqlab-0.1.0/src/vqlab/mtp/CONTEXT.md +36 -0
- vqlab-0.1.0/src/vqlab/mtp/__init__.py +30 -0
- vqlab-0.1.0/src/vqlab/mtp/bench.py +108 -0
- vqlab-0.1.0/src/vqlab/mtp/caches.py +120 -0
- vqlab-0.1.0/src/vqlab/mtp/capture.py +68 -0
- vqlab-0.1.0/src/vqlab/mtp/cli_common.py +40 -0
- vqlab-0.1.0/src/vqlab/mtp/graft.py +56 -0
- vqlab-0.1.0/src/vqlab/mtp/loop.py +541 -0
- vqlab-0.1.0/src/vqlab/mtp/mtp_head.py +219 -0
- vqlab-0.1.0/src/vqlab/mtp/mtp_head_glm5.py +244 -0
- vqlab-0.1.0/src/vqlab/mtp/mtp_head_qwen35.py +264 -0
- vqlab-0.1.0/src/vqlab/mtp/registry.py +241 -0
- vqlab-0.1.0/src/vqlab/mtp/runtime.py +75 -0
- vqlab-0.1.0/src/vqlab/mtp/sampling.py +145 -0
- vqlab-0.1.0/src/vqlab/ops/CONTEXT.md +41 -0
- vqlab-0.1.0/src/vqlab/ops/__init__.py +20 -0
- vqlab-0.1.0/src/vqlab/ops/box.py +52 -0
- vqlab-0.1.0/src/vqlab/ops/docs.py +42 -0
- vqlab-0.1.0/src/vqlab/ops/errors.py +21 -0
- vqlab-0.1.0/src/vqlab/ops/findings.py +223 -0
- vqlab-0.1.0/src/vqlab/ops/queues.py +47 -0
- vqlab-0.1.0/src/vqlab/ops/roots.py +57 -0
- vqlab-0.1.0/src/vqlab/ops/runs.py +208 -0
- vqlab-0.1.0/src/vqlab/ops/storage.py +120 -0
- vqlab-0.1.0/src/vqlab/ops/supervisor.py +106 -0
- vqlab-0.1.0/src/vqlab/plan/CONTEXT.md +32 -0
- vqlab-0.1.0/src/vqlab/plan/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/plan/alloc_sweep.py +260 -0
- vqlab-0.1.0/src/vqlab/plan/family_profile.py +401 -0
- vqlab-0.1.0/src/vqlab/plan/init_sweep.py +187 -0
- vqlab-0.1.0/src/vqlab/plan/layer_leverage.py +346 -0
- vqlab-0.1.0/src/vqlab/plan/mtp_probe_qwen35.py +185 -0
- vqlab-0.1.0/src/vqlab/plan/mtp_probe_qwen4_exp.py +234 -0
- vqlab-0.1.0/src/vqlab/plan/preflight_disk.py +73 -0
- vqlab-0.1.0/src/vqlab/plan/preflight_ram.py +75 -0
- vqlab-0.1.0/src/vqlab/plan/price.py +167 -0
- vqlab-0.1.0/src/vqlab/plan/recipe_queue.py +940 -0
- vqlab-0.1.0/src/vqlab/plan/zero_groups.py +186 -0
- vqlab-0.1.0/src/vqlab/queue/CONTEXT.md +53 -0
- vqlab-0.1.0/src/vqlab/queue/__init__.py +5 -0
- vqlab-0.1.0/src/vqlab/queue/eta.py +169 -0
- vqlab-0.1.0/src/vqlab/queue/files.py +175 -0
- vqlab-0.1.0/src/vqlab/queue/remote.py +187 -0
- vqlab-0.1.0/src/vqlab/queue/report.py +126 -0
- vqlab-0.1.0/src/vqlab/queue/reserve.py +269 -0
- vqlab-0.1.0/src/vqlab/queue/runner.py +457 -0
- vqlab-0.1.0/src/vqlab/queue/steps.py +322 -0
- vqlab-0.1.0/src/vqlab/queue/validate.py +228 -0
- vqlab-0.1.0/src/vqlab/records/CONTEXT.md +24 -0
- vqlab-0.1.0/src/vqlab/records/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/records/artifact_manifest.py +103 -0
- vqlab-0.1.0/src/vqlab/records/provenance.py +678 -0
- vqlab-0.1.0/src/vqlab/records/registry.py +267 -0
- vqlab-0.1.0/src/vqlab/records/runlog.py +119 -0
- vqlab-0.1.0/src/vqlab/records/scores.py +83 -0
- vqlab-0.1.0/src/vqlab/records/step_verdict.py +58 -0
- vqlab-0.1.0/src/vqlab/runtime/CONTEXT.md +19 -0
- vqlab-0.1.0/src/vqlab/runtime/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/runtime/arch_resolve.py +295 -0
- vqlab-0.1.0/src/vqlab/runtime/dense_shim.py +84 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_dense.ac62e4e43f4a.py.txt +513 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.1534dd6b77b8.py.txt +4857 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.40870875499d.py.txt +4453 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.5abf28a7f096.py.txt +4958 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.6254c4531ed5.py.txt +5482 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.6d8ab6873adf.py.txt +4862 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.b41c1064c82b.py.txt +4856 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.e6fecc09a842.py.txt +4929 -0
- vqlab-0.1.0/src/vqlab/runtime/equivalent_revisions.json +61 -0
- vqlab-0.1.0/src/vqlab/runtime/gated_delta_chunked.py +153 -0
- vqlab-0.1.0/src/vqlab/runtime/glm5_shim.py +171 -0
- vqlab-0.1.0/src/vqlab/runtime/runtime_profile.py +193 -0
- vqlab-0.1.0/src/vqlab/runtime/vq_dense.py +513 -0
- vqlab-0.1.0/src/vqlab/runtime/vq_pack.py +129 -0
- vqlab-0.1.0/src/vqlab/runtime/vq_switch.py +5495 -0
- vqlab-0.1.0/src/vqlab/score/CONTEXT.md +31 -0
- vqlab-0.1.0/src/vqlab/score/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/score/act_stats.py +56 -0
- vqlab-0.1.0/src/vqlab/score/kernel_truth.py +444 -0
- vqlab-0.1.0/src/vqlab/score/kernel_truth_moe.py +129 -0
- vqlab-0.1.0/src/vqlab/score/kl_damage.py +345 -0
- vqlab-0.1.0/src/vqlab/score/kl_ladder.py +314 -0
- vqlab-0.1.0/src/vqlab/score/kl_pair.py +133 -0
- vqlab-0.1.0/src/vqlab/score/ppl_resident.py +80 -0
- vqlab-0.1.0/src/vqlab/score/referee/referee_corpus.txt +350 -0
- vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_code_public.txt +1692 -0
- vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_code_public.txt.manifest.json +37 -0
- vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_literary.manifest.json +86 -0
- vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_literary.txt +22126 -0
- vqlab-0.1.0/src/vqlab/score/referee/score_streaming.py +366 -0
- vqlab-0.1.0/src/vqlab/score/runtime_equiv.py +179 -0
- vqlab-0.1.0/src/vqlab/score/score_tasks_streaming.py +615 -0
- vqlab-0.1.0/src/vqlab/score/stream_score.py +700 -0
- vqlab-0.1.0/src/vqlab/selftest/CONTEXT.md +45 -0
- vqlab-0.1.0/src/vqlab/selftest/__init__.py +141 -0
- vqlab-0.1.0/src/vqlab/selftest/__main__.py +6 -0
- vqlab-0.1.0/src/vqlab/selftest/build_checks.py +36 -0
- vqlab-0.1.0/src/vqlab/selftest/family_checks.py +73 -0
- vqlab-0.1.0/src/vqlab/selftest/fit_checks.py +121 -0
- vqlab-0.1.0/src/vqlab/selftest/gate_checks.py +128 -0
- vqlab-0.1.0/src/vqlab/selftest/kernel_checks.py +43 -0
- vqlab-0.1.0/src/vqlab/selftest/layout_checks.py +90 -0
- vqlab-0.1.0/src/vqlab/selftest/plan_checks.py +57 -0
- vqlab-0.1.0/src/vqlab/selftest/queue_checks.py +106 -0
- vqlab-0.1.0/src/vqlab/selftest/records_checks.py +171 -0
- vqlab-0.1.0/src/vqlab/selftest/reselect_fixture.py +102 -0
- vqlab-0.1.0/src/vqlab/selftest/skipzero_checks.py +32 -0
- vqlab-0.1.0/src/vqlab/selftest/synthetic_model.py +136 -0
- vqlab-0.1.0/src/vqlab/selftest/sz_bitexact_cpu.py +164 -0
- vqlab-0.1.0/src/vqlab/selftest/sz_check_fixture.py +93 -0
- vqlab-0.1.0/src/vqlab/ship/CONTEXT.md +27 -0
- vqlab-0.1.0/src/vqlab/ship/__init__.py +1 -0
- vqlab-0.1.0/src/vqlab/ship/card.py +338 -0
- vqlab-0.1.0/src/vqlab/ship/card_checks.py +100 -0
- vqlab-0.1.0/src/vqlab/ship/card_tables.py +115 -0
- vqlab-0.1.0/src/vqlab/ship/mtp_run.py +55 -0
- vqlab-0.1.0/src/vqlab/ship/publish.py +220 -0
- vqlab-0.1.0/src/vqlab/ship/release_prep.py +139 -0
- vqlab-0.1.0/src/vqlab/ship/serve.py +268 -0
- vqlab-0.1.0/src/vqlab/ship/size.py +75 -0
- vqlab-0.1.0/src/vqlab/skipzero/CONTEXT.md +88 -0
- vqlab-0.1.0/src/vqlab/skipzero/__init__.py +2 -0
- vqlab-0.1.0/src/vqlab/skipzero/skipzero_load.py +141 -0
- vqlab-0.1.0/src/vqlab/skipzero/sz_bitexact.py +593 -0
- vqlab-0.1.0/src/vqlab/skipzero/sz_check.py +162 -0
- vqlab-0.1.0/src/vqlab/skipzero/sz_pack.py +355 -0
- vqlab-0.1.0/src/vqlab/skipzero/sz_resident.py +756 -0
- vqlab-0.1.0/src/vqlab/skipzero/sz_resident_build.py +175 -0
- vqlab-0.1.0/src/vqlab/util/CONTEXT.md +22 -0
- vqlab-0.1.0/src/vqlab/util/__init__.py +10 -0
- vqlab-0.1.0/src/vqlab/util/clock.py +21 -0
- vqlab-0.1.0/src/vqlab/util/errors.py +12 -0
- vqlab-0.1.0/src/vqlab/util/fs.py +106 -0
- vqlab-0.1.0/src/vqlab/util/geo.py +7 -0
- vqlab-0.1.0/src/vqlab/util/hashing.py +73 -0
- vqlab-0.1.0/src/vqlab/util/log.py +24 -0
- vqlab-0.1.0/src/vqlab.egg-info/PKG-INFO +346 -0
- vqlab-0.1.0/src/vqlab.egg-info/SOURCES.txt +488 -0
- vqlab-0.1.0/src/vqlab.egg-info/dependency_links.txt +1 -0
- vqlab-0.1.0/src/vqlab.egg-info/entry_points.txt +2 -0
- vqlab-0.1.0/src/vqlab.egg-info/requires.txt +20 -0
- vqlab-0.1.0/src/vqlab.egg-info/top_level.txt +1 -0
- vqlab-0.1.0/tests/conftest.py +66 -0
- vqlab-0.1.0/tests/cpu_site/sitecustomize.py +8 -0
- vqlab-0.1.0/tests/fixtures/layering_allowlist.json +6 -0
- vqlab-0.1.0/tests/fixtures/public_names.json +194 -0
- vqlab-0.1.0/tests/fixtures/recipe_golden.json +2495 -0
- vqlab-0.1.0/tests/fixtures/recipe_golden_oversized.json +1006 -0
- vqlab-0.1.0/tests/fixtures/runtime_sha256.json +24 -0
- vqlab-0.1.0/tests/golden/kmeans/kmeans.npz +0 -0
- vqlab-0.1.0/tests/golden/writers/fit_moe.json +474 -0
- vqlab-0.1.0/tests/golden/writers/geo_build.json +472 -0
- vqlab-0.1.0/tests/golden/writers/loo_bands.json +486 -0
- vqlab-0.1.0/tests/golden/writers/minibase.json +324 -0
- vqlab-0.1.0/tests/golden/writers/mix.json +514 -0
- vqlab-0.1.0/tests/golden/writers/pack.json +519 -0
- vqlab-0.1.0/tests/golden/writers/pack_straddle.json +519 -0
- vqlab-0.1.0/tests/golden/writers/reskeleton.json +513 -0
- vqlab-0.1.0/tests/golden/writers/sz_pack.json +547 -0
- vqlab-0.1.0/tests/quality_baseline.json +101 -0
- vqlab-0.1.0/tests/test_active_bytes_routing.py +26 -0
- vqlab-0.1.0/tests/test_api.py +374 -0
- vqlab-0.1.0/tests/test_arch_equivalence.py +56 -0
- vqlab-0.1.0/tests/test_arch_resolve_fallback.py +75 -0
- vqlab-0.1.0/tests/test_arch_tree_stamp.py +88 -0
- vqlab-0.1.0/tests/test_artifact.py +61 -0
- vqlab-0.1.0/tests/test_bench_helpers.py +29 -0
- vqlab-0.1.0/tests/test_box_quiet.py +29 -0
- vqlab-0.1.0/tests/test_bug_report.py +30 -0
- vqlab-0.1.0/tests/test_build_dense_config.py +157 -0
- vqlab-0.1.0/tests/test_card.py +184 -0
- vqlab-0.1.0/tests/test_card_tables.py +19 -0
- vqlab-0.1.0/tests/test_check_bundle_dense.py +83 -0
- vqlab-0.1.0/tests/test_check_bundle_stale_flags.py +99 -0
- vqlab-0.1.0/tests/test_cli.py +26 -0
- vqlab-0.1.0/tests/test_cli_namespaces.py +157 -0
- vqlab-0.1.0/tests/test_commands.py +50 -0
- vqlab-0.1.0/tests/test_config_cmd.py +20 -0
- vqlab-0.1.0/tests/test_context_docs.py +67 -0
- vqlab-0.1.0/tests/test_doctor.py +36 -0
- vqlab-0.1.0/tests/test_ds4_parity.py +161 -0
- vqlab-0.1.0/tests/test_ds4_shared_clamp.py +33 -0
- vqlab-0.1.0/tests/test_expert_src_loader.py +83 -0
- vqlab-0.1.0/tests/test_expert_src_mxfp4.py +85 -0
- vqlab-0.1.0/tests/test_family_plugins.py +34 -0
- vqlab-0.1.0/tests/test_family_profile.py +98 -0
- vqlab-0.1.0/tests/test_first_run.py +56 -0
- vqlab-0.1.0/tests/test_fit_dense_vq.py +13 -0
- vqlab-0.1.0/tests/test_fit_pack.py +98 -0
- vqlab-0.1.0/tests/test_fit_ple.py +30 -0
- vqlab-0.1.0/tests/test_fit_store.py +60 -0
- vqlab-0.1.0/tests/test_gate_renames.py +15 -0
- vqlab-0.1.0/tests/test_gemma4_parity.py +688 -0
- vqlab-0.1.0/tests/test_gemmseg_flags_geoms.py +112 -0
- vqlab-0.1.0/tests/test_gemmseg_sz_accs.py +88 -0
- vqlab-0.1.0/tests/test_glm5_next_parity.py +759 -0
- vqlab-0.1.0/tests/test_glm5_shim_install.py +92 -0
- vqlab-0.1.0/tests/test_graft_extras.py +68 -0
- vqlab-0.1.0/tests/test_gui_downloads.py +220 -0
- vqlab-0.1.0/tests/test_gui_families.py +97 -0
- vqlab-0.1.0/tests/test_gui_jobs.py +311 -0
- vqlab-0.1.0/tests/test_gui_queues.py +57 -0
- vqlab-0.1.0/tests/test_gui_teachers.py +221 -0
- vqlab-0.1.0/tests/test_import_safe.py +83 -0
- vqlab-0.1.0/tests/test_kernel_truth_moe.py +15 -0
- vqlab-0.1.0/tests/test_kmeans_golden.py +162 -0
- vqlab-0.1.0/tests/test_knurlogic_client_load.py +45 -0
- vqlab-0.1.0/tests/test_knurlogic_link.py +80 -0
- vqlab-0.1.0/tests/test_kswarm_d2_walk.py +84 -0
- vqlab-0.1.0/tests/test_kswarm_d8_walk.py +104 -0
- vqlab-0.1.0/tests/test_kswarm_devcb_walk.py +84 -0
- vqlab-0.1.0/tests/test_kswarm_xkrep.py +91 -0
- vqlab-0.1.0/tests/test_lab_folder.py +81 -0
- vqlab-0.1.0/tests/test_lab_plumbing.py +147 -0
- vqlab-0.1.0/tests/test_layering.py +227 -0
- vqlab-0.1.0/tests/test_mcp_server.py +202 -0
- vqlab-0.1.0/tests/test_mix.py +85 -0
- vqlab-0.1.0/tests/test_model_loader.py +137 -0
- vqlab-0.1.0/tests/test_model_scan.py +96 -0
- vqlab-0.1.0/tests/test_mtp_accept.py +9 -0
- vqlab-0.1.0/tests/test_mtp_arms.py +21 -0
- vqlab-0.1.0/tests/test_mtp_caches.py +129 -0
- vqlab-0.1.0/tests/test_mtp_integration.py +85 -0
- vqlab-0.1.0/tests/test_mtp_loop.py +287 -0
- vqlab-0.1.0/tests/test_mtp_prefill.py +153 -0
- vqlab-0.1.0/tests/test_mtp_probe_qwen35.py +30 -0
- vqlab-0.1.0/tests/test_mtp_registry.py +14 -0
- vqlab-0.1.0/tests/test_mtp_sampling.py +91 -0
- vqlab-0.1.0/tests/test_mtp_smoke_head.py +65 -0
- vqlab-0.1.0/tests/test_no_machine_paths.py +44 -0
- vqlab-0.1.0/tests/test_numerics_build.py +197 -0
- vqlab-0.1.0/tests/test_portable_records.py +195 -0
- vqlab-0.1.0/tests/test_provenance_junk.py +20 -0
- vqlab-0.1.0/tests/test_public_imports.py +166 -0
- vqlab-0.1.0/tests/test_publish_gate.py +96 -0
- vqlab-0.1.0/tests/test_quality_ratchet.py +181 -0
- vqlab-0.1.0/tests/test_queue_cli_e2e.py +58 -0
- vqlab-0.1.0/tests/test_queue_files.py +29 -0
- vqlab-0.1.0/tests/test_queue_package.py +71 -0
- vqlab-0.1.0/tests/test_queue_runner.py +52 -0
- vqlab-0.1.0/tests/test_queue_steps.py +14 -0
- vqlab-0.1.0/tests/test_queue_wait.py +109 -0
- vqlab-0.1.0/tests/test_queues_dir_one_resolution.py +43 -0
- vqlab-0.1.0/tests/test_qwen3_5_parity.py +618 -0
- vqlab-0.1.0/tests/test_qwen4_exp_parity.py +66 -0
- vqlab-0.1.0/tests/test_recipe_queue.py +872 -0
- vqlab-0.1.0/tests/test_records_legacy.py +92 -0
- vqlab-0.1.0/tests/test_records_settings.py +208 -0
- vqlab-0.1.0/tests/test_registry_features.py +20 -0
- vqlab-0.1.0/tests/test_release_prep.py +21 -0
- vqlab-0.1.0/tests/test_release_vision_index.py +224 -0
- vqlab-0.1.0/tests/test_require_free.py +24 -0
- vqlab-0.1.0/tests/test_reserve_eta_boxes.py +309 -0
- vqlab-0.1.0/tests/test_routing_memo.py +119 -0
- vqlab-0.1.0/tests/test_runtime_equivalence.py +131 -0
- vqlab-0.1.0/tests/test_runtime_frozen.py +48 -0
- vqlab-0.1.0/tests/test_scores_index.py +63 -0
- vqlab-0.1.0/tests/test_scratch_reclaimable.py +232 -0
- vqlab-0.1.0/tests/test_slice_teacher.py +144 -0
- vqlab-0.1.0/tests/test_smoke_strict.py +135 -0
- vqlab-0.1.0/tests/test_speed_pair_knurlogic_runtime.py +15 -0
- vqlab-0.1.0/tests/test_stage_bandwidth.py +145 -0
- vqlab-0.1.0/tests/test_stream_convert_spec.py +80 -0
- vqlab-0.1.0/tests/test_sz_dim_guard.py +113 -0
- vqlab-0.1.0/tests/test_sz_shard.py +267 -0
- vqlab-0.1.0/tests/test_teacher_prep.py +54 -0
- vqlab-0.1.0/tests/test_tokenizer_match.py +34 -0
- vqlab-0.1.0/tests/test_updates.py +46 -0
- vqlab-0.1.0/tests/test_util.py +74 -0
- vqlab-0.1.0/tests/test_vendored_arch.py +36 -0
- vqlab-0.1.0/tests/test_version.py +11 -0
- vqlab-0.1.0/tests/test_vision_gate_wiring.py +209 -0
- vqlab-0.1.0/tests/test_vision_smoke_knurlogic.py +95 -0
- vqlab-0.1.0/tests/test_vq_d2_tg_capacity.py +105 -0
- vqlab-0.1.0/tests/test_vq_dense_devx.py +241 -0
- vqlab-0.1.0/tests/test_vq_dense_peak.py +240 -0
- vqlab-0.1.0/tests/test_vq_dense_rows.py +59 -0
- vqlab-0.1.0/tests/test_vq_dense_tiled.py +264 -0
- vqlab-0.1.0/tests/test_vq_embedding_dtype.py +74 -0
- vqlab-0.1.0/tests/test_vq_expert_simd.py +522 -0
- vqlab-0.1.0/tests/test_vq_prefill_paths.py +497 -0
- vqlab-0.1.0/tests/test_vq_skipzero.py +196 -0
- vqlab-0.1.0/tests/test_vq_wdec.py +217 -0
- vqlab-0.1.0/tests/test_writer_contracts.py +655 -0
- vqlab-0.1.0/tests/toy_family.py +168 -0
vqlab-0.1.0/CHANGELOG.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.0 — 2026-10-19
|
|
4
|
+
|
|
5
|
+
First release. VQLab fits size-targeted, data-free vector-quantization
|
|
6
|
+
codebooks for large language models on Apple Silicon (MLX), assembles and
|
|
7
|
+
bundles the quantized artifacts with their Metal runtime, and scores them
|
|
8
|
+
against their bf16 teachers (paired KL on three corpora, perplexity, task
|
|
9
|
+
benchmarks) before release. One `vqlab` CLI covers plan, fit, build, bundle,
|
|
10
|
+
gate, score, bench and ship; `vqlab gui` is a local page for the same work;
|
|
11
|
+
`vqlab mcp` exposes the lab to agents.
|
|
12
|
+
|
|
13
|
+
Licensed AGPL-3.0-or-later. Model artifacts follow their base models'
|
|
14
|
+
licenses.
|
|
15
|
+
|
|
16
|
+
### Installing and setup
|
|
17
|
+
- `pip install vqlab` needs no checkout: the first command creates a lab
|
|
18
|
+
folder and a config, and `vqlab selftest` runs from the installed wheel.
|
|
19
|
+
- `vqlab lab config` shows every storage location, where it resolved from and
|
|
20
|
+
its free space; `vqlab lab config set` and the GUI's Storage page change them.
|
|
21
|
+
Nothing assumes a disk layout.
|
|
22
|
+
- Dependencies are pinned to the tested ranges (mlx 0.32.x, mlx-lm
|
|
23
|
+
0.31-0.32, knurlogic 0.1.x from 0.1.8).
|
|
24
|
+
- `vqlab --version`; `vqlab lab doctor` says when a newer release is out
|
|
25
|
+
(PyPI, asked at most once a day; `VQLAB_OFFLINE=1` skips it).
|
|
26
|
+
- `vqlab lab report-bug` fills in a GitHub issue with the versions, chip and
|
|
27
|
+
last failed command (no paths) and prints the link; nothing is sent.
|
|
28
|
+
|
|
29
|
+
### The GUI (`vqlab gui`)
|
|
30
|
+
- Library: published builds and your own, with their measured KL.
|
|
31
|
+
- Recipe: pick a model (downloaded for you if it is not on this machine),
|
|
32
|
+
size a build on the published builds' KL curve, and compile it into a
|
|
33
|
+
queue; Qwen3.5/3.6 MoE, Qwen3.8 dense, Qwen3.8-Flash-Next, GLM-5.3-Flash
|
|
34
|
+
and Gemma 4 (26B and E4B) build from the page.
|
|
35
|
+
- Jobs: run a queue's preflight, then the build, and follow it.
|
|
36
|
+
- An "Update available" note when a newer release is out (click copies the
|
|
37
|
+
upgrade command), and a "Report a bug" link that opens a prefilled issue.
|
|
38
|
+
|
|
39
|
+
### Families
|
|
40
|
+
- Qwen3.5/3.6 MoE (35B, 397B), Qwen3.8 dense, Qwen3.8-Flash-Next,
|
|
41
|
+
GLM-5.3-Flash, Gemma 4, and DeepSeek-V4-Flash (FP4 experts read natively;
|
|
42
|
+
`vqlab teacher-prep` turns the official release into an exact MLX
|
|
43
|
+
teacher).
|
|
44
|
+
- Multi-token-prediction draft heads extracted, packed and smoked with the
|
|
45
|
+
build.
|
|
46
|
+
|
|
47
|
+
### Building artifacts
|
|
48
|
+
- `vqlab fit-moe` / `fit-dense` fit codebooks; `vqlab geo-build` refits
|
|
49
|
+
named modules and keeps every other shipped byte; `vqlab mix`,
|
|
50
|
+
`loo-bands`, `minibase` and `reskeleton` build mixed-geometry artifacts.
|
|
51
|
+
- vq-skipzero: fully dead VQ rows are dropped on disk and served natively
|
|
52
|
+
(397B: -10.8% disk, -11.1% resident, KL unchanged).
|
|
53
|
+
- Every large writer checks free disk first; fits are filed in a fit store
|
|
54
|
+
and reused rather than refit.
|
|
55
|
+
|
|
56
|
+
### Measuring and release gates
|
|
57
|
+
- `vqlab kl-ladder` is the release gate (paired, three corpora, |t|>2);
|
|
58
|
+
`vqlab kl-pair` pairs already-scored builds at zero GPU cost.
|
|
59
|
+
- `vqlab decode-timeline`, `prefill-timeline`, `active-bytes`,
|
|
60
|
+
`kernel-truth` and `speed-pair` measure where time and bytes go.
|
|
61
|
+
- `vqlab check-release` fails an artifact whose tokenizer does not tokenize
|
|
62
|
+
like its base model's, or whose files name the machine that built it;
|
|
63
|
+
`vqlab publish` refuses the same leaks. Every artifact carries a portable
|
|
64
|
+
build record (`vqlab provenance`).
|
|
65
|
+
|
|
66
|
+
### Runtime (ships inside each artifact)
|
|
67
|
+
- Fused Metal decode and prefill kernels for d2/d4/d8 codebooks
|
|
68
|
+
and multi-token-prediction drafting.
|
|
69
|
+
|
|
70
|
+
### Running long jobs
|
|
71
|
+
- `vqlab queue run` pins the code, holds the GPU lease, runs a small real
|
|
72
|
+
preflight of every step, retries resumable builds and fails loudly;
|
|
73
|
+
`vqlab queue wait` blocks until a queue finishes.
|
vqlab-0.1.0/CITATION.cff
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use VQLab or its artifacts, please cite the companion paper."
|
|
3
|
+
title: "VQLab"
|
|
4
|
+
authors:
|
|
5
|
+
- family-names: Zelezny
|
|
6
|
+
given-names: Noah
|
|
7
|
+
version: 0.1.0
|
|
8
|
+
license: AGPL-3.0-or-later
|
|
9
|
+
repository-code: "https://github.com/noahzelezny/VQLab"
|
|
10
|
+
preferred-citation:
|
|
11
|
+
type: article
|
|
12
|
+
title: "Data-Free Vector Quantization Beats Affine Quantization at Matched Bytes Below 5 Bits"
|
|
13
|
+
authors:
|
|
14
|
+
- family-names: Zelezny
|
|
15
|
+
given-names: Noah
|
|
16
|
+
doi: "10.5281/zenodo.22119017"
|