File size: 6,028 Bytes
272dc9f
838d726
 
 
 
272dc9f
 
 
838d726
 
 
 
 
 
 
 
 
 
 
 
272dc9f
e15b2f3
9115827
e15b2f3
 
 
 
 
 
 
 
 
 
 
9115827
e15b2f3
9115827
 
 
e15b2f3
 
 
 
 
3947838
 
9115827
272dc9f
838d726
 
 
272dc9f
838d726
f18c97b
272dc9f
838d726
 
 
 
 
 
 
 
 
272dc9f
838d726
272dc9f
 
 
838d726
272dc9f
 
838d726
272dc9f
 
838d726
272dc9f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838d726
272dc9f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838d726
7e4428c
 
838d726
5776428
272dc9f
 
 
5776428
 
272dc9f
5776428
272dc9f
 
 
 
 
838d726
 
 
 
 
272dc9f
 
 
838d726
 
 
272dc9f
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
---
language:
- en
- zh
library_name: mlx
license: other
license_name: modified-mit
pipeline_tag: text-generation
base_model: MiniMaxAI/MiniMax-M2
tags:
- moe
- mixture-of-experts
- minimax_m2
- quantized
- apple-silicon
- mlx
- turboquant
- jangtq
- jangtq2
- reap
---
> ## ⚠️ REQUIRED — `jangtq_runtime.safetensors` sidecar must be downloaded
>
> Osaurus uses the native Swift JANGTQ runtime. **Every JANGTQ bundle on
> OsaurusAI ships a small `jangtq_runtime.safetensors` sidecar (~10 KB–~165 KB)
> alongside the weight shards.** The Swift loader will refuse to start with
> the error
> ```
> Error: Model '<name>' declares JANGTQ (weight_format: "mxtq") but is
>        missing required sidecar file 'jangtq_runtime.safetensors'.
>        Re-download the full model or obtain the sidecar from the original
>        publisher.
> ```
> if the file is absent.
>
> If your local copy doesn't have it (older download, partial sync, etc):
> ```bash
> hf download OsaurusAI/MiniMax-M2.7-Small-JANGTQ jangtq_runtime.safetensors --local-dir <your-dir>
> ```
> The file holds the deterministic codebooks + Hadamard rotation signs the
> Swift loader uses to decode `*.tq_packed` weights. It must match the seed
> the bundle was quantized with (`mxtq_seed=42`).






<p align="center">
  <a href="https://osaurus.ai"><img src="./osaurus-x-banner.png" alt="Osaurus AI"></a>
</p>

<h3 align="center">MiniMax M2.7 Small &mdash; 138B-A10B &mdash; JANGTQ (MLX)</h3>
<p align="center"><b>This is now a ~138B-A10B MoE &mdash; 38 GB on disk</b> (down from MiniMax M2's ~460 GB / 230B base) &mdash; 40% routed-expert prune + 2-bit JANGTQ quantization. Distilled from MiniMax M2 via REAP saliency + JANGTQ2 codebook quantization &mdash; routed experts at 2-bit via Lloyd-Max codebooks + Hadamard rotation, attention / embed / lm_head / dense MLP at 8-bit affine, norms and router at 16-bit.</p>

<p align="center">
  <a href="https://osaurus.ai"><img src="https://img.shields.io/badge/Web-osaurus.ai-blue" alt="Website"></a>&nbsp;
  <a href="https://huggingface.co/OsaurusAI"><img src="https://img.shields.io/badge/HF-OsaurusAI-yellow?logo=huggingface" alt="OsaurusAI"></a>&nbsp;
  <a href="https://huggingface.co/MiniMaxAI/MiniMax-M2"><img src="https://img.shields.io/badge/Base-MiniMax--M2-orange?logo=huggingface" alt="MiniMax M2"></a>
</p>

---

## Model Details

Runs on Apple Silicon via the JANG toolchain + MLX.

```
MiniMax M2 (base)
    ↓  v3 calibration corpus  (code · agentic · general · academic · science · CN · cyber · systems · long-context)

REAP saliency observer (62 layers × 256 experts → scoring)
    ↓  40% expert prune (154 of 256 kept per layer)

JANGTQ2 quantization
    • 2-bit MXTQ on routed-expert weights (Hadamard-rotated Lloyd-Max codebook)
    • 8-bit affine on attention + dense MLP + embed + lm_head
    • 16-bit on norms and router weights
```

| | Value |
|---|---|
| Parameters | **~138B total, ~10B active per token** |
| Routed experts kept | 154 of 256 (60%) |
| Top-k active experts | 8 per token |
| Layers | 62 |
| Bundle size | 38 GB |
| Dtype | bfloat16 activations |
| Attention | Standard Q/K/V + GQA 6:1, head_dim=128, rope_theta=5M |
| Context | 196,608 |

## Use

```python
from jang_tools.load_jangtq import load_jangtq_model
from mlx_lm import generate
from mlx_lm.sample_utils import make_sampler

model, tokenizer = load_jangtq_model("OsaurusAI/MiniMax-M2.7-Small-JANGTQ")

messages = [{"role": "user", "content": "Write a Python function that…"}]
prompt = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=False
)

# Interleaved-thinking / always-reasoning. Use MiniMax's
# official sampling:  temp=1.0, top_p=0.95, top_k=40
out = generate(model, tokenizer, prompt=prompt, max_tokens=4096,
               sampler=make_sampler(temp=1.0, top_p=0.95, top_k=40))
```

## Evaluation

### HumanEval+ (code generation)

- **Dataset**: `evalplus/humanevalplus` test split (164 prompts, harder tests than HumanEval).
- **Protocol**: sampled pass@1 baseline + pass@5 retry on failures.
- **Sampling for both pass@1 and pass@5 retry**: temp=1.0, top_p=0.95, top_k=40 (MiniMax official); max_tokens=5000 on pass@1, 1200 on pass@5; k=5 samples per failed problem, early stop on first pass.
- **Grading**: each candidate run with 20s subprocess timeout; must pass ALL EvalPlus tests.
- **Extractor**: `jang_tools.kimi_prune.bench_humaneval._extract_code` (≥ 2026-04-24). The earlier extractor mis-paired markdown fences when the model emitted token-boundary glitches at the language tag (e.g. `\`\`\`python一致:`, `\`\`\`pythonfr`) and when the chat template prefilled `<think>` at the prompt boundary, costing roughly nine points of pass@1.

| Metric | Score |
|--------|-------|
| **pass@1 (sampled, temp=1.0)** | **81.10%** (133/164) |
| **pass@5 (sampled, retry of failures)** | **90.24%** (148/164) |

After the extractor fix, 30 of 46 originally-counted pass@1 failures resolve cleanly: 15 were correct answers eaten by fence-pairing, and another 15 recover under pass@5 sampling. The 16 residuals split into ~8 token-budget starvations (`no_code_block`), ~5 in-code 2-bit token-boundary glitches (`return False言`, `Nonef`, etc.), and ~3 genuine logic errors on EvalPlus hidden tests.

## Variants

| Variant | Prune | Size | HF |
|---------|-------|------|-----|
| **MiniMax-M2.7-Small** | 40% | 38 GB | `OsaurusAI/MiniMax-M2.7-Small-JANGTQ` |
| MiniMax-M2.7-Med | 25% | ~48 GB | `OsaurusAI/MiniMax-M2.7-Med-JANGTQ` *(pending)* |
| MiniMax-M2.7-Large | 10% | ~57 GB | `OsaurusAI/MiniMax-M2.7-Large-JANGTQ` *(pending)* |

Also released under `JANGQ-AI/MiniMax-M2.7-*-JANGTQ`.

## Credits

Base model: [MiniMax M2](https://huggingface.co/MiniMaxAI/MiniMax-M2).
Methodology: [JANG toolchain](https://github.com/jinho-jang/jang) — REAP saliency + JANGTQ codebook quantization.
Served by: [Osaurus](https://osaurus.ai) — Apple-Silicon-native MLX inference.

## License

Modified MIT — inherited from MiniMax M2.