Model comparison · 2026-10-17
Jais 3 or K2 Horizon? Choosing between IFM's two models
ifm/jais-3-mova-36b-a4b and ifm/k2-horizon-375b-a23b: differences in language, size, reasoning levels and tool_choice. Both carry a 524,288-token context.
Short answer: Jais 3 for Arabic, K2 Horizon for forced tool calls
LLMTR is a gateway that gives access to language models from different providers through one OpenAI-compatible API. Both models are called on the same endpoint, https://llmtr.com/v1/chat/completions; to switch between them you change only the model id: ifm/jais-3-mova-36b-a4b or ifm/k2-horizon-375b-a23b.
Both models come from the Institute of Foundation Models (IFM) at MBZUAI. According to the announcement by IFM and Inception42, Jais 3 is built on the K2 Horizon model family and is the family's first adaptation to a new language. IFM says Jais 3 is designed for Arabic and English assistant and agentic applications; K2 Horizon's model card lists English as the language.
Jais 3 or K2 Horizon?
If your job is Arabic text, for example answering, classifying or summarizing Arabic customer messages, start with Jais 3; the model was built for that language. For short jobs where you need reasoning off, Jais 3's low level helps too.
If an agent framework sends tool_choice required or a named function, choose K2 Horizon; Jais 3 refuses those forms with 400. K2 Horizon reasons before every answer and reasoning cannot be turned off, so give max_tokens room for the reasoning.
Both models accept the same request body. The Python example below sends the same question to both models in turn and prints, for each, the tokens spent, the finish_reason value and the answer. Running this comparison with your own typical request is the most direct way to choose between the two.
An OpenAI Python SDK example that sends the same question to ifm/jais-3-mova-36b-a4b and ifm/k2-horizon-375b-a23b with reasoning_effort high and prints the tokens, finish_reason and answer for each model.
import os
from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key=os.environ["LLMTR_API_KEY"])
PROMPT = "Summarize in two sentences why API keys should not be stored in a mobile app."
for model in ["ifm/jais-3-mova-36b-a4b", "ifm/k2-horizon-375b-a23b"]:
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": PROMPT}],
reasoning_effort="high",
max_tokens=8192,
)
print(model, "|", response.usage.total_tokens, "tokens |", response.choices[0].finish_reason)
print(response.choices[0].message.content)
The two models' values on LLMTR
The table shows the two rows' catalog values side by side. Both accept text only and support JSON output.
| Property | ifm/jais-3-mova-36b-a4b | ifm/k2-horizon-375b-a23b |
|---|---|---|
| Parameters | 36 billion total, 4 billion active | 375 billion total, 23 billion active |
| Languages (model card) | Arabic, English | English |
| Context window | 524,288 tokens | 524,288 tokens |
| reasoning_effort | high (default), low (off) | medium, high; reasoning always on |
| tool_choice | auto only | auto, required, named, none |
| JSON | json_object, json_schema | json_object, json_schema |
| Daily allowance (smaller on a new account's first day) | 200,000 tokens | 200,000 tokens (counted apart) |
| Free period | until 5 November 2026, 23:59 (TRT) | until 5 November 2026, 23:59 (TRT) |
Using both in one flow
The two models' daily allowances are counted apart: 200,000 tokens for Jais 3 and 200,000 tokens for K2 Horizon; on a new account both are smaller on the first day. A flow that handles Arabic user messages with Jais 3 and the intermediate steps that need a forced tool call with K2 Horizon uses both allowances.
When you switch from one model to the other in a multi-turn conversation, you can send the history as it is; you do not need to send reasoning_content back in earlier assistant messages. Both models return the reasoning separately in the reasoning_content field.
Moving a loop that runs on Jais 3 with tool_choice auto to K2 Horizon needs no change; K2 Horizon supports auto as well.
Open weights and LLMTR
The weights of both models are published on IFM's Hugging Face page under Apache 2.0. According to the announcement by IFM and Inception42, the Jais 3 family has six language models between 900 million and 375 billion parameters; the Jais 3 row offered through the API on LLMTR is the 36B (4B active) one.
You can run the weights on your own servers; then you manage the hardware, the scaling and the updates. On LLMTR you reach the same models with an API key, without setting up a server, and the request body is the same as for the other models in the catalog.
Which you choose depends on the volume of the job and on where the data has to be processed. The API is enough to try the models and build a flow; for sustained high-volume jobs, or jobs where the data must stay on your own infrastructure, consider running the weights yourself.
Free period and the data note
Both rows are free until 5 November 2026, 23:59 (TRT) and start returning 410 model_retired on 6 November 2026 at 00:00; requests are not routed to another model. When the allowance is used up the API returns 429, the Retry-After header tells you when you can try again, and the allowance renews at 00:00 (TRT). New accounts start with a smaller allowance on their first day.
According to the data note on the LLMTR model pages, prompts and completions may be logged by the provider and used to improve the model; do not send sensitive, personal or customer data.
Choose between Jais 3 and K2 Horizon
Send the same request to both models, compare the answer and the token spending, and choose by the tool_choice form your job needs.
- Define the job. Settle the language of the job (Arabic or English) and whether your agent framework sends forced tool calls.
- Compare. Send a typical request to ifm/jais-3-mova-36b-a4b and ifm/k2-horizon-375b-a23b and record the answer, total_tokens and finish_reason.
- Choose. Use Jais 3 for Arabic work and K2 Horizon when a forced tool call is needed; you can also combine both in one flow.
Frequently asked questions
How are Jais 3 and K2 Horizon related?
Both are MBZUAI IFM models. According to the announcement by IFM and Inception42, Jais 3 is built on the K2 Horizon family and is the family's first adaptation to a new language.
Which one supports tool calling more flexibly?
K2 Horizon supports auto, required, a named function and none for tool_choice. Jais 3 works with auto only; the other forms return 400.
Do the two models share a daily allowance?
No. Each model has its own 200,000 tokens per account per day; on a new account that allowance is smaller on the first day. Both allowances renew at 00:00 (TRT).
Related posts
- Arabic language model API: a first request with Jais 3
- The K2 Horizon API: a 375B-parameter open-weight model
- Arabic models on LLMTR: Jais 3, Jais ASR and K2 Horizon
- An Arabic agent that calls tools with Jais 3: the OpenAI tools loop
- reasoning_effort and max_tokens on K2 Horizon
- Jais 3 or Claude Haiku 5.5 for Arabic?