We’re putting $5M behind research and development of smaller, specialized AI models for real-world deployment — Read our manifesto →
    All research

    Why Diffusion LLM Quantization Is Harder Than It Looks

    Diffusion LLMs reuse the transformer, but not its inference physics. That single difference is why GPTQ, AWQ, and QuaRot fall over — and how DLLMQuant and Quant-dLLM put them back together.

    Conscious Engines

    A diffusion language model exposes the same modules you have quantized a hundred times: attention and MLP projections, embeddings, a few norms, an output head [5, 6]. So the default move is to reuse the autoregressive (AR) toolbox — GPTQ for the weights, AWQ, SmoothQuant, or QuaRot once activations also go low-bit [8, 9, 10, 11] — calibrate on a few hundred sequences of text, and quantize.

    It does not transfer. AWQ on LLaDA-8B at W4A4 loses more than 16 accuracy points [1], with no architectural warning: identical layer shapes, identical kernels. The reason is that quantization error is governed not by the modules but by the distribution of the tensors that flow through them — and AR and diffusion inference induce very different distributions over identically shaped layers.

    What AR quantization relies on

    Every PTQ method reduces to approximating one matmul. A linear layer computes Y=XWY = XW with XRn×dinX\in\mathbb R^{n\times d_\text{in}} and WRdin×doutW\in\mathbb R^{d_\text{in}\times d_\text{out}}, and quantization replaces it with Y^=QX(X)QW(W)\hat Y = Q_X(X)\,Q_W(W). The workhorse is the uniform quantizer,

    Qs(x)=sclip ⁣(x/s,  qmin,  qmax),[qmin,qmax]=[2b1,2b11],Q_s(x) = s\cdot\operatorname{clip}\!\Big(\big\lfloor x/s\big\rceil,\; q_{\min},\; q_{\max}\Big), \qquad [q_{\min},q_{\max}] = [-2^{b-1},\, 2^{b-1}-1],

    so signed INT4 lands on the grid [8,7][-8, 7] and the only freedom is the scale ss (plus a zero point zz for asymmetric activations). Each method is a different way of choosing those scales to solve the same layer-reconstruction problem,

    minW^ XWXW^F2.\min_{\hat W}\ \big\|XW - X\hat W\big\|_F^2.

    GPTQ minimizes it column by column using the OBQ Hessian H=XXH = X^\top X: after rounding column qq, it pushes the induced error into the not-yet-quantized columns,

    δ=wqQ(wq)[H1]qqH:,q1,\delta = -\,\frac{w_q - Q(w_q)}{\big[H^{-1}\big]_{qq}}\,H^{-1}_{:,q},

    which is the only place the calibration activations XX enter [8]. AWQ rescales channels by activation magnitude [9]; SmoothQuant migrates activation outliers into the weights via a diagonal reparametrization, X ⁣ ⁣Xdiag(s)1X\!\to\!X\operatorname{diag}(s)^{-1} and W ⁣ ⁣diag(s)WW\!\to\!\operatorname{diag}(s)\,W, leaving XWXW unchanged [10]; QuaRot inserts an orthogonal RR with RR=IR^\top R = I so that XW=(XR)(RW)XW = (XR)(R^\top W) is exact while the Hadamard rotation spreads the outliers in XRXR [11].

    All of it rests on one assumption: XcalibXinferX_\text{calib}\approx X_\text{infer}, so that the empirical objective minsEXpcalibXWQs(X)Q(W)2\min_s \mathbb E_{X\sim p_\text{calib}}\|XW - Q_s(X)Q(W)\|^2 is a faithful proxy for deployment. For AR models it holds because inference is a stationary causal process — xtpθ(x<t)x_t\sim p_\theta(\cdot\mid x_{<t}), attention is lower-triangular, and step t+1t{+}1 reuses step tt's activations on a sequence one token longer. The marginal distribution a layer sees is essentially fixed, so a frozen calibration set samples it well.

    The diffusion inference loop

    A masked diffusion LM does not extend a prefix. It initializes all LL positions to a mask token [M][M] and iterates a denoiser pθ(x0xt)p_\theta(x_0\mid x_t) over steps t=T,,1t = T,\dots,1 [5, 6]. The per-position state is

    xti={[M],i masked at step t,x0i,i already committed,x_t^i = \begin{cases} [M], & i \text{ masked at step } t,\\ x_0^i, & i \text{ already committed}, \end{cases}

    the forward process masks each token independently with probability t[0,1]t\in[0,1], and the mask ratio ρt=1Li1[xti=M]\rho_t = \tfrac{1}{L}\sum_i \mathbf 1[x_t^i = M] falls as decoding proceeds. Each step scores all masked positions, commits the highest-confidence subset, and re-masks the rest; block-diffusion models such as LLaDA2 add a block index bb selecting the active region [7].

    There is therefore no single activation distribution. A layer \ell sees a family

    X(t,ρ,b,π),X_\ell\big(t,\rho,b,\pi\big),

    indexed by step tt, mask ratio ρ\rho, active block bb, and commit/remask policy π\pi. The AR proxy collapses: fully visible calibration text concentrates near ρ0\rho\approx 0, while inference spends most of its steps at large ρ\rho. The honest calibration objective is an expectation over the schedule,

    mins EtEXptXWQs(X)Q(W)2,\min_s\ \mathbb E_{t}\,\mathbb E_{X\sim p_t}\big\|XW - Q_s(X)\,Q(W)\big\|^2,

    and fitting the ρ0\rho\approx 0 slice alone optimizes the wrong distribution. Four consequences follow.

    Where the assumptions break

    1. Calibration covers the wrong support. Empirically, the activation range of LLaDA's first block drifts monotonically across tt — adjacent steps similar, distant ones nearly disjoint [1] — so a single ss chosen at ρ0\rho\approx 0 cannot cover the high-ρ\rho regimes the model actually occupies.

    2. Error compounds along the trajectory. In a feed-forward pass quantization error is local. In diffusion the step output is the next step's input, xt1=g(xt,f^θ(xt))x_{t-1} = g\big(x_t, \hat f_\theta(x_t)\big), so with L(xt)L(x_t) the accumulated error at step tt, DLLMQuant's recurrence is

    L(xt)=xtDeq ⁣(Q(xt+L(xt+1))).L(x_t) = x_t - \operatorname{Deq}\!\big(Q(x_t + L(x_{t+1}))\big).

    Linearizing, L(xt)ϵt+JgL(xt+1)L(x_t)\approx \epsilon_t + J_g\,L(x_{t+1}) with per-step quantization noise ϵt\epsilon_t and Jacobian Jg=g/xJ_g = \partial g/\partial x, hence

    L(xt)    τ>tJgτtϵτ,\big\|L(x_t)\big\| \;\lesssim\; \sum_{\tau > t} \|J_g\|^{\,\tau - t}\,\|\epsilon_\tau\|,

    geometric growth rather than a one-shot perturbation [1]. DLLMQuant localizes most of ϵt\epsilon_t to a single op, the softmax(QK/d)V\operatorname{softmax}(QK^\top/\sqrt d)\,V product; holding that matmul in high precision flattens the curve. It also separates the two regimes: with FP16 activations Y^=XQW(W)\hat Y = X\,Q_W(W) injects weight error once, whereas Y^=QX(X)QW(W)\hat Y = Q_X(X)\,Q_W(W) injects activation error on each of TT passes — which is why W4A16 is stable and W4A4 is a cliff.

    3. Attention reweights activation error. With A=softmax(QK/d)A = \operatorname{softmax}(QK^\top/\sqrt d) and Oi=jAijVjO_i = \sum_j A_{ij} V_j, quantizing the values gives

    ΔOi=jAij(Q(Vj)Vj),ΔOijAijQ(Vj)Vj.\Delta O_i = \sum_j A_{ij}\big(Q(V_j) - V_j\big), \qquad \|\Delta O_i\| \le \sum_j A_{ij}\,\|Q(V_j) - V_j\|.

    The output error is the attention-weighted value error, not the raw one. In LLaDA AA is sharply peaked (mass on the diagonal and a few tokens) while VV varies strongly across channels and tokens [1], so an unweighted quantizer that equalizes Q(Vj)Vj\|Q(V_j) - V_j\| pours precision into columns AA multiplies by near-zero.

    4. The Hessian over-weights inert tokens. GPTQ compensates with H=XXH = X^\top X, weighting every token row equally. But each row is one of: committed and frozen (error does not propagate), masked and low-confidence (likely re-masked), or masked and high-confidence (about to enter the context every later step reads). Only the last feeds forward, so a uniform HH spends its compensation budget on rows with no downstream effect.

    Schedule-aware fixes

    DLLMQuant [1] addresses cracks 1–4 as three modules over a GPTQ/QuaRot baseline.

    Temporal-Mask Adaptive Sampling (TMAS) replaces text sampling with state sampling. With BB blocks and TT steps it sets block size s=T/Bs = \lfloor T/B\rfloor, classifies each captured state into one of four mask-ratio bins split at {0.2,0.5,0.8}\{0.2, 0.5, 0.8\}, and fills per-block quotas with target proportions p=n[0.3,0.2,0.2,0.3]p = n\,[0.3, 0.2, 0.2, 0.3] — over-sampling the ρ ⁣ ⁣1\rho\!\to\!1 and ρ ⁣ ⁣0\rho\!\to\!0 extremes where the distribution is most distinct. The calibration set then approximates Etpt\mathbb E_t\,p_t rather than pt0p_{t\approx 0}, and on its own recovers most of the INT4 drop [1].

    Interaction-Aware Activation Quantization (IA-AQ) quantizes VV against the attention-weighted objective from crack 3,

    mins i,jAijVjQs(Vj)2,\min_s\ \sum_{i,j} A_{ij}\,\big\|V_j - Q_s(V_j)\big\|^2,

    searching the scale on a grid around the default range s^=(VmaxVmin)/(qmaxqmin)\hat s = (V_{\max} - V_{\min})/(q_{\max} - q_{\min}), with s=αs^s = \alpha^\star\hat s and α=argminα{1.0,0.8}L(αs^)\alpha^\star = \arg\min_{\alpha\in\{1.0,\,0.8\}} L(\alpha\hat s) [1].

    Certainty-Guided Quantization (CGQ) replaces the flat Hessian with a certainty-weighted one. Define a per-token weight folding in mask state and confidence score scisc_i,

    ωi=(1[xti=M]1+1[xtiM]0.7)+sci,X~=diag(ω)X,\omega_i = \big(\mathbf 1[x_t^i = M]\cdot 1 + \mathbf 1[x_t^i \neq M]\cdot 0.7\big) + \sqrt{sc_i}, \qquad \tilde X = \operatorname{diag}(\omega)\,X,

    so that

    H=X~X~=XΩX,Ω=diag(ω2),H = \tilde X^\top \tilde X = X^\top \Omega X, \qquad \Omega = \operatorname{diag}(\omega^2),

    concentrating compensation on masked, high-confidence rows — crack 4 [1]. Together the three turn a 16-point loss into a >>10-point GSM8K gain over baselines, preserve reasoning that plain QuaRot drops, and run \sim1.6× faster at \sim3.2× less memory [1].

    Quant-dLLM [3] pushes weight-only to 2 bits. It keeps schedule-aware calibration (Masked Calibration Simulation, the MCS analogue of TMAS) but changes the weight code: instead of one 2-bit grid it writes each matrix as an order-KK sum of row–column-scaled binary matrices,

    W^=i=1Kdiag(ui)B(i)diag(vi),B(i){1,+1}din×dout,\hat W = \sum_{i=1}^{K} \operatorname{diag}(u_i)\,B^{(i)}\,\operatorname{diag}(v_i), \qquad B^{(i)}\in\{-1,+1\}^{d_\text{in}\times d_\text{out}},

    fit to the simulated calibration statistics; KK binary planes cost K\approx K bits, so K=2K = 2 holds the budget while fitting masked activations better than a fixed code [3]. Adaptive Blockwise Mixed Precision then assigns per-block order KbK_b by a sensitivity score under the average constraint 1BbKb2\frac{1}{B}\sum_b K_b \le 2, spending extra planes on the blocks that drive late-step error — the bit-budget analogue of CGQ.

    The asymmetry: weights are easy, activations are not

    After all of that, the weight side is the forgiving one. A systematic sweep finds 4-bit weight-only nearly lossless across LLaDA and Dream (GPTQ >> AWQ), with the sharp degradation reserved for low-bit activations [2]. The mechanism is structural [4]: LLaDA carries a single super-outlier channel jj^\star whose magnitude dominates the hidden state,

    hcej+h~,ch~,h_\ell \approx c\,e_{j^\star} + \tilde h_\ell, \qquad |c| \gg \|\tilde h_\ell\|,

    behaving as a learned constant — prune jj^\star and generation collapses into repetitive token loops. Around it the early layers are highly redundant (high inter-layer representation similarity), the reverse of the AR pattern where deep layers degenerate, which the authors attribute to over-training.

    That redundancy is slack the weight quantizer can spend: 3-bit GPTQ costs LLaDA <<2 points on GSM8K but costs Llama-3.1-8B \approx65 [4]. It also inverts pruning heuristics — under a 50% average-sparsity budget, allocating more sparsity to early layers beats the reverse by \approx8.4 points on LLaDA and loses \approx8.4 on Llama [4]. The AR rules of thumb are not merely loose here; their sign flips. The hard variables are not WW but the activation scales and the calibration support — exactly the quantities coupled to the denoising schedule.

    From fake quantization to real kernels

    A fake-quantized score — simulate xQ(x)Deq(Q(x))x \to Q(x) \to \operatorname{Deq}(Q(x)), then compute in FP16 — bounds recoverable accuracy but not latency. A real speedup needs packed INT4/FP4 weights, low-bit matmul and fast Hadamard/rotation kernels, and the activation quantizer fused into the loop. The loop is the multiplier: emitting LL tokens costs O(T)O(T) full forward passes, so a per-pass overhead Δ\Delta scales to TΔT\Delta, and MoE variants add per-pass routing across many expert matrices. DLLMQuant's \sim1.6×/\sim3.2× hold only because the kernels are real and the trajectory survives them [1].

    Summary

    The AR toolbox is the right substrate — GPTQ, AWQ, SmoothQuant, QuaRot — and on weights it carries diffusion models further than AR ones [2, 4]. What changes is the quantized object. It is not the per-layer map WQ(W)W \to Q(W) but the closed loop

    xt1=g(xt,Q(fθ)(xt)),xTQ(fθ)Q(fθ)x0,x_{t-1} = g\big(x_t,\, Q(f_\theta)(x_t)\big), \qquad x_T \xrightarrow{Q(f_\theta)} \cdots \xrightarrow{Q(f_\theta)} x_0,

    whose objective is the end-to-end minQE[d(x0Q,x0)]\min_Q \mathbb E\big[\,d(x_0^{Q}, x_0)\,\big], not a single Frobenius residual. The working methods each reduce one piece of that loop to a tractable surrogate: TMAS/MCS calibrate over Etpt\mathbb E_t\,p_t, IA-AQ weights value error by AA, CGQ weights HH by mask-certainty, ABMP allocates bits by step-sensitivity [1, 3]. Same modules, different inference distribution — and a quantizer blind to the schedule minimizes the wrong objective with full confidence.

    References

    [1] Chen Xu and Dawei Yang, DLLMQuant: Quantizing Diffusion-based Large Language Models, 2025.

    [2] Haokun Lin et al., Quantization Meets dLLMs: A Systematic Study of Post-training Quantization for Diffusion LLMs, 2025. Official code: MessiX77/QDLM.

    [3] Tianao Zhang et al., Quant-dLLM: Post-Training Extreme Low-Bit Quantization for Diffusion Large Language Models, 2025. Official code: ZTA2785/Quant-dLLM.

    [4] Alexander Conzelmann, Albert Catalan-Tatjer, and Shiwei Liu, Layer Collapse in Diffusion Language Models, 2026. Official code: Conzel/super-outlier-dlm.

    [5] Shen Nie, Fengqi Zhu, Zebin You, et al., Large Language Diffusion Models, 2025.

    [6] Jiacheng Ye, Zhihui Xie, Lin Zheng, et al., Dream 7B: Diffusion Large Language Models, 2025.

    [7] Tiwei Bie, Maosong Cao, Kun Chen, et al., LLaDA2.0: Scaling Up Diffusion Language Models to 100B, 2025.

    [8] Elias Frantar et al., GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers, 2022.

    [9] Ji Lin et al., AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration, 2023.

    [10] Guangxuan Xiao et al., SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models, 2022.

    [11] Salaheddin Ashkboos et al., QuaRot: Outlier-Free 4-Bit Inference in Rotated LLMs, 2024.

    [12] Haokun Lin et al., DuQuant: Distributing Outliers via Dual Transformation Makes Stronger Quantized LLMs, 2024.

    s activations on a sequence one token longer.\nThe marginal distribution a layer sees is essentially fixed, so a frozen calibration set samples it well.\n\n## The diffusion inference loop\n\nA masked diffusion LM does not extend a prefix. It initializes all $L$ positions to a mask token $[M]$ and\niterates a denoiser $p_\\theta(x_0\\mid x_t)$ over steps $t = T,\\dots,1$ [5, 6]. The per-position state is\n\n$\nx_t^i =\n\\begin{cases}\n[M], & i \\text{ masked at step } t,\\\\\nx_0^i, & i \\text{ already committed},\n\\end{cases}\n$\n\nthe forward process masks each token independently with probability $t\\in[0,1]$, and the mask ratio\n$\\rho_t = \\tfrac{1}{L}\\sum_i \\mathbf 1[x_t^i = M]$ falls as decoding proceeds. Each step scores all masked\npositions, commits the highest-confidence subset, and re-masks the rest; block-diffusion models such as\nLLaDA2 add a block index $b$ selecting the active region [7].\n\nThere is therefore no single activation distribution. A layer $\\ell$ sees a family\n\n$\nX_\\ell\\big(t,\\rho,b,\\pi\\big),\n$\n\nindexed by step $t$, mask ratio $\\rho$, active block $b$, and commit/remask policy $\\pi$. The AR proxy\ncollapses: fully visible calibration text concentrates near $\\rho\\approx 0$, while inference spends most of\nits steps at large $\\rho$. The honest calibration objective is an expectation over the schedule,\n\n$\n\\min_s\\ \\mathbb E_{t}\\,\\mathbb E_{X\\sim p_t}\\big\\|XW - Q_s(X)\\,Q(W)\\big\\|^2,\n$\n\nand fitting the $\\rho\\approx 0$ slice alone optimizes the wrong distribution. Four consequences follow.\n\n## Where the assumptions break\n\n**1. Calibration covers the wrong support.** Empirically, the activation range of LLaDA's first block drifts\nmonotonically across $t$ — adjacent steps similar, distant ones nearly disjoint [1] — so a single $s$ chosen\nat $\\rho\\approx 0$ cannot cover the high-$\\rho$ regimes the model actually occupies.\n\n**2. Error compounds along the trajectory.** In a feed-forward pass quantization error is local. In diffusion\nthe step output is the next step's input, $x_{t-1} = g\\big(x_t, \\hat f_\\theta(x_t)\\big)$, so with $L(x_t)$ the\naccumulated error at step $t$, DLLMQuant's recurrence is\n\n$\nL(x_t) = x_t - \\operatorname{Deq}\\!\\big(Q(x_t + L(x_{t+1}))\\big).\n$\n\nLinearizing, $L(x_t)\\approx \\epsilon_t + J_g\\,L(x_{t+1})$ with per-step quantization noise $\\epsilon_t$ and\nJacobian $J_g = \\partial g/\\partial x$, hence\n\n$\n\\big\\|L(x_t)\\big\\| \\;\\lesssim\\; \\sum_{\\tau > t} \\|J_g\\|^{\\,\\tau - t}\\,\\|\\epsilon_\\tau\\|,\n$\n\ngeometric growth rather than a one-shot perturbation [1]. DLLMQuant localizes most of $\\epsilon_t$ to a\nsingle op, the $\\operatorname{softmax}(QK^\\top/\\sqrt d)\\,V$ product; holding that matmul in high precision\nflattens the curve. It also separates the two regimes: with FP16 activations $\\hat Y = X\\,Q_W(W)$ injects\nweight error once, whereas $\\hat Y = Q_X(X)\\,Q_W(W)$ injects activation error on each of $T$ passes — which\nis why W4A16 is stable and W4A4 is a cliff.\n\n**3. Attention reweights activation error.** With $A = \\operatorname{softmax}(QK^\\top/\\sqrt d)$ and\n$O_i = \\sum_j A_{ij} V_j$, quantizing the values gives\n\n$\n\\Delta O_i = \\sum_j A_{ij}\\big(Q(V_j) - V_j\\big),\n\\qquad\n\\|\\Delta O_i\\| \\le \\sum_j A_{ij}\\,\\|Q(V_j) - V_j\\|.\n$\n\nThe output error is the *attention-weighted* value error, not the raw one. In LLaDA $A$ is sharply peaked\n(mass on the diagonal and a few tokens) while $V$ varies strongly across channels and tokens [1], so an\nunweighted quantizer that equalizes $\\|Q(V_j) - V_j\\|$ pours precision into columns $A$ multiplies by\nnear-zero.\n\n**4. The Hessian over-weights inert tokens.** GPTQ compensates with $H = X^\\top X$, weighting every token row\nequally. But each row is one of: committed and frozen (error does not propagate), masked and low-confidence\n(likely re-masked), or masked and high-confidence (about to enter the context every later step reads). Only\nthe last feeds forward, so a uniform $H$ spends its compensation budget on rows with no downstream effect.\n\n## Schedule-aware fixes\n\nDLLMQuant [1] addresses cracks 1–4 as three modules over a GPTQ/QuaRot baseline.\n\n**Temporal-Mask Adaptive Sampling (TMAS)** replaces text sampling with state sampling. With $B$ blocks and\n$T$ steps it sets block size $s = \\lfloor T/B\\rfloor$, classifies each captured state into one of four\nmask-ratio bins split at $\\{0.2, 0.5, 0.8\\}$, and fills per-block quotas with target proportions\n$p = n\\,[0.3, 0.2, 0.2, 0.3]$ — over-sampling the $\\rho\\!\\to\\!1$ and $\\rho\\!\\to\\!0$ extremes where the\ndistribution is most distinct. The calibration set then approximates $\\mathbb E_t\\,p_t$ rather than\n$p_{t\\approx 0}$, and on its own recovers most of the INT4 drop [1].\n\n**Interaction-Aware Activation Quantization (IA-AQ)** quantizes $V$ against the attention-weighted objective\nfrom crack 3,\n\n$\n\\min_s\\ \\sum_{i,j} A_{ij}\\,\\big\\|V_j - Q_s(V_j)\\big\\|^2,\n$\n\nsearching the scale on a grid around the default range $\\hat s = (V_{\\max} - V_{\\min})/(q_{\\max} - q_{\\min})$,\nwith $s = \\alpha^\\star\\hat s$ and $\\alpha^\\star = \\arg\\min_{\\alpha\\in\\{1.0,\\,0.8\\}} L(\\alpha\\hat s)$ [1].\n\n**Certainty-Guided Quantization (CGQ)** replaces the flat Hessian with a certainty-weighted one. Define a\nper-token weight folding in mask state and confidence score $sc_i$,\n\n$\n\\omega_i = \\big(\\mathbf 1[x_t^i = M]\\cdot 1 + \\mathbf 1[x_t^i \\neq M]\\cdot 0.7\\big) + \\sqrt{sc_i},\n\\qquad \\tilde X = \\operatorname{diag}(\\omega)\\,X,\n$\n\nso that\n\n$\nH = \\tilde X^\\top \\tilde X = X^\\top \\Omega X, \\qquad \\Omega = \\operatorname{diag}(\\omega^2),\n$\n\nconcentrating compensation on masked, high-confidence rows — crack 4 [1]. Together the three turn a\n16-point loss into a $>$10-point GSM8K gain over baselines, preserve reasoning that plain QuaRot drops, and\nrun $\\sim$1.6× faster at $\\sim$3.2× less memory [1].\n\n**Quant-dLLM** [3] pushes weight-only to 2 bits. It keeps schedule-aware calibration (Masked Calibration\nSimulation, the MCS analogue of TMAS) but changes the weight code: instead of one 2-bit grid it writes each\nmatrix as an order-$K$ sum of row–column-scaled binary matrices,\n\n$\n\\hat W = \\sum_{i=1}^{K} \\operatorname{diag}(u_i)\\,B^{(i)}\\,\\operatorname{diag}(v_i),\n\\qquad B^{(i)}\\in\\{-1,+1\\}^{d_\\text{in}\\times d_\\text{out}},\n$\n\nfit to the simulated calibration statistics; $K$ binary planes cost $\\approx K$ bits, so $K = 2$ holds the\nbudget while fitting masked activations better than a fixed code [3]. Adaptive Blockwise Mixed Precision then\nassigns per-block order $K_b$ by a sensitivity score under the average constraint\n$\\frac{1}{B}\\sum_b K_b \\le 2$, spending extra planes on the blocks that drive late-step error — the\nbit-budget analogue of CGQ.\n\n## The asymmetry: weights are easy, activations are not\n\nAfter all of that, the weight side is the forgiving one. A systematic sweep finds 4-bit weight-only nearly\nlossless across LLaDA and Dream (GPTQ $>$ AWQ), with the sharp degradation reserved for low-bit activations\n[2]. The mechanism is structural [4]: LLaDA carries a single super-outlier channel $j^\\star$ whose magnitude\ndominates the hidden state,\n\n$\nh_\\ell \\approx c\\,e_{j^\\star} + \\tilde h_\\ell, \\qquad |c| \\gg \\|\\tilde h_\\ell\\|,\n$\n\nbehaving as a learned constant — prune $j^\\star$ and generation collapses into repetitive token loops. Around\nit the early layers are highly redundant (high inter-layer representation similarity), the reverse of the AR\npattern where deep layers degenerate, which the authors attribute to over-training.\n\nThat redundancy is slack the weight quantizer can spend: 3-bit GPTQ costs LLaDA $\u003c$2 points on GSM8K but\ncosts Llama-3.1-8B $\\approx$65 [4]. It also inverts pruning heuristics — under a 50% average-sparsity budget,\nallocating more sparsity to early layers beats the reverse by $\\approx$8.4 points on LLaDA and loses\n$\\approx$8.4 on Llama [4]. The AR rules of thumb are not merely loose here; their sign flips. The hard\nvariables are not $W$ but the activation scales and the calibration support — exactly the quantities coupled\nto the denoising schedule.\n\n## From fake quantization to real kernels\n\nA fake-quantized score — simulate $x \\to Q(x) \\to \\operatorname{Deq}(Q(x))$, then compute in FP16 — bounds\nrecoverable accuracy but not latency. A real speedup needs packed INT4/FP4 weights, low-bit matmul and fast\nHadamard/rotation kernels, and the activation quantizer fused into the loop. The loop is the multiplier:\nemitting $L$ tokens costs $O(T)$ full forward passes, so a per-pass overhead $\\Delta$ scales to $T\\Delta$,\nand MoE variants add per-pass routing across many expert matrices. DLLMQuant's $\\sim$1.6×/$\\sim$3.2× hold\nonly because the kernels are real and the trajectory survives them [1].\n\n## Summary\n\nThe AR toolbox is the right substrate — GPTQ, AWQ, SmoothQuant, QuaRot — and on weights it carries diffusion\nmodels further than AR ones [2, 4]. What changes is the quantized object. It is not the per-layer map\n$W \\to Q(W)$ but the closed loop\n\n$\nx_{t-1} = g\\big(x_t,\\, Q(f_\\theta)(x_t)\\big),\n\\qquad\nx_T \\xrightarrow{Q(f_\\theta)} \\cdots \\xrightarrow{Q(f_\\theta)} x_0,\n$\n\nwhose objective is the end-to-end $\\min_Q \\mathbb E\\big[\\,d(x_0^{Q}, x_0)\\,\\big]$, not a single Frobenius\nresidual. The working methods each reduce one piece of that loop to a tractable surrogate: TMAS/MCS\ncalibrate over $\\mathbb E_t\\,p_t$, IA-AQ weights value error by $A$, CGQ weights $H$ by mask-certainty, ABMP\nallocates bits by step-sensitivity [1, 3]. Same modules, different inference distribution — and a quantizer\nblind to the schedule minimizes the wrong objective with full confidence.\n\n## References\n\n[1] Chen Xu and Dawei Yang, [DLLMQuant: Quantizing Diffusion-based Large Language Models](https://arxiv.org/abs/2508.14090), 2025.\n\n[2] Haokun Lin et al., [Quantization Meets dLLMs: A Systematic Study of Post-training Quantization for Diffusion LLMs](https://arxiv.org/abs/2508.14896), 2025. Official code: [MessiX77/QDLM](https://github.com/MessiX77/QDLM).\n\n[3] Tianao Zhang et al., [Quant-dLLM: Post-Training Extreme Low-Bit Quantization for Diffusion Large Language Models](https://arxiv.org/abs/2510.03274), 2025. Official code: [ZTA2785/Quant-dLLM](https://github.com/ZTA2785/Quant-dLLM).\n\n[4] Alexander Conzelmann, Albert Catalan-Tatjer, and Shiwei Liu, [Layer Collapse in Diffusion Language Models](https://arxiv.org/abs/2605.06366), 2026. Official code: [Conzel/super-outlier-dlm](https://github.com/Conzel/super-outlier-dlm).\n\n[5] Shen Nie, Fengqi Zhu, Zebin You, et al., [Large Language Diffusion Models](https://arxiv.org/abs/2502.09992), 2025.\n\n[6] Jiacheng Ye, Zhihui Xie, Lin Zheng, et al., [Dream 7B: Diffusion Large Language Models](https://arxiv.org/abs/2508.15487), 2025.\n\n[7] Tiwei Bie, Maosong Cao, Kun Chen, et al., [LLaDA2.0: Scaling Up Diffusion Language Models to 100B](https://arxiv.org/abs/2512.15745), 2025.\n\n[8] Elias Frantar et al., [GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers](https://arxiv.org/abs/2210.17323), 2022.\n\n[9] Ji Lin et al., [AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration](https://arxiv.org/abs/2306.00978), 2023.\n\n[10] Guangxuan Xiao et al., [SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models](https://arxiv.org/abs/2211.10438), 2022.\n\n[11] Salaheddin Ashkboos et al., [QuaRot: Outlier-Free 4-Bit Inference in Rotated LLMs](https://arxiv.org/abs/2404.00456), 2024.\n\n[12] Haokun Lin et al., [DuQuant: Distributing Outliers via Dual Transformation Makes Stronger Quantized LLMs](https://arxiv.org/abs/2406.01721), 2024.\n","relatedPosts":[],"categories":[{"id":30,"title":"dLLM","description":null,"generateSlug":false,"slug":"dllm","parent":null,"breadcrumbs":[{"id":"6ab01b3ff439c50001ba2cb6","doc":30,"url":"/dllm","label":"dLLM"}],"updatedAt":"2026-09-20T17:43:27.155Z","createdAt":"2026-09-20T17:43:27.137Z"},{"id":31,"title":"quantization","description":null,"generateSlug":false,"slug":"quantization","parent":null,"breadcrumbs":[{"id":"6ab01b7af439c50001ba2cb9","doc":31,"url":"/quantization","label":"quantization"}],"updatedAt":"2026-09-20T17:44:26.614Z","createdAt":"2026-09-20T17:44:26.594Z"}],"meta":{"title":"Why Diffusion LLM Quantization Is Harder Than It Looks","image":null,"description":"Diffusion LLMs share transformer modules with AR models but not inference physics — why GPTQ, AWQ, and QuaRot fail, and what fixes them."},"publishedAt":"2026-06-25T07:06:20.018Z","authors":[],"populatedAuthors":[],"generateSlug":false,"slug":"why-diffusion-llm-quantization-is-harder-than-it-looks","updatedAt":"2026-09-20T17:44:32.849Z","createdAt":"2026-06-11T15:51:00.627Z","_status":"published","isPublished":true},"dataUpdateCount":1,"dataUpdatedAt":1789934664176,"error":null,"errorUpdateCount":0,"errorUpdatedAt":0,"fetchFailureCount":0,"fetchFailureReason":null,"fetchMeta":null,"isInvalidated":false,"status":"success","fetchStatus":"idle"},"queryKey":["research-post","why-diffusion-llm-quantization-is-harder-than-it-looks"],"queryHash":"[\"research-post\",\"why-diffusion-llm-quantization-is-harder-than-it-looks\"]"},{"state":{"data":{"docs":[{"id":25,"title":"Diffusion vs Autoregression: Why Language Models May Not Need to Think Left to Right","destination":"lab","contentType":"research","industries":[],"externalUrl":null,"externalUrlText":null,"labels":[],"heroImage":null,"subtitle":"*Part 1 of the Diffusion Language Models series.*","categories":[{"id":30,"title":"dLLM","description":null,"generateSlug":false,"slug":"dllm","parent":null,"breadcrumbs":[{"id":"6ab01b3ff439c50001ba2cb6","doc":30,"url":"/dllm","label":"dLLM"}],"updatedAt":"2026-09-20T17:43:27.155Z","createdAt":"2026-09-20T17:43:27.137Z"}],"meta":{"title":"Diffusion vs Autoregression: How Language Models Think","image":null,"description":"Why diffusion language models, which denoise a full sequence instead of writing left to right, can outperform autoregressive models on some tasks."},"publishedAt":"2026-06-25T07:06:20.025Z","authors":[],"populatedAuthors":[],"slug":"diffusion-vs-autoregression-why-language-models-may-not-need-to-think-left-to-right","updatedAt":"2026-09-20T17:43:32.442Z"},{"id":33,"title":"Broad Review of DLM architectures","destination":"lab","contentType":"research","industries":[],"externalUrl":null,"externalUrlText":null,"labels":[],"heroImage":null,"subtitle":"Masked, Blocked, and Mixed: A Field Guide to Diffusion LM Architectures","categories":[{"id":30,"title":"dLLM","description":null,"generateSlug":false,"slug":"dllm","parent":null,"breadcrumbs":[{"id":"6ab01b3ff439c50001ba2cb6","doc":30,"url":"/dllm","label":"dLLM"}],"updatedAt":"2026-09-20T17:43:27.155Z","createdAt":"2026-09-20T17:43:27.137Z"}],"meta":{"title":"Diffusion LM Architectures: LLaDA, Dream & Block Diffusion","image":null,"description":"A field guide to diffusion language model architectures — how LLaDA, Dream, Block Diffusion, and MoE variants like LLaDA 2.0 approach denoising."},"publishedAt":"2026-06-25T07:06:20.021Z","authors":[],"populatedAuthors":[],"slug":"broad-review-of-dlm-architectures","updatedAt":"2026-09-20T17:44:02.637Z"},{"id":32,"title":"Why Diffusion LLM Quantization Is Harder Than It Looks","destination":"lab","contentType":"research","industries":[],"externalUrl":null,"externalUrlText":null,"labels":[],"heroImage":null,"subtitle":"Diffusion LLMs reuse the transformer, but not its inference physics. That single difference is why GPTQ, AWQ, and QuaRot fall over — and how DLLMQuant and Quant-dLLM put them back together.","categories":[{"id":30,"title":"dLLM","description":null,"generateSlug":false,"slug":"dllm","parent":null,"breadcrumbs":[{"id":"6ab01b3ff439c50001ba2cb6","doc":30,"url":"/dllm","label":"dLLM"}],"updatedAt":"2026-09-20T17:43:27.155Z","createdAt":"2026-09-20T17:43:27.137Z"},{"id":31,"title":"quantization","description":null,"generateSlug":false,"slug":"quantization","parent":null,"breadcrumbs":[{"id":"6ab01b7af439c50001ba2cb9","doc":31,"url":"/quantization","label":"quantization"}],"updatedAt":"2026-09-20T17:44:26.614Z","createdAt":"2026-09-20T17:44:26.594Z"}],"meta":{"title":"Why Diffusion LLM Quantization Is Harder Than It Looks","image":null,"description":"Diffusion LLMs share transformer modules with AR models but not inference physics — why GPTQ, AWQ, and QuaRot fail, and what fixes them."},"publishedAt":"2026-06-25T07:06:20.018Z","authors":[],"populatedAuthors":[],"slug":"why-diffusion-llm-quantization-is-harder-than-it-looks","updatedAt":"2026-09-20T17:44:32.849Z"}],"hasNextPage":false,"hasPrevPage":false,"limit":7,"nextPage":null,"page":1,"pagingCounter":1,"prevPage":null,"totalDocs":3,"totalPages":1},"dataUpdateCount":1,"dataUpdatedAt":1789934664444,"error":null,"errorUpdateCount":0,"errorUpdatedAt":0,"fetchFailureCount":0,"fetchFailureReason":null,"fetchMeta":null,"isInvalidated":false,"status":"success","fetchStatus":"idle"},"queryKey":["research-keep-reading","dllm",32],"queryHash":"[\"research-keep-reading\",\"dllm\",32]"}]}