初始化项目,由ModelHub XC社区提供模型

Model: RedHatAI/Mistral-Small-3.2-24B-Instruct-2506-NVFP4
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-08-06 18:49:13 +08:00
commit e84307d40b
21 changed files with 12587 additions and 0 deletions

58
.gitattributes vendored Normal file
View File

@@ -0,0 +1,58 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bin.* filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zstandard filter=lfs diff=lfs merge=lfs -text
*.tfevents* filter=lfs diff=lfs merge=lfs -text
*.db* filter=lfs diff=lfs merge=lfs -text
*.ark* filter=lfs diff=lfs merge=lfs -text
**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.gguf* filter=lfs diff=lfs merge=lfs -text
*.ggml filter=lfs diff=lfs merge=lfs -text
*.llamafile* filter=lfs diff=lfs merge=lfs -text
*.pt2 filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
602089ffe66d2ecf/lighteval|gpqa:diamond|0/cd454966f6c36e03/GENERATIVE.parquet filter=lfs diff=lfs merge=lfs -text
tokenizer.json filter=lfs diff=lfs merge=lfs -text
model-00002-of-00004.safetensors filter=lfs diff=lfs merge=lfs -text
602089ffe66d2ecf/lighteval|aime24|0/f524bd322cd3c513/GENERATIVE.parquet filter=lfs diff=lfs merge=lfs -text
602089ffe66d2ecf/lighteval|aime25|0/7f35b587257182a3/GENERATIVE.parquet filter=lfs diff=lfs merge=lfs -text
model-00004-of-00004.safetensors filter=lfs diff=lfs merge=lfs -text
model-00001-of-00004.safetensors filter=lfs diff=lfs merge=lfs -text
model-00003-of-00004.safetensors filter=lfs diff=lfs merge=lfs -text
tekken.json filter=lfs diff=lfs merge=lfs -text

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:219d3c968e8f3d521b9ffcaa7d3ebcd699725b9fffd1e6bd9a33fd2db365625e
size 236076

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d58f6d660db34bcefdd4cb00e5849db3a87f89e3bb20bf8ad21bd9c672453b29
size 200017

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fa1d69fb3c978fb569df793d266b9a5e258fdcd0860ec6d4c8c2978e6bbdf2ab
size 614039

353
README.md Normal file
View File

@@ -0,0 +1,353 @@
---
tags:
- fp4
- vllm
language:
- en
- de
- fr
- it
- pt
- hi
- es
- th
pipeline_tag: text-generation
license: apache-2.0
base_model: unsloth/Mistral-Small-3.2-24B-Instruct-2506
---
# Mistral-Small-3.2-24B-Instruct-2506-NVFP4
## Model Overview
- **Model Architecture:** unsloth/Mistral-Small-3.2-24B-Instruct-2506
- **Input:** Text
- **Output:** Text
- **Model Optimizations:**
- **Weight quantization:** FP4
- **Activation quantization:** FP4
- **Out-of-scope:** Use in any manner that violates applicable laws or regulations (including trade compliance laws). Use in languages other than English.
- **Release Date:** 10/29/2025
- **Version:** 1.0
- **Model Developers:** RedHatAI
This model is a quantized version of [unsloth/Mistral-Small-3.2-24B-Instruct-2506](https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506).
It was evaluated on a several tasks to assess the its quality in comparison to the unquatized model.
### Model Optimizations
This model was obtained by quantizing the weights and activations of [unsloth/Mistral-Small-3.2-24B-Instruct-2506](https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506) to FP4 data type, ready for inference with vLLM>=0.9.1
This optimization reduces the number of bits per parameter from 16 to 4, reducing the disk size and GPU memory requirements by approximately 75%.
Only the weights and activations of the linear operators within transformers blocks are quantized using [LLM Compressor](https://github.com/vllm-project/llm-compressor).
## Deployment
### Use with vLLM
1. Initialize vLLM server:
```
vllm serve RedHatAI/Mistral-Small-3.2-24B-Instruct-2506-NVFP4 --tensor_parallel_size 1 --tokenizer_mode mistral
```
2. Send requests to the server:
```python
from openai import OpenAI
# Modify OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://<your-server-host>:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
model = "RedHatAI/Mistral-Small-3.2-24B-Instruct-2506-NVFP4"
messages = [
{"role": "user", "content": "Explain quantum mechanics clearly and concisely."},
]
outputs = client.chat.completions.create(
model=model,
messages=messages,
)
generated_text = outputs.choices[0].message.content
print(generated_text)
```
## Creation
This model was created by applying [LLM Compressor with calibration samples from UltraChat](https://github.com/vllm-project/llm-compressor/blob/main/examples/quantization_w4a4_fp4/llama3_example.py), as presented in the code snipet below.
<details>
```python
from datasets import load_dataset
from transformers import AutoModelForCausalLM, AutoTokenizer
from llmcompressor import oneshot
from llmcompressor.modifiers.quantization import QuantizationModifier
from llmcompressor.modifiers.smoothquant import SmoothQuantModifier
from llmcompressor.utils import dispatch_for_generation
MODEL_ID = "unsloth/Mistral-Small-3.2-24B-Instruct-2506"
# Load model.
model = AutoModelForCausalLM.from_pretrained(MODEL_ID, torch_dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
DATASET_ID = "HuggingFaceH4/ultrachat_200k"
DATASET_SPLIT = "train_sft"
# Select number of samples. 512 samples is a good place to start.
# Increasing the number of samples can improve accuracy.
NUM_CALIBRATION_SAMPLES = 512
MAX_SEQUENCE_LENGTH = 2048
# Load dataset and preprocess.
ds = load_dataset(DATASET_ID, split=f"{DATASET_SPLIT}[:{NUM_CALIBRATION_SAMPLES}]")
ds = ds.shuffle(seed=42)
def preprocess(example):
return {
"text": tokenizer.apply_chat_template(
example["messages"],
tokenize=False,
)
}
ds = ds.map(preprocess)
# Tokenize inputs.
def tokenize(sample):
return tokenizer(
sample["text"],
padding=False,
max_length=MAX_SEQUENCE_LENGTH,
truncation=True,
add_special_tokens=False,
)
ds = ds.map(tokenize, remove_columns=ds.column_names)
# Configure the quantization algorithm and scheme.
# In this case, we:
# * quantize the weights to fp4 with per group 16 via ptq
# * calibrate a global_scale for activations, which will be used to
# quantize activations to fp4 on the fly
smoothing_strength = 0.9
recipe = [
SmoothQuantModifier(smoothing_strength=smoothing_strength),
QuantizationModifier(
ignore=["re:.*lm_head.*"],
config_groups={
"group_0": {
"targets": ["Linear"],
"weights": {
"num_bits": 4,
"type": "float",
"strategy": "tensor_group",
"group_size": 16,
"symmetric": True,
"observer": "mse",
},
"input_activations": {
"num_bits": 4,
"type": "float",
"strategy": "tensor_group",
"group_size": 16,
"symmetric": True,
"dynamic": "local",
"observer": "minmax",
},
}
},
)
]
# Save to disk in compressed-tensors format.
SAVE_DIR = MODEL_ID.rstrip("/").split("/")[-1] + "-NVFP4"
# Apply quantization.
oneshot(
model=model,
dataset=ds,
recipe=recipe,
max_seq_length=MAX_SEQUENCE_LENGTH,
num_calibration_samples=NUM_CALIBRATION_SAMPLES,
output_dir=SAVE_DIR,
)
print("\n\n")
print("========== SAMPLE GENERATION ==============")
dispatch_for_generation(model)
input_ids = tokenizer("Hello my name is", return_tensors="pt").input_ids.to("cuda")
output = model.generate(input_ids, max_new_tokens=100)
print(tokenizer.decode(output[0]))
print("==========================================\n\n")
model.save_pretrained(SAVE_DIR, save_compressed=True)
tokenizer.save_pretrained(SAVE_DIR)
```
</details>
## Evaluation
This model was evaluated on the well-known OpenLLM v1, OpenLLM v2 and HumanEval_64 benchmarks using [lm-evaluation-harness](https://github.com/neuralmagic/lm-evaluation-harness).
### Accuracy
<table>
<thead>
<tr>
<th>Category</th>
<th>Metric</th>
<th>unsloth/Mistral-Small-3.2-24B-Instruct-2506</th>
<th>RedHatAI/Mistral-Small-3.2-24B-Instruct-2506-NVFP4</th>
<th>Recovery</th>
</tr>
</thead>
<tbody>
<!-- OpenLLM V1 -->
<tr>
<td rowspan="7"><b>OpenLLM V1</b></td>
<td>arc_challenge</td>
<td>68.52</td>
<td>66.98</td>
<td>97.75</td>
</tr>
<tr>
<td>gsm8k</td>
<td>89.61</td>
<td>87.11</td>
<td>97.21</td>
</tr>
<tr>
<td>hellaswag</td>
<td>85.70</td>
<td>85.11</td>
<td>99.31</td>
</tr>
<tr>
<td>mmlu</td>
<td>81.06</td>
<td>79.43</td>
<td>97.99</td>
</tr>
<tr>
<td>truthfulqa_mc2</td>
<td>61.35</td>
<td>60.34</td>
<td>98.35</td>
</tr>
<tr>
<td>winogrande</td>
<td>83.27</td>
<td>81.61</td>
<td>98.01</td>
</tr>
<tr>
<td><b>Average</b></td>
<td><b>78.25</b></td>
<td><b>76.76</b></td>
<td><b>98.10</b></td>
</tr>
<tr>
<td rowspan="7"><b>OpenLLM V2</b></td>
<td>BBH (3-shot)</td>
<td>65.86</td>
<td>64.05</td>
<td>97.25</td>
</tr>
<tr>
<td>MMLU-Pro (5-shot)</td>
<td>50.84</td>
<td>48.45</td>
<td>95.30</td>
</tr>
<tr>
<td>MuSR (0-shot)</td>
<td>39.15</td>
<td>40.21</td>
<td>102.71</td>
</tr>
<tr>
<td>IFEval (0-shot)</td>
<td>84.05</td>
<td>84.41</td>
<td>100.43</td>
</tr>
<tr>
<td>GPQA (0-shot)</td>
<td>33.14</td>
<td>32.55</td>
<td>98.22</td>
</tr>
<tr>
<td>Math-|v|-5 (4-shot)</td>
<td>41.69</td>
<td>37.76</td>
<td>90.57</td>
</tr>
<tr>
<td><b>Average</b></td>
<td><b>52.46</b></td>
<td><b>51.24</b></td>
<td><b>97.68</b></td>
</tr>
<tr>
<td rowspan="2"><b>Coding</b></td>
<td>HumanEval_64 pass@2</td>
<td>88.88</td>
<td>88.84</td>
<td>99.95</td>
</tr>
</tbody>
</table>
### Reproduction
The results were obtained using the following commands:
<details>
```
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Mistral-Small-3.2-24B-Instruct-2506-NVFP4",dtype=auto,max_model_len=4096,tensor_parallel_size=2,enable_chunked_prefill=True,enforce_eager=True\
--apply_chat_template \
--fewshot_as_multiturn \
--tasks openllm \
--batch_size auto
```
#### OpenLLM v2
```
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Mistral-Small-3.2-24B-Instruct-2506-NVFP4",dtype=auto,max_model_len=4096,tensor_parallel_size=2,enable_chunked_prefill=True,enforce_eager=True\
--apply_chat_template \
--fewshot_as_multiturn \
--tasks leaderboard \
--batch_size auto
```
#### HumanEval_64
```
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Mistral-Small-3.2-24B-Instruct-2506-NVFP4",dtype=auto,max_model_len=4096,tensor_parallel_size=2,enable_chunked_prefill=True,enforce_eager=True\
--apply_chat_template \
--fewshot_as_multiturn \
--tasks humaneval_64_instruct \
--batch_size auto
```
</details>

300
chat_template.jinja Normal file
View File

@@ -0,0 +1,300 @@
{#- Unsloth template fixes #}
{%- set yesterday_day = strftime_now("%d") %}
{%- set yesterday_month = strftime_now("%m") %}
{%- set yesterday_year = strftime_now("%Y") %}
{%- set today_date = yesterday_year + '-' + yesterday_month + '-' + yesterday_day %}
{%- if yesterday_day == '01' %}
{#- Jinja doesnt allow minus 1 date - Unsloth alternative #}
{%- if yesterday_month == '01' %}
{%- set yesterday_day = '31' %}
{%- set yesterday_month = '12' %}
{%- if yesterday_year == '2024' %}
{%- set yesterday_year = '2023' %}
{%- elif yesterday_year == '2025' %}
{%- set yesterday_year = '2024' %}
{%- elif yesterday_year == '2026' %}
{%- set yesterday_year = '2025' %}
{%- elif yesterday_year == '2027' %}
{%- set yesterday_year = '2026' %}
{%- elif yesterday_year == '2028' %}
{%- set yesterday_year = '2027' %}
{%- elif yesterday_year == '2029' %}
{%- set yesterday_year = '2028' %}
{%- elif yesterday_year == '2030' %}
{%- set yesterday_year = '2029' %}
{%- elif yesterday_year == '2031' %}
{%- set yesterday_year = '2030' %}
{%- elif yesterday_year == '2032' %}
{%- set yesterday_year = '2031' %}
{%- elif yesterday_year == '1970' %}
{#- Stop llama_cpp from erroring out #}
{%- set yesterday_year = '1970' %}
{%- else %}
{{- raise_exception('Unsloth custom template does not support years > 2032. Error year = [' + yesterday_year + ']') }}
{%- endif %}
{%- elif yesterday_month == '02' %}
{%- set yesterday_day = '31' %}
{%- set yesterday_month = '01' %}
{%- elif yesterday_month == '03' %}
{%- set yesterday_month = '02' %}
{%- set yesterday_day = '28' %}
{%- if yesterday_year == '2024' %}
{%- set yesterday_day = '29' %}
{%- elif yesterday_year == '2028' %}
{%- set yesterday_day = '29' %}
{%- elif yesterday_year == '2032' %}
{%- set yesterday_day = '29' %}
{%- elif yesterday_year == '1970' %}
{#- Stop llama_cpp from erroring out #}
{%- set yesterday_day = '29' %}
{%- else %}
{{- raise_exception('Unsloth custom template does not support years > 2032. Error year = [' + yesterday_year + ']') }}
{%- endif %}
{%- elif yesterday_month == '04' %}
{%- set yesterday_day = '31' %}
{%- set yesterday_month = '03' %}
{%- elif yesterday_month == '05' %}
{%- set yesterday_day = '30' %}
{%- set yesterday_month = '04' %}
{%- elif yesterday_month == '06' %}
{%- set yesterday_day = '31' %}
{%- set yesterday_month = '05' %}
{%- elif yesterday_month == '07' %}
{%- set yesterday_day = '30' %}
{%- set yesterday_month = '06' %}
{%- elif yesterday_month == '08' %}
{%- set yesterday_day = '31' %}
{%- set yesterday_month = '07' %}
{%- elif yesterday_month == '09' %}
{%- set yesterday_day = '31' %}
{%- set yesterday_month = '08' %}
{%- elif yesterday_month == '10' %}
{%- set yesterday_day = '30' %}
{%- set yesterday_month = '09' %}
{%- elif yesterday_month == '11' %}
{%- set yesterday_day = '31' %}
{%- set yesterday_month = '10' %}
{%- elif yesterday_month == '12' %}
{%- set yesterday_day = '30' %}
{%- set yesterday_month = '11' %}
{%- endif %}
{%- elif yesterday_day == '02' %}
{%- set yesterday_day = '01' %}
{%- elif yesterday_day == '03' %}
{%- set yesterday_day = '02' %}
{%- elif yesterday_day == '04' %}
{%- set yesterday_day = '03' %}
{%- elif yesterday_day == '05' %}
{%- set yesterday_day = '04' %}
{%- elif yesterday_day == '06' %}
{%- set yesterday_day = '05' %}
{%- elif yesterday_day == '07' %}
{%- set yesterday_day = '06' %}
{%- elif yesterday_day == '08' %}
{%- set yesterday_day = '07' %}
{%- elif yesterday_day == '09' %}
{%- set yesterday_day = '08' %}
{%- elif yesterday_day == '10' %}
{%- set yesterday_day = '09' %}
{%- elif yesterday_day == '11' %}
{%- set yesterday_day = '10' %}
{%- elif yesterday_day == '12' %}
{%- set yesterday_day = '11' %}
{%- elif yesterday_day == '13' %}
{%- set yesterday_day = '12' %}
{%- elif yesterday_day == '14' %}
{%- set yesterday_day = '13' %}
{%- elif yesterday_day == '15' %}
{%- set yesterday_day = '14' %}
{%- elif yesterday_day == '16' %}
{%- set yesterday_day = '15' %}
{%- elif yesterday_day == '17' %}
{%- set yesterday_day = '16' %}
{%- elif yesterday_day == '18' %}
{%- set yesterday_day = '17' %}
{%- elif yesterday_day == '19' %}
{%- set yesterday_day = '18' %}
{%- elif yesterday_day == '20' %}
{%- set yesterday_day = '19' %}
{%- elif yesterday_day == '21' %}
{%- set yesterday_day = '20' %}
{%- elif yesterday_day == '22' %}
{%- set yesterday_day = '21' %}
{%- elif yesterday_day == '23' %}
{%- set yesterday_day = '22' %}
{%- elif yesterday_day == '24' %}
{%- set yesterday_day = '23' %}
{%- elif yesterday_day == '25' %}
{%- set yesterday_day = '24' %}
{%- elif yesterday_day == '26' %}
{%- set yesterday_day = '25' %}
{%- elif yesterday_day == '27' %}
{%- set yesterday_day = '26' %}
{%- elif yesterday_day == '28' %}
{%- set yesterday_day = '27' %}
{%- elif yesterday_day == '29' %}
{%- set yesterday_day = '28' %}
{%- elif yesterday_day == '30' %}
{%- set yesterday_day = '29' %}
{%- elif yesterday_day == '31' %}
{%- set yesterday_day = '30' %}
{%- endif %}
{#- Edits made by Unsloth #}
{%- set yesterday_date = yesterday_year + '-' + yesterday_month + '-' + yesterday_day %}
{%- set default_system_message = "You are Mistral-Small-3.2-24B-Instruct-2506, a Large Language Model (LLM) created by Mistral AI, a French startup headquartered in Paris.\nYou power an AI assistant called Le Chat.\nYour knowledge base was last updated on 2023-10-01.\nThe current date is " + today_date + ".\n\nWhen you\'re not sure about some information or when the user\'s request requires up-to-date or specific data, you must use the available tools to fetch the information. Do not hesitate to use tools whenever they can provide a more accurate or complete response. If no relevant tools are available, then clearly state that you don\'t have the information and avoid making up anything.\nIf 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?\").\nYou are always very attentive to dates, in particular you try to resolve dates (e.g. \"yesterday\" is " + yesterday_date + ") and when asked about information at specific dates, you discard information that is at another date.\nYou follow these instructions in all languages, and always respond to the user in the language they use or request.\nNext sections describe the capabilities that you have.\n\n# WEB BROWSING INSTRUCTIONS\n\nYou 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.\n\n# MULTI-MODAL INSTRUCTIONS\n\nYou have the ability to read images, but you cannot generate images. You also cannot transcribe audio files or videos.\nYou cannot read nor transcribe audio files or videos.\n\n# TOOL CALLING INSTRUCTIONS\n\nYou may have access to tools that you can use to fetch information or perform actions. You must use these tools in the following situations:\n\n1. When the request requires up-to-date information.\n2. When the request requires specific data that you do not have in your knowledge base.\n3. When the request involves actions that you cannot perform without tools.\n\nAlways prioritize using tools to provide the most accurate and helpful response. If tools are not available, inform the user that you cannot perform the requested action at the moment." %}
{{- bos_token }}
{%- if messages[0]['role'] == 'system' %}
{%- if messages[0]['content'] is string %}
{%- set system_message = messages[0]['content'] %}
{%- elif messages[0]['content'] is iterable %}
{%- set system_message = messages[0]['content'][0]['text'] %}
{%- else %}
{%- set system_message = messages[0]['content']|string %}
{%- endif %}
{%- set loop_messages = messages[1:] %}
{%- else %}
{%- set system_message = default_system_message %}
{%- set loop_messages = messages %}
{%- endif %}
{{- '[SYSTEM_PROMPT]' + system_message + '[/SYSTEM_PROMPT]' }}
{#- Tool description appended ONLY to last user message. Edits made by Unsloth #}
{#- Tool description appended also if last message is tool. Edits made by Unsloth #}
{%- set tools_description = "" %}
{%- set has_tools = false %}
{#- Cannot use set append_tools_index = loop.index0 since temporary variable - must use namespace #}
{%- set ns = namespace(append_tools_index=0, append_tools=false) %}
{%- if tools is defined and tools is not none and tools|length > 0 %}
{%- set has_tools = true %}
{%- set tools_description = "[AVAILABLE_TOOLS]" + (tools | tojson) + "[/AVAILABLE_TOOLS]" %}
{#- If User,Assistant,Tool,Tool we also need to append tools_description to last assistant WITHOUT tool_calls defined. Edits made by Unsloth #}
{%- if (loop_messages|last)['role'] == 'tool' %}
{#- Find last assistant WITHOUT tool_calls defined #}
{%- set ns.append_tools = true %}
{%- for message in loop_messages %}
{%- if message['role'] == 'assistant' %}
{#- Cannot use set append_tools_index = loop.index0 since temporary variable - must use namespace #}
{%- if message['tool_calls'] is not defined or message['tool_calls'] is none %}
{%- set ns.append_tools_index = loop.index0 %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- endif %}
{%- endif %}
{%- for message in loop_messages %}
{%- if message['role'] == 'user' %}
{%- if has_tools and loop.last %}
{{- tools_description }}
{%- endif %}
{#- If directly called tools in first turn, prepend to user #}
{%- if ns.append_tools and ns.append_tools_index == 0 %}
{{- tools_description }}
{%- endif %}
{%- if message['content'] is string %}
{{- '[INST]' + message['content'] + '[/INST]' }}
{%- else %}
{{- '[INST]' }}
{%- for block in message['content'] %}
{%- if block['type'] == 'text' %}
{#- Original did not have content which is weird. Added by Un-sloth. #}
{%- if block['text'] is defined %}
{{- block['text'] }}
{%- else %}
{{- block['content'] }}
{%- endif %}
{%- elif block['type'] in ['image', 'image_url'] %}
{{- '[IMG]' }}
{%- else %}
{{- raise_exception('Only text and image blocks are supported in message content!') }}
{%- endif %}
{%- endfor %}
{{- '[/INST]' }}
{%- endif %}
{%- elif message['role'] == 'system' %}
{%- if message['content'] is string %}
{{- '[SYSTEM_PROMPT]' + message['content'] + '[/SYSTEM_PROMPT]' }}
{%- elif message['content'] is iterable %}
{{- '[SYSTEM_PROMPT]' + message['content'][0]['text'] + '[/SYSTEM_PROMPT]' }}
{%- else %}
{{- '[SYSTEM_PROMPT]' + message['content']|string + '[/SYSTEM_PROMPT]' }}
{%- endif %}
{%- elif message['role'] == 'assistant' %}
{%- if message['content'] is string %}
{{- message['content'] }}
{%- elif message['content'] is iterable %}
{{- message['content'][0]['text'] }}
{%- else %}
{{- message['content']|string }}
{%- endif %}
{#- If User,Assistant,Tool,Tool we also need to append tools_description. Edits made by Unsloth #}
{%- if has_tools and (loop.index0 == ns.append_tools_index) %}
{{- eos_token }}
{{- tools_description }}
{%- endif %}
{%- if message['tool_calls'] is defined and message['tool_calls'] is not none %}
{%- for tool in message['tool_calls'] %}
{%- if tool['id'] is not defined %}
{{- raise_exception('Tool ID must be provided!') }}
{%- endif %}
{%- set tool_call_id = tool['id'] %}
{%- if tool_call_id is not string or tool_call_id|length < 9 %}
{{- raise_exception("Tool call IDs should be alphanumeric strings with length >= 9!") }}
{%- endif %}
{%- set arguments = tool['function']['arguments'] %}
{%- if arguments is not string %}
{%- set arguments = arguments|tojson %}
{%- endif %}
{#- Must list tool calls AFTER assistant. Edits made by Un-sloth #}
{{- "[TOOL_CALLS]" + tool['function']['name'] + "[CALL_ID]" + tool_call_id + "[ARGS]" + arguments }}
{%- endfor %}
{%- endif %}
{#- Must not add EOS if added tools_description. Unsloth edits. #}
{%- if (loop.index0 != ns.append_tools_index) %}
{{- eos_token }}
{%- endif %}
{%- elif message["role"] == "tool_results" or message["role"] == "tool" %}
{%- if message.content is defined and message.content.content is defined %}
{%- set content = message.content.content %}
{%- else %}
{%- set content = message.content %}
{%- endif %}
{%- if message['tool_call_id'] is not defined %}
{{- raise_exception('tool_call_id must be provided!') }}
{%- endif %}
{%- set tool_call_id = message['tool_call_id'] %}
{%- if tool_call_id is not string or tool_call_id|length < 9 %}
{{- raise_exception("Tool call IDs should be alphanumeric strings with length >= 9!") }}
{%- endif %}
{{- "[TOOL_RESULTS]" + tool_call_id + "[TOOL_CONTENT]" + content|string + "[/TOOL_RESULTS]" }}
{%- else %}
{{- raise_exception('Only user, systemm assistant and tool roles are supported in the custom template made by Unsloth!') }}
{%- endif %}
{%- endfor %}
{#- Copyright 2025-present Unsloth. Apache 2.0 License. #}

270
config.json Normal file
View File

@@ -0,0 +1,270 @@
{
"architectures": [
"Mistral3ForConditionalGeneration"
],
"bos_token_id": 1,
"dtype": "bfloat16",
"eos_token_id": 2,
"image_token_index": 10,
"model_type": "mistral3",
"multimodal_projector_bias": false,
"pad_token_id": 11,
"projector_hidden_act": "gelu",
"quantization_config": {
"config_groups": {
"group_0": {
"format": "nvfp4-pack-quantized",
"input_activations": {
"actorder": null,
"block_structure": null,
"dynamic": "local",
"group_size": 16,
"num_bits": 4,
"observer": "minmax",
"observer_kwargs": {},
"strategy": "tensor_group",
"symmetric": true,
"type": "float"
},
"output_activations": null,
"targets": [
"Linear"
],
"weights": {
"actorder": null,
"block_structure": null,
"dynamic": false,
"group_size": 16,
"num_bits": 4,
"observer": "mse",
"observer_kwargs": {},
"strategy": "tensor_group",
"symmetric": true,
"type": "float"
}
}
},
"format": "nvfp4-pack-quantized",
"global_compression_ratio": null,
"ignore": [
"model.vision_tower.transformer.layers.0.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.0.feed_forward.up_proj",
"model.vision_tower.transformer.layers.0.feed_forward.down_proj",
"model.vision_tower.transformer.layers.0.attention.k_proj",
"model.vision_tower.transformer.layers.0.attention.v_proj",
"model.vision_tower.transformer.layers.0.attention.q_proj",
"model.vision_tower.transformer.layers.0.attention.o_proj",
"model.vision_tower.transformer.layers.1.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.1.feed_forward.up_proj",
"model.vision_tower.transformer.layers.1.feed_forward.down_proj",
"model.vision_tower.transformer.layers.1.attention.k_proj",
"model.vision_tower.transformer.layers.1.attention.v_proj",
"model.vision_tower.transformer.layers.1.attention.q_proj",
"model.vision_tower.transformer.layers.1.attention.o_proj",
"model.vision_tower.transformer.layers.2.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.2.feed_forward.up_proj",
"model.vision_tower.transformer.layers.2.feed_forward.down_proj",
"model.vision_tower.transformer.layers.2.attention.k_proj",
"model.vision_tower.transformer.layers.2.attention.v_proj",
"model.vision_tower.transformer.layers.2.attention.q_proj",
"model.vision_tower.transformer.layers.2.attention.o_proj",
"model.vision_tower.transformer.layers.3.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.3.feed_forward.up_proj",
"model.vision_tower.transformer.layers.3.feed_forward.down_proj",
"model.vision_tower.transformer.layers.3.attention.k_proj",
"model.vision_tower.transformer.layers.3.attention.v_proj",
"model.vision_tower.transformer.layers.3.attention.q_proj",
"model.vision_tower.transformer.layers.3.attention.o_proj",
"model.vision_tower.transformer.layers.4.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.4.feed_forward.up_proj",
"model.vision_tower.transformer.layers.4.feed_forward.down_proj",
"model.vision_tower.transformer.layers.4.attention.k_proj",
"model.vision_tower.transformer.layers.4.attention.v_proj",
"model.vision_tower.transformer.layers.4.attention.q_proj",
"model.vision_tower.transformer.layers.4.attention.o_proj",
"model.vision_tower.transformer.layers.5.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.5.feed_forward.up_proj",
"model.vision_tower.transformer.layers.5.feed_forward.down_proj",
"model.vision_tower.transformer.layers.5.attention.k_proj",
"model.vision_tower.transformer.layers.5.attention.v_proj",
"model.vision_tower.transformer.layers.5.attention.q_proj",
"model.vision_tower.transformer.layers.5.attention.o_proj",
"model.vision_tower.transformer.layers.6.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.6.feed_forward.up_proj",
"model.vision_tower.transformer.layers.6.feed_forward.down_proj",
"model.vision_tower.transformer.layers.6.attention.k_proj",
"model.vision_tower.transformer.layers.6.attention.v_proj",
"model.vision_tower.transformer.layers.6.attention.q_proj",
"model.vision_tower.transformer.layers.6.attention.o_proj",
"model.vision_tower.transformer.layers.7.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.7.feed_forward.up_proj",
"model.vision_tower.transformer.layers.7.feed_forward.down_proj",
"model.vision_tower.transformer.layers.7.attention.k_proj",
"model.vision_tower.transformer.layers.7.attention.v_proj",
"model.vision_tower.transformer.layers.7.attention.q_proj",
"model.vision_tower.transformer.layers.7.attention.o_proj",
"model.vision_tower.transformer.layers.8.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.8.feed_forward.up_proj",
"model.vision_tower.transformer.layers.8.feed_forward.down_proj",
"model.vision_tower.transformer.layers.8.attention.k_proj",
"model.vision_tower.transformer.layers.8.attention.v_proj",
"model.vision_tower.transformer.layers.8.attention.q_proj",
"model.vision_tower.transformer.layers.8.attention.o_proj",
"model.vision_tower.transformer.layers.9.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.9.feed_forward.up_proj",
"model.vision_tower.transformer.layers.9.feed_forward.down_proj",
"model.vision_tower.transformer.layers.9.attention.k_proj",
"model.vision_tower.transformer.layers.9.attention.v_proj",
"model.vision_tower.transformer.layers.9.attention.q_proj",
"model.vision_tower.transformer.layers.9.attention.o_proj",
"model.vision_tower.transformer.layers.10.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.10.feed_forward.up_proj",
"model.vision_tower.transformer.layers.10.feed_forward.down_proj",
"model.vision_tower.transformer.layers.10.attention.k_proj",
"model.vision_tower.transformer.layers.10.attention.v_proj",
"model.vision_tower.transformer.layers.10.attention.q_proj",
"model.vision_tower.transformer.layers.10.attention.o_proj",
"model.vision_tower.transformer.layers.11.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.11.feed_forward.up_proj",
"model.vision_tower.transformer.layers.11.feed_forward.down_proj",
"model.vision_tower.transformer.layers.11.attention.k_proj",
"model.vision_tower.transformer.layers.11.attention.v_proj",
"model.vision_tower.transformer.layers.11.attention.q_proj",
"model.vision_tower.transformer.layers.11.attention.o_proj",
"model.vision_tower.transformer.layers.12.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.12.feed_forward.up_proj",
"model.vision_tower.transformer.layers.12.feed_forward.down_proj",
"model.vision_tower.transformer.layers.12.attention.k_proj",
"model.vision_tower.transformer.layers.12.attention.v_proj",
"model.vision_tower.transformer.layers.12.attention.q_proj",
"model.vision_tower.transformer.layers.12.attention.o_proj",
"model.vision_tower.transformer.layers.13.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.13.feed_forward.up_proj",
"model.vision_tower.transformer.layers.13.feed_forward.down_proj",
"model.vision_tower.transformer.layers.13.attention.k_proj",
"model.vision_tower.transformer.layers.13.attention.v_proj",
"model.vision_tower.transformer.layers.13.attention.q_proj",
"model.vision_tower.transformer.layers.13.attention.o_proj",
"model.vision_tower.transformer.layers.14.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.14.feed_forward.up_proj",
"model.vision_tower.transformer.layers.14.feed_forward.down_proj",
"model.vision_tower.transformer.layers.14.attention.k_proj",
"model.vision_tower.transformer.layers.14.attention.v_proj",
"model.vision_tower.transformer.layers.14.attention.q_proj",
"model.vision_tower.transformer.layers.14.attention.o_proj",
"model.vision_tower.transformer.layers.15.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.15.feed_forward.up_proj",
"model.vision_tower.transformer.layers.15.feed_forward.down_proj",
"model.vision_tower.transformer.layers.15.attention.k_proj",
"model.vision_tower.transformer.layers.15.attention.v_proj",
"model.vision_tower.transformer.layers.15.attention.q_proj",
"model.vision_tower.transformer.layers.15.attention.o_proj",
"model.vision_tower.transformer.layers.16.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.16.feed_forward.up_proj",
"model.vision_tower.transformer.layers.16.feed_forward.down_proj",
"model.vision_tower.transformer.layers.16.attention.k_proj",
"model.vision_tower.transformer.layers.16.attention.v_proj",
"model.vision_tower.transformer.layers.16.attention.q_proj",
"model.vision_tower.transformer.layers.16.attention.o_proj",
"model.vision_tower.transformer.layers.17.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.17.feed_forward.up_proj",
"model.vision_tower.transformer.layers.17.feed_forward.down_proj",
"model.vision_tower.transformer.layers.17.attention.k_proj",
"model.vision_tower.transformer.layers.17.attention.v_proj",
"model.vision_tower.transformer.layers.17.attention.q_proj",
"model.vision_tower.transformer.layers.17.attention.o_proj",
"model.vision_tower.transformer.layers.18.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.18.feed_forward.up_proj",
"model.vision_tower.transformer.layers.18.feed_forward.down_proj",
"model.vision_tower.transformer.layers.18.attention.k_proj",
"model.vision_tower.transformer.layers.18.attention.v_proj",
"model.vision_tower.transformer.layers.18.attention.q_proj",
"model.vision_tower.transformer.layers.18.attention.o_proj",
"model.vision_tower.transformer.layers.19.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.19.feed_forward.up_proj",
"model.vision_tower.transformer.layers.19.feed_forward.down_proj",
"model.vision_tower.transformer.layers.19.attention.k_proj",
"model.vision_tower.transformer.layers.19.attention.v_proj",
"model.vision_tower.transformer.layers.19.attention.q_proj",
"model.vision_tower.transformer.layers.19.attention.o_proj",
"model.vision_tower.transformer.layers.20.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.20.feed_forward.up_proj",
"model.vision_tower.transformer.layers.20.feed_forward.down_proj",
"model.vision_tower.transformer.layers.20.attention.k_proj",
"model.vision_tower.transformer.layers.20.attention.v_proj",
"model.vision_tower.transformer.layers.20.attention.q_proj",
"model.vision_tower.transformer.layers.20.attention.o_proj",
"model.vision_tower.transformer.layers.21.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.21.feed_forward.up_proj",
"model.vision_tower.transformer.layers.21.feed_forward.down_proj",
"model.vision_tower.transformer.layers.21.attention.k_proj",
"model.vision_tower.transformer.layers.21.attention.v_proj",
"model.vision_tower.transformer.layers.21.attention.q_proj",
"model.vision_tower.transformer.layers.21.attention.o_proj",
"model.vision_tower.transformer.layers.22.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.22.feed_forward.up_proj",
"model.vision_tower.transformer.layers.22.feed_forward.down_proj",
"model.vision_tower.transformer.layers.22.attention.k_proj",
"model.vision_tower.transformer.layers.22.attention.v_proj",
"model.vision_tower.transformer.layers.22.attention.q_proj",
"model.vision_tower.transformer.layers.22.attention.o_proj",
"model.vision_tower.transformer.layers.23.feed_forward.gate_proj",
"model.vision_tower.transformer.layers.23.feed_forward.up_proj",
"model.vision_tower.transformer.layers.23.feed_forward.down_proj",
"model.vision_tower.transformer.layers.23.attention.k_proj",
"model.vision_tower.transformer.layers.23.attention.v_proj",
"model.vision_tower.transformer.layers.23.attention.q_proj",
"model.vision_tower.transformer.layers.23.attention.o_proj",
"model.multi_modal_projector.patch_merger.merging_layer",
"model.multi_modal_projector.linear_1",
"model.multi_modal_projector.linear_2",
"lm_head"
],
"kv_cache_scheme": null,
"quant_method": "compressed-tensors",
"quantization_status": "compressed",
"sparsity_config": {},
"transform_config": {},
"version": "0.11.1.a20250929"
},
"spatial_merge_size": 2,
"text_config": {
"attention_dropout": 0.0,
"dtype": "bfloat16",
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 5120,
"initializer_range": 0.02,
"intermediate_size": 32768,
"max_position_embeddings": 131072,
"model_type": "mistral",
"num_attention_heads": 32,
"num_hidden_layers": 40,
"num_key_value_heads": 8,
"rms_norm_eps": 1e-05,
"rope_theta": 1000000000.0,
"sliding_window": null,
"use_cache": true,
"vocab_size": 131072
},
"tie_word_embeddings": false,
"transformers_version": "4.56.1",
"unsloth_fixed": true,
"vision_config": {
"attention_dropout": 0.0,
"dtype": "bfloat16",
"head_dim": 64,
"hidden_act": "silu",
"hidden_size": 1024,
"image_size": 1540,
"initializer_range": 0.02,
"intermediate_size": 4096,
"model_type": "pixtral",
"num_attention_heads": 16,
"num_channels": 3,
"num_hidden_layers": 24,
"patch_size": 14,
"rope_theta": 10000.0
},
"vision_feature_layer": -1
}

1
configuration.json Normal file
View File

@@ -0,0 +1 @@
{"framework": "pytorch", "task": "others", "allow_remote": true}

9
generation_config.json Normal file
View File

@@ -0,0 +1,9 @@
{
"bos_token_id": 1,
"do_sample": true,
"eos_token_id": 2,
"max_length": 131072,
"pad_token_id": 11,
"temperature": 0.15,
"transformers_version": "4.56.1"
}

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2cc0279337fdd97f82327325758788610a47e04959f0ce6e0e3053131148ee74
size 4939410608

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:336e466e3b0ff4e6c1e2f22d53add7e3b6be5690b903cee291f9fe0fce80e1a9
size 4991611888

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b003847e04b71b76f21d54ede497f50132fe9a483ddc18a81785b7e0b14a51b5
size 4794356016

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5b72834082387ce74af5414bf353165eab35661f3261f7c9c9f16da505b64e93
size 1342177424

1433
model.safetensors.index.json Normal file

File diff suppressed because it is too large Load Diff

32
preprocessor_config.json Normal file
View File

@@ -0,0 +1,32 @@
{
"crop_size": null,
"data_format": "channels_first",
"default_to_square": true,
"device": null,
"disable_grouping": null,
"do_center_crop": null,
"do_convert_rgb": true,
"do_normalize": true,
"do_rescale": true,
"do_resize": true,
"image_mean": [
0.48145466,
0.4578275,
0.40821073
],
"image_processor_type": "PixtralImageProcessorFast",
"image_std": [
0.26862954,
0.26130258,
0.27577711
],
"input_data_format": null,
"patch_size": 14,
"processor_class": "PixtralProcessor",
"resample": 3,
"rescale_factor": 0.00392156862745098,
"return_tensors": null,
"size": {
"longest_edge": 1540
}
}

8
processor_config.json Normal file
View File

@@ -0,0 +1,8 @@
{
"image_break_token": "[IMG_BREAK]",
"image_end_token": "[IMG_END]",
"image_token": "[IMG]",
"patch_size": 14,
"processor_class": "PixtralProcessor",
"spatial_merge_size": 2
}

43
recipe.yaml Normal file
View File

@@ -0,0 +1,43 @@
default_stage:
default_modifiers:
SmoothQuantModifier:
smoothing_strength: 0.9
mappings:
- !!python/tuple
- ['re:.*q_proj', 're:.*k_proj', 're:.*v_proj']
- re:.*input_layernorm
- !!python/tuple
- ['re:.*gate_proj', 're:.*up_proj']
- re:.*post_attention_layernorm
ignore: []
QuantizationModifier:
config_groups:
group_0:
targets: [Linear]
weights:
num_bits: 4
type: float
symmetric: true
group_size: 16
strategy: tensor_group
block_structure: null
dynamic: false
actorder: null
observer: mse
observer_kwargs: {}
input_activations:
num_bits: 4
type: float
symmetric: true
group_size: 16
strategy: tensor_group
block_structure: null
dynamic: local
actorder: null
observer: minmax
observer_kwargs: {}
output_activations: null
format: null
targets: [Linear]
ignore: ['re:.*lm_head.*', 're:.*multi_modal_projector.*', 're:.*vision_tower.*', 're:.*model.norm.*',
're:.*embed_tokens.*']

1032
special_tokens_map.json Normal file

File diff suppressed because it is too large Load Diff

3
tekken.json Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6e2501687ccd0e1f30f36319eaf2b46958b897811e246cd8eb5d385b9e3de7d1
size 19399895

3
tokenizer.json Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:23ad081f384b2bdb3c97f6e5461dfce52c1174c7328854a55006988f0fef9da7
size 17078019

9021
tokenizer_config.json Normal file

File diff suppressed because it is too large Load Diff