Instructions to use inception42/Jais-3-375B-A23B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use inception42/Jais-3-375B-A23B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="inception42/Jais-3-375B-A23B", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("inception42/Jais-3-375B-A23B", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use inception42/Jais-3-375B-A23B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "inception42/Jais-3-375B-A23B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "inception42/Jais-3-375B-A23B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/inception42/Jais-3-375B-A23B
- SGLang
How to use inception42/Jais-3-375B-A23B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "inception42/Jais-3-375B-A23B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "inception42/Jais-3-375B-A23B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "inception42/Jais-3-375B-A23B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "inception42/Jais-3-375B-A23B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use inception42/Jais-3-375B-A23B with Docker Model Runner:
docker model run hf.co/inception42/Jais-3-375B-A23B
Jais-3-375B-A23B
Jais-3-375B-A23B is the flagship of the Jais-3 family: a sparse Mixture-of-Experts model that stores 375B parameters and runs 23B per token, with a 512K context window.
An FP8-quantized version is available at IFM/Jais-3-375B-A23B-FP8.
Benchmark Results
| Reference models | |||||
|---|---|---|---|---|---|
| Jais-3-375B-A23B | Qwen3.5-397B-A17B | MiniMax M3 | Qwen3.8-Flash-Next | NVIDIA Nemotron 3 Ultra | |
| # Params | 375B | 397B | 428B | 180B | 550B |
| # Activated params | 23B | 17B | 23B | 6B | 55B |
| Architecture | MoE | MoE | MoE | MoE | MoE |
| Open-ended Generation | |||||
| AraGen | |||||
AraGen v3 (3C3H) 09-2025 | 72.4 | 78.9 | 71.9 | 74.9 | 72.8 |
Correctness | 82.1 | 90.7 | 86.6 | 86.2 | 86.1 |
Completeness | 80.9 | 90.0 | 84.6 | 85.6 | 85.8 |
Conciseness | 31.5 | 27.5 | 14.3 | 24.4 | 16.6 |
Helpfulness | 78.2 | 85.7 | 75.0 | 81.5 | 77.4 |
Honesty | 80.7 | 89.5 | 84.9 | 85.8 | 85.0 |
Harmlessness | 81.1 | 90.3 | 85.9 | 85.9 | 85.8 |
| Knowledge & Reasoning | |||||
| General Knowledge & Comprehension | |||||
Arabic MMLU* Accuracy | 89.3 | 89.1 | 86.4 | 89.3 | 88.1 |
Belebele Accuracy | 95.6 | 94.8 | 92.3 | 95.5 | 93.1 |
| STEM & Math | |||||
AraSTEM* Accuracy | 95.5 | 96.6 | 95.6 | 96.3 | 95.2 |
Arabic GSM8K* Accuracy | 86.8 | 93.6 | 93.2 | 94.4 | 93.7 |
GATmath* Accuracy | 98.4 | 98.6 | 97.8 | 98.5 | 98.4 |
| Professional Domains | |||||
MedAraBench* Accuracy | 89.5 | 90.8 | 87.7 | 90.8 | 88.4 |
Arabic Legal (HELM)* Accuracy | 71.3 | 71.6 | 74.9 | 69.5 | 77.0 |
| Arabic Language & Culture | |||||
| Islamic Knowledge & Arab Culture | |||||
IslamicQA Accuracy (mean of the 4 below) | 90.2 | 88.0 | 83.7 | 84.0 | 82.1 |
PaLM-X 2025-2* Accuracy | 95.3 | 94.6 | 92.8 | 94.7 | 93.5 |
QIAS-1* Accuracy | 95.4 | 86.1 | 80.4 | 91.4 | 83.6 |
QIAS-2* Accuracy | 87.7 | 86.8 | 85.1 | 87.8 | 84.8 |
IslamicEval2025-1B* Accuracy | 82.3 | 84.4 | 76.6 | 61.9 | 66.7 |
Arab Culture Accuracy (mean of the 3 below) | 89.1 | 87.2 | 84.7 | 86.6 | 87.9 |
ArabCulture* Accuracy | 89.8 | 89.1 | 86.6 | 89.8 | 89.1 |
AraDiCE-Culture* Accuracy | 87.7 | 83.8 | 82.2 | 82.7 | 88.8 |
Arabic Cuisine^ Accuracy | 89.8 | 88.7 | 85.3 | 87.3 | 85.8 |
| Dialects | |||||
Dialectal Arabic MMLU* Accuracy | 89.6 | 90.0 | 86.6 | 90.1 | 88.7 |
Dialect Identification (QADI) Accuracy | 71.1 | 62.3 | 52.8 | 60.5 | 60.8 |
Alyah* Accuracy | 87.6 | 82.4 | 79.3 | 81.0 | 77.9 |
| Linguistics & Literature | |||||
Arabic MMLU with diacritics Accuracy | 88.2 | 88.4 | 84.6 | 88.8 | 87.4 |
FannOrFlop-MCQ Accuracy | 73.2 | 69.3 | 67.0 | 69.8 | 69.7 |
Arabic Linguistics^ Accuracy (mean of the 2 below) | 94.8 | 94.0 | 88.0 | 95.0 | 93.3 |
Diacritization Accuracy | 91.9 | 92.0 | 88.4 | 93.2 | 92.3 |
Parsing Accuracy | 97.7 | 95.9 | 87.7 | 96.9 | 94.3 |
| Translation | |||||
FLORES200+ LLM-as-a-judge | 91.9 | 83.6 | 84.5 | 86.9 | 83.9 |
| Assistant Capabilities | |||||
| Instruction Following | |||||
Arabic IFBench^ Accuracy (prompt-level strict) | 93.9 | 75.1 | 53.8 | 81.7 | 78.9 |
Arabic IFEval Accuracy | 77.7 | 74.5 | 70.1 | 79.2 | 79.2 |
| Long Context | |||||
AA-LCR (Ar) Accuracy | 77.0 | 78.0 | 80.0 | 74.0 | 73.0 |
| Factuality & Hallucination | |||||
HalluScore Accuracy | 70.9 | 68.8 | 63.9 | 66.8 | 71.2 |
SimpleQA Verified (Ar) Aggregate (2/3 F-score + 1/3 non-hallucination rate) | 31.2 | 35.8 | 32.8 | 20.4 | 22.9 |
F-score | 8.5 | 53.0 | 26.5 | 28.6 | 32.9 |
Non-hallucination rate | 76.7 | 1.5 | 45.3 | 3.9 | 3.0 |
| Agentic | |||||
Terminal Bench 2.1 Accuracy (Avg@3) | 73.8 | 51.3 | 65.2 | 86.1 | 53.9 |
GDPVal Accuracy (@ 75% threshold) | 73.2 | 44.5 | 70.9 | 76.8 | 60.0 |
MCPMark Accuracy (Pass@1) | 68.5 | 52.8 | 48.8 | 66.9 | 45.7 |
WildClawBench (English text-only subset) Mean Score@3 | 50.4 | 46.6 | 56.4 | 59.0 | 34.2 |
Apex-Agents (420 text-only subset, loop agent) Pass@1 (Accuracy) | 18.6 | 15.3 | 23.8 | 36.4 | 9.0 |
GAIA v2 lit (Ar) Accuracy (Pass@1) | 50.3 | 45.5 | 44.2 | 50.4 | 40.0 |
Arabic File Processing Accuracy (@ 75% threshold) | 64.1 | 15.5 | 49.5 | 82.7 | 29.1 |
SWE-Bench Verified (Offline) Accuracy (Pass@1) | 70.2 | 71.8 | 75.6 | 80.8 | 67.8 |
BrowseComp Discard-all@95k | 72.6 | 78.6 | 83.5 | 79.8 | 44.4 |
Starred (*) benchmarks have been audited for sample quality. Items with ambiguous questions, invalid answer options, or indefensible gold labels were excluded, since they can penalize a correct answer or reward a lucky guess. Scores on these benchmarks are reported on the cleaned sets. The audit methodology, the excluded samples and the verified benchmarks are available in the IFM/Arabic-Benchmark-Auditing collection.
Benchmarks marked with ^ will be released by IFM soon.
Quickstart
Serving
The commands below reflect our reference deployment: 16× NVIDIA H100 (80 GB) across two 8-GPU nodes.
vLLM (vllm>=0.30.0) · vLLM recipe:
vllm serve inception42/Jais-3-375B-A23B \
--trust-remote-code \
--dtype bfloat16 \
--tensor-parallel-size 16 \
--enable-expert-parallel \
--reasoning-parser k2_horizon \
--enable-auto-tool-choice \
--tool-call-parser k2_horizon
Use an exact branch name from the inventory with vLLM's --revision option.
SGLang (sglang>=0.5.20) · SGLang recipe:
# Multi-node (2 nodes). Run the same command on every node with:
# <node-rank> = 0 on the head node, 1 on the other node
# <node0-ip> = IP of the head node (reachable from all others)
sglang serve \
--model-path inception42/Jais-3-375B-A23B \
--tp 16 \
--nnodes 2 \
--node-rank <node-rank> \
--dist-init-addr <node0-ip>:20000 \
--ep 16 \
--dtype bfloat16 \
--attention-backend fa3 \
--model-loader-extra-config '{"enable_multithread_load":false}' \
--reasoning-parser k2_horizon \
--host 0.0.0.0 \
--port 30000
Running on H200. With 141 GB per GPU, the model fits on a single 8-GPU H200 node. In that case set tensor parallelism and expert parallelism to 8:
--tensor-parallel-size 8for vLLM,--tp 8 --ep 8for SGLang.
API Usage
Recommended settings:
reasoning_effort="high", the sampling hyperparameters in the table below, and at least 32,768 output tokens. Reasoning depth is selected per request throughchat_template_kwargs. Thinking is returned inreasoning_contentand the answer incontent.
| Parameter | Default | Thinking mode, English | Thinking mode, Arabic |
|---|---|---|---|
temperature |
0.2 | 1.0 | 0.7 |
top_p |
0.95 | 0.95 | 0.95 |
top_k |
20 | 20 | 20 |
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="inception42/Jais-3-375B-A23B",
messages=[{"role": "user", "content": "لدينا عددان مجموعهما 50 وحاصل ضربهما 600. ما هما العددان؟ اشرح خطوات الحل."}],
temperature=0.7,
top_p=0.95,
max_tokens=32768,
extra_body={"top_k": 20, "chat_template_kwargs": {"reasoning_effort": "high"}},
)
message = response.choices[0].message
print("Reasoning:", getattr(message, "reasoning_content", None))
print("Answer:", message.content)
import json
from datetime import datetime
from zoneinfo import ZoneInfo
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
TIMEZONES = {"أبوظبي": "Asia/Dubai", "الرياض": "Asia/Riyadh", "القاهرة": "Africa/Cairo", "لندن": "Europe/London"}
def get_current_time(city: str) -> dict:
if city not in TIMEZONES:
return {"error": f"مدينة غير معروفة: {city}"}
return {"city": city, "time": datetime.now(ZoneInfo(TIMEZONES[city])).strftime("%H:%M")}
tools = [{
"type": "function",
"function": {
"name": "get_current_time",
"description": "يعيد الوقت الحالي في مدينة معينة",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string", "description": "اسم المدينة بالعربية"}},
"required": ["city"],
},
},
}]
available_tools = {"get_current_time": get_current_time}
messages = [{"role": "user", "content": "كم الساعة الآن في القاهرة؟"}]
for _ in range(5): # call the model, run any requested tools, repeat until it answers
message = client.chat.completions.create(
model="inception42/Jais-3-375B-A23B",
messages=messages,
tools=tools,
temperature=0.7,
top_p=0.95,
max_tokens=32768,
extra_body={
"top_k": 20,
"chat_template_kwargs": {"reasoning_effort": "high", "tool_call_format": "xml"},
},
).choices[0].message
messages.append(message)
if not message.tool_calls:
break
for call in message.tool_calls:
tool = available_tools.get(call.function.name)
arguments = json.loads(call.function.arguments)
result = tool(**arguments)
messages.append({"role": "tool", "tool_call_id": call.id,
"content": json.dumps(result, ensure_ascii=False)})
print(message.content)
Our model supports multiple tool-call formats, which can be changed with chat_template_kwargs. The supported values are json, xml, and xml_typed. The default is xml. Keep --tool-call-parser k2_horizon enabled to parse the selected format.
Transformers
Validated with Transformers 5.15.0, PyTorch 2.13.0, Safetensors 0.8.0.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "inception42/Jais-3-375B-A23B"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", dtype="bfloat16", low_cpu_mem_usage=True, trust_remote_code=True
)
inputs = tokenizer("لدينا عددان مجموعهما 50 وحاصل ضربهما 600. ما هما العددان؟ اشرح خطوات الحل.", return_tensors="pt").to(model.device)
inputs.pop("token_type_ids", None)
outputs = model.generate(**inputs, max_new_tokens=32768, temperature=0.7, top_p=0.95, top_k=20, do_sample=True)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Release Artifacts
The table below lists the release artifacts for Jais-3-375B-A23B.
Artifact Index
| Artifact | Link |
|---|---|
| Model card | Hugging Face |
| Training logs | W&B |
| Blog post | Jais 3: Introducing Arabic-centric Agentic AI |
| Checkpoints | Checkpoint inventory |
| Technical report | Coming soon |
| Code repository | Coming soon |
Checkpoint Inventory
Model repository: inception42/Jais-3-375B-A23B
Branch names below refer to this repository.
| Checkpoint | Branch / repository |
|---|---|
| CPT Checkpoint | CPT |
| Cooldown Checkpoint | Cooldown |
| FTPO Checkpoint | FTPO |
| SFT Checkpoint | SFT |
Best Practices
- Reasoning effort: always
high. All reported results use high reasoning effort. Pass{"chat_template_kwargs": {"reasoning_effort": "high"}}on every request. No reasoning ({"reasoning_effort": "low"}) is not recommended except for research on reasoning efforts. - Sampling parameters. Use the values in the table above:
temperature=0.2,top_p=0.95,top_k=20by default. In thinking mode, settemperature=1.0for English andtemperature=0.7for Arabic. Keepmin_p=0.0,presence_penalty=0.0andrepetition_penalty=1.0. - Serving. Use the validated SGLang recipe above: BF16, TP=16 and EP=16 across two 8× H100 nodes, FlashAttention-3, with multithreaded weight loading disabled. On a single 8× H200 node, use TP=8 and EP=8 instead.
- Parsers. Enable the
k2_horizonreasoning parser for chat, and add thek2_horizontool-call parser for agent use. Leave both off for plain completion-style generation.
Intended Use and Limitations
Intended use: The model is designed for Arabic and English assistant and agentic applications, including reasoning and tool-use tasks, as well as for research and experimentation.
Out of scope: The model should not be used in ways that violate applicable laws or regulations. The following uses are also considered out of scope:
- Harmful or malicious use: generating hateful, extremist, discriminatory, or deliberately misleading content, or using the model to support illegal or harmful activities.
- Sensitive information: using the model to generate, expose, or infer personal, confidential, or otherwise sensitive information about individuals or organizations.
- Unsupported languages: applications that depend on reliable performance in languages other than Arabic or English.
- High-stakes decisions: relying on the model to make medical, legal, financial, or safety-critical decisions without appropriate human oversight.
Limitations: The model can produce inaccurate or made-up content and may reflect biases present in its training data. Evaluate it for your use case and add safeguards before deploying it.
Citation
@misc{jais3_2026,
title = {Jais 3: Introducing Arabic-centric Agentic AI},
author = {{IFM Team, Inception42 Team, and Cerebras Team}},
year = {2026},
url = {https://ifm.ai/blog/jais3/},
}
- Downloads last month
- 826