Jais-3-3.7B (MLX, bf16)

bf16 MLX conversion of IFM/Jais-3-3.7B, converted from revision 4ba23d5. 10.1 GB on disk. For Apple silicon.

Jais-3-3.7B is a small dense Jais-3 model: a 3.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 converted

No quantization: the original bf16 weights in MLX format.

Memory

Peak 10.3 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-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.5
Disk 10.1 GB 5.4 GB 4.1 GB
Peak memory 10.3 GB 5.6 GB 4.4 GB
WikiText-2 perplexity (English) 14.984 14.994 (+0.1%) 15.714 (+4.9%)
Arabic Wikipedia perplexity 20.171 20.188 (+0.1%) 21.319 (+5.7%)
Generation 50.4 tok/s 89.2 tok/s 115.9 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-3.7B-MLX-bf16 --trust-remote-code --prompt "ما هي عاصمة الإمارات؟" --max-tokens 2048
from mlx_lm import load, generate

model, tokenizer = load("IFM/Jais-3-3.7B-MLX-bf16", 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.

Citation

@misc{ifm2026jais3introducingarabiccentric,
      title={Jais 3: Introducing Arabic-centric Agentic AI},
      author={Team IFM and Haonan Li and Hadi Abdine and Nikhil Ranjan and Mohamed Anwar and Ahmad Chamma and Amr Mohamed and Ahmed Frikha and Dani Bouch and Maaz Maqsood and George Ibrahim and Mostafa Awad and Nurkhan Laiyk and Hasan Iqbal and Abhishek Maiti and Bilal Bouardi and Shivam Chauhan and Ahmer Tabassum and Owais Aijaz and Omar Arbi and Neha Sengupta and Aaryamonvikram Singh and Abdelhakim Freihat and Sarath Chandran and Rahul Pal and Mohammed Bellam and Sajid Siddiki and Sarah AlBarri and Debopriyo Banerjee and Ali El Filali and Samta Kamboj and Rifo Genadi and Ahmed Attia and Go Inoue and Shuonan Dong and Amine Khelif Khelif and Evan Dufraisse and Florian Valade and Tapas Sen and Guowei He and Sunil Sahu and Onkar Pandit and Kareem Magdy and Sheikh Khalid bin Khalifa Al Nahyan and Samujjwal Ghosh and Zainul Abedien and Ahmed Quraishi and Larry Murray and Avraham Sheinin and Natalia Vassilieva and Preslav Nakov and Guokan Shang and Xuguang Hector Ren and Zhengzhong Liu and Eric Xing},
      year={2026},
      eprint={2611.10224},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2611.10224},
}
Downloads last month
861
Safetensors
Model size
5B params
Tensor type
BF16
·
MLX
Hardware compatibility
Log In to add your hardware

Quantized

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

Model tree for IFM/Jais-3-3.7B-MLX-bf16

Quantized
(7)
this model

Collection including IFM/Jais-3-3.7B-MLX-bf16

Paper for IFM/Jais-3-3.7B-MLX-bf16