Unlimited-OCR-2-MLX-8bit-selective
Native Apple Silicon MLX checkpoint converted from baidu/Unlimited-OCR-2 at revision 0480966938291445591f69f08a13b041c073a96a. Tested on Apple M5 24 GiB, 3 November 2026. This is a derivative conversion, not an official upstream release.
8-bit affine, group size 64, round-to-nearest, selective weights. 119 language-model modules at 8 bits. Vision/SAM encoders, visual projector, DASH routers and norms remain BF16. No quantized protected-path modules were found.
Complete checkpoint: 3,929,765,679 bytes (3.930 decimal GB), including protected dense components; 41.2% smaller than the complete source checkpoint. This is not uniform 8-bit quantization of every component.
Measured result
Ten private email attachments / 12 pages: 91.65 s versus 137.90 s unquantized; 82/85 selected fields matched independent visual reading, versus 80/85. Field-presence audit, not an OCR accuracy benchmark. Some text inside figures was omitted.
See BENCHMARKS.md for the method, per-sample/per-document timings, limitations, and companion release. benchmark-results.json contains exact measurements; quantization-audit.json records every tensor's shape/type and quantized module. Original email documents and OCR text are excluded.
Native MLX usage
Validated versions: MLX 0.32.4, MLX-VLM 0.7.11, MLX-Audio 0.6.4, Transformers 5.22.1. Use the native MLX loader rather than Transformers AutoModel. The supplied benchmark requirements include Torch for original codec conversion; Torch is not used for model inference in the converted Audio8 path.
from mlx_vlm import load, generate
model, processor = load('groxaxo/Unlimited-OCR-2-MLX8-Selective')
result = generate(model, processor, '<PAGE><image>Multi page parsing.',
image=['page.png'], temperature=0.0, max_tokens=12000)
print(result.text)
Reproduction and provenance
benchmark_mlx.py records the exact quantization predicates and test inputs. Audio8 samples are synthetic, generated without reference-audio cloning. No MOS or human listening score was measured. The OCR sample contains only one/two-page documents and does not test hundred-page/unlimited-horizon behavior. Allocator memory is not full system RSS. Source license and attribution remain applicable; preserve them when redistributing.