alt.freeweights.mistral / Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit
From: unsloth <huggingface.co/unsloth>Newsgroups: alt.freeweights.mistralSubject:

Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit

Date: 2026-11-15Commit: 5e5b16eSigned: 2DC28CC7B26A283B ✓

Model with 24.7B parameters. Safetensors weights, 15.7 GB in all. Published by unsloth under Apache-2.0.

24.7B params15.7GBMistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bitsafetensorspermissive
FactsParams24.7BSize15.7 GBFormatssafetensorsTasknot taggedLicenseApache-2.0From sourcepermissive
$ fw get unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit
# manifest sha256 233ebbbb2d40… · 15.7 GB · 16 files
$ fw verify ./Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit
From sourceHosted (signed)unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bitLast check: 2026-11-15 05:11 UTC

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

Quantized 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
15.7 GB
Weights
15.7 GB (safetensors)
Parameters
24.7B
Formats
safetensors
Task
not tagged
License
Apache-2.0 (permissive)
Files
16, each with a sha256
Publisher
unsloth
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 05:11 UTCpassed

Model card

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

Model Card for Mistral-Small-3.1-24B-Instruct-2503#

Building upon Mistral Small 3 (2501), Mistral Small 3.1 (2503) adds state-of-the-art vision understanding and enhances long context capabilities up to 128k tokens without compromising text performance. With 24 billion parameters, this model achieves top-tier capabilities in both text and vision tasks. This model is an instruction-finetuned version of: Mistral-Small-3.1-24B-Base-2503.

Mistral Small 3.1 can be deployed locally and is exceptionally "knowledge-dense," fitting within a single RTX 4090 or a 32GB RAM MacBook once quantized.

It is ideal for:

  • Fast-response conversational agents.
  • Low-latency function calling.
  • Subject matter experts via fine-tuning.
  • Local inference for hobbyists and organizations handling sensitive data.
  • Programming and math reasoning.
  • Long document understanding.
  • Visual understanding.

For enterprises requiring specialized capabilities (increased context, specific modalities, domain-specific knowledge, etc.), we will release commercial models beyond what Mistral AI contributes to the community.

Learn more about Mistral Small 3.1 in our blog post.

Key Features#

  • Vision: Vision capabilities enable the model to analyze images and provide insights based on visual content in addition to text.
  • Multilingual: Supports dozens of languages, including English, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Nepali, Polish, Portuguese, Romanian, Russian, Serbian, Spanish, Swedish, Turkish, Ukrainian, Vietnamese, Arabic, Bengali, Chinese, Farsi.
  • Agent-Centric: Offers best-in-class agentic capabilities with native function calling and JSON outputting.
  • Advanced Reasoning: State-of-the-art conversational and reasoning capabilities.
  • Apache 2.0 License: Open license allowing usage and modification for both commercial and non-commercial purposes.
  • Context Window: A 128k context window.
  • System Prompt: Maintains strong adherence and support for system prompts.
  • Tokenizer: Utilizes a Tekken tokenizer with a 131k vocabulary size.

Benchmark Results#

When available, we report numbers previously published by other model providers, otherwise we re-evaluate them using our own evaluation harness.

Pretrain Evals#
ModelMMLU (5-shot)MMLU Pro (5-shot CoT)TriviaQAGPQA Main (5-shot CoT)MMMU
Small 3.1 24B Base81.01%56.03%80.50%37.50%59.27%
Gemma 3 27B PT78.60%52.20%81.30%24.30%56.10%
Instruction Evals#
Text#
ModelMMLUMMLU Pro (5-shot CoT)MATHGPQA Main (5-shot CoT)GPQA Diamond (5-shot CoT )MBPPHumanEvalSimpleQA (TotalAcc)
Small 3.1 24B Instruct80.62%66.76%69.30%44.42%45.96%74.71%88.41%10.43%
Gemma 3 27B IT76.90%67.50%89.00%36.83%42.40%74.40%87.80%10.00%
GPT4o Mini82.00%61.70%70.20%40.20%39.39%84.82%87.20%9.50%
Claude 3.5 Haiku77.60%65.00%69.20%37.05%41.60%85.60%88.10%8.02%
Cohere Aya-Vision 32B72.14%47.16%41.98%34.38%33.84%70.43%62.20%7.65%
Vision#
ModelMMMUMMMU PROMathvistaChartQADocVQAAI2DMM MT Bench
Small 3.1 24B Instruct64.00%49.25%68.91%86.24%94.08%93.72%7.3
Gemma 3 27B IT64.90%48.38%67.60%76.00%86.60%84.50%7
GPT4o Mini59.40%37.60%56.70%76.80%86.70%88.10%6.6
Claude 3.5 Haiku60.50%45.03%61.60%87.20%90.00%92.10%6.5
Cohere Aya-Vision 32B48.20%31.50%50.10%63.04%72.40%82.57%4.1
Multilingual Evals#
ModelAverageEuropeanEast AsianMiddle Eastern
Small 3.1 24B Instruct71.18%75.30%69.17%69.08%
Gemma 3 27B IT70.19%74.14%65.65%70.76%
GPT4o Mini70.36%74.21%65.96%70.90%
Claude 3.5 Haiku70.16%73.45%67.05%70.00%
Cohere Aya-Vision 32B62.15%64.70%57.61%64.12%
Long Context Evals#
ModelLongBench v2RULER 32KRULER 128K
Small 3.1 24B Instruct37.18%93.96%81.20%
Gemma 3 27B IT34.59%91.10%66.00%
GPT4o Mini29.30%90.20%65.8%
Claude 3.5 Haiku35.19%92.60%91.90%

Basic Instruct Template (V7-Tekken)#

<s>[SYSTEM_PROMPT]<system prompt>[/SYSTEM_PROMPT][INST]<user message>[/INST]<assistant response></s>[INST]<user message>[/INST]

<system_prompt>, <user message> and <assistant response> are placeholders.

Please make sure to use mistral-common as the source of truth

Usage#

The model can be used with the following frameworks;

Note 1: We recommend using a relatively low temperature, such as temperature=0.15.

Note 2: Make sure to add a system prompt to the model to best tailer it for your needs. If you want to use the model as a general assistant, we recommend the following system prompt:

system_prompt = """You are Mistral Small 3.1, a Large Language Model (LLM) created by Mistral AI, a French startup headquartered in Paris.
You power an AI assistant called Le Chat.
Your knowledge base was last updated on 2023-10-01.
The current date is {today}.

When you're not sure about some information, you say that you don't have the information and don't make up anything.
If the user's question is not clear, ambiguous, or does not provide enough context for you to accurately answer the question, you do not try to answer it right away and you rather ask the user to clarify their request (e.g. "What are some good restaurants around me?" => "Where are you?" or "When is the next flight to Tokyo" => "Where do you travel from?").
You are always very attentive to dates, in particular you try to resolve dates (e.g. "yesterday" is {yesterday}) and when asked about information at specific dates, you discard information that is at another date.
You follow these instructions in all languages, and always respond to the user in the language they use or request.
Next sections describe the capabilities that you have.

# WEB BROWSING INSTRUCTIONS

You cannot perform any web search or access internet to open URLs, links etc. If it seems like the user is expecting you to do so, you clarify the situation and ask the user to copy paste the text directly in the chat.

# MULTI-MODAL INSTRUCTIONS

You have the ability to read images, but you cannot generate images. You also cannot transcribe audio files or videos.
You cannot read nor transcribe audio files or videos."""

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

Installation

Make sure you install vLLM nightly:

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

Doing so should automatically install mistral_common >= 1.5.4.

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 followed by a nightly install of vllm as shown above.

Server#

We recommand that you use Mistral-Small-3.1-24B-Instruct-2503 in a server/client setting.

  1. Spin up a server:
vllm serve mistralai/Mistral-Small-3.1-24B-Instruct-2503 --tokenizer_mode mistral --config_format mistral --load_format mistral --tool-call-parser mistral --enable-auto-tool-choice --limit_mm_per_prompt 'image=10' --tensor-parallel-size 2

Note: Running Mistral-Small-3.1-24B-Instruct-2503 on GPU requires ~55 GB of GPU RAM in bf16 or fp16.

  1. To ping the client you can use a simple Python snippet.
import requests
import json
from huggingface_hub import hf_hub_download
from datetime import datetime, timedelta

url = "http://<your-server-url>:8000/v1/chat/completions"
headers = {"Content-Type": "application/json", "Authorization": "Bearer token"}

model = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"


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://huggingface.co/datasets/patrickvonplaten/random_img/resolve/main/europe.png"

messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Which of the depicted countries has the best food? Which the second and third and fourth? Name the country, its color on the map and one its city that is visible on the map, but is not the capital. Make absolutely sure to only name a city that can be seen on the map.",
            },
            {"type": "image_url", "image_url": {"url": image_url}},
        ],
    },
]

data = {"model": model, "messages": messages, "temperature": 0.15}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json()["choices"][0]["message"]["content"])
# Determining the "best" food is highly subjective and depends on personal preferences. However, based on general popularity and recognition, here are some countries known for their cuisine:

# 1. **Italy** - Color: Light Green - City: Milan
#    - Italian cuisine is renowned worldwide for its pasta, pizza, and various regional specialties.

# 2. **France** - Color: Brown - City: Lyon
#    - French cuisine is celebrated for its sophistication, including dishes like coq au vin, bouillabaisse, and pastries like croissants and éclairs.

# 3. **Spain** - Color: Yellow - City: Bilbao
#    - Spanish cuisine offers a variety of flavors, from paella and tapas to jamón ibérico and churros.

# 4. **Greece** - Not visible on the map
#    - Greek cuisine is known for dishes like moussaka, souvlaki, and baklava. Unfortunately, Greece is not visible on the provided map, so I cannot name a city.

# Since Greece is not visible on the map, I'll replace it with another country known for its good food:

# 4. **Turkey** - Color: Light Green (east part of the map) - City: Istanbul
#    - Turkish cuisine is diverse and includes dishes like kebabs, meze, and baklava.
Function calling#

Mistral-Small-3.1-24-Instruct-2503 is excellent at function / tool calling tasks via vLLM. E.g.:

Example

import requests
import json
from huggingface_hub import hf_hub_download
from datetime import datetime, timedelta

url = "http://<your-url>:8000/v1/chat/completions"
headers = {"Content-Type": "application/json", "Authorization": "Bearer token"}

model = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"


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")


tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "The city to find the weather for, e.g. 'San Francisco'",
                    },
                    "state": {
                        "type": "string",
                        "description": "The state abbreviation, e.g. 'CA' for California",
                    },
                    "unit": {
                        "type": "string",
                        "description": "The unit for temperature",
                        "enum": ["celsius", "fahrenheit"],
                    },
                },
                "required": ["city", "state", "unit"],
            },
        },
    },
    {
        "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": "Could you please make the below article more concise?\n\nOpenAI is an artificial intelligence research laboratory consisting of the non-profit OpenAI Incorporated and its for-profit subsidiary corporation OpenAI Limited Partnership.",
    },
    {
        "role": "assistant",
        "content": "",
        "tool_calls": [
            {
                "id": "bbc5b7ede",
                "type": "function",
                "function": {
                    "name": "rewrite",
                    "arguments": '{"text": "OpenAI is an artificial intelligence research laboratory consisting of the non-profit OpenAI Incorporated and its for-profit subsidiary corporation OpenAI Limited Partnership."}',
                },
            }
        ],
    },
    {
        "role": "tool",
        "content": '{"action":"rewrite","outcome":"OpenAI is a FOR-profit company."}',
        "tool_call_id": "bbc5b7ede",
        "name": "rewrite",
    },
    {
        "role": "assistant",
        "content": "---\n\nOpenAI is a FOR-profit company.",
    },
    {
        "role": "user",
        "content": "Can you tell me what the temperature will be in Dallas, in Fahrenheit?",
    },
]

data = {"model": model, "messages": messages, "tools": tools, "temperature": 0.15}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json()["choices"][0]["message"]["tool_calls"])
# [{'id': '8PdihwL6d', 'type': 'function', 'function': {'name': 'get_current_weather', 'arguments': '{"city": "Dallas", "state": "TX", "unit": "fahrenheit"}'}}]
Offline#
from vllm import LLM
from vllm.sampling_params import SamplingParams
from datetime import datetime, timedelta

SYSTEM_PROMPT = "You are a conversational agent that always answers straight to the point, always end your accurate response with an ASCII drawing of a cat."

user_prompt = "Give me 5 non-formal ways to say 'See you later' in French."

messages = [
    {
        "role": "system",
        "content": SYSTEM_PROMPT
    },
    {
        "role": "user",
        "content": user_prompt
    },
]
model_name = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"
# note that running this model on GPU requires over 60 GB of GPU RAM
llm = LLM(model=model_name, tokenizer_mode="mistral")

sampling_params = SamplingParams(max_tokens=512, temperature=0.15)
outputs = llm.chat(messages, sampling_params=sampling_params)

print(outputs[0].outputs[0].text)
# Here are five non-formal ways to say "See you later" in French:

# 1. **À plus tard** - Until later
# 2. **À toute** - See you soon (informal)
# 3. **Salut** - Bye (can also mean hi)
# 4. **À plus** - See you later (informal)
# 5. **Ciao** - Bye (informal, borrowed from Italian)

# ```
#  /\_/\
# ( o.o )
#  > ^ <
# ```
Transformers (untested)#

Transformers-compatible model weights are also uploaded (thanks a lot @cyrilvallez). However the transformers implementation was not throughly tested, but only on "vibe-checks". Hence, we can only ensure 100% correct behavior when using the original weight format with vllm (see above).

Files

16 files · 15.7 GBWeights 15.7 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 16 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README.md19.1 KBd65b7b948459451b32af4b86f5c862ae15c9beffafec6e30745d1875843316f2
chat_template.jinja2.67 KB5f42291cf1b71a8eeae031eafd5bdc669586dbbbebba344a5d641322af152aa7
chat_template.json2.21 KBe7207a5d13b1596e314b2b0a34a6a5a74a9e2987e7d6acea47c3c05f32233bc6
config.json4.24 KBe11d430719b8629f31b1f7692924d5b9285187cb3c4143cf5afe8b934f141b37
generation_config.json138 B5b25ffd2b9b7056ebdbd628d10cc53bb40a077bf85ad8792bcef1ae73d94a10f
model-00001-of-00004.safetensors4.95 GBc4ccec6b6d0a863fb5a007448a9cfeb5564373205e6af6eb9f8f4f384b507f21
model-00002-of-00004.safetensors4.96 GB9c29193aabf114b62310c6cbcb62ccb8df6f74b2f3ef7bf233dbe55c2d9dee41
model-00003-of-00004.safetensors4.47 GB93460e261e4ca3fe139fb1b0df33b376d303b581f06f0392898646e86575f487
model-00004-of-00004.safetensors1.34 GB0712cb93d3b9d05902f1c99d04294296cdfa37829a5f56d6e9a879b280dc346e
model.safetensors.index.json229 KBeefe619578f65130dc1ab6dca676d0ceb3bf11967e51312da90b9947f4cdb813
preprocessor_config.json634 B0f1a312ed75c86bccdf65333b5b43507f597028d895dbb9cf9f16be9f87b52f1
processor_config.json189 B4ceef0d0cbf062ffd522d85fcbf5248c2db8659c589afcc47b2f26810e7d9a58
special_tokens_map.json21.4 KBc98562eff7be177aafa0bf23cacb9c86549aef1c4c60e91931bded3d70fe6f8f
tokenizer.json17.1 MBb76085f9923309d873994d444989f7eb6ec074b06f25b58f1e8d7b7741070949
tokenizer_config.json201 KBe8d4511f6df4a4313cdc11154860699c79da1f0a4ee040c6857682fefdccb2c1
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
5e5b16e911 pinned now2026-11-15 05:11 UTC16 files · 15.7 GB

Use it

$ fw get unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit
# manifest sha256 233ebbbb2d40… · 15.7 GB · 16 files
$ fw verify ./Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit.json --dir ./Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit $ python3 fw.py verify ./Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit ./unsloth__Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit --revision 5e5b16e9115d7c5cda10bfed9f9f08bb3f6b4fbf --local-dir ./Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit

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
d65b7b948459451b32af4b86f5c862ae15c9beffafec6e30745d1875843316f2
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: unsloth <huggingface.co/unsloth>Newsgroups: alt.freeweights.mistralSubject: Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bitDate: 2026-11-15Commit: 5e5b16eSigned: 2DC28CC7B26A283B ✓
Upstream
unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit
Pinned commit
5e5b16e9115d7c5cda10bfed9f9f08bb3f6b4fbf
Manifest
Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit.json · .minisig
Manifest sha256
233ebbbb2d40b55f884e7b79fbf173c5c754337ae7c4a82757a2b8743ada3c53
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 05:11 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit.json $ curl -O https://freeweights.allternit.com/manifests/unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit.json.minisig $ minisign -Vm Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit.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 quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download unsloth/Mistral-Small-3.1-24B-Instruct-2503-unsloth-bnb-4bit
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-3.1-24B-Instruct-2503-unsloth-bnb-4bit.json. Provenance. Takedown history: none.
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