Views
No views yet
AutoModelForCausalLM.from_pretrained — no AWQ kernels or custom classes.
Every decoder-block linear holds at most 8 distinct values per group of 128
input channels; embeddings and lm_head are untouched (weight-only quantization).1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3m = AutoModelForCausalLM.from_pretrained(
4 "ghostchoir/rebuttal_w3g128_awq", torch_dtype=torch.bfloat16, device_map="cuda")
5tok = AutoTokenizer.from_pretrained("ghostchoir/rebuttal_w3g128_awq")| Base model | Qwen/Qwen3-1.7B (BF16, 28 blocks, hidden 2048) |
| Scheme | weight-only, 3-bit, group size 128, asymmetric (zero point) |
| Scope | all self_attn / mlp linears in decoder blocks |
| Search | AWQ scale exponent (20-point grid) + clipping (stock per-output-channel search) |
inps ──► block i (candidate weights) ──► MSE vs block i unquantizedself_attn, mlp, or a single nn.Linear), which is a
narrower scope than the whole block. Clipping is stock AWQ's per-output-channel
threshold search.| Dataset | sumin99/Openr1-dataset-sampled-CMA |
| Samples | first 4096 rows (of 32768) |
| Length | first 2048 tokens per row, one document per row (no concatenation) |
| Padding | right-padded with `< |
| Totals | 8,131,131 real tokens, 3.07% padding, 3600/4096 rows truncated |
| model | WikiText-2 | Δ | OpenR1-CMA held-out | Δ |
|---|---|---|---|---|
| Qwen3-1.7B BF16 (unquantized) | 16.7162 | — | 2.2045 | — |
| RTN W3/g128 (no AWQ) | 53.5499 | +36.8337 | 4.4508 | +2.2463 |
| AWQ W3/g128 block-wise (d=0) | 23.4184 | +6.7022 | 2.6564 | +0.4520 |
| AWQ W3/g128 look-ahead (d=1) | 25.0860 | +8.3698 | 2.8304 | +0.6260 |
Comparability caveat. Thed=0andd=1arms differ in two ways, not one: the loss scope (block output vs next-block output) and the clipping search (stock per-output-channel vs a single global shrink scored look-ahead). The clipping difference does more work at 3-bit than at 4-bit, so the gap between these two arms should not be read as an ablation of the loss alone.