v1.4.0
Install
Install this release from PyPI: axquant 1.4.0.
Fixed
campaign-overlapnormalization now tokenizes non-ASCII scripts
(axquant-token-5gram-v2): ASCII word runs stay whole tokens and every
other letter (CJK, Kana, Hangul, accented Latin) becomes a
single-character token, so shingles exist for unspaced scripts. The v1
normalizer dropped every non-[a-z0-9_]character, which made any
CJK-only record — including the shipped reference calibration
dataset's multilingual rows — fail closed with "normalizes to empty
text" and blocked flagship campaign freezes. ASCII-only inputs produce
byte-identical reports under v2;CampaignOverlapReportnow records
the v2 algorithm id. The Qwen3-Next coding-suite normalizer is
unchanged.
Changed
- Quantized MTP sidecars now emit AX Engine's executable MLX-packed layout
(mlx-affine-packed-u32):mx.quantizeuint32-packed codes plus BF16 group
scales/biases under the engine's<base>.scales/<base>.biaseskey
convention, each tensor verified by anmx.dequantizeround trip against
the BF16-cast source. This replaces the 1.3.0axquant-portable-affine-u8
format, which no runtime could execute (the capability gate always refused,
so no artifact was ever produced in it). Reading the engine's
mtp_take_weightloader showed the executable contract already exists —
AXQuant now targets it instead of inventing a second layout.
Added
quantize-mtp-sidecar --runtime-jsonstampsmtp_sidecar_bitsinto
mtplx_runtime.json(viaannotate_mtp_runtime_sidecar_bits) so the engine
dequantizes packed projections at the declared width instead of the 4-bit
default; sidecar bits are restricted to the engine runtime contract
(2/4/6/8).- The capability probe records the engine's reported
supported_bitsand
packingwhen present (ax-engine mtp-capabilityoutput), and sidecar
quantization fails closed when the requested bits or emitted packing fall
outside the reported capability. benchmark-kernels --from-ax-engineingests the engine's
ax-engine.kernel-latency-raw.v1document (emitted by the new
axquant-kernel-latency-probemicrobench) into a host-scoped
axquant.kernel-latency.v1table withruntime=ax-engineentries; the
planner's latency provider now infers the runtime from single-runtime
tables, so engine tables plug intoplan --latency-tabledirectly.
Fixed
- Quantized MTP sidecar bits are restricted to {4, 6, 8} — the intersection
of the engine loader's tolerance with AXQuant's ownmtp_sidecar_bits
runtime contract. Previously a 2-bit sidecar could be produced that
AXQuant's inspector and runtime validators would then reject. benchmark-kernels --from-ax-enginerefuses documents reporting packing
methods the toolkit does not recognize instead of silently relabeling them
as affine measurements.annotate_mtp_runtime_sidecar_bits(and--runtime-jsonhelp) now states
that stamping rewrites the file and therefore invalidates any recorded
sha256 binding to the original — stamp packaging copies, not validated
bundles.- KV serving-quality reports reject a boolean
quantized_layers_activein
the execution summary instead of countingtrueas one active layer. - The flagship M7 MTP-admissibility helper guards its own evidence loads
(unreadable files become named gate issues if reached), and a regression
test pins the audit-level contract: a damaged benchmark bundle aborts the
whole audit with a named checksum error rather than emitting gate verdicts
against a tampered evidence set.