Repository navigation
catalog: publish Apple M4 speed cells, and cap weak-machine targets - #225
Merged
Merged
Conversation
The catalog's only Apple reference was an M4 Max, Apple's most expensive machine, so its numbers were quoted as if they were typical of a Mac. A base M4 (10-core, 16 GB) is a better baseline for "will this run on my Mac". Its CPU column also generalizes: measured against paired M4 Max cells, the M4 is a median 1.54x slower on CPU -- and faster in 19 of 258 cells -- while Metal is a median 2.50x slower, so the difference between the two machines is almost entirely GPU. M4 becomes a target in all three publication profiles: 516 new ASR cells (73 variants x Q8_0/Q4_K_M x jfk/dots, or the single-language clip equivalents, x cpu/metal) and 12 language-ID cells (3 quants x ru-long 10s/30s x cpu/metal). Every row is stamped db678a0, the commit this was measured on. The diarizer is not an ASR publication record and refuses the run as "model does not serve the requested role"; voxtral-small-24b stays out of scope, see below. Targets can now declare max_model_gib. A capped target is a weak reference machine: it is only required to run variants whose Q8_0 publication footprint fits (largest published quant when there is no Q8_0), and larger models are published on the strong reference alone. m4 and ryzen-4750u are capped at 5 GiB; m4-max is not capped. The cap is requirement policy, not a measurement filter, and every consumer already sees it through profiles.expected_speed(): check.py stops requiring the cells, run.py --profile stops running them, ingest_perf.py never writes a cell outside the expected set. The langid and vad drivers now fail with the policy that excluded a model instead of an empty cell list. This replaces the three hand-written voxtral-small-24b exceptions (m4-max cpu, ryzen cpu, ryzen vulkan) with one cap plus the one exception that is not about size: CPU execution of a 24B model on M4 Max. The gate is green at 1552 ASR + 36 language-ID + 5 VAD required speed cells, 0 missing, 0 invalid, 0 extra. test_profiles.py pins the boundary semantics (inclusive cap, Q8_0 preference with largest-quant fallback, unknown size never waives) and the shipped policy that keeps both Voxtral minis and drops the 24B.
Adding the m4 target to asr-publication-v2 gave the machine a display name, so the sortformer page's provenance line now renders "Apple M4" instead of the bare slug; re-render it so render.py --check passes. run.py --profile silently matched no cells for a model outside a capped target's max_model_gib and exited 0. It now drops such variants up front with the admission reason (so --dry-run no longer lists them either), and the existing "no cells to run" error exits non-zero when nothing is left. This matches the langid and vad drivers. Run scripts/catalog/test_profiles.py in the catalog workflow so the cap policy has CI coverage.
cunba-ai
pushed a commit
to cunba-ai/transcribe.cpp
that referenced
this pull request
Oct 27, 2026
…r#220, handy-computer#223, handy-computer#222, handy-computer#225, handy-computer#224) - handy-computer#220 causal_lm: alias the packed gate+up projection onto the existing weights (no duplicate conversion copies at load) - handy-computer#223 scripts/bench: memory.py peak-memory harness - handy-computer#222 moonshine_streaming: bounded encoder memory past the 82 s training window and an out-of-bounds read fix; input-cap smoke replaces the truncation test - handy-computer#225 catalog: Apple M4 speed cells published; weak-machine targets capped - handy-computer#224 qwen3-asr nar: encoder graph memory bounded Fork note: no fork-owned files in the conflict set.
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.
No description provided.