ark-asr-0.6B-mlx / VALIDATION.md
leope's picture
Publish native MLX BF16 conversion with runtime and validation
bd15125 verified
|
Raw
History Blame Contribute Delete
1.6 kB
# Validation
Validation was run on 2026-07-31 with an Apple M5 Pro, 24 GB unified memory,
macOS 26.6, Python 3.12.13, and MLX 0.32.0.
## Checkpoint conversion
- Source: `Audio8/ARK-ASR-0.6B`
- Revision: `45776b56d58cdfb2e2eb632f7e110f38684633e0`
- Retained parameter tensors: 780
- Missing or unexpected tensors: 0
- Output dtype: BF16
- Output size: 2.1 GiB
- Source SHA-256:
`57a86ce1c2f2c2d6ebb7ad9642c9e951a5109625122b48c9180126a28787673d`
- Output SHA-256:
`4f17d6fda7be51e489c1819c266ed946b2d3982368f0a231ceb0c1f211a3e56c`
## PyTorch parity
The original remote-code model and the native MLX model were run on the pinned
`Narsil/asr_dummy/1.flac` LibriSpeech sample.
- Prompt token IDs: identical
- BF16 input features: maximum absolute difference `0.0`
- Adapted audio features cosine similarity: `0.9998097773`
- Initial decoder logits cosine similarity: `0.9999750792`
- Greedy generation token IDs: identical
- Final decoded text: identical
Both implementations produced:
> He hoped there would be stew for dinner, turnips and carrots, and bruised
> potatoes and fat mutton pieces to be ladled out in thick peppered
> flour-fattened sauce.
## MLX benchmark
The same 12.1-second audio sample was measured after the checkpoint was already
present in the operating-system file cache:
- Model load: `0.362 s`
- Audio preprocessing: `0.396 s`
- First token: `0.110 s`
- Full 38-token generation: `0.384 s`
- Generation throughput: `98.94 tokens/s`
- MLX peak memory: `2.620 GB`
These numbers describe this machine and test clip; they are not portable
performance guarantees.