berkerdooo/Qwen3.8-27B-Uncensored-INT8-AutoRound
Qwen3.8-27B-Uncensored INT8 AutoRound (W8A16, linear attention BF16, group size 128)
INT8 weight-only quantization of orcarouter/Qwen3.8-27B-Uncensored with AutoRound (SignRound), following the recipe of Minachist/Qwen3.8-27B-INT8-AutoRound branch linear-attn-bf16-gs128, with two changes: linear attention is excluded from tuning (not swapped back to BF16 after the fact), and 500 iters instead of 250.
263 INT8 linears / 354 BF16 linears. Format: auto_round:auto_gptq packing (vLLM loads it via GPTQ-Marlin with BF16 activations).
Recipe
AutoRound main @ b9f3d0079d014c73a1ff009800c597b9bc3f2a36 (version string 0.15.0), transformers 5.15.1, torch 2.13.0+cu130, one RTX PRO 6000 Blackwell. scheme="W8A16" (bits 8, groupsize 128, sym), `iters=500`, `nsamples=1024`, `seqlen=2048`, `batchsize=4, gradientaccumulatesteps=2, lowgpumemusage=False`, `seed=42`. Calibration: 256 samples built from `NeelNanda/pile-10k` + 768 from `codeparrot/github-code-clean` (documents concatenated so every sample is >= 2048 tokens, then truncated to 2048). Every layer is named in full in `layerconfig` (avoids AutoRound's shared-dict regex aliasing bug). Tuning took 1.26 h.
KL divergence vs the BF16 source
Teacher-forced top-24 logprobs on one 128,000-token wikitext-103 stream (rows 100k+ of the train split), one sequence, BF16 KV cache, vLLM 0.27.1, KL(P_bf16 || Q_int8) in nats over the truncated top-24. These numbers are only comparable to other models scored with the same script, stream and teacher.
Own NLL: BF16 1.8244, INT8 1.8265. For reference, the same script on Qwen/Qwen3.8-27B gives FP8 (Qwen/Qwen3.8-27B-FP8) KL 0.0048 / top-1 96.5% and Minachist's INT8 0.0029 / 97.2%.
Serving
vllm serve <this-repo> --tensor-parallel-size 2 --max-model-len 262144 --trust-remote-codeTested with vLLM 0.27.1 (Using MarlinLinearKernel for AutoGPTQLinearMethod). MTP speculative decoding: --speculative-config '{"method":"mtp","num_speculative_tokens":3}'.
