Views
No views yet
2026-07-07 republish: this repo previously shipped a split component layout (encoder.safetensors/adaptor.safetensors/decoder-*.safetensors) that no MLX runner could load directly. It now ships the standardmodel.safetensors.index.jsontree produced bypipelines/mlx_direct_quantize, verified with audio transcription through the MLX harness below.
Quality caveat (4-bit): output stays coherent but is measurably less faithful than the 8-bit variant: on the code-switched Singlish sample it paraphrases and translates the Mandarin tail instead of transcribing it verbatim (There's like two quarters, ma. Then he will teach.vs 8-bit'sthere's like two quarters ma then 他会教). For faithful code-switched ASR prefer the 8-bit pack; this variant suits lower-memory speech understanding (summaries, Q&A over audio).
| Source | MERaLiON/MERaLiON-3-10B @ 3d5c2f772641b1cfeba35743df3db32a07db8c48 (bf16, ~19 GB) |
| Format | MLX (Apple Silicon native), single safetensors tree |
| Quantization | 4-bit affine, group-size 64 (decoder 2-D tensors only) |
| Disk size | 6.1 GB (6,601,088,576 bytes) |
| Decoder | Gemma-2-9B-it, 295 tensors quantized (169 decoder 1-D preserved bf16) |
| Encoder | Whisper-large-v3 derived, 487 tensors preserved bf16 |
| Adaptor + bridges | speech MLP adaptor, ln_speech, speech_encoder_layer_weighted_sum — 7 tensors preserved bf16 |
speech_config.use_weighted_layer_sum=true); the 1-D weight vector rides through unquantized with the rest of the speech tower.decode bitwise-matches the mlx_lm gemma2 forward).majek/pipelines/meralion3_mlx (Whisper encoder + weighted layer sum + adaptor in MLX, Gemma-2 decoder via mlx_lm.models.gemma2):1# one-shot transcription
2python -m pipelines.meralion3_mlx.generate \
3 --path majentik/MERaLiON-3-10B-MLX-4bit \
4 --wav your_clip.wav
5
6# local HTTP endpoint (POST wav bytes or multipart "file")
7python -m pipelines.meralion3_mlx_serve \
8 --model majentik/MERaLiON-3-10B-MLX-4bit --port 8321mlx-lm alone cannot load this model (composite audio architecture, model_type=meralion3); the harness routes the speech tower and decoder from the same checkpoint tree. The prompt template is the upstream one: Instruction: <TextHere> \nFollow the text instruction based on the following audio: <SpeechHere> inside Gemma-2 chat turns.1python -m pipelines.mlx_direct_quantize --model meralion3-10b \
2 --base-dir /tmp/mlx-direct-release/meralion3-10b/base \
3 --out-dir /tmp/mlx-direct-release/meralion3-10b/4bit \
4 --bits 4 --mode affine --group-size 64