alt.freeweights.mistral / Magistral-Small-2507
From: mistralai <huggingface.co/mistralai>Newsgroups: alt.freeweights.mistralSubject:

Magistral-Small-2507

Date: 2026-11-15Commit: b3583a4Signed: 2DC28CC7B26A283B ✓

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

23.6B params94.3GBMagistral-Small-2507safetensorspermissive
FactsParams23.6BSize94.3 GBFormatssafetensorsTasknot taggedLicenseApache-2.0From sourcepermissive
$ fw get mistralai/Magistral-Small-2507
# manifest sha256 ab54c1070753… · 94.3 GB · 19 files
$ fw verify ./Magistral-Small-2507 mistralai/Magistral-Small-2507
From sourceHosted (signed)mistralai/Magistral-Small-2507Last check: 2026-11-15 03:27 UTC

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

Fine-tune of Mistral-Small-3.1-24B-Instruct-2503.

Works with

Runs with

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

Overview

Size
94.3 GB
Weights
47.1 GB (safetensors)
Parameters
23.6B
Formats
safetensors
Task
not tagged
License
Apache-2.0 (permissive)
Files
19, each with a sha256
Publisher
mistralai
Added
2026-11-15
Section
alt.freeweights.mistral
Lineage

Original release from the publisher.

Base model: mistralai/Mistral-Small-3.1-24B-Instruct-2503

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-15 03:27 UTCpassed

Model card

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

Magistral Small 1.1#

Building upon Mistral Small 3.1 (2503), with added reasoning capabilities, undergoing SFT from Magistral Medium traces and RL on top, it's a small, efficient reasoning model with 24B parameters.

Magistral Small can be deployed locally, fitting within a single RTX 4090 or a 32GB RAM MacBook once quantized.

Learn more about Magistral in our blog post.

The model was presented in the paper Magistral.

Updates compared with Magistral Small 1.0#

Magistral Small 1.1 should give you about the same performance as Magistral Small 1.0 as seen in the benchmark results.

The update involves the following features:

  • Better tone and model behaviour. You should experiment better LaTeX and Markdown formatting, and shorter answers on easy general prompts.
  • The model is less likely to enter infinite generation loops.
  • [THINK] and [/THINK] special tokens encapsulate the reasoning content in a thinking chunk. This makes it easier to parse the reasoning trace and prevents confusion when the '[THINK]' token is given as a string in the prompt.
  • The reasoning prompt is now given in the system prompt.

Key Features#

  • Reasoning: Capable of long chains of reasoning traces before providing an answer.
  • Multilingual: Supports dozens of languages, including English, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Nepali, Polish, Portuguese, Romanian, Russian, Serbian, Spanish, Turkish, Ukrainian, Vietnamese, Arabic, Bengali, Chinese, and Farsi.
  • Apache 2.0 License: Open license allowing usage and modification for both commercial and non-commercial purposes.
  • Context Window: A 128k context window, but performance might degrade past 40k. Hence we recommend setting the maximum model length to 40k.

Benchmark Results#

ModelAIME24 pass@1AIME25 pass@1GPQA DiamondLivecodebench (v5)
Magistral Medium 1.172.03%60.99%71.46%59.35%
Magistral Medium 1.073.59%64.95%70.83%59.36%
Magistral Small 1.170.52%62.03%65.78%59.17%
Magistral Small 1.070.68%62.76%68.18%55.84%

Sampling parameters#

Please make sure to use:

  • top_p: 0.95
  • temperature: 0.7
  • max_tokens: 40960

Basic Chat Template#

We highly recommend including the following system prompt for the best results, you can edit and customise it if needed for your specific use case.

First draft your thinking process (inner monologue) until you arrive at a response. Format your response using Markdown, and use LaTeX for any mathematical equations. Write both your thoughts and the response in the same language as the input.

Your thinking process must follow the template below:[THINK]Your thoughts or/and draft, like working through an exercise on scratch paper. Be as casual and as long as you want until you are confident to generate the response. Use the same language as the input.[/THINK]Here, provide a self-contained response.

The [THINK] and [/THINK] are special tokens that must be encoded as such.

Please make sure to use mistral-common as the source of truth. Find below examples from libraries supporting mistral-common.

We invite you to choose, depending on your use case and requirements, between keeping reasoning traces during multi-turn interactions or keeping only the final assistant response.

Usage#

The model can be used with the following frameworks;

Inference#

In addition the community has prepared quantized versions of the model that can be used with the following frameworks (alphabetically sorted):

Training#

Fine-tuning is possible with (alphabetically sorted):

We recommend using this model with the vLLM library to implement production-ready inference pipelines.

Installation

Make sure you install the latest vLLM code:

pip install -U vllm \
    --pre \
    --extra-index-url https://wheels.vllm.ai/nightly

Doing so should automatically install mistral_common >= 1.8.2.

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 model as follows:

vllm serve mistralai/Magistral-Small-2507 --reasoning-parser mistral --tokenizer_mode mistral --config_format mistral --load_format mistral --tool-call-parser mistral --enable-auto-tool-choice --tensor-parallel-size 2

Ping model as follows:

Python snippet

from typing import Any
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
TOP_P = 0.95
MAX_TOK = 40_960

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) -> dict[str, Any]:
    file_path = hf_hub_download(repo_id=repo_id, filename=filename)
    with open(file_path, "r") as file:
        system_prompt = file.read()

    index_begin_think = system_prompt.find("[THINK]")
    index_end_think = system_prompt.find("[/THINK]")

    return {
        "role": "system",
        "content": [
            {"type": "text", "text": system_prompt[:index_begin_think]},
            {
                "type": "thinking",
                "thinking": system_prompt[
                    index_begin_think + len("[THINK]") : index_end_think
                ],
                "closed": True,
            },
            {
                "type": "text",
                "text": system_prompt[index_end_think + len("[/THINK]") :],
            },
        ],
    }

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

query = "Write 4 sentences, each with at least 8 words. Now make absolutely sure that every sentence has exactly one word less than the previous sentence."
# or try out other queries
# query = "Exactly how many days ago did the French Revolution start? Today is June 4th, 2025."
# query = "Think about 5 random numbers. Verify if you can combine them with addition, multiplication, subtraction or division to 133"
# query = "If it takes 30 minutes to dry 12 T-shirts in the sun, how long does it take to dry 33 T-shirts?"

messages = [
    SYSTEM_PROMPT,
    {"role": "user", "content": query}
]
stream = client.chat.completions.create(
  model=model,
  messages=messages,
  stream=True,
  temperature=TEMP,
  top_p=TOP_P,
  max_tokens=MAX_TOK,
)

print("client: Start streaming chat completions...:\n")
printed_reasoning_content = False
answer = []

for chunk in stream:
    reasoning_content = None
    content = None
    # Check the content is reasoning_content or content
    if hasattr(chunk.choices[0].delta, "reasoning_content"):
        reasoning_content = chunk.choices[0].delta.reasoning_content
    elif hasattr(chunk.choices[0].delta, "content"):
        content = chunk.choices[0].delta.content

    if reasoning_content is not None:
        if not printed_reasoning_content:
            printed_reasoning_content = True
            print("Start reasoning:\n", end="", flush=True)
        print(reasoning_content, end="", flush=True)
    elif content is not None:
        # Extract and print the content
        if not reasoning_content and printed_reasoning_content:
            answer.extend(content)
        print(content, end="", flush=True)

if answer:
    print("\n\n=============\nAnswer\n=============\n")
    print("".join(answer))
else:
    print("\n\n=============\nNo Answer\n=============\n")
    print("No answer was generated by the model, probably because the maximum number of tokens was reached.")

# client: Start streaming chat completions...:
#
# Start reasoning:
# First, I need to write ...
# ...
#
#
# =============
# Answer
# =============
# 
# Here are four sentences where each has at least 8 words, and each subsequent sentence has exactly one word less than the previous one:

# 1. The quick brown fox jumps over the lazy dog and rests.
# 2. The lazy dog rests under the big shady tree peacefully.
# 3. The big shady tree provides ample shade during summer.
# 4. The tree's leaves are very lush and green.
Transformers#

Make sure you install the latest Transformers code:

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

Also make sure to install mistral_common >= 1.8.2:

pip install --upgrade mistral-common

To check:

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

Now you can use Transformers with Magistral:

Python snippet

from typing import Any
import torch

from huggingface_hub import hf_hub_download
from transformers import AutoModelForCausalLM, AutoTokenizer


TEMP = 0.7
TOP_P = 0.95
MAX_TOK = 40_960

def load_system_prompt(repo_id: str, filename: str) -> dict[str, Any]:
    file_path = hf_hub_download(repo_id=repo_id, filename=filename)
    with open(file_path, "r") as file:
        system_prompt = file.read()

    index_begin_think = system_prompt.find("[THINK]")
    index_end_think = system_prompt.find("[/THINK]")

    return {
        "role": "system",
        "content": [
            {"type": "text", "text": system_prompt[:index_begin_think]},
            {
                "type": "thinking",
                "thinking": system_prompt[
                    index_begin_think + len("[THINK]") : index_end_think
                ],
                "closed": True,
            },
            {
                "type": "text",
                "text": system_prompt[index_end_think + len("[/THINK]") :],
            },
        ],
    }


model_id = "mistralai/Magistral-Small-2507"
SYSTEM_PROMPT = load_system_prompt(model_id, "SYSTEM_PROMPT.txt")
query = "Think about 5 random numbers. Verify if you can combine them with addition, multiplication, subtraction or division to 133."
# or try out other queries
# query = "Exactly how many days ago did the French Revolution start? Today is June 4th, 2025."
# query = "Write 4 sentences, each with at least 8 words. Now make absolutely sure that every sentence has exactly one word less than the previous sentence."
# query = "If it takes 30 minutes to dry 12 T-shirts in the sun, how long does it take to dry 33 T-shirts?"



tokenizer = AutoTokenizer.from_pretrained(model_id, tokenizer_type="mistral", use_fast=False)
model = AutoModelForCausalLM.from_pretrained(
    model_id, torch_dtype=torch.bfloat16, device_map="auto"
)

input_ids = tokenizer.apply_chat_template(
    [
        SYSTEM_PROMPT,
        {"role": "user", "content": query},
    ],
)

output = model.generate(
    input_ids=torch.tensor([input_ids], device=model.device),
    pad_token_id=tokenizer.pad_token_id,
    eos_token_id=tokenizer.eos_token_id,
    temperature=TEMP,
    top_p=TOP_P,
    do_sample=True,
    max_new_tokens=MAX_TOK,
)[0]

decoded_output = tokenizer.decode(output[len(input_ids) :])
print(decoded_output)

# [THINK]Alright, I need to think of 5 random numbers first. Let's say I pick the numbers 5, 10, 2, 7, and 3.
# 
# Now, I need to see if I can combine these numbers using addition, multiplication, subtraction, or division to get 133.
# ...
# ...
# ...
# But if we're to find any five numbers that can be combined to make 133, then yes, such sets exist, like the one demonstrated above.[/THINK]Yes, it is possible to combine some sets of five random numbers to make 133 using basic arithmetic operations. For example, the numbers 13, 10, 1, 2, and 3 can be combined as follows to make 133:
# 
# \[ (13 \times 10) + (3 \times (2 - 1)) = 130 + 3 = 133 \]
# 
# However, not all sets of five random numbers can be combined in this way to make 133. For instance, with the numbers 5, 10, 2, 7, and 3, it is not possible to combine them using the allowed operations to get exactly 133.
# 
# Therefore, the ability to combine five random numbers to make 133 depends on the specific numbers chosen.
# 
# $133 = (13 \times 10) + (3 \times (2 - 1))$</s>

Files

19 files · 94.3 GBWeights 47.1 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 19 files with their sha256
FileSizesha256
.gitattributes1.57 KBa1533fad1fb49e1230aff61a60028ea63bc924b4cc4501447351b50b9c840683
README.md14.5 KB27bcf47dce01a4f1b1601a3675b80b6d9de065a5977125f667462f135cafc5c3
SYSTEM_PROMPT.txt554 B88ea600602b0dbfcd849f03836340405c6987352e826df553467b7d0a5e648e4
config.json619 Bab25eb9aa14094c059cb744848bec87cf8682bed7eb6d82e91ad2ae9309b93cc
consolidated.safetensors47.1 GB06bfc778cc6b7e3ecf24afb2581090e87ae138fa76d65e2734f885dc379adec9
generation_config.json111 B0805b167d9e608d9ce79597306a0a9a5d74813f88542a0a720216edcb9d45781
model-00001-of-00010.safetensors4.78 GB37e5b4790b8ae2075f20f065f19b66af9fd412e42d1ff82493fe98861783a7dd
model-00002-of-00010.safetensors4.78 GB50af31c4b9ec94c4675300cdaf61fcb05646158fe7dc221c3542295430d1144e
model-00003-of-00010.safetensors4.78 GBfc05e4215cb93a0919963a3436926754a69b60949300efe75abbd1a78dceedc2
model-00004-of-00010.safetensors4.89 GB5f1a5dcfab00d5687e14c401ad60153ad92fc11fe3460dd57827803d0112877c
model-00005-of-00010.safetensors4.78 GBe6e1f21d28834a09e09b2ce635c4a38e52504844d5432cce21a296087a5e75f0
model-00006-of-00010.safetensors4.78 GB97eec8c47bdc497d33b2af62315f1a1dedc6f07861595c228450dbd66e059fa8
model-00007-of-00010.safetensors4.89 GB5bac0bf9dd24b8f7a8ee03eb2cb11750e7e0b532617be670fca4dd5953450bc3
model-00008-of-00010.safetensors4.78 GBc88c2fcbbc6d449035b8130c9595d20e18a7aa716fa2ad1b50da46bfef91d1e7
model-00009-of-00010.safetensors4.78 GB492bdd2aa228ff3e60605e12bccdcb28335a0dd4b5535fa7be03ac2c073975fd
model-00010-of-00010.safetensors3.90 GBbec7078f1829d300e12b58dd65e18bcdabc78952d4b85c6252941a4359795edb
model.safetensors.index.json29.9 KB2d570fc53098c04ddc802460b783fbecf0a5b0cf4c4d36e0491a870ad81779fd
params.json224 B644f1c0c7d2fe953e684c8a9bc59150f654df069c429430188090c0cc246ab00
tekken.json19.4 MB93a2d5af491c61f0b8f5233a1c0b91e5edb7332bf6000038f06a9b3ab92bfe8d
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
b3583a426c pinned now2026-11-15 03:27 UTC19 files · 94.3 GB

Use it

$ fw get mistralai/Magistral-Small-2507
# manifest sha256 ab54c1070753… · 94.3 GB · 19 files
$ fw verify ./Magistral-Small-2507 mistralai/Magistral-Small-2507
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/mistralai/Magistral-Small-2507.json --dir ./Magistral-Small-2507 $ python3 fw.py verify ./Magistral-Small-2507 ./mistralai__Magistral-Small-2507.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mistralai/Magistral-Small-2507 --revision b3583a426ca23186681c4297926dfe9219be6161 --local-dir ./Magistral-Small-2507

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-15
Text in
README.md
Text sha256
27bcf47dce01a4f1b1601a3675b80b6d9de065a5977125f667462f135cafc5c3
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: Magistral-Small-2507Date: 2026-11-15Commit: b3583a4Signed: 2DC28CC7B26A283B ✓
Upstream
mistralai/Magistral-Small-2507
Pinned commit
b3583a426ca23186681c4297926dfe9219be6161
Manifest
Magistral-Small-2507.json · .minisig
Manifest sha256
ab54c10707536cd52eeea98290b9859387c1ebd91bb45abd61e6c8f0ee668d4b
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:27 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/mistralai/Magistral-Small-2507.json $ curl -O https://freeweights.allternit.com/manifests/mistralai/Magistral-Small-2507.json.minisig $ minisign -Vm Magistral-Small-2507.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

Parent

mistralai/Mistral-Small-3.1-24B-Instruct-2503 · this model is a finetune of it

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

Quantizations
7
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download mistralai/Magistral-Small-2507
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. Magistral-Small-2507.json. Provenance. Takedown history: none.

Variants

7 quantized or adapter builds of Magistral-Small-2507. 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