File size: 2,227 Bytes
34fbd51
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8300453
 
 
62a9063
8300453
 
 
 
 
62a9063
 
8300453
 
 
 
 
 
 
 
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
---
license: apache-2.0
library_name: mlx
base_model: allenai/tmax-9b
tags:
  - mlx
  - qwen3_5
  - text-generation
pipeline_tag: text-generation
---

# Tmax-9B MLX (4bit)

MLX-converted text-only weights of [`allenai/tmax-9b`](https://huggingface.co/allenai/tmax-9b).

The upstream base ships as a multimodal `Qwen3_5ForConditionalGeneration`
config but contains zero vision tensors in its safetensors — i.e. it is
already a text-only checkpoint with stub vision metadata. This release
strips the residual `vision_config` / image-token entries so it loads
cleanly via `mlx_lm` without a vision tower.

- **Source:** `allenai/tmax-9b`
- **License:** Apache-2.0
- **Variant:** `4bit`
- **Quantized by:** raullenchai
- **Tooling:** `mlx-lm 0.31.3` (the upstream `mlx_vlm 0.3.12` qwen3_5
  loader hard-requires vision-tower weights that this base does not ship,
  so the text-only `mlx_lm.convert` path is used instead)
- **Chat template:** ships with the source repo (`chat_template.jinja`)
- **Tool format:** `qwen3_xml`-compatible (`<tool_call>{json}</tool_call>`)

## Usage

```python
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/Tmax-9B-MLX-4bit")
print(generate(model, tokenizer, prompt="Hello", max_tokens=32))
```

## Notes

- This is a pure text-generation MLX release. No vision/image inputs.
- For best chat behavior, use the chat template that ships with this repo.

## Benchmarks

> Measured on M3 Ultra Studio (28 (20 Performance and 8 Efficiency) CPU, 60-core GPU, 256 GB unified memory) via rapid-mlx 0.8.18. Medians of 3 runs.

| Variant | Decode tok/s | TTFT (ms) | Prefill 1k (tok/s) | Prefill 4k (tok/s) | Prefill 16k (tok/s) | Tool-call e2e |
|---|---:|---:|---:|---:|---:|---:|
| Tmax-9B (4-bit MLX) | 107.4 | 127 | 1,060 | 1,124 | 1,092 | 726 ms (OK) |

Recommended default for the 9B family on M3 Ultra — ~19% faster decode than the Qwen3.5-9B-4bit control on the same hardware (90.5 tok/s), tool-call e2e under 1 s.

Full results (all 7 Tmax MLX variants + 2 Qwen3.5 controls): [rapid-mlx docs](https://github.com/raullenchai/Rapid-MLX/blob/main/docs/benchmarks/tmax-m3-ultra.md).

Reproduce:

```bash
pip install rapid-mlx==0.8.18
rapid-mlx serve tmax-9b --port 8765
```