alt.freeweights.mistral / Mistral-Small-4-119B-2603
From: mistralai <huggingface.co/mistralai>Newsgroups: alt.freeweights.mistralSubject:

Mistral-Small-4-119B-2603

Date: 2026-11-14Commit: a11f36bSigned: 2DC28CC7B26A283B ✓

Model with 119.4B parameters. Safetensors weights, 242 GB in all. Published by mistralai under Apache-2.0.

119.4B params242GBMistral-Small-4-119B-2603safetensorspermissive
FactsParams119.4BSize242 GBFormatssafetensorsTasknot taggedLicenseApache-2.0From sourcepermissive
$ fw get mistralai/Mistral-Small-4-119B-2603
# manifest sha256 eafbf654b104… · 242 GB · 28 files
$ fw verify ./Mistral-Small-4-119B-2603 mistralai/Mistral-Small-4-119B-2603
From sourceHosted (signed)mistralai/Mistral-Small-4-119B-2603Last check: 2026-11-14 21:24 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
242 GB
Weights
121 GB (safetensors)
Parameters
119.4B
Formats
safetensors
Task
not tagged
License
Apache-2.0 (permissive)
Files
28, each with a sha256
Publisher
mistralai
Added
2026-11-14
Section
alt.freeweights.mistral
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:24 UTCpassed

Model card

From the publisher at commit a11f36b. Shown as plain text with links; images open at the publisher.

Mistral Small 4 119B A6B#

Mistral Small 4 is a powerful hybrid model capable of acting as both a general instruction model and a reasoning model. It unifies the capabilities of three different model families—Instruct, Reasoning (previously called Magistral), and Devstral—into a single, unified model.

With its multimodal capabilities, efficient architecture, and flexible mode switching, it is a powerful general-purpose model for any task. In a latency-optimized setup, Mistral Small 4 achieves a 40% reduction in end-to-end completion time, and in a throughput-optimized setup, it handles 3x more requests per second compared to Mistral Small 3.

To further improve efficiency you can either take advantages of:

Key Features#

Mistral Small 4 includes the following architectural choices:

  • MoE: 128 experts, 4 active.
  • 119B parameters, with 6.5B activated per token.
  • 256k context length.
  • Multimodal input: Accepts both text and image input, with text output.
  • Instruct and Reasoning functionalities with function calls (reasoning effort configurable per request).

Mistral Small 4 offers the following capabilities:

  • Reasoning Mode: Toggle between fast instant reply mode and reasoning mode, boosting performance with test-time compute when requested.
  • Vision: Analyzes images and provides insights based on visual content, in addition to text.
  • Multilingual: Supports dozens of languages, including English, French, Spanish, German, Italian, Portuguese, Dutch, Chinese, Japanese, Korean, and Arabic.
  • System Prompt: Strong adherence and support for system prompts.
  • Agentic: Best-in-class agentic capabilities with native function calling and JSON output.
  • Speed-Optimized: Delivers best-in-class performance and speed.
  • Apache 2.0 License: Open-source license for both commercial and non-commercial use.
  • Large Context Window: Supports a 256k context window.
  • Reasoning Effort:
    • 'none' → Do not use reasoning
    • 'high' → Use reasoning (recommended for complex prompts) Use reasoning_effort="high" for complex tasks
  • Temperature: 0.7 for reasoning_effort="high". Temp between 0.0 and 0.7 for reasoning_effort="none" depending on task.

Use Cases#

Mistral Small 4 is designed for general chat assistants, coding, agentic tasks, and reasoning tasks (with reasoning mode toggled). Its multimodal capabilities also enable document and image understanding for data extraction and analysis.

Its capabilities are ideal for:

  • Developers interested in coding and agentic capabilities for SWE automation and codebase exploration.
  • Enterprises seeking general chat assistants, agents, and document understanding.
  • Researchers leveraging its math and research capabilities.

Mistral Small 4 is also well-suited for customization and fine-tuning for more specialized tasks.

Examples#
  • General chat assistant
  • Document parsing and extraction
  • Coding agent
  • Research assistant
  • Customization & fine-tuning
  • And more...

Benchmarks#

Comparison with internal models#

Depending on your tasks you can trigger reasoning thanks to the support of the per-request parameter reasoning_effort. Set it to:

Image: Internal benchmark

Comparing Reasoning Models#

Image: Internal benchmark - Reasoning

Comparison with other models#

Mistral Small 4 with reasoning achieves competitive scores, matching or surpassing GPT-OSS 120B across all three benchmarks while generating significantly shorter outputs. On AA LCR, Mistral Small 4 scores 0.72 with just 1.6K characters, whereas Qwen models require 3.5-4x more output (5.8-6.1K) for comparable performance. On LiveCodeBench, Mistral Small 4 outperforms GPT-OSS 120B while producing 20% less output. This efficiency reduces latency, inference costs, and improves user experience.

Image: Comparison benchmark - LCR Image: Comparison benchmark - LiveCodeBench Image: Comparison benchmark - AIME25

Usage#

You can find Mistral Small 4 support on multiple libraries for inference and fine-tuning. We here thank every contributors and maintainers that helped us making it happen.

Inference#

The model can be deployed with:

For optimal performance, we recommend using the Mistral AI API if local serving is subpar.

Fine-Tuning#

Fine-tune the model via:

We recommend using Mistral Small 4 with the vLLM library for production-ready inference.

Installation#

Install latest vllm:

uv pip install -U vllm

Doing so should automatically install mistral_common >= 1.11.0.

To check:

python -c "import mistral_common; print(mistral_common.__version__)"

You can also make use of a ready-to-go docker image or on the docker hub.

Serve the Model#

We recommend a server/client setup:

vllm serve mistralai/Mistral-Small-4-119B-2603 --max-model-len 262144 --tensor-parallel-size 2 --attention-backend FLASH_ATTN_MLA \
  --tool-call-parser mistral --enable-auto-tool-choice --reasoning-parser mistral --max_num_batched_tokens 16384 --max_num_seqs 128 \
  --gpu_memory_utilization 0.8
Ping the Server#

Instruction Following

Mistral Small 4 can follow your instructions to the letter.

from datetime import datetime, timedelta

from openai import OpenAI
from huggingface_hub import hf_hub_download

# Modify OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

TEMP = 0.1
# use TEMP = 0.7 for reasoning="high"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

models = client.models.list()
model = models.data[0].id


def load_system_prompt(repo_id: str, filename: str) -> str:
    file_path = hf_hub_download(repo_id=repo_id, filename=filename)
    with open(file_path, "r") as file:
        system_prompt = file.read()
    today = datetime.today().strftime("%Y-%m-%d")
    yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d")
    model_name = repo_id.split("/")[-1]
    return system_prompt.format(name=model_name, today=today, yesterday=yesterday)


SYSTEM_PROMPT = load_system_prompt(model, "SYSTEM_PROMPT.txt")

messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {
        "role": "user",
        "content": "Write me a sentence where every word starts with the next letter in the alphabet - start with 'a' and end with 'z'.",
    },
]

response = client.chat.completions.create(
    model=model,
    messages=messages,
    temperature=TEMP,
    reasoning_effort="none",
)

assistant_message = response.choices[0].message.content
print(assistant_message)

Tool Call

Let's solve some equations thanks to our simple Python calculator tool.

import json
from datetime import datetime, timedelta

from openai import OpenAI
from huggingface_hub import hf_hub_download

# Modify OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

TEMP = 0.1

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

models = client.models.list()
model = models.data[0].id


def load_system_prompt(repo_id: str, filename: str) -> str:
    file_path = hf_hub_download(repo_id=repo_id, filename=filename)
    with open(file_path, "r") as file:
        system_prompt = file.read()
    today = datetime.today().strftime("%Y-%m-%d")
    yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d")
    model_name = repo_id.split("/")[-1]
    return system_prompt.format(name=model_name, today=today, yesterday=yesterday)


SYSTEM_PROMPT = load_system_prompt(model, "SYSTEM_PROMPT.txt")

image_url = "https://math-coaching.com/img/fiche/46/expressions-mathematiques.jpg"


def my_calculator(expression: str) -> str:
    return str(eval(expression))


tools = [
    {
        "type": "function",
        "function": {
            "name": "my_calculator",
            "description": "A calculator that can evaluate a mathematical expression.",
            "parameters": {
                "type": "object",
                "properties": {
                    "expression": {
                        "type": "string",
                        "description": "The mathematical expression to evaluate.",
                    },
                },
                "required": ["expression"],
            },
        },
    },
    {
        "type": "function",
        "function": {
            "name": "rewrite",
            "description": "Rewrite a given text for improved clarity",
            "parameters": {
                "type": "object",
                "properties": {
                    "text": {
                        "type": "string",
                        "description": "The input text to rewrite",
                    }
                },
            },
        },
    },
]

messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Thanks to your calculator, compute the results for the equations that involve numbers displayed in the image.",
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": image_url,
                },
            },
        ],
    },
]

response = client.chat.completions.create(
    model=model,
    messages=messages,
    temperature=TEMP,
    tools=tools,
    tool_choice="auto",
    reasoning_effort="none",
)

tool_calls = response.choices[0].message.tool_calls

results = []
for tool_call in tool_calls:
    function_name = tool_call.function.name
    function_args = tool_call.function.arguments
    if function_name == "my_calculator":
        result = my_calculator(**json.loads(function_args))
        results.append(result)

messages.append({"role": "assistant", "tool_calls": tool_calls})
for tool_call, result in zip(tool_calls, results):
    messages.append(
        {
            "role": "tool",
            "tool_call_id": tool_call.id,
            "name": tool_call.function.name,
            "content": result,
        }
    )


response = client.chat.completions.create(
    model=model,
    messages=messages,
    temperature=TEMP,
    reasoning_effort="none",
)

print(response.choices[0].message.content)

Vision Reasoning

Let's see if the Mistral Small 4 knows when to pick a fight !

from datetime import datetime, timedelta

from openai import OpenAI
from huggingface_hub import hf_hub_download

# Modify OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

TEMP = 0.7

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

models = client.models.list()
model = models.data[0].id


def load_system_prompt(repo_id: str, filename: str) -> str:
    file_path = hf_hub_download(repo_id=repo_id, filename=filename)
    with open(file_path, "r") as file:
        system_prompt = file.read()
    today = datetime.today().strftime("%Y-%m-%d")
    yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d")
    model_name = repo_id.split("/")[-1]
    return system_prompt.format(name=model_name, today=today, yesterday=yesterday)


SYSTEM_PROMPT = load_system_prompt(model, "SYSTEM_PROMPT.txt")
image_url = "https://static.wikia.nocookie.net/essentialsdocs/images/7/70/Battle.png/revision/latest?cb=20220523172438"

messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "What action do you think I should take in this situation? List all the possible actions and explain why you think they are good or bad.",
            },
            {"type": "image_url", "image_url": {"url": image_url}},
        ],
    },
]


response = client.chat.completions.create(
    model=model,
    messages=messages,
    temperature=TEMP,
    reasoning_effort="high",
)

print(response.choices[0].message.content)

Transformers#

Installation#

You need to install the main branch of Transformers to use Mistral Small 4:

uv pip install git+https://github.com/huggingface/transformers.git
Inference#

Python Inference Snippet

import torch
from transformers import AutoProcessor, Mistral3ForConditionalGeneration


model_id = "mistralai/Mistral-Small-4-119B-2603"

processor = AutoProcessor.from_pretrained(model_id)
model = Mistral3ForConditionalGeneration.from_pretrained(
    model_id, device_map="auto"
)

image_url = "https://static.wikia.nocookie.net/essentialsdocs/images/7/70/Battle.png/revision/latest?cb=20220523172438"

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "What action do you think I should take in this situation? List all the possible actions and explain why you think they are good or bad.",
            },
            {"type": "image_url", "image_url": {"url": image_url}},
        ],
    },
]

inputs = processor.apply_chat_template(messages, return_tensors="pt", tokenize=True, return_dict=True, reasoning_effort="high")
inputs = inputs.to(model.device)

output = model.generate(
    **inputs,
    max_new_tokens=1024,
    do_sample=True,
    temperature=0.7,
)[0]

# Setting `skip_special_tokens=False` to visualize reasoning trace between [THINK] [/THINK] tags.
decoded_output = processor.decode(output[len(inputs["input_ids"][0]):], skip_special_tokens=False) 
print(decoded_output)

License#

This model is licensed under the Apache 2.0 License.

You must not use this model in a manner that infringes, misappropriates, or violates any third party’s rights, including intellectual property rights.

Files

28 files · 242 GBWeights 121 GB (safetensors). Sizes and sha256 from the signed manifest.
Show all 28 files with their sha256
FileSizesha256
.gitattributes1.94 KBb0104b06b0731c9805a1fa6f175b4b1ed601b389ef9f30548d7c2f2224e7d8e9
README.md16.5 KB243f9d4f6cdb5644ca93d34d2e002822cb946803a6a7e3aed39b56d6ceeb1996
SYSTEM_PROMPT.txt2.37 KB016a7dca45534be079c6bcf872530947aa511d10b80c5e7888a1cee5df124249
chat_template.jinja15.2 KBde56319deee1deb2b88cf576cf20bdc57a8789723f7ff75f9c54acd740d15ecb
config.json2.44 KB113ea221dcf0dc7adc2af52ad84933a5830b663b679a4753a78a98f757de8737
consolidated-00001-of-00007.safetensors20.0 GBe493a53149d9fb05e48d5e814e4e40f97a605d32c0d579d15ebc60684af51ae6
consolidated-00002-of-00007.safetensors20.0 GB82bf13d11290a0d3ee344e5a07224c623ae5f9c473fe774e24dfccb3506fe7b9
consolidated-00003-of-00007.safetensors20.0 GB1410d0d2223d665800f7d5b05d7d8adf2df4fb9c7e2e71f3b272f5a5bf07f1e6
consolidated-00004-of-00007.safetensors20.0 GB8725562ee8c0ee67056fe128220f201456abad6fa2039c61bc7421de8baa4dbd
consolidated-00005-of-00007.safetensors20.0 GBee67e9f47175ac89750790fcc5751a497ecedfb424779a66d9d5e7fcab468364
consolidated-00006-of-00007.safetensors19.9 GB793e1be0042f616a50d73f083e47aadaf98ab65e9c909b8986a81e6611565428
consolidated-00007-of-00007.safetensors1.07 GB55ec7d746e71207f12b5303c65377b84612859bc78a0cceefe9ccfc60cc7e6de
consolidated.safetensors.index.json3.62 MB8d7eb9d015c1608e95c1e0d26641fcdf54bf25f46d96aac011b700352992af19
generation_config.json132 B28133232e34985995465918c59046b361186c9a707cfc4de90571fac028cb2f5
images/aime.png601 KBda1ee41ac7cebc824d1e732bef13853ac855dacf08b8c5811fd201f7c7cb7180
images/image2.png152 KBabde364d45a8f25096dbe279b15db1acd1d4ea6f74fe858281266d5748ffd377
images/image3.png220 KBb38c8a96b124ff831fa9e7270939123565b396485b48f3219f0387142661b735
images/lcr.png586 KBbbbe6dd105653d399b6641ab2093502e4d0d9dddf485480e18b93c67c1bf1bba
images/livecode.png571 KBf7e7c298ddfd1730e14aa79983bf94c6cfac332558561f083e85787629ecaea3
model-00001-of-00003.safetensors49.1 GB811a33f74a5160806bf59a5134f015a86386eea49d1b8d2f51c6509382cf5f03
model-00002-of-00003.safetensors49.1 GB50f010b6318591e49c41dda94926dfaa436f17219ec79f27289a72dd93e1effa
model-00003-of-00003.safetensors22.7 GB166755c02c0c0682302d460c0eadcf138758a022d9a578c7eb74f3251e770999
model.safetensors.index.json160 KB30f9eae8bd2738cad0cd3bd4f7db8e3aac177f2b644bba0ff35a46a15efc8f39
params.json1.51 KBd18e00ba8bd5722364cb629ea541c56b3b49ff0780f35a203b04c87291fbd535
processor_config.json701 B75fd59fef06dfa512cda2a8db466816f65dce0577d767088e1cac60335051da6
tekken.json16.3 MBb1272b956bd6edd2d2c674c76896c7661308c9e723997b0afb55ecb429cb5dc7
tokenizer.json17.1 MB2ba5b3330fd84d5376fcca797cfb3b42eee6241ce23e3271e6fb2a115a8751bd
tokenizer_config.json21.1 KB3652d4cf7e8bd9f8d4cd9fd8df4ae7f47647a9846dadc6e45b1c09d8a88fc7ec
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
a11f36bebf pinned now manifest updated, same commit2026-11-14 21:24 UTC28 files · 242 GB
a11f36bebf2026-11-14 21:24 UTC28 files · 242 GB

Use it

$ fw get mistralai/Mistral-Small-4-119B-2603
# manifest sha256 eafbf654b104… · 242 GB · 28 files
$ fw verify ./Mistral-Small-4-119B-2603 mistralai/Mistral-Small-4-119B-2603
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/mistralai/Mistral-Small-4-119B-2603.json --dir ./Mistral-Small-4-119B-2603 $ python3 fw.py verify ./Mistral-Small-4-119B-2603 ./mistralai__Mistral-Small-4-119B-2603.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mistralai/Mistral-Small-4-119B-2603 --revision a11f36bebf709121056b1dbcc943d1c6afbe494d --local-dir ./Mistral-Small-4-119B-2603

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
243f9d4f6cdb5644ca93d34d2e002822cb946803a6a7e3aed39b56d6ceeb1996
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: mistralai <huggingface.co/mistralai>Newsgroups: alt.freeweights.mistralSubject: Mistral-Small-4-119B-2603Date: 2026-11-14Commit: a11f36bSigned: 2DC28CC7B26A283B ✓
Upstream
mistralai/Mistral-Small-4-119B-2603
Pinned commit
a11f36bebf709121056b1dbcc943d1c6afbe494d
Manifest
Mistral-Small-4-119B-2603.json · .minisig
Manifest sha256
eafbf654b1046b3b31f1dd0586d9feb5a22af579eb925b63f2c8c80bfef66e29
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:24 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/mistralai/Mistral-Small-4-119B-2603.json $ curl -O https://freeweights.allternit.com/manifests/mistralai/Mistral-Small-4-119B-2603.json.minisig $ minisign -Vm Mistral-Small-4-119B-2603.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

6 models in the catalog name this one as their parent.

Fine-tunes
2
Quantizations
4
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mistralai/Mistral-Small-4-119B-2603
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Mistral-Small-4-119B-2603.json. Provenance. Takedown history: none.

Variants

4 quantized or adapter builds of Mistral-Small-4-119B-2603. Each has its own license check and page.

From: bartowski <huggingface.co/bartowski>Subject: alamios_Mistral-Small-3.1-DRAFT-0.5B-GGUF
From: microsoft <huggingface.co/microsoft>Subject: chatbench-mistral-7b
From: NousResearch <huggingface.co/NousResearch>Subject: DeepHermes-3-Mistral-24B-Preview
From: mistralai <huggingface.co/mistralai>Subject: Devstral-Small-2-24B-Instruct-2512
From: mlx-community <huggingface.co/mlx-community>Subject: Devstral-Small-2-24B-Instruct-2512-4bit
From: mlx-community <huggingface.co/mlx-community>Subject: Devstral-Small-2-24B-Instruct-2512-6bit