Qwen3.8-27B-Quark-AWQ-INT4-W4A16

INT4 weight-only (W4A16) quantized version of Qwen/Qwen3.8-27B, produced with the AWQ algorithm using AMD Quark.

  • Weights: INT4, group size 128
  • Activations: BF16 (unquantized)
  • Algorithm: AWQ (activation-aware weight quantization)
  • Calibration: 128 samples, sequence length 512
  • Base model: Qwen/Qwen3.8-27B (Apache 2.0)

Benchmark results

Benchmark Setting This model (AWQ) BF16 base Recovery %
GSM8K, 5-shot (flexible-extract / strict-match) Thinking: temperature=1.0, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=0.0, repetition_penalty=1.0, max_gen_toks=8192 91.21% / 90.67% 93.33% / 93.33% 97.7%
GSM8K, 5-shot (flexible-extract / strict-match) Non-thinking: temperature=0.7, top_p=0.80, top_k=20, min_p=0.0, presence_penalty=1.5, repetition_penalty=1.0, max_gen_toks=8192 91.51% / 90.37% 90.67% / 89.76% 100.9%
Wikitext perplexity Greedy 8.8250 8.4364 95.6%
BFCL Overall Acc (single_turn)* Greedy (harness default) 24.06% 24.38% 98.7%

* BFCL Overall Acc reflects only single_turn categories, not the full Gorilla-leaderboard formula (multi-turn/web-search/memory categories were not run and would count as 0 against the public leaderboard's own Overall Acc). Sub-metrics: Non-Live AST 86.58% (base 88.52%), Live AST 81.57% (base 83.05%), Relevance Detection 75.00% (base 75.00%), Irrelevance Detection 72.47% (base 72.22%).

Recovery % = quantized / BF16-base, using flexible-extract for GSM8K rows and base/quantized (inverted, since lower is better) for perplexity โ€” both measured by us against verified-upstream Qwen/Qwen3.8-27B weights, not vendor-reported numbers. GSM8K uses lm-evaluation-harness; non-thinking mode is approximated by pre-closing an empty <think></think> block in the prompt, since the harness task is a raw few-shot completion rather than a chat-templated request. BFCL run via the official bfcl_eval harness.

Eval command

GSM8K, thinking mode, via lm-evaluation-harness's native vLLM backend:

lm-eval run \
  --model vllm \
  --model_args pretrained=amd/Qwen3.8-27B-Quark-AWQ-INT4-W4A16,tensor_parallel_size=1,dtype=auto,gpu_memory_utilization=0.4,enforce_eager=True,trust_remote_code=True \
  --tasks gsm8k \
  --num_fewshot 5 \
  --gen_kwargs max_gen_toks=8192,do_sample=True,temperature=1.0,top_p=0.95,top_k=20,min_p=0.0,presence_penalty=0.0,repetition_penalty=1.0 \
  --batch_size auto \
  --log_samples

GSM8K, no-thinking mode. The prompt suffix <think>\n\n</think>\n\n is prepended to each answer field to suppress the model's thinking preamble (see custom task yaml below).

# gsm8k_nothink.yaml
task: gsm8k_nothink
dataset_path: openai/gsm8k
dataset_name: main
output_type: generate_until
training_split: train
fewshot_split: train
test_split: test
doc_to_text: "Question: {{question}}\nAnswer: <think>\n\n</think>\n\n"
doc_to_target: "{{answer}}"
metric_list:
  - metric: exact_match
    aggregation: mean
    higher_is_better: true
    ignore_case: true
    ignore_punctuation: false
    regexes_to_ignore: [",", "\\$", "(?s).*#### ", "\\.$"]
generation_kwargs:
  until: ["Question:", "</s>", "<|im_end|>"]
  do_sample: false
  temperature: 0.0
repeats: 1
num_fewshot: 5
filter_list:
  - name: "strict-match"
    filter: [{function: "regex", regex_pattern: "#### (\\-?[0-9\\.\\,]+)"}, {function: "take_first"}]
  - name: "flexible-extract"
    filter: [{function: "regex", group_select: -1, regex_pattern: "(-?[$0-9.,]{2,})|(-?[0-9]+)"}, {function: "take_first"}]
metadata: {version: 3.0}
lm-eval run \
  --model vllm \
  --model_args pretrained=amd/Qwen3.8-27B-Quark-AWQ-INT4-W4A16,tensor_parallel_size=1,dtype=auto,gpu_memory_utilization=0.4,enforce_eager=True,trust_remote_code=True \
  --tasks gsm8k_nothink \
  --include_path <dir containing gsm8k_nothink.yaml> \
  --num_fewshot 5 \
  --gen_kwargs max_gen_toks=8192,do_sample=True,temperature=0.7,top_p=0.80,top_k=20,min_p=0.0,presence_penalty=1.5,repetition_penalty=1.0 \
  --batch_size auto \
  --log_samples

--gen_kwargs on the CLI overrides the YAML task's own generation_kwargs defaults (greedy) with the instruct-mode recommended sampling parameters used for the non-thinking scores above.

Quantization command

python3 quantize_quark.py \
  --model_dir Qwen/Qwen3.8-27B \
  --output_dir Qwen3.8-27B-Quark-AWQ-INT4-W4A16 \
  --quant_scheme int4_wo_128 \
  --num_calib_data 128 \
  --seq_len 512 \
  --quant_algo awq \
  --model_export hf_format \
  --data_type auto \
  --device cuda

Run from Quark/examples/torch/language_modeling/llm_ptq using AMD Quark with native qwen3_5 architecture support for AWQ (contributed upstream).

Serving

Requires a Quark-compatible inference runtime with W4A16Int4 scheme support (#48606 and #46110).

vllm serve amd/Qwen3.8-27B-Quark-AWQ-INT4-W4A16 \
  --trust-remote-code \
  --tensor-parallel-size 1 \
  --reasoning-parser qwen3

License

Modifications Copyright(c) 2026 Advanced Micro Devices, Inc. All rights reserved.

Downloads last month
45,239
Safetensors
Model size
6B params
Tensor type
I32
ยท
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for amd/Qwen3.8-27B-Quark-AWQ-INT4-W4A16

Base model

Qwen/Qwen3.8-27B
Quantized
(1315)
this model

Space using amd/Qwen3.8-27B-Quark-AWQ-INT4-W4A16 1