Views
No views yet
FP8_DYNAMIC (weights quantized to FP8 (E4M3),
per-channel, round-to-nearest; activations quantized to FP8 per-token with
dynamic scales computed at runtime, no calibration data required).Linear layers. The vision
tower (re:.*visual.*), the hybrid linear-attention layers
(re:.*linear_attn.*), the MoE router (re:.*mlp.gate), and lm_head stay
in the original precision.vision_config) is saved, so it loads directly in vLLM.vllm serve soyrsoyr/Qwen3.6-27B-FP8-dynamic1from vllm import LLM, SamplingParams
2
3llm = LLM(model="soyrsoyr/Qwen3.6-27B-FP8-dynamic")
4out = llm.generate(["The capital of France is"], SamplingParams(max_tokens=32))
5print(out[0].outputs[0].text)Qwen3_5ForConditionalGeneration architecture, the model is loaded
with AutoModelForImageTextToText and the full model is saved (text
quantized, vision tower kept in bf16).1from transformers import AutoModelForImageTextToText, AutoTokenizer
2from llmcompressor import oneshot
3from llmcompressor.modifiers.quantization import QuantizationModifier
4
5MODEL_ID = "Qwen/Qwen3.6-27B"
6model = AutoModelForImageTextToText.from_pretrained(MODEL_ID, dtype="bfloat16")
7tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
8
9recipe = QuantizationModifier(
10 targets="Linear",
11 scheme="FP8_DYNAMIC",
12 ignore=["lm_head", "re:.*visual.*", "re:.*linear_attn.*", "re:.*mlp.gate$"],
13)
14oneshot(model=model, recipe=recipe) # data-free
15model.save_pretrained("Qwen3.6-27B-FP8-dynamic", save_compressed=True, save_original_format=False)
16tokenizer.save_pretrained("Qwen3.6-27B-FP8-dynamic")| Benchmark (OpenLLM v1) | Metric | Qwen3.6-27B (base) | FP8-dynamic | Recovery |
|---|---|---|---|---|
| ARC-Challenge (25-shot) | acc_norm | 48.04 | 49.06 | 102.1% |
| HellaSwag (10-shot) | acc_norm | 71.25 | 71.63 | 100.5% |
| TruthfulQA-mc2 (0-shot) | acc | 55.06 | 55.65 | 101.1% |
| Winogrande (5-shot) | acc | 77.19 | 77.43 | 100.3% |
| Average | 62.89 | 63.44 | 100.9% |
max_gen_toks before the final answer, and MMLU's letter-answer
loglikelihood is measured at the position where the model wants to emit its
<think> block, so every subject lands at random chance (MMLU scored 23.02 for
the base model and 23.05 for FP8, both at the 25% four-way chance level, which
confirms it is a measurement artifact and not quantization damage). Math and
knowledge are better captured by the generative reasoning suite (AIME, MATH-500,
GPQA).| Benchmark | Metric | Qwen3.6-27B (base) | FP8-dynamic | Recovery |
|---|---|---|---|---|
| AIME-24 | pass@1 | 83.33 | 73.33 | 88.0% |
| AIME-25 | pass@1 | 73.33 | 73.33 | 100.0% |
| MATH-500 | pass@1 | 86.60 | 86.20 | 99.5% |
| Average | 81.09 | 77.62 | 95.7% |
1lm_eval --model vllm \
2 --model_args pretrained=soyrsoyr/Qwen3.6-27B-FP8-dynamic,dtype=auto,gpu_memory_utilization=0.8,max_model_len=16384,max_num_seqs=256 \
3 --tasks arc_challenge --num_fewshot 25 --apply_chat_template --fewshot_as_multiturn --batch_size auto
4# ...repeated for hellaswag (10), truthfulqa_mc2 (0), winogrande (5)1lighteval vllm \
2 "model_name=soyrsoyr/Qwen3.6-27B-FP8-dynamic,dtype=auto,max_model_length=40960,generation_parameters={temperature:0.6,top_p:0.95,top_k:20,max_new_tokens:32768}" \
3 "aime24|0,aime25|0,math_500|0" --save-details