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.
Files changed (490) hide show
  1. vqlab-0.1.0/CHANGELOG.md +73 -0
  2. vqlab-0.1.0/CITATION.cff +16 -0
  3. vqlab-0.1.0/LICENSE +661 -0
  4. vqlab-0.1.0/MANIFEST.in +12 -0
  5. vqlab-0.1.0/PKG-INFO +346 -0
  6. vqlab-0.1.0/README.md +298 -0
  7. vqlab-0.1.0/docs/ALLOCATION-METHOD.md +677 -0
  8. vqlab-0.1.0/docs/CANONICAL-397B-NUMBERS.md +35 -0
  9. vqlab-0.1.0/docs/CORPORA.md +16 -0
  10. vqlab-0.1.0/docs/DENSE-VQ-DECODE.md +331 -0
  11. vqlab-0.1.0/docs/FAMILY-ONBOARDING-CHECKLIST.md +76 -0
  12. vqlab-0.1.0/docs/FINDINGS.md +749 -0
  13. vqlab-0.1.0/docs/GEMMA-DIVERGENCE-2026-09-07.md +216 -0
  14. vqlab-0.1.0/docs/GEOMETRY-CAMPAIGN.md +117 -0
  15. vqlab-0.1.0/docs/INDEX.md +57 -0
  16. vqlab-0.1.0/docs/KERNEL-COVERAGE.md +61 -0
  17. vqlab-0.1.0/docs/KL-TUNED-CODEBOOKS-PLAN.md +151 -0
  18. vqlab-0.1.0/docs/KernelProposals.md +478 -0
  19. vqlab-0.1.0/docs/MEASUREMENT.md +112 -0
  20. vqlab-0.1.0/docs/MEMORY-PLAYBOOK.md +33 -0
  21. vqlab-0.1.0/docs/MODEL-FAMILY-LEDGER.md +226 -0
  22. vqlab-0.1.0/docs/MTP-USAGE.md +273 -0
  23. vqlab-0.1.0/docs/MTP.md +766 -0
  24. vqlab-0.1.0/docs/ONBOARDING.md +99 -0
  25. vqlab-0.1.0/docs/PROVENANCE.md +151 -0
  26. vqlab-0.1.0/docs/RUNTIME-SETTINGS.md +160 -0
  27. vqlab-0.1.0/docs/RUNTIME-SHIP-PLAN.md +64 -0
  28. vqlab-0.1.0/docs/SKIPZERO.md +117 -0
  29. vqlab-0.1.0/docs/TWO-RUNTIMES.md +90 -0
  30. vqlab-0.1.0/docs/V2-RUNTIME.md +108 -0
  31. vqlab-0.1.0/docs/model-cards/GLM-5.3-Flash-VQ-2.7bpw.md +310 -0
  32. vqlab-0.1.0/docs/model-cards/GLM-5.3-Flash-VQ-3.1bpw.md +256 -0
  33. vqlab-0.1.0/docs/model-cards/GLM-5.3-Flash-VQ-3.6bpw.md +255 -0
  34. vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-2.2bpw.md +343 -0
  35. vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-2.4bpw.md +240 -0
  36. vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-2.6bpw.md +283 -0
  37. vqlab-0.1.0/docs/model-cards/Qwen3.5-397B-A17B-VQ-3.1bpw.md +306 -0
  38. vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-3.4bpw.md +181 -0
  39. vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-3.8bpw.md +202 -0
  40. vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-4.6bpw.md +258 -0
  41. vqlab-0.1.0/docs/model-cards/Qwen3.6-35B-A3B-VQ-5.4bpw.md +200 -0
  42. vqlab-0.1.0/docs/model-cards/Qwen3.8-27B-VQ-3.9bpw.md +230 -0
  43. vqlab-0.1.0/docs/model-cards/Qwen3.8-27B-VQ-4.5bpw.md +230 -0
  44. vqlab-0.1.0/docs/model-cards/Qwen3.8-27B-VQ-4.8bpw.md +237 -0
  45. vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-2.1bpw.md +341 -0
  46. vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-3.2bpw.md +285 -0
  47. vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-4.4bpw.md +294 -0
  48. vqlab-0.1.0/docs/model-cards/Qwen3.8-Flash-Next-VQ-5.5bpw.md +293 -0
  49. vqlab-0.1.0/docs/model-cards/README.md +75 -0
  50. vqlab-0.1.0/docs/model-cards/_tools/.gitignore +1 -0
  51. vqlab-0.1.0/docs/model-cards/_tools/add_changelog_entry.py +55 -0
  52. vqlab-0.1.0/docs/model-cards/_tools/check_cards.py +51 -0
  53. vqlab-0.1.0/docs/model-cards/entry.md +18 -0
  54. vqlab-0.1.0/docs/model-cards/gemma-4-26b-a4b-it-VQ-6.2bpw.md +241 -0
  55. vqlab-0.1.0/docs/model-cards/gemma-4-e4b-it-VQ-PLE.md +208 -0
  56. vqlab-0.1.0/pyproject.toml +221 -0
  57. vqlab-0.1.0/setup.cfg +4 -0
  58. vqlab-0.1.0/src/vqlab/__init__.py +79 -0
  59. vqlab-0.1.0/src/vqlab/_layout.py +225 -0
  60. vqlab-0.1.0/src/vqlab/agents/CONTEXT.md +50 -0
  61. vqlab-0.1.0/src/vqlab/agents/__init__.py +1 -0
  62. vqlab-0.1.0/src/vqlab/agents/_fetch.py +46 -0
  63. vqlab-0.1.0/src/vqlab/agents/bug_report.py +107 -0
  64. vqlab-0.1.0/src/vqlab/agents/config_cmd.py +165 -0
  65. vqlab-0.1.0/src/vqlab/agents/doctor.py +234 -0
  66. vqlab-0.1.0/src/vqlab/agents/downloads.py +255 -0
  67. vqlab-0.1.0/src/vqlab/agents/first_run.py +77 -0
  68. vqlab-0.1.0/src/vqlab/agents/gui.py +511 -0
  69. vqlab-0.1.0/src/vqlab/agents/gui_static/index.html +1605 -0
  70. vqlab-0.1.0/src/vqlab/agents/jobs.py +257 -0
  71. vqlab-0.1.0/src/vqlab/agents/mcp/__init__.py +15 -0
  72. vqlab-0.1.0/src/vqlab/agents/mcp/common.py +8 -0
  73. vqlab-0.1.0/src/vqlab/agents/mcp/server.py +290 -0
  74. vqlab-0.1.0/src/vqlab/agents/mcp/tools_findings.py +32 -0
  75. vqlab-0.1.0/src/vqlab/agents/mcp/tools_runs.py +44 -0
  76. vqlab-0.1.0/src/vqlab/agents/mcp/tools_storage.py +38 -0
  77. vqlab-0.1.0/src/vqlab/agents/model_scan.py +271 -0
  78. vqlab-0.1.0/src/vqlab/agents/onboard.py +339 -0
  79. vqlab-0.1.0/src/vqlab/agents/scratch.py +526 -0
  80. vqlab-0.1.0/src/vqlab/agents/settings.py +242 -0
  81. vqlab-0.1.0/src/vqlab/agents/teachers.py +213 -0
  82. vqlab-0.1.0/src/vqlab/agents/updates.py +76 -0
  83. vqlab-0.1.0/src/vqlab/api.py +605 -0
  84. vqlab-0.1.0/src/vqlab/bench/CONTEXT.md +43 -0
  85. vqlab-0.1.0/src/vqlab/bench/__init__.py +1 -0
  86. vqlab-0.1.0/src/vqlab/bench/active_bytes.py +213 -0
  87. vqlab-0.1.0/src/vqlab/bench/box_quiet.py +70 -0
  88. vqlab-0.1.0/src/vqlab/bench/decode_ladder.py +663 -0
  89. vqlab-0.1.0/src/vqlab/bench/decode_timeline.py +447 -0
  90. vqlab-0.1.0/src/vqlab/bench/gdn_chunk_truth.py +162 -0
  91. vqlab-0.1.0/src/vqlab/bench/gpu_capture.py +99 -0
  92. vqlab-0.1.0/src/vqlab/bench/hc_micro.py +159 -0
  93. vqlab-0.1.0/src/vqlab/bench/host_attrib.py +116 -0
  94. vqlab-0.1.0/src/vqlab/bench/kernel_coverage.py +97 -0
  95. vqlab-0.1.0/src/vqlab/bench/lut_bench.py +252 -0
  96. vqlab-0.1.0/src/vqlab/bench/mtp_accept.py +172 -0
  97. vqlab-0.1.0/src/vqlab/bench/mtp_arms.py +59 -0
  98. vqlab-0.1.0/src/vqlab/bench/mtp_bench.py +71 -0
  99. vqlab-0.1.0/src/vqlab/bench/power.py +23 -0
  100. vqlab-0.1.0/src/vqlab/bench/prefill_bench.py +194 -0
  101. vqlab-0.1.0/src/vqlab/bench/prefill_timeline.py +159 -0
  102. vqlab-0.1.0/src/vqlab/bench/serve_timeline.py +174 -0
  103. vqlab-0.1.0/src/vqlab/bench/speed_pair.py +124 -0
  104. vqlab-0.1.0/src/vqlab/bench/speed_pair_knurlogic.py +213 -0
  105. vqlab-0.1.0/src/vqlab/bench/stage_bandwidth.py +249 -0
  106. vqlab-0.1.0/src/vqlab/bench/timeline_common.py +31 -0
  107. vqlab-0.1.0/src/vqlab/build/CONTEXT.md +41 -0
  108. vqlab-0.1.0/src/vqlab/build/__init__.py +1 -0
  109. vqlab-0.1.0/src/vqlab/build/build_dense.py +331 -0
  110. vqlab-0.1.0/src/vqlab/build/graft_extras.py +165 -0
  111. vqlab-0.1.0/src/vqlab/build/graft_vision.py +322 -0
  112. vqlab-0.1.0/src/vqlab/build/loo_bands.py +71 -0
  113. vqlab-0.1.0/src/vqlab/build/minibase.py +47 -0
  114. vqlab-0.1.0/src/vqlab/build/mix.py +161 -0
  115. vqlab-0.1.0/src/vqlab/build/mtp_extract.py +132 -0
  116. vqlab-0.1.0/src/vqlab/build/mtp_graft.py +165 -0
  117. vqlab-0.1.0/src/vqlab/build/mtp_head_ds4.py +143 -0
  118. vqlab-0.1.0/src/vqlab/build/mtp_pack.py +140 -0
  119. vqlab-0.1.0/src/vqlab/build/pack.py +288 -0
  120. vqlab-0.1.0/src/vqlab/build/pack_dense.py +128 -0
  121. vqlab-0.1.0/src/vqlab/build/pack_ple.py +112 -0
  122. vqlab-0.1.0/src/vqlab/build/ple_swap.py +121 -0
  123. vqlab-0.1.0/src/vqlab/build/reskeleton.py +181 -0
  124. vqlab-0.1.0/src/vqlab/build/sanitize_stream.py +157 -0
  125. vqlab-0.1.0/src/vqlab/build/slice_teacher.py +241 -0
  126. vqlab-0.1.0/src/vqlab/build/splice_ple.py +120 -0
  127. vqlab-0.1.0/src/vqlab/build/stream_convert.py +330 -0
  128. vqlab-0.1.0/src/vqlab/build/teacher_prep.py +85 -0
  129. vqlab-0.1.0/src/vqlab/build/unpack_dense.py +136 -0
  130. vqlab-0.1.0/src/vqlab/bundle/CONTEXT.md +22 -0
  131. vqlab-0.1.0/src/vqlab/bundle/__init__.py +1 -0
  132. vqlab-0.1.0/src/vqlab/bundle/add_model_file.py +333 -0
  133. vqlab-0.1.0/src/vqlab/bundle/patch_arch.py +56 -0
  134. vqlab-0.1.0/src/vqlab/bundle/rebundle_dense.py +80 -0
  135. vqlab-0.1.0/src/vqlab/bundle/vision_layout.py +142 -0
  136. vqlab-0.1.0/src/vqlab/cli.py +223 -0
  137. vqlab-0.1.0/src/vqlab/commands.py +490 -0
  138. vqlab-0.1.0/src/vqlab/config.py +637 -0
  139. vqlab-0.1.0/src/vqlab/core/CONTEXT.md +27 -0
  140. vqlab-0.1.0/src/vqlab/core/__init__.py +1 -0
  141. vqlab-0.1.0/src/vqlab/core/artifacts/CONTEXT.md +17 -0
  142. vqlab-0.1.0/src/vqlab/core/artifacts/__init__.py +1 -0
  143. vqlab-0.1.0/src/vqlab/core/artifacts/artifact.py +296 -0
  144. vqlab-0.1.0/src/vqlab/core/artifacts/artifact_size.py +27 -0
  145. vqlab-0.1.0/src/vqlab/core/artifacts/codepack.py +49 -0
  146. vqlab-0.1.0/src/vqlab/core/artifacts/hub.py +65 -0
  147. vqlab-0.1.0/src/vqlab/core/artifacts/pin_record.py +45 -0
  148. vqlab-0.1.0/src/vqlab/core/artifacts/stamp_fields.py +40 -0
  149. vqlab-0.1.0/src/vqlab/core/box/CONTEXT.md +15 -0
  150. vqlab-0.1.0/src/vqlab/core/box/__init__.py +1 -0
  151. vqlab-0.1.0/src/vqlab/core/box/arch_finder.py +104 -0
  152. vqlab-0.1.0/src/vqlab/core/box/exo.py +26 -0
  153. vqlab-0.1.0/src/vqlab/core/box/gpu_lease.py +109 -0
  154. vqlab-0.1.0/src/vqlab/core/box/knurlogic_client.py +151 -0
  155. vqlab-0.1.0/src/vqlab/core/source/CONTEXT.md +18 -0
  156. vqlab-0.1.0/src/vqlab/core/source/__init__.py +1 -0
  157. vqlab-0.1.0/src/vqlab/core/source/clamps.py +42 -0
  158. vqlab-0.1.0/src/vqlab/core/source/expert_src.py +168 -0
  159. vqlab-0.1.0/src/vqlab/core/source/fit_store.py +473 -0
  160. vqlab-0.1.0/src/vqlab/core/source/mem_budget.py +83 -0
  161. vqlab-0.1.0/src/vqlab/core/source/ple_stream.py +196 -0
  162. vqlab-0.1.0/src/vqlab/core/source/teacher_profiles.py +74 -0
  163. vqlab-0.1.0/src/vqlab/family/CONTEXT.md +30 -0
  164. vqlab-0.1.0/src/vqlab/family/__init__.py +155 -0
  165. vqlab-0.1.0/src/vqlab/family/arch_equivalence.json +33 -0
  166. vqlab-0.1.0/src/vqlab/family/deepseek_v4.py +269 -0
  167. vqlab-0.1.0/src/vqlab/family/gemma4.py +187 -0
  168. vqlab-0.1.0/src/vqlab/family/glm5_next.py +215 -0
  169. vqlab-0.1.0/src/vqlab/family/model_loader.py +213 -0
  170. vqlab-0.1.0/src/vqlab/family/qwen3_5.py +159 -0
  171. vqlab-0.1.0/src/vqlab/family/qwen4_exp.py +123 -0
  172. vqlab-0.1.0/src/vqlab/family/registry.py +317 -0
  173. vqlab-0.1.0/src/vqlab/family/version_stamp.py +419 -0
  174. vqlab-0.1.0/src/vqlab/fit/CONTEXT.md +35 -0
  175. vqlab-0.1.0/src/vqlab/fit/__init__.py +1 -0
  176. vqlab-0.1.0/src/vqlab/fit/additive_codebooks.py +98 -0
  177. vqlab-0.1.0/src/vqlab/fit/fit_additive.py +224 -0
  178. vqlab-0.1.0/src/vqlab/fit/fit_dense_vq.py +257 -0
  179. vqlab-0.1.0/src/vqlab/fit/fit_moe.py +704 -0
  180. vqlab-0.1.0/src/vqlab/fit/fit_ple.py +189 -0
  181. vqlab-0.1.0/src/vqlab/fit/fits.py +216 -0
  182. vqlab-0.1.0/src/vqlab/fit/geo_build.py +664 -0
  183. vqlab-0.1.0/src/vqlab/fit/harvest_parts.py +142 -0
  184. vqlab-0.1.0/src/vqlab/fit/kmeans.py +290 -0
  185. vqlab-0.1.0/src/vqlab/fit/reselect.py +526 -0
  186. vqlab-0.1.0/src/vqlab/gate/CONTEXT.md +36 -0
  187. vqlab-0.1.0/src/vqlab/gate/__init__.py +1 -0
  188. vqlab-0.1.0/src/vqlab/gate/bundle_accept.py +109 -0
  189. vqlab-0.1.0/src/vqlab/gate/check_all.py +99 -0
  190. vqlab-0.1.0/src/vqlab/gate/check_bundle.py +391 -0
  191. vqlab-0.1.0/src/vqlab/gate/check_comparator.py +94 -0
  192. vqlab-0.1.0/src/vqlab/gate/check_release.py +756 -0
  193. vqlab-0.1.0/src/vqlab/gate/kernel_accept.py +118 -0
  194. vqlab-0.1.0/src/vqlab/gate/kernel_reference.py +23 -0
  195. vqlab-0.1.0/src/vqlab/gate/knurlogic_link.py +103 -0
  196. vqlab-0.1.0/src/vqlab/gate/leak_guard.py +131 -0
  197. vqlab-0.1.0/src/vqlab/gate/mtp_smoke_head.py +99 -0
  198. vqlab-0.1.0/src/vqlab/gate/parity.py +125 -0
  199. vqlab-0.1.0/src/vqlab/gate/pin.py +184 -0
  200. vqlab-0.1.0/src/vqlab/gate/smoke.py +313 -0
  201. vqlab-0.1.0/src/vqlab/gate/spelling.py +167 -0
  202. vqlab-0.1.0/src/vqlab/gate/tokenizer_match.py +75 -0
  203. vqlab-0.1.0/src/vqlab/gate/verify_artifact.py +209 -0
  204. vqlab-0.1.0/src/vqlab/gate/verify_dev_codebook.py +100 -0
  205. vqlab-0.1.0/src/vqlab/gate/vision_smoke.py +571 -0
  206. vqlab-0.1.0/src/vqlab/mtp/CONTEXT.md +36 -0
  207. vqlab-0.1.0/src/vqlab/mtp/__init__.py +30 -0
  208. vqlab-0.1.0/src/vqlab/mtp/bench.py +108 -0
  209. vqlab-0.1.0/src/vqlab/mtp/caches.py +120 -0
  210. vqlab-0.1.0/src/vqlab/mtp/capture.py +68 -0
  211. vqlab-0.1.0/src/vqlab/mtp/cli_common.py +40 -0
  212. vqlab-0.1.0/src/vqlab/mtp/graft.py +56 -0
  213. vqlab-0.1.0/src/vqlab/mtp/loop.py +541 -0
  214. vqlab-0.1.0/src/vqlab/mtp/mtp_head.py +219 -0
  215. vqlab-0.1.0/src/vqlab/mtp/mtp_head_glm5.py +244 -0
  216. vqlab-0.1.0/src/vqlab/mtp/mtp_head_qwen35.py +264 -0
  217. vqlab-0.1.0/src/vqlab/mtp/registry.py +241 -0
  218. vqlab-0.1.0/src/vqlab/mtp/runtime.py +75 -0
  219. vqlab-0.1.0/src/vqlab/mtp/sampling.py +145 -0
  220. vqlab-0.1.0/src/vqlab/ops/CONTEXT.md +41 -0
  221. vqlab-0.1.0/src/vqlab/ops/__init__.py +20 -0
  222. vqlab-0.1.0/src/vqlab/ops/box.py +52 -0
  223. vqlab-0.1.0/src/vqlab/ops/docs.py +42 -0
  224. vqlab-0.1.0/src/vqlab/ops/errors.py +21 -0
  225. vqlab-0.1.0/src/vqlab/ops/findings.py +223 -0
  226. vqlab-0.1.0/src/vqlab/ops/queues.py +47 -0
  227. vqlab-0.1.0/src/vqlab/ops/roots.py +57 -0
  228. vqlab-0.1.0/src/vqlab/ops/runs.py +208 -0
  229. vqlab-0.1.0/src/vqlab/ops/storage.py +120 -0
  230. vqlab-0.1.0/src/vqlab/ops/supervisor.py +106 -0
  231. vqlab-0.1.0/src/vqlab/plan/CONTEXT.md +32 -0
  232. vqlab-0.1.0/src/vqlab/plan/__init__.py +1 -0
  233. vqlab-0.1.0/src/vqlab/plan/alloc_sweep.py +260 -0
  234. vqlab-0.1.0/src/vqlab/plan/family_profile.py +401 -0
  235. vqlab-0.1.0/src/vqlab/plan/init_sweep.py +187 -0
  236. vqlab-0.1.0/src/vqlab/plan/layer_leverage.py +346 -0
  237. vqlab-0.1.0/src/vqlab/plan/mtp_probe_qwen35.py +185 -0
  238. vqlab-0.1.0/src/vqlab/plan/mtp_probe_qwen4_exp.py +234 -0
  239. vqlab-0.1.0/src/vqlab/plan/preflight_disk.py +73 -0
  240. vqlab-0.1.0/src/vqlab/plan/preflight_ram.py +75 -0
  241. vqlab-0.1.0/src/vqlab/plan/price.py +167 -0
  242. vqlab-0.1.0/src/vqlab/plan/recipe_queue.py +940 -0
  243. vqlab-0.1.0/src/vqlab/plan/zero_groups.py +186 -0
  244. vqlab-0.1.0/src/vqlab/queue/CONTEXT.md +53 -0
  245. vqlab-0.1.0/src/vqlab/queue/__init__.py +5 -0
  246. vqlab-0.1.0/src/vqlab/queue/eta.py +169 -0
  247. vqlab-0.1.0/src/vqlab/queue/files.py +175 -0
  248. vqlab-0.1.0/src/vqlab/queue/remote.py +187 -0
  249. vqlab-0.1.0/src/vqlab/queue/report.py +126 -0
  250. vqlab-0.1.0/src/vqlab/queue/reserve.py +269 -0
  251. vqlab-0.1.0/src/vqlab/queue/runner.py +457 -0
  252. vqlab-0.1.0/src/vqlab/queue/steps.py +322 -0
  253. vqlab-0.1.0/src/vqlab/queue/validate.py +228 -0
  254. vqlab-0.1.0/src/vqlab/records/CONTEXT.md +24 -0
  255. vqlab-0.1.0/src/vqlab/records/__init__.py +1 -0
  256. vqlab-0.1.0/src/vqlab/records/artifact_manifest.py +103 -0
  257. vqlab-0.1.0/src/vqlab/records/provenance.py +678 -0
  258. vqlab-0.1.0/src/vqlab/records/registry.py +267 -0
  259. vqlab-0.1.0/src/vqlab/records/runlog.py +119 -0
  260. vqlab-0.1.0/src/vqlab/records/scores.py +83 -0
  261. vqlab-0.1.0/src/vqlab/records/step_verdict.py +58 -0
  262. vqlab-0.1.0/src/vqlab/runtime/CONTEXT.md +19 -0
  263. vqlab-0.1.0/src/vqlab/runtime/__init__.py +1 -0
  264. vqlab-0.1.0/src/vqlab/runtime/arch_resolve.py +295 -0
  265. vqlab-0.1.0/src/vqlab/runtime/dense_shim.py +84 -0
  266. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_dense.ac62e4e43f4a.py.txt +513 -0
  267. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.1534dd6b77b8.py.txt +4857 -0
  268. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.40870875499d.py.txt +4453 -0
  269. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.5abf28a7f096.py.txt +4958 -0
  270. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.6254c4531ed5.py.txt +5482 -0
  271. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.6d8ab6873adf.py.txt +4862 -0
  272. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.b41c1064c82b.py.txt +4856 -0
  273. vqlab-0.1.0/src/vqlab/runtime/equivalent/vq_switch.e6fecc09a842.py.txt +4929 -0
  274. vqlab-0.1.0/src/vqlab/runtime/equivalent_revisions.json +61 -0
  275. vqlab-0.1.0/src/vqlab/runtime/gated_delta_chunked.py +153 -0
  276. vqlab-0.1.0/src/vqlab/runtime/glm5_shim.py +171 -0
  277. vqlab-0.1.0/src/vqlab/runtime/runtime_profile.py +193 -0
  278. vqlab-0.1.0/src/vqlab/runtime/vq_dense.py +513 -0
  279. vqlab-0.1.0/src/vqlab/runtime/vq_pack.py +129 -0
  280. vqlab-0.1.0/src/vqlab/runtime/vq_switch.py +5495 -0
  281. vqlab-0.1.0/src/vqlab/score/CONTEXT.md +31 -0
  282. vqlab-0.1.0/src/vqlab/score/__init__.py +1 -0
  283. vqlab-0.1.0/src/vqlab/score/act_stats.py +56 -0
  284. vqlab-0.1.0/src/vqlab/score/kernel_truth.py +444 -0
  285. vqlab-0.1.0/src/vqlab/score/kernel_truth_moe.py +129 -0
  286. vqlab-0.1.0/src/vqlab/score/kl_damage.py +345 -0
  287. vqlab-0.1.0/src/vqlab/score/kl_ladder.py +314 -0
  288. vqlab-0.1.0/src/vqlab/score/kl_pair.py +133 -0
  289. vqlab-0.1.0/src/vqlab/score/ppl_resident.py +80 -0
  290. vqlab-0.1.0/src/vqlab/score/referee/referee_corpus.txt +350 -0
  291. vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_code_public.txt +1692 -0
  292. vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_code_public.txt.manifest.json +37 -0
  293. vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_literary.manifest.json +86 -0
  294. vqlab-0.1.0/src/vqlab/score/referee/referee_corpus_literary.txt +22126 -0
  295. vqlab-0.1.0/src/vqlab/score/referee/score_streaming.py +366 -0
  296. vqlab-0.1.0/src/vqlab/score/runtime_equiv.py +179 -0
  297. vqlab-0.1.0/src/vqlab/score/score_tasks_streaming.py +615 -0
  298. vqlab-0.1.0/src/vqlab/score/stream_score.py +700 -0
  299. vqlab-0.1.0/src/vqlab/selftest/CONTEXT.md +45 -0
  300. vqlab-0.1.0/src/vqlab/selftest/__init__.py +141 -0
  301. vqlab-0.1.0/src/vqlab/selftest/__main__.py +6 -0
  302. vqlab-0.1.0/src/vqlab/selftest/build_checks.py +36 -0
  303. vqlab-0.1.0/src/vqlab/selftest/family_checks.py +73 -0
  304. vqlab-0.1.0/src/vqlab/selftest/fit_checks.py +121 -0
  305. vqlab-0.1.0/src/vqlab/selftest/gate_checks.py +128 -0
  306. vqlab-0.1.0/src/vqlab/selftest/kernel_checks.py +43 -0
  307. vqlab-0.1.0/src/vqlab/selftest/layout_checks.py +90 -0
  308. vqlab-0.1.0/src/vqlab/selftest/plan_checks.py +57 -0
  309. vqlab-0.1.0/src/vqlab/selftest/queue_checks.py +106 -0
  310. vqlab-0.1.0/src/vqlab/selftest/records_checks.py +171 -0
  311. vqlab-0.1.0/src/vqlab/selftest/reselect_fixture.py +102 -0
  312. vqlab-0.1.0/src/vqlab/selftest/skipzero_checks.py +32 -0
  313. vqlab-0.1.0/src/vqlab/selftest/synthetic_model.py +136 -0
  314. vqlab-0.1.0/src/vqlab/selftest/sz_bitexact_cpu.py +164 -0
  315. vqlab-0.1.0/src/vqlab/selftest/sz_check_fixture.py +93 -0
  316. vqlab-0.1.0/src/vqlab/ship/CONTEXT.md +27 -0
  317. vqlab-0.1.0/src/vqlab/ship/__init__.py +1 -0
  318. vqlab-0.1.0/src/vqlab/ship/card.py +338 -0
  319. vqlab-0.1.0/src/vqlab/ship/card_checks.py +100 -0
  320. vqlab-0.1.0/src/vqlab/ship/card_tables.py +115 -0
  321. vqlab-0.1.0/src/vqlab/ship/mtp_run.py +55 -0
  322. vqlab-0.1.0/src/vqlab/ship/publish.py +220 -0
  323. vqlab-0.1.0/src/vqlab/ship/release_prep.py +139 -0
  324. vqlab-0.1.0/src/vqlab/ship/serve.py +268 -0
  325. vqlab-0.1.0/src/vqlab/ship/size.py +75 -0
  326. vqlab-0.1.0/src/vqlab/skipzero/CONTEXT.md +88 -0
  327. vqlab-0.1.0/src/vqlab/skipzero/__init__.py +2 -0
  328. vqlab-0.1.0/src/vqlab/skipzero/skipzero_load.py +141 -0
  329. vqlab-0.1.0/src/vqlab/skipzero/sz_bitexact.py +593 -0
  330. vqlab-0.1.0/src/vqlab/skipzero/sz_check.py +162 -0
  331. vqlab-0.1.0/src/vqlab/skipzero/sz_pack.py +355 -0
  332. vqlab-0.1.0/src/vqlab/skipzero/sz_resident.py +756 -0
  333. vqlab-0.1.0/src/vqlab/skipzero/sz_resident_build.py +175 -0
  334. vqlab-0.1.0/src/vqlab/util/CONTEXT.md +22 -0
  335. vqlab-0.1.0/src/vqlab/util/__init__.py +10 -0
  336. vqlab-0.1.0/src/vqlab/util/clock.py +21 -0
  337. vqlab-0.1.0/src/vqlab/util/errors.py +12 -0
  338. vqlab-0.1.0/src/vqlab/util/fs.py +106 -0
  339. vqlab-0.1.0/src/vqlab/util/geo.py +7 -0
  340. vqlab-0.1.0/src/vqlab/util/hashing.py +73 -0
  341. vqlab-0.1.0/src/vqlab/util/log.py +24 -0
  342. vqlab-0.1.0/src/vqlab.egg-info/PKG-INFO +346 -0
  343. vqlab-0.1.0/src/vqlab.egg-info/SOURCES.txt +488 -0
  344. vqlab-0.1.0/src/vqlab.egg-info/dependency_links.txt +1 -0
  345. vqlab-0.1.0/src/vqlab.egg-info/entry_points.txt +2 -0
  346. vqlab-0.1.0/src/vqlab.egg-info/requires.txt +20 -0
  347. vqlab-0.1.0/src/vqlab.egg-info/top_level.txt +1 -0
  348. vqlab-0.1.0/tests/conftest.py +66 -0
  349. vqlab-0.1.0/tests/cpu_site/sitecustomize.py +8 -0
  350. vqlab-0.1.0/tests/fixtures/layering_allowlist.json +6 -0
  351. vqlab-0.1.0/tests/fixtures/public_names.json +194 -0
  352. vqlab-0.1.0/tests/fixtures/recipe_golden.json +2495 -0
  353. vqlab-0.1.0/tests/fixtures/recipe_golden_oversized.json +1006 -0
  354. vqlab-0.1.0/tests/fixtures/runtime_sha256.json +24 -0
  355. vqlab-0.1.0/tests/golden/kmeans/kmeans.npz +0 -0
  356. vqlab-0.1.0/tests/golden/writers/fit_moe.json +474 -0
  357. vqlab-0.1.0/tests/golden/writers/geo_build.json +472 -0
  358. vqlab-0.1.0/tests/golden/writers/loo_bands.json +486 -0
  359. vqlab-0.1.0/tests/golden/writers/minibase.json +324 -0
  360. vqlab-0.1.0/tests/golden/writers/mix.json +514 -0
  361. vqlab-0.1.0/tests/golden/writers/pack.json +519 -0
  362. vqlab-0.1.0/tests/golden/writers/pack_straddle.json +519 -0
  363. vqlab-0.1.0/tests/golden/writers/reskeleton.json +513 -0
  364. vqlab-0.1.0/tests/golden/writers/sz_pack.json +547 -0
  365. vqlab-0.1.0/tests/quality_baseline.json +101 -0
  366. vqlab-0.1.0/tests/test_active_bytes_routing.py +26 -0
  367. vqlab-0.1.0/tests/test_api.py +374 -0
  368. vqlab-0.1.0/tests/test_arch_equivalence.py +56 -0
  369. vqlab-0.1.0/tests/test_arch_resolve_fallback.py +75 -0
  370. vqlab-0.1.0/tests/test_arch_tree_stamp.py +88 -0
  371. vqlab-0.1.0/tests/test_artifact.py +61 -0
  372. vqlab-0.1.0/tests/test_bench_helpers.py +29 -0
  373. vqlab-0.1.0/tests/test_box_quiet.py +29 -0
  374. vqlab-0.1.0/tests/test_bug_report.py +30 -0
  375. vqlab-0.1.0/tests/test_build_dense_config.py +157 -0
  376. vqlab-0.1.0/tests/test_card.py +184 -0
  377. vqlab-0.1.0/tests/test_card_tables.py +19 -0
  378. vqlab-0.1.0/tests/test_check_bundle_dense.py +83 -0
  379. vqlab-0.1.0/tests/test_check_bundle_stale_flags.py +99 -0
  380. vqlab-0.1.0/tests/test_cli.py +26 -0
  381. vqlab-0.1.0/tests/test_cli_namespaces.py +157 -0
  382. vqlab-0.1.0/tests/test_commands.py +50 -0
  383. vqlab-0.1.0/tests/test_config_cmd.py +20 -0
  384. vqlab-0.1.0/tests/test_context_docs.py +67 -0
  385. vqlab-0.1.0/tests/test_doctor.py +36 -0
  386. vqlab-0.1.0/tests/test_ds4_parity.py +161 -0
  387. vqlab-0.1.0/tests/test_ds4_shared_clamp.py +33 -0
  388. vqlab-0.1.0/tests/test_expert_src_loader.py +83 -0
  389. vqlab-0.1.0/tests/test_expert_src_mxfp4.py +85 -0
  390. vqlab-0.1.0/tests/test_family_plugins.py +34 -0
  391. vqlab-0.1.0/tests/test_family_profile.py +98 -0
  392. vqlab-0.1.0/tests/test_first_run.py +56 -0
  393. vqlab-0.1.0/tests/test_fit_dense_vq.py +13 -0
  394. vqlab-0.1.0/tests/test_fit_pack.py +98 -0
  395. vqlab-0.1.0/tests/test_fit_ple.py +30 -0
  396. vqlab-0.1.0/tests/test_fit_store.py +60 -0
  397. vqlab-0.1.0/tests/test_gate_renames.py +15 -0
  398. vqlab-0.1.0/tests/test_gemma4_parity.py +688 -0
  399. vqlab-0.1.0/tests/test_gemmseg_flags_geoms.py +112 -0
  400. vqlab-0.1.0/tests/test_gemmseg_sz_accs.py +88 -0
  401. vqlab-0.1.0/tests/test_glm5_next_parity.py +759 -0
  402. vqlab-0.1.0/tests/test_glm5_shim_install.py +92 -0
  403. vqlab-0.1.0/tests/test_graft_extras.py +68 -0
  404. vqlab-0.1.0/tests/test_gui_downloads.py +220 -0
  405. vqlab-0.1.0/tests/test_gui_families.py +97 -0
  406. vqlab-0.1.0/tests/test_gui_jobs.py +311 -0
  407. vqlab-0.1.0/tests/test_gui_queues.py +57 -0
  408. vqlab-0.1.0/tests/test_gui_teachers.py +221 -0
  409. vqlab-0.1.0/tests/test_import_safe.py +83 -0
  410. vqlab-0.1.0/tests/test_kernel_truth_moe.py +15 -0
  411. vqlab-0.1.0/tests/test_kmeans_golden.py +162 -0
  412. vqlab-0.1.0/tests/test_knurlogic_client_load.py +45 -0
  413. vqlab-0.1.0/tests/test_knurlogic_link.py +80 -0
  414. vqlab-0.1.0/tests/test_kswarm_d2_walk.py +84 -0
  415. vqlab-0.1.0/tests/test_kswarm_d8_walk.py +104 -0
  416. vqlab-0.1.0/tests/test_kswarm_devcb_walk.py +84 -0
  417. vqlab-0.1.0/tests/test_kswarm_xkrep.py +91 -0
  418. vqlab-0.1.0/tests/test_lab_folder.py +81 -0
  419. vqlab-0.1.0/tests/test_lab_plumbing.py +147 -0
  420. vqlab-0.1.0/tests/test_layering.py +227 -0
  421. vqlab-0.1.0/tests/test_mcp_server.py +202 -0
  422. vqlab-0.1.0/tests/test_mix.py +85 -0
  423. vqlab-0.1.0/tests/test_model_loader.py +137 -0
  424. vqlab-0.1.0/tests/test_model_scan.py +96 -0
  425. vqlab-0.1.0/tests/test_mtp_accept.py +9 -0
  426. vqlab-0.1.0/tests/test_mtp_arms.py +21 -0
  427. vqlab-0.1.0/tests/test_mtp_caches.py +129 -0
  428. vqlab-0.1.0/tests/test_mtp_integration.py +85 -0
  429. vqlab-0.1.0/tests/test_mtp_loop.py +287 -0
  430. vqlab-0.1.0/tests/test_mtp_prefill.py +153 -0
  431. vqlab-0.1.0/tests/test_mtp_probe_qwen35.py +30 -0
  432. vqlab-0.1.0/tests/test_mtp_registry.py +14 -0
  433. vqlab-0.1.0/tests/test_mtp_sampling.py +91 -0
  434. vqlab-0.1.0/tests/test_mtp_smoke_head.py +65 -0
  435. vqlab-0.1.0/tests/test_no_machine_paths.py +44 -0
  436. vqlab-0.1.0/tests/test_numerics_build.py +197 -0
  437. vqlab-0.1.0/tests/test_portable_records.py +195 -0
  438. vqlab-0.1.0/tests/test_provenance_junk.py +20 -0
  439. vqlab-0.1.0/tests/test_public_imports.py +166 -0
  440. vqlab-0.1.0/tests/test_publish_gate.py +96 -0
  441. vqlab-0.1.0/tests/test_quality_ratchet.py +181 -0
  442. vqlab-0.1.0/tests/test_queue_cli_e2e.py +58 -0
  443. vqlab-0.1.0/tests/test_queue_files.py +29 -0
  444. vqlab-0.1.0/tests/test_queue_package.py +71 -0
  445. vqlab-0.1.0/tests/test_queue_runner.py +52 -0
  446. vqlab-0.1.0/tests/test_queue_steps.py +14 -0
  447. vqlab-0.1.0/tests/test_queue_wait.py +109 -0
  448. vqlab-0.1.0/tests/test_queues_dir_one_resolution.py +43 -0
  449. vqlab-0.1.0/tests/test_qwen3_5_parity.py +618 -0
  450. vqlab-0.1.0/tests/test_qwen4_exp_parity.py +66 -0
  451. vqlab-0.1.0/tests/test_recipe_queue.py +872 -0
  452. vqlab-0.1.0/tests/test_records_legacy.py +92 -0
  453. vqlab-0.1.0/tests/test_records_settings.py +208 -0
  454. vqlab-0.1.0/tests/test_registry_features.py +20 -0
  455. vqlab-0.1.0/tests/test_release_prep.py +21 -0
  456. vqlab-0.1.0/tests/test_release_vision_index.py +224 -0
  457. vqlab-0.1.0/tests/test_require_free.py +24 -0
  458. vqlab-0.1.0/tests/test_reserve_eta_boxes.py +309 -0
  459. vqlab-0.1.0/tests/test_routing_memo.py +119 -0
  460. vqlab-0.1.0/tests/test_runtime_equivalence.py +131 -0
  461. vqlab-0.1.0/tests/test_runtime_frozen.py +48 -0
  462. vqlab-0.1.0/tests/test_scores_index.py +63 -0
  463. vqlab-0.1.0/tests/test_scratch_reclaimable.py +232 -0
  464. vqlab-0.1.0/tests/test_slice_teacher.py +144 -0
  465. vqlab-0.1.0/tests/test_smoke_strict.py +135 -0
  466. vqlab-0.1.0/tests/test_speed_pair_knurlogic_runtime.py +15 -0
  467. vqlab-0.1.0/tests/test_stage_bandwidth.py +145 -0
  468. vqlab-0.1.0/tests/test_stream_convert_spec.py +80 -0
  469. vqlab-0.1.0/tests/test_sz_dim_guard.py +113 -0
  470. vqlab-0.1.0/tests/test_sz_shard.py +267 -0
  471. vqlab-0.1.0/tests/test_teacher_prep.py +54 -0
  472. vqlab-0.1.0/tests/test_tokenizer_match.py +34 -0
  473. vqlab-0.1.0/tests/test_updates.py +46 -0
  474. vqlab-0.1.0/tests/test_util.py +74 -0
  475. vqlab-0.1.0/tests/test_vendored_arch.py +36 -0
  476. vqlab-0.1.0/tests/test_version.py +11 -0
  477. vqlab-0.1.0/tests/test_vision_gate_wiring.py +209 -0
  478. vqlab-0.1.0/tests/test_vision_smoke_knurlogic.py +95 -0
  479. vqlab-0.1.0/tests/test_vq_d2_tg_capacity.py +105 -0
  480. vqlab-0.1.0/tests/test_vq_dense_devx.py +241 -0
  481. vqlab-0.1.0/tests/test_vq_dense_peak.py +240 -0
  482. vqlab-0.1.0/tests/test_vq_dense_rows.py +59 -0
  483. vqlab-0.1.0/tests/test_vq_dense_tiled.py +264 -0
  484. vqlab-0.1.0/tests/test_vq_embedding_dtype.py +74 -0
  485. vqlab-0.1.0/tests/test_vq_expert_simd.py +522 -0
  486. vqlab-0.1.0/tests/test_vq_prefill_paths.py +497 -0
  487. vqlab-0.1.0/tests/test_vq_skipzero.py +196 -0
  488. vqlab-0.1.0/tests/test_vq_wdec.py +217 -0
  489. vqlab-0.1.0/tests/test_writer_contracts.py +655 -0
  490. vqlab-0.1.0/tests/toy_family.py +168 -0
@@ -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.
@@ -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"