| --- |
| pipeline_tag: text-generation |
| license: other |
| license_name: modified-mit |
| license_link: https://github.com/MiniMax-AI/MiniMax-M2.7/blob/main/LICENSE |
| library_name: mlx |
| tags: |
| - mlx |
| base_model: MiniMaxAI/MiniMax-M2.7 |
| --- |
| |
| [MiniMax-M2.7](MiniMaxAI/MiniMax-M2.7) optimized for MLX. |
|
|
| - A mixed-precision quant that balances speed, memory, and accuracy. |
| - 4 bit baseline with important layers at 5, 6, 8, and BF16. |
|
|
| # Usage |
|
|
| ```sh |
| # Start server at http://localhost:8080/chat/completions |
| uvx --from mlx-lm mlx_lm.server \ |
| --host 127.0.0.1 \ |
| --port 8080 \ |
| --model spicyneuron/MiniMax-M2.7-MLX-4.9bit |
| ``` |
|
|
| # Benchmarks |
|
|
| metric | mlx-community_MiniMax-M2.7-4bit | baa-ai_MiniMax-M2.7-RAM-155GB-MLX | 4.9 bit (this model) |
| --- | --- | --- | --- |
| bpw | 4.501 | 5.4278 | 4.915 |
| peak memory (1024/512) | 129.632 | 156.051 | 141.458 |
| prompt tok/s (1024) | 739.996 ± 1.565 | 708.147 ± 0.818 | 723.742 ± 0.880 |
| gen tok/s (512) | 48.703 ± 0.116 | 40.253 ± 0.077 | 42.270 ± 0.143 |
| perplexity | 9.120 ± 0.047 | 8.835 ± 0.045 | 4.590 ± 0.027 |
| hellaswag | 0.504 ± 0.011 | 0.509 ± 0.011 | 0.512 ± 0.011 |
| piqa | 0.786 ± 0.01 | 0.787 ± 0.01 | 0.791 ± 0.009 |
| winogrande | 0.636 ± 0.014 | 0.661 ± 0.013 | 0.666 ± 0.013 |
|
|
| Tested on a Mac Studio M3 Ultra with: |
|
|
| ``` |
| mlx_lm.perplexity --sequence-length 2048 --seed 123 |
| mlx_lm.benchmark --prompt-tokens 1024 --generation-tokens 512 --num-trials 5 |
| mlx_lm.evaluate --tasks hellaswag --seed 123 --num-shots 0 --limit 2000 |
| mlx_lm.evaluate --tasks piqa --seed 123 --num-shots 0 --limit 2000 |
| mlx_lm.evaluate --tasks winogrande --seed 123 --num-shots 0 --limit 2000 |
| ``` |
|
|
| # Methodology |
|
|
| Quantized with a [mlx-lm fork](https://github.com/ml-explore/mlx-lm/pull/922), drawing inspiration from Unsloth/AesSedai/ubergarm style mixed-precision GGUFs. |
| MLX quantization options differ than llama.cpp, but the principles are the same: |
|
|
| - Sensitive layers like MoE routing, attention, and output embeddings get higher precision |
| - More tolerant layers like MoE experts get lower precision |