Instructions to use fredchu/MOSS-Audio-8B-Instruct-MLX with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use fredchu/MOSS-Audio-8B-Instruct-MLX with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] hf download fredchu/MOSS-Audio-8B-Instruct-MLX --local-dir MOSS-Audio-8B-Instruct-MLX
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
MOSS-Audio-8B-Instruct-MLX (hybrid: INT4 LLM + BF16 audio)
An Apple MLX conversion of MOSS-Audio-8B-Instruct โ the ASR-strongest MOSS-Audio checkpoint โ for fast, low-memory inference on Apple Silicon. LLM quantized to uniform INT4 (group_size 64); audio encoder + adapter + DeepStack kept in BF16.
Why this exists. The community had MLX builds only of the Thinking variant. But Thinking is not ASR-optimized: under identical INT4 quantization it mis-spells letter-spoken tickers (e.g. "CRWD" โ "CWD") and is unstable. Instruct transcribes them correctly. This build brings Instruct's transcription quality to MLX speed/memory.
ไธญๆ๏ผ้ๆฏ MOSS-Audio-8B-Instruct ็ Apple MLX ่ฝๆ็๏ผLLM uniform INT4 + audio ่ทฏๅพ BF16๏ผใ ็คพ็พคๅๆฌๅชๆ Thinking ่ฎ้ซ็ MLX ็๏ผไฝ Thinking ้ ASR ๅชๅโโ็ธๅ INT4 ้ๅไธๆๆๅธๅบๅญๆฏ็ ticker๏ผๅฆ "CRWD"๏ผ่พจ่ญๆ "CWD" ไธไธ็ฉฉๅฎใInstruct ่พจ่ญๆญฃ็ขบใๆฌ็ๆ Instruct ็่ฝ้ๅ่ณช ๅธถๅฐ MLX ็้ๅบฆ่่จๆถ้ซใ
Measured (Apple M1 Max 32GB, 28s zh+en clip)
| Metric | PyTorch Instruct | This (Instruct-MLX) | Thinking-MLX |
|---|---|---|---|
| Ticker "CRWD" | C R W D โ | C R W D โ | CWD โ |
| English term (TradingView) | โ | โ | โ (loops) |
| Numerals | Chinese chars | Arabic 47% | Arabic |
| Speed | 1.8x realtime | 6โ9x | 5โ8x |
| Peak memory | ~17 GB | 7.85 GB | 7.85 GB |
| Disk | 18 GB | 5.9 GB | 5.9 GB |
Key finding. Ticker-ASR degradation in the Thinking-MLX builds comes from the Thinking/Instruct training difference, not from INT4 quantization โ under the same uniform INT4, Instruct keeps the ticker. So uniform 4-bit suffices; no mixed-precision needed.
Usage
pip install mlx mlx-lm soundfile numpy
python inference.py --audio your_clip_16k_mono.wav
Transcription with per-segment timestamps (a Traditional-Chinese prompt triggers zh-Hant output):
python run_moss.py --model . --audio clip.wav \
--prompt "่ซ้ๅฅ่ฝ้้ๆฎต้ณ่จ๏ผๆฏๅฅๆจ่จป้ๅงๆ้ใ" --temp 0 --repetition-penalty 1.02
- Audio: 16 kHz mono. Encoder window is Whisper-style 30 s max โ chunk longer audio.
- Decoding: use greedy (temp=0) for ASR fidelity.
temp>0removes the rare tail digit-loop but degrades content (wrong numerals, out-of-order timestamps). - digit-loop: occasionally the model fails to emit EOS and repeats a digit token at the very tail; post-truncate repeated trailing digits. Quantization weakens EOS; it is a known, harmless tail artifact for transcription use.
How it was converted
Pure metadata-mapped weight conversion (no retraining):
stage1_mapping.pyโ verify every MLX target key is sourceable from the PyTorch checkpoint; discover the conv layout transformtranspose(0,2,3,1)(PyTorch[out,in,h,w]โ MLX[out,h,w,in]).stage2_convert.pyโ extractlanguage_model.*+lm_head, quantize to INT4 (group_size 64) via mlx; extract audio encoder/adapter/DeepStack, apply the conv transpose, save BF16. Output mirrors the RumiLabs bridge layout exactly.
Limitations
- 30-second audio window (chunk + offset timestamps for longer input).
- Tail digit-loop under greedy (post-truncate).
- Homophone errors on domain terms (e.g. 300ๅ โ ไธ็พ่ป) โ fix with a glossary/post-pass.
Credits
- Base model: OpenMOSS-Team/MOSS-Audio (Apache-2.0)
- MLX bridge (encoder/mel/DeepStack port): RumiLabs Thinking-MLX builds
- InstructโMLX conversion: this work
License
Apache-2.0 (inherited from base model).
Quantized
Model tree for fredchu/MOSS-Audio-8B-Instruct-MLX
Base model
OpenMOSS-Team/MOSS-Audio-8B-Instruct
# Download the model from the Hub pip install huggingface_hub[hf_xet] hf download fredchu/MOSS-Audio-8B-Instruct-MLX --local-dir MOSS-Audio-8B-Instruct-MLX