Model Overview
- Model Name:
amd/Mistral-Large-4-1T-A52B-Quark-MXFP4 - Model Architecture: PixtralForConditionalGeneration
- Input: Text, Image
- Output: Text
- Supported Hardware Microarchitecture: AMD MI350/MI355
- ROCm: 10.0 (HIP runtime 7.15.26333)
- PyTorch: 2.13.0+rocm10.0.0
- Transformers: 5.20.2
- Operating System(s): Linux
- Inference Engine: vLLM
- Container base image: This model was tested using the docker container
vllm/vllm-openai-rocm:nightly-rocm100-00b6c4c565a8732c131e1f452d4a17803bb0842b(vLLM nightly 26/10/2026) on a development branch for Mistral Large 4. - Model Optimizer: upcoming AMD Quark 0.14
- Routed experts weight quantization: OCP MXFP4, Static
- Routed experts activation quantization: OCP MXFP4, Dynamic
- All other layers: unchanged precision compared to base mistralai/Mistral-Large-4-1T-A52B
Model deployment
Please refer to vLLM recipe and SGLang cookbook.
This model was tested with vLLM on 4x MI355X. The Mistral tokenizer (tekken.json v15, with low / medium / high reasoning efforts) requires mistral-common 1.13.0 or later, which supports these reasoning effort levels:
pip install "mistral-common[image]>=1.13.0"
Example vLLM server:
OMP_NUM_THREADS=1 VLLM_ROCM_USE_AITER=1 \
vllm serve amd/Mistral-Large-4-1T-A52B-Quark-MXFP4 \
--tokenizer-mode mistral \
--config-format mistral \
--load-format mistral \
--tensor-parallel-size 4 \
--monokernel \
--kv-cache-dtype fp8 \
--max-model-len 262144 \
--max-num-batched-tokens 8192 \
--gpu-memory-utilization 0.85 \
--reasoning-parser mistral \
--speculative-config '{"method": "dspark", "num_speculative_tokens": 3}'
Notes:
--monokernelis only supported on MI350X / MI355X (gfx950, 256 CUs) at tensor parallelism TP=4. It supports dspark speculative decoding, and fp8 and bf16 KV cache.--speculative-configenables DSpark speculative decoding with the checkpoint's draft head, which is kept out of the quantization (seemtp_dspark.*inEXCLUDE).num_speculative_tokensmust be 3, the depth of the draft block; drop the flag for a non-speculative baseline.
Model Quantization
The model was quantized from mistralai/Mistral-Large-4-1T-A52B with
AMD-Quark, through the file-to-file flow: the safetensors shards are
quantized one at a time, so the 1T-parameter model is never materialized.
from quark.torch import ModelQuantizer
from quark.torch.quantization.config.config import QConfig
from quark.torch.quantization.config.template import MXFP4Scheme
SRC = "/path/to/Mistral-Large-4-1T-A52B"
OUT = "/path/to/Mistral-Large-4-1T-A52B-Quark-MXFP4"
# Pre-quantized layers kept in their source format. Native Mistral module names,
# which differ from the Hugging Face layout (layers.N.attention.wq rather than
# model.layers.N.self_attn.q_proj).
EXCLUDE = [
"*attention.*",
"*shared_experts.*",
"*feed_forward.*",
"*.gate",
"output",
"vision_encoder.*",
"patch_merger.*",
"vision_language_adapter.*",
"mtp_dspark.*",
]
quant_config = QConfig(global_quant_config=MXFP4Scheme().config, exclude=EXCLUDE)
ModelQuantizer(quant_config).direct_quantize_checkpoint(
pretrained_model_path=SRC,
save_path=OUT,
keep_excluded_layers_as_original_model_state=True,
device="cuda",
)
Evaluation
All tasks are evaluated with a single lm-evaluation-harness command, each task with its own maximum generation length (--max_gen_toks_per_task) and number of repeats (--repeats_per_task); a group name such as mmlu_pro_chat applies to all its subtasks:
lm_eval --model local-chat-completions \
--model_args "model=<server-model-id>,base_url=http://<server-ip>/v1/chat/completions,num_concurrent=16,timeout=99999,tokenized_requests=False,think_end_token='[/THINK]',tokenizer=<tokenizer-path>,tokenizer_backend=huggingface,server_sampling_defaults=True" \
--tasks gpqa_diamond_cot_zeroshot,aime26,mmlu_pro_chat \
--gen_kwargs 'reasoning_effort=medium,temperature=1.0,top_p=0.95,until=["[INST]"]' \
--log_samples --output_path results \
--apply_chat_template \
--max_gen_toks_per_task gpqa_diamond_cot_zeroshot=96000 aime26=130000 mmlu_pro_chat=16384 \
--repeats_per_task gpqa_diamond_cot_zeroshot=8 aime26=8 mmlu_pro_chat=1 \
--generation-length
Evaluation results correctness are validated by an agent.
Benchmarks:
- GPQA Diamond: task
gpqa_diamond_cot_zeroshot(198 questions), maximum generation length 96k tokens. - AIME26: task
aime26(30 problems), maximum generation length 130k tokens. - MMLU-Pro (chat): task
mmlu_pro_chat(14 subjects, 12,032 questions, 5-shot as multi-turn chat), maximum generation length 16,384 tokens.
The baseline is evaluated with a BF16 KV cache, amd/Mistral-Large-4-1T-A52B-Quark-MXFP4 with an FP8 KV cache (--kv-cache-dtype fp8); see Evaluation settings.
Summary
mean@8: accuracy averaged over 8 independent repeats (GPQA Diamond, AIME26). mean@1: accuracy of a single repeat (MMLU-Pro).
| Benchmark | mistralai/Mistral-Large-4-1T-A52B baseline |
This model (MXFP4) |
|---|---|---|
| GPQA Diamond (mean@8) | 88.89 | 88.13 |
| AIME26 (mean@8) | 98.75 | 98.75 |
| MMLU-Pro, chat (mean@1) | 85.40 | 85.04 |
Detailed results
| Benchmark | Metric | mistralai/Mistral-Large-4-1T-A52B baseline |
This model (MXFP4) |
|---|---|---|---|
| GPQA Diamond | mean@8 | 88.89 | 88.13 |
| maj@8 | 89.39 | 89.90 | |
| Mean tokens per answer | 10,389 | 10,505 | |
| % of answers hitting maximum generation length limit | 0.82% | 1.07% | |
| AIME26 | mean@8 | 98.75 | 98.75 |
| maj@8 | 100.00 | 100.00 | |
| Mean tokens per answer | 12,032 | 12,574 | |
| % of answers hitting maximum generation length limit | 0.00% | 0.00% | |
| MMLU-Pro, chat | mean@1 | 85.40 | 85.04 |
| Mean tokens per answer | 2,147 | 2,098 | |
| % of answers hitting maximum generation length limit | 0.97% | 0.96% |
Evaluation settings
Details
mistralai/Mistral-Large-4-1T-A52B is evaluated with tensor parallelism TP=8 and DSpark speculative decoding (--speculative-config '{"method": "dspark", "num_speculative_tokens": 3}'), with BF16 KV cache.
amd/Mistral-Large-4-1T-A52B-Quark-MXFP4 is evaluated with tensor parallelism TP=4, with --monokernel and DSpark speculative decoding (--speculative-config '{"method": "dspark", "num_speculative_tokens": 3}'), with FP8 KV cache (--kv-cache-dtype fp8).
Other evaluation settings include:
- The DSA indexer key cache is always FP8.
- Sampling, for both models and all tasks:
temperature=1.0,top_p=0.95, notop_k, no fixed seed (each repeat is an independent sample). These are the default sampling parameters of the basemistralai/Mistral-Large-4-1T-A52Bcheckpoint. - Reasoning effort:
medium - The evaluation servers run without
--reasoning-parser mistral(lm-eval reads the reasoning trace fromcontent), with--max-model-len 163840 --gpu-memory-utilization 0.83. - Evaluations use lm-evaluation-harness, branch
lm-eval-fixes, commit503ad16, against a runningvllm serveOpenAI-compatible endpoint (chat API).
Scoring notes (all tasks):
- A generation that hits the maximum generation length, never closes its reasoning (
[/THINK]), or gives an empty final answer is scored incorrect and does not vote inmaj@8. maj@8ties (no single most frequent answer among the 8 repeats) are broken by the answer that appears first in repeat order. On GPQA Diamond, 0 of 198 questions are ties formistralai/Mistral-Large-4-1T-A52Band 1 of 198 foramd/Mistral-Large-4-1T-A52B-Quark-MXFP4(3 of 198 with thefp8_ds_mlaKV cache below), somaj@8can move by up to about 1.5 points depending on the tie rule. AIME26 has no ties.- Mean tokens per answer: mean generation length over all generations (8 per question for GPQA Diamond and AIME26, 1 for MMLU-Pro), reasoning trace included.
- One
amd/Mistral-Large-4-1T-A52B-Quark-MXFP4GPQA Diamond answer (fp8KV cache) was manually re-scored as correct: its final line isThe answer is (Bs)., the right letter with a stray character, which the extractor does not parse. There are no such cases formistralai/Mistral-Large-4-1T-A52B, for AIME26, or with thefp8_ds_mlaKV cache.
Reference only: results with fp8_ds_mla KV cache
Evaluation results with fp8_ds_mla KV cache (unreleased on Instinct, reference only):
| Model | Task | KV cache dtype | Repeats | mean | maj@8 | Mean tokens per answer | % of answers hitting maximum generation length limit |
|---|---|---|---|---|---|---|---|
| This model (MXFP4) | GPQA Diamond | fp8_ds_mla |
8 | 87.50 | 88.38 | 10,410 | 1.14% |
| This model (MXFP4) | AIME26 | fp8_ds_mla |
8 | 99.17 | 100.00 | 11,637 | 0.00% |
| This model (MXFP4) | MMLU-Pro (chat) | fp8_ds_mla |
1 | 85.26 | N/A | 2,087 | 0.96% |
These results use TP=4 with DSpark speculative decoding and without --monokernel.
Difference with --kv-cache-dtype fp8:
fp8on AMD Instinct: the latent KV cache (512 latent + 64 RoPE values per token, 576 bytes) is stored as plain FP8 E4M3 with a single per-tensor scale of 1.0 (the checkpoint ships no KV scales).fp8_ds_mla: reference only, using the DeepSeek-V3.2 / FlashMLAfp8_ds_mlaKV cache layout: 656 bytes per token, the 512 latent values in FP8 E4M3 with one FP32 power-of-two scale per block of 128 values, and the 64 RoPE values in BF16. The per-block scales keep small-magnitude latents (e.g. in the first layers) more precise than a single per-tensor scale.
License
Modifications Copyright(c) 2026 Advanced Micro Devices, Inc. All rights reserved.
- Downloads last month
- 132
Model tree for amd/Mistral-Large-4-1T-A52B-Quark-MXFP4
Base model
mistralai/Mistral-Large-4-1T-A52B