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.

Jais-3-375B-A23B benchmark results

Benchmark Results

Reference models
Jais-3-375B-A23BQwen3.5-397B-A17BMiniMax M3Qwen3.8-Flash-NextNVIDIA Nemotron 3 Ultra
# Params375B397B428B180B550B
# Activated params23B17B23B6B55B
ArchitectureMoEMoEMoEMoEMoE
Open-ended Generation
AraGen
AraGen v3 (3C3H)
09-2025
72.478.971.974.972.8
Correctness
82.190.786.686.286.1
Completeness
80.990.084.685.685.8
Conciseness
31.527.514.324.416.6
Helpfulness
78.285.775.081.577.4
Honesty
80.789.584.985.885.0
Harmlessness
81.190.385.985.985.8
Knowledge & Reasoning
General Knowledge & Comprehension
Arabic MMLU*
Accuracy
89.389.186.489.388.1
Belebele
Accuracy
95.694.892.395.593.1
STEM & Math
AraSTEM*
Accuracy
95.596.695.696.395.2
Arabic GSM8K*
Accuracy
86.893.693.294.493.7
GATmath*
Accuracy
98.498.697.898.598.4
Professional Domains
MedAraBench*
Accuracy
89.590.887.790.888.4
Arabic Legal (HELM)*
Accuracy
71.371.674.969.577.0
Arabic Language & Culture
Islamic Knowledge & Arab Culture
IslamicQA
Accuracy (mean of the 4 below)
90.288.083.784.082.1
PaLM-X 2025-2*
Accuracy
95.394.692.894.793.5
QIAS-1*
Accuracy
95.486.180.491.483.6
QIAS-2*
Accuracy
87.786.885.187.884.8
IslamicEval2025-1B*
Accuracy
82.384.476.661.966.7
Arab Culture
Accuracy (mean of the 3 below)
89.187.284.786.687.9
ArabCulture*
Accuracy
89.889.186.689.889.1
AraDiCE-Culture*
Accuracy
87.783.882.282.788.8
Arabic Cuisine^
Accuracy
89.888.785.387.385.8
Dialects
Dialectal Arabic MMLU*
Accuracy
89.690.086.690.188.7
Dialect Identification (QADI)
Accuracy
71.162.352.860.560.8
Alyah*
Accuracy
87.682.479.381.077.9
Linguistics & Literature
Arabic MMLU with diacritics
Accuracy
88.288.484.688.887.4
FannOrFlop-MCQ
Accuracy
73.269.367.069.869.7
Arabic Linguistics^
Accuracy (mean of the 2 below)
94.894.088.095.093.3
Diacritization
Accuracy
91.992.088.493.292.3
Parsing
Accuracy
97.795.987.796.994.3
Translation
FLORES200+
LLM-as-a-judge
91.983.684.586.983.9
Assistant Capabilities
Instruction Following
Arabic IFBench^
Accuracy (prompt-level strict)
93.975.153.881.778.9
Arabic IFEval
Accuracy
77.774.570.179.279.2
Long Context
AA-LCR (Ar)
Accuracy
77.078.080.074.073.0
Factuality & Hallucination
HalluScore
Accuracy
70.968.863.966.871.2
SimpleQA Verified (Ar)
Aggregate (2/3 F-score + 1/3 non-hallucination rate)
31.235.832.820.422.9
F-score
8.553.026.528.632.9
Non-hallucination rate
76.71.545.33.93.0
Agentic
Terminal Bench 2.1
Accuracy (Avg@3)
73.851.365.286.153.9
GDPVal
Accuracy (@ 75% threshold)
73.244.570.976.860.0
MCPMark
Accuracy (Pass@1)
68.552.848.866.945.7
WildClawBench (English text-only subset)
Mean Score@3
50.446.656.459.034.2
Apex-Agents (420 text-only subset, loop agent)
Pass@1 (Accuracy)
18.615.323.836.49.0
GAIA v2 lit (Ar)
Accuracy (Pass@1)
50.345.544.250.440.0
Arabic File Processing
Accuracy (@ 75% threshold)
64.115.549.582.729.1
SWE-Bench Verified (Offline)
Accuracy (Pass@1)
70.271.875.680.867.8
BrowseComp
Discard-all@95k
72.678.683.579.844.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 8 for vLLM, --tp 8 --ep 8 for 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 through chat_template_kwargs. Thinking is returned in reasoning_content and the answer in content.

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

  1. 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.
  2. Sampling parameters. Use the values in the table above: temperature=0.2, top_p=0.95, top_k=20 by default. In thinking mode, set temperature=1.0 for English and temperature=0.7 for Arabic. Keep min_p=0.0, presence_penalty=0.0 and repetition_penalty=1.0.
  3. 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.
  4. Parsers. Enable the k2_horizon reasoning parser for chat, and add the k2_horizon tool-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
Safetensors
Model size
379B params
Tensor type
BF16
·
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for inception42/Jais-3-375B-A23B

Quantizations
1 model

Collection including inception42/Jais-3-375B-A23B