Jais-3-7B (MLX, 4-bit)

Mixed-precision 4-bit MLX quantization of IFM/Jais-3-7B, converted from revision edc2801. 6.4 bits/weight effective, 7.2 GB on disk. For Apple silicon.

Jais-3-7B is a medium dense Jais-3 model: a 7B decoder-only model with a 512K (524,288-token) context window.

Requirements

mlx-lm doesn't support the k2_horizon architecture (used by Jais-3) yet. Until support lands, this repo ships the MLX model code (k2_horizon.py), which mlx-lm loads through the model_file entry in config.json. So the released mlx-lm works as-is:

pip install -U mlx-lm

Pass --trust-remote-code (or trust_remote_code=True). The file runs on your machine, so read it first if you like; its comments describe how it differs from the PyTorch code.

How it was quantized

Mixed precision, same recipe as the dense K2-Horizon MLX models (integer affine, bf16 scales and biases):

  • 4-bit, group size 32: the MLP weights (gate_proj, up_proj, down_proj). These hold most of the parameters.
  • 8-bit, group size 64: everything else: attention, the embeddings and lm_head.

Plain 4-bit (everything 4-bit, group size 64) loses too much on this model: +15.1% WikiText-2 and +17.1% Arabic Wikipedia perplexity versus bf16. This recipe loses +4.2% and +4.6%.

Memory

Peak 7.4 GB for a short prompt. The KV cache grows with the context, so long contexts need more memory; --max-kv-size and KV-cache quantization (--kv-bits 8, where available) reduce it.

Conversion check

Checked against the PyTorch code (modeling_k2_horizon.py) in fp32 on the real weights of this model, on English, code, Arabic and math prompts: the logits match to a relative error of 6e-6 or better, the next-token predictions agree at every position, and greedy decoding with the KV cache gives the same tokens as PyTorch (64/64 on every prompt).

Smoke-tested after conversion with released mlx-lm 0.32.0 on English and Arabic chat prompts: answers end normally (the chat template and stop tokens work).

Benchmarks (all Jais-3-7B MLX variants)

Perplexity on 128 × 512 tokens (WikiText-2 test, and the first articles of the Arabic Wikipedia dump 20231101.ar; lower is better) and generation speed on an Apple M4 Max, all measured the same way:

bf16 8-bit 4-bit
Bits/weight 16.0 8.5 6.4
Disk 18.0 GB 9.6 GB 7.2 GB
Peak memory 18.2 GB 9.8 GB 7.4 GB
WikiText-2 perplexity (English) 12.829 12.858 (+0.2%) 13.372 (+4.2%)
Arabic Wikipedia perplexity 17.332 17.350 (+0.1%) 18.129 (+4.6%)
Generation 28.5 tok/s 52.7 tok/s 70.4 tok/s

Perplexity is a coarse signal. Test the versions on your own workload before picking one.

Usage

mlx_lm.generate --model IFM/Jais-3-7B-MLX-4bit --trust-remote-code --prompt "ما هي عاصمة الإمارات؟" --max-tokens 2048
from mlx_lm import load, generate

model, tokenizer = load("IFM/Jais-3-7B-MLX-4bit", trust_remote_code=True)
messages = [{"role": "user", "content": "Explain mixture-of-experts in two sentences."}]
prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True)
print(generate(model, tokenizer, prompt, max_tokens=2048))

mlx_lm.chat and mlx_lm.server take the same --trust-remote-code flag.

The model thinks before it answers, inside <ifm|think> … </ifm|think>. Leave room for that in max_tokens. The effort level is set with reasoning_effort in the chat template: "high" (default), "medium" or "low", e.g. apply_chat_template(messages, add_generation_prompt=True, reasoning_effort="low").

Notes:

  • Server output: mlx-lm doesn't recognize the <ifm|think> tags yet, so mlx_lm.server returns the thinking text inside content rather than in a separate reasoning field. The tool-call format isn't parsed yet either.
  • Chat template change: the original template raises an error when an earlier assistant message has no thinking field, which is what OpenAI-style clients send. The template here renders empty thinking for those messages instead. Nothing else was changed.

License

Apache-2.0, inherited from the base model. Refer to the original model card for architecture, benchmarks and intended use.

Downloads last month
3
Safetensors
Model size
9B params
Tensor type
U32
·
BF16
·
MLX
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for IFM/Jais-3-7B-MLX-4bit

Quantized
(5)
this model

Collection including IFM/Jais-3-7B-MLX-4bit