Wide-In, Narrow-Out: Revokable Decoding for Efficient and Effective DLLMs

## Abstract

Abstract Diffusion Large Language Models (DLLMs) have emerged as a compelling alternative to Autoregressive models, designed for fast parallel generation. However, existing DLLMs are plagued by a severe quality-speed trade-off, where faster parallel decoding leads to significant performance degradation. We attribute this to the irreversibility of standard decoding in DLLMs, which is easily polarized into the wrong decoding direction along with early error context accumulation. To resolve this, we introduce Wide-In, Narrow-Out (WINO), a training-free decoding algorithm that enables revokable decoding in DLLMs. WINO employs a parallel draft-and-verify mechanism, aggressively drafting multiple tokens while simultaneously using the model’s bidirectional context to verify and re-mask suspicious ones for refinement. Verified in open-source DLLMs like LLaDA and MMaDA, WINO is shown to decisively improve the quality-speed trade-off. For instance, on the GSM8K math benchmark, it accelerates inference by 6 × \times while improving accuracy by 2.58%; on Flickr30K captioning, it achieves a 10 × \times speedup with higher performance. More comprehensive experiments are conducted to demonstrate the superiority and provide an in-depth understanding of WINO. 1 1 1 Code: https://github.com/Feng-Hong/WINO-DLLM

## 1 Introduction

Autoregressive (AR) large language models (Radford et al., 2018; 2019), such as the GPT series (OpenAI, 2022), have shown impressive performance in a ranging of language tasks. However, their foundational token-by-token generation mechanism introduces inherent limitations, including severe inference latency, susceptibility to error propagation (Stechly et al., 2023; Valmeekam et al., 2023), and challenges in maintaining global coherence (Mei et al., 2025). In response, Diffusion Large Language Models (DLLMs) have emerged as a compelling non-autoregressive alternative, architected to overcome these bottlenecks. By generating tokens simultaneously (Li et al., 2022), DLLMs theoretically enable massive inference acceleration, while their native bidirectional attention offers improved consistency. The immense potential of DLLMs has been showcased by proprietary, closed-source systems (*e.g.*, Mercury Coder (Inception Labs, 2025) and Gemini Diffusion (Google DeepMind, 2025)), which have demonstrated astonishing speeds exceeding 1,000 tokens per second, serving as a powerful proof-of-concept.

Despite this promise, the performance of open-source DLLMs has been still disappointing. One critical bottleneck is that they are caught in a severe quality-speed trade-off dilemma. Specifically, to achieve high-quality output, these models are often forced to decode slowly, generating just one token at a time, which negates their primary architectural advantage. As shown in [Fig.˜1](https://arxiv.org/html/2507.18578v2#S1.F1), attempting to accelerate inference by generating multiple tokens in parallel invariably leads to a significant degradation in output quality (Nie et al., 2025). This stark trade-off has largely prevented the open-source DLLMs from becoming a viable, high-performance alternative to their AR counterparts.

We attribute this trade-off to a fundamental flaw in DLLMs (Sahoo et al., 2024; Ou et al., 2025): its irreversibility of the standard decoding process. Specifically, the standard generation in diffusion steps typically begins with a sequence of [MASK] tokens, which are then filled in greedily. Once a token is decoded, the decision is final and cannot be revised, even as more informative context becomes available in later steps. However, this is challenging for parallel decoding, where initial tokens are generated with very limited information, easily causing early errors to become permanently embedded, accumulated and propagated throughout the output. Therefore, such a rigid process essentially prevents DLLMs from using their greatest strength of bidirectional attention (Seo et al., 2017) to refine the early errors when the context progressively becomes rich.

To resolve this problem, we introduce Wide-In, Narrow-Out (WINO), a novel decoding algorithm that enables revokable decoding for DLLMs. WINO employs a novel draft-and-verify procedure that operates in parallel. At each step, a draft module aggressively proposes multiple new tokens based on a lenient threshold (the “Wide-In”). Concurrently, a verify module leverages the newly enriched global context to re-evaluate all previously generated tokens. Any token that fails a stricter verification check is re-masked for refinement in a future step (the “Narrow-Out”). This mechanism brings two merits: 1) it breaks the irreversibility of the conventional decoding in DLLMs, allowing the early error to be corrected for better performance; 2) it permits more aggressive token generation in each diffusion step for faster speedup with quality guarantee. Besides, our WINO is training-free and play-and-plug, which enables the general DLLMs to be both highly efficient and effective.

Our extensive experiments show that when applied to existing open-source models like LLaDA (Nie et al., 2025) and MMaDA (Yang et al., 2025), WINO achieves massive speedups, and also consistently improves model accuracy on both language and visual-language tasks. For instance, as shown in [Fig.˜1](https://arxiv.org/html/2507.18578v2#S1.F1), on the GSM8K (Cobbe et al., 2021) math reasoning benchmark, WINO accelerates inference by 6$\times$ while simultaneously increasing accuracy by 2.58%, and on Flickr30K (Young et al., 2014) image captioning benchmark, it speedup decoding by 10$\times$ with even higher performance. By making decoding revokable, WINO unlocks the latent power of DLLMs in this area.

Figure: Figure 1: Demonstration of speedup and performance improvement of WINO over standard decoding and naive parallel sampling evaluated on GSM8K with LLaDA and Flickr30K with MMaDA. The standard decoding unmasks 1 token per decoding step, while the naive parallel sampling unmasks $M(>1)$ tokens per decoding step. We set $M=4$ for GSM8K and $M=8$ for Flickr30K.
Refer to caption: x1.png

## 2 Related Work

Diffusion-based Language Models.
Diffusion models (Sohl-Dickstein et al., 2015; Ho et al., 2020; Song et al., 2021), originally popularized in image generation (Rombach et al., 2022; Nichol et al., 2022; Saharia et al., 2022), have recently gained attention as an alternative to autoregressive language models (ARLMs) for text generation. This expansion from continuous domain to discrete domain is first studied by Sohl-Dickstein et al. (2015). Subsequently, D3PM (Austin et al., 2021a) provides a general framework which models the diffusion forward process as a discrete state Markov chain defined by the multiplication of specific transition matrices over discrete time steps.  Campbell et al. (2022) later expands D3PM to a continuous time setting, utilizing the theory of continuous time Markov chain(CTMC).
More recently, research on masked diffusion models(MDMs)
(Shi et al., 2024) derived from the absorbing state diffusion in D3PM has shown promising results both in small-scale models (*e.g.*, MDLM (Sahoo et al., 2024) and RADD (Ou et al., 2025)) and large-scale implementations (*e.g.*, LLaDA (Nie et al., 2025) and Dream (Ye et al., 2025)). Extending this line of work, MMaDA (Yang et al., 2025) introduces a novel class of multimodal large diffusion models featuring a shared probabilistic formulation and a modality-agnostic architecture.

DLLM Acceleration Techniques. The existing acceleration study for DLLMs falls into two directions: KV cache and sampling compression. The former targets to build the KV cache for DLLMs due to its bidirectional full attention mechanism, unlike the causal attention of ARLMs. Typical works like Block Diffusion (Arriola et al., 2025), Fast-dLLM-cache (Wu et al., 2025) and dLLM-cache (Liu et al., 2025) respectively explore different caching mechanisms, which shows promising performance for speedup. Note that this direction is out of the scope of our work here. The latter direction focuses on optimizing the sampling process itself. For the classic low-confidence remasking strategy, several works have introduced novel sampling strategies to dynamically adjust the number of tokens predicted in parallel, thereby improving inference efficiency. Fast-dLLM-parallel (Wu et al., 2025) adopts a straightforward approach by selecting tokens with confidence scores exceeding a predefined threshold. Meanwhile,  Ben-Hamu et al. (2025) propose an entropy-bounded (EB) sampler, a drop-in replacement for conventional samplers that leverages an entropy-based unmasking procedure to dynamically decode multiple tokens per step while maintaining a predefined error tolerance. Although our WINO brings the acceleration promise due to sampling compression, different from these works, we explore to address the inherent limitation of standard decoding in DLLMs.

## 3 Preliminary: Decoding Process for DLLMs

Given a prompt $X$, a DLLM is designed to generate a response $Y=[y_{1},y_{2},\ldots,y_{L}]$ with a pre-defined response length $L$. The response sequence is initialized as all special mask tokens, $Y^{(0)}=[\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}},\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}},\ldots,\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}]$. The decoding process iteratively refines the response sequence $Y^{(k)}$ over a total of $K$ denoising steps. In the following, we detail the case of $K=L$ (*i.e.*, decoding one token per step), as existing models typically achieve optimal performance under this setting (Nie et al., 2025).

At step $k$, the goal of decoding is to refine the sequence $Y^{(k-1)}$ into $Y^{(k)}$. Given the token vocabulary $V$ and the model parameterized with $\theta$, the model estimates the probability distribution over the response sequence as $p_{\theta}(\hat{Y}|X,Y^{(k-1)})$. As a common example, in high-confidence greedy decoding, $Y^{(k)}$ is obtained by unmasking the most confident [MASK] token based on $Y^{(k-1)}$, *i.e.*,

$$ $\displaystyle l^{(k)}$ $\displaystyle=\mathop{\arg\max}_{l\in\{l|y^{(k-1)}_{l}=\mathchoice{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to22.22pt{\vbox to9.7pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.62497pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-10.71112pt}{-3.22498pt}{21.42224pt}{8.89996pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-8.71112pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to17.24pt{\vbox to8.3pt{\pgfpicture\makeatletter\hbox{\quad\lower-3.275pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-8.22221pt}{-2.875pt}{16.44443pt}{7.5pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-6.22221pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\}}\left(\max_{v\in V}p_{\theta}(\hat{y}_{l}=v|X,Y^{(k-1)})\right),$ (1) $\displaystyle y^{(k)}_{l}$ $\displaystyle=\quad\forall l\in\{1,2,\dots,L\}.$ $$

After completing all $K$ decoding steps, the final generated response is $Y=Y^{(K)}$. Existing DLLMs, such as LLaDA (Nie et al., 2025) and MMaDA (Yang et al., 2025), can also accelerate the decoding process via naive parallel sampling by generating multiple tokens (*e.g.*, 2 or 4) per step. However, empirical results reveal that such strategies often result in substantial performance degradation, limiting their practical effectiveness despite the computational speedup (Nie et al., 2025).

Semi-Autoregressive Diffusion Decoding. This strategy is widely adopted by DLLMs like LLaDA (Nie et al., 2025) and MMaDA (Yang et al., 2025), which involves splitting the response sequence into multiple blocks and decoding them sequentially from left to right. Within each block, the typical diffusion decoding strategy described above is applied.

## 4 Method

### 4.1 Key Limitation of decoding process for DLLMs

While architecturally suited for parallelism, DLLMs face a critical bottleneck that hinders effective multi-token decoding. During the early generation stages, the sparse context often causes the model to produce low-quality or contradictory tokens when decoding in parallel.
This issue is significantly exacerbated by the standard decoding process due to its irreversibility nature.
As these flawed initial predictions are permanently locked in, they inevitably propagate and degrade the final generation quality in the progressive diffusion steps, forcing an undesirable trade-off between the speed of parallel decoding and the quality of serial decoding.

To improve the trade-off, one critical point is to abandon the assumption of irreversibility in the standard decoding of DLLMs, and build a process of *revokable decoding* for progressive refinement. This principle empowers the model to iteratively refine its initial parallel outputs. As more context emerges during generation, the model can correct its preliminary predictions. Such a mechanism effectively addresses the core conflict by marrying the efficiency of parallel generation with the accuracy of context-driven corrections.

Figure: (a) An overview of WINO.
Refer to caption: x2.png

### 4.2 Iterative Refinement via Parallel Draft-and-Verify

Motivated by the above analysis and the design intuition, we propose a parallel Draft-and-Verify framework to enable revokable decoding for more efficient and higher-quality generation in DLLMs.

Specifically, our framework performs two modules in parallel at each decoding step: 1) Draft: aggressively unmasks multiple [MASK] tokens into candidate meaningful tokens; 2) Verify: evaluates all currently unmasked tokens and re-masks those deemed low-quality for further refinement. We adopt the most common and general semi-autoregressive decoding paradigm to present our method. When the block length equals the generation length, it becomes equivalent to full diffusion decoding.

#### 4.2.1 Drafting

We denote the entire sequence as $Y=[Y_{\text{left}},{Y}_{\text{cur}},Y_{\text{right}}]$, where $Y_{\text{left}}$ contains the prompt $X$ and the previously decoded blocks, ${Y}_{\text{cur}}=[{y}_{\text{cur},1},\ldots,{y}_{\text{cur},L_{b}}]$ represents the current block being decoded, and $Y_{\text{right}}$ denotes the remaining blocks to be decoded. Here, $L_{b}$ is the block length. At the $k$-th decoding step, instead of decoding a fixed number of tokens, we perform aggressive multi-token parallel decoding based on a confidence threshold $\tau_{1}$:

$$ ${y}_{\text{cur},l}^{(k)}=\operatorname*{arg\,max}\limits_{v\in V}p_{\theta}(\hat{{y}}_{\text{cur},l}=v|Y),\text{ if }\max\limits_{v\in V}p_{\theta}(\hat{{y}}_{\text{cur},l}=v|Y)>\tau_{1}\text{ and }{y}^{(k-1)}_{\text{cur},l}=\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}.$ (2) $$

Here, a relatively low confidence threshold $\tau_{1}$ is adopted to allow more possible tokens to be decoded at each step, which will achieve the acceleration if only a few tokens among them are revoked during the verification module detailed in the next section. This will be demonstrated in the experiments.

#### 4.2.2 Verification

The design principle of the verification module is to utilize the increasingly enriched semantic context at each decoding step—relative to earlier steps, to evaluate the quality of previously unmasked tokens. By re-masking low-quality tokens, the decoding process becomes revokable and amenable for the proper early error correction.

To realize effective quality verification about the decoded tokens, we design an auxiliary shadow block consisting entirely of [MASK], $Y_{\text{shad}}=[\ \mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{
{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{
{}{}}}{
{}{}}
{{}{{}}}{{}{}}{}{{}{}}
{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ }
\pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}}
}}\pgfsys@invoke{ }\pgfsys@endscope}}}
\pgfsys@invoke{ }\pgfsys@endscope}}}
}
\pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{
{}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\ ]\times L_{b}$. This block is appended to the sequence $Y$, resulting in an extended sequence $\tilde{Y}=[Y_{\text{left}},{Y}_{\text{cur}},Y_{\text{right}},Y_{\text{shad}}]$. We carefully design the position IDs and attention mask associated with $Y_{\text{shad}}$ to ensure that its output can effectively verify the quality of the tokens decoded at the corresponding positions in $Y_{\text{cur}}$.

Position IDs. Although $Y_{\text{shad}}$ is appended to the right end of the sequence, we assign it the same position IDs as $Y_{\text{cur}}$. Thus, the output of $Y_{\text{shad}}$ corresponds to the same positions as $Y_{\text{cur}}$, enabling position-wise verification.

Attention Mask. As illustrated in [Fig.˜2(b)](https://arxiv.org/html/2507.18578v2#S4.F2.sf2), we carefully design the attention mask after incorporating $Y_{\text{shad}}$ into the sequence $\tilde{Y}$. Specifically, tokens in $Y_{\text{left}}$, $Y_{\text{cur}}$, and $Y_{\text{right}}$ can freely attend to each other, but they are not allowed to attend to $Y_{\text{shad}}$. In contrast, each token in $Y_{\text{shad}}$ is allowed to attend to all tokens except its corresponding position in $Y_{\text{cur}}$.

With the above design of position IDs and attention masks, we achieve the following properties:

- •
For any token in the current block $Y_{\text{cur}}$, appending $Y_{\text{shad}}$ does not affect the model’s output. Formally,
$p_{\theta}(\hat{{y}}_{\text{cur},l}|Y)=p_{\theta}(\hat{{y}}_{\text{cur},l}|\tilde{Y}).$
- •
For any token in $Y_{\text{shad}}$, the following properties hold. For example, consider the token $y_{\text{shad},3}$ in [Fig.˜2(a)](https://arxiv.org/html/2507.18578v2#S4.F2.sf1), which is assigned position ID 6.
–
It shares the same position ID as $y_{\text{cur},3}$, and is allowed to attend to $Y_{\text{left}}$ and $Y_{\text{right}}$;
–
It is explicitly prevented from attending to $y_{\text{cur},3}$, effectively avoiding information leakage during verification;
–
For all other positions in $Y_{\text{cur}}$, each position is attended by exactly one decoded token (from $Y_{\text{cur}}$) and one [MASK] in $Y_{\text{shad}}$. The former provides progressively richer contextual semantics during decoding, while the latter serves to regularize the confidence of decoded tokens in $Y_{\text{cur}}$, reflecting the uncertainty and the need for potential refinement.

With the specially designed position IDs and the attention mask described above, the verification module can be formally expressed as:

$$ ${y}_{\text{cur},l}^{(k)}=\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}},\text{ if }p_{\theta}(\hat{{y}}_{\text{shad},l}={y}_{\text{cur},l}^{(k-1)}|\tilde{Y}))<\tau_{2}\text{ and }{y}_{\text{cur},l}^{(k-1)}\neq\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}},$ (3) $$

where $\tau_{2}$ is the confidence threshold for verification.

#### 4.2.3 Overall Procedure

In summary, at decoding step $k$, our framework enables both the drafting and verification processes to be completed in a single forward pass:

$$ ${y}_{\text{cur},l}^{(k)}=\begin{cases}\operatorname*{arg\,max}\limits_{v\in V}p_{\theta}(\hat{{y}}_{\text{cur},l}=v|\tilde{Y}),&\text{if }\max\limits_{v\in V}p_{\theta}(\hat{{y}}_{\text{cur},l}=v|\tilde{Y})>\tau_{1}\text{ and }{y}^{(k-1)}_{\text{cur},l}=\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}},\\ \mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}},&\text{if }p_{\theta}(\hat{{y}}_{\text{shad},l}={y}_{\text{cur},l}^{(k-1)}|\tilde{Y}))<\tau_{2}\text{ and }{y}_{\text{cur},l}^{(k-1)}\neq\mathchoice{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\displaystyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to40.36pt{\vbox to14.8pt{\pgfpicture\makeatletter\hbox{\hskip 20.17781pt\lower-4.9pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-19.77782pt}{-4.5pt}{39.55563pt}{14.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-17.77782pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\textstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to32.96pt{\vbox to11.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-4.15pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-16.07994pt}{-3.75pt}{32.15988pt}{11.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-14.07994pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}{\hbox to28.5pt{\vbox to9.8pt{\pgfpicture\makeatletter\hbox{\qquad\lower-3.65pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{ {{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} {\pgfsys@beginscope\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@invoke{ }\pgfsys@setlinewidth{\the\pgflinewidth}\pgfsys@invoke{ }{}\pgfsys@rect{-13.85088pt}{-3.25pt}{27.70175pt}{9.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-11.85088pt}{0.0pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\scriptscriptstyle\text{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}[MASK]}}$}} }}\pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope}}} } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}},\\ {y}_{\text{cur},l}^{(k-1)},&\text{otherwise}.\end{cases}$ (4) $$

We iteratively refine the entire $Y_{\text{cur}}$ using the procedure in [Eq.˜4](https://arxiv.org/html/2507.18578v2#S4.E4), until all tokens in $Y_{\text{cur}}$ are no longer [MASK]. We set the drafting threshold $\tau_{1}$ and the verification threshold $\tau_{2}$ such that $\tau_{1}<\tau_{2}$. A lower $\tau_{1}$ accelerates the decoding process by allowing more tokens to be generated in parallel, while a higher $\tau_{2}$ ensures the quality of the final output by enforcing stricter acceptance criteria. We refer to this design philosophy as *"Wide-In, Narrow-Out"* and term our method as WINO in short.

**Table 1: Performance and inference speedup comparison on diverse language benchmarks.**
| Benchmark | Method | Accuracy | Steps | Step | TPS | TPS |
| --- | --- | --- | --- | --- | --- | --- |
|  |  |  |  | Reduction |  | Speedup |
| GSM8K<br>Math Reasoning | LLaDA | 73.24 | 256 | 1.00 $\times$ | 17.76 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 75.82 (+2.58) | \cellcolorourred 41.93 (-214.07) | \cellcolorourred 6.10 $\times$ | \cellcolorourred 100.53 (+82.77) | \cellcolorourred 5.66 $\times$ |
| MATH-500<br>Math Reasoning | LLaDA | 32.00 | 256 | 1.00 $\times$ | 17.62 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 34.20 (+2.20) | \cellcolorourred 74.44 (-181.56) | \cellcolorourred 3.44 $\times$ | \cellcolorourred 55.86 (+38.24) | \cellcolorourred 3.17 $\times$ |
| HumanEval<br>Code Generation | LLaDA | 37.80 | 256 | 1.00 $\times$ | 14.52 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 42.07 (+4.27) | \cellcolorourred 93.32 (-162.68) | \cellcolorourred 2.74 $\times$ | \cellcolorourred 37.19 (+22.67) | \cellcolorourred 2.56 $\times$ |
| MBPP<br>Code Generation | LLaDA | 36.40 | 256 | 1.00 $\times$ | 18.52 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 36.40 (+0.00) | \cellcolorourred 96.57 (-159.43) | \cellcolorourred 2.65 $\times$ | \cellcolorourred 45.39 (+26.87) | \cellcolorourred 2.45 $\times$ |
| Countdown<br>Logical Reasoning | LLaDA | 24.21 | 256 | 1.00 $\times$ | 17.22 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 33.20 (+8.99) | \cellcolorourred 105.88 (-150.12) | \cellcolorourred 2.41 $\times$ | \cellcolorourred 38.97 (+21.75) | \cellcolorourred 2.26 $\times$ |
| Sudoku<br>Logical Reasoning | LLaDA | 14.23 | 256 | 1.00 $\times$ | 11.61 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 15.20 (+0.97) | \cellcolorourred 131.96 (-124.04) | \cellcolorourred 1.94 $\times$ | \cellcolorourred 21.11 (+9.50) | \cellcolorourred 1.82 $\times$ |
| ARC-E<br>Commonsense Reasoning | LLaDA | 59.13 | 256 | 1.00 $\times$ | 17.26 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 81.19 (+22.06) | \cellcolorourred 40.19 (-215.81) | \cellcolorourred 6.37 $\times$ | \cellcolorourred 101.61 (+84.35) | \cellcolorourred 5.89 $\times$ |
| ARC-C<br>Commonsense Reasoning | LLaDA | 51.87 | 256 | 1.00 $\times$ | 17.10 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 73.89 (+22.02) | \cellcolorourred 47.41 (-208.59) | \cellcolorourred 5.40 $\times$ | \cellcolorourred 85.42 (+68.32) | \cellcolorourred 5.00 $\times$ |

## 5 Experiment

### 5.1 Experiment setup

Datasets and Baselines. We conduct experiment to evaluate WINO across different types of tasks and domains. Specifically, for language domain, we compare WINO with the standard decoding of LLaDA on eight tasks: GSM8K (Cobbe et al., 2021), MATH-500 (Hendrycks et al., 2021), HumanEval (Chen et al., 2021), MBPP (Austin et al., 2021b), Countdown (Zhao et al., 2025), Sudoku (Zhao et al., 2025), ARC-E (Clark et al., 2018), and ARC-C (Clark et al., 2018), covering four categories of textual generation tasks, including math reasoning, code generation, logical reasoning, and commonsense reasoning. For vision-language domain, we evaluate WINO against the standard decoding of MMaDA (Yang et al., 2025) on six multimodal understanding tasks: Flickr30k (Young et al., 2014), AI2D (Kembhavi et al., 2016), MATH-Vision (Wang et al., 2024), MathVista (Lu et al., 2024), MMMU (Yue et al., 2024) and ScienceQA (Lu et al., 2022), spanning four types of multimodal tasks—captioning, chart understanding, math reasoning and multi-discipline reasoning. For clarity, we test on the validation set of MMMU and the official testmini subset of MathVista.

Evaluation Details. All benchmarks are evaluated in a zero-shot manner, except Sudoku, which is evaluated in a 4-shot setting. We use the CIDEr metric (Vedantam et al., 2015) for the Flickr30k benchmark and accuracy for all the remaining benchmarks. To assess the inference efficiency of the decoding method, we measure the required decoding steps and Tokens Per Second (TPS) of the baselines and WINO on every task by averaging over all the samples in a benchmark.

Implementation details. We adopt the open-sourced LLaDA-8B-Instruct(^2^22[https://huggingface.co/GSAI-ML/LLaDA-8B-Instruct](https://huggingface.co/GSAI-ML/LLaDA-8B-Instruct)) for language benchmarks and
MMaDA-8B-MixCoT(^3^33[https://huggingface.co/Gen-Verse/MMaDA-8B-MixCoT](https://huggingface.co/Gen-Verse/MMaDA-8B-MixCoT)) for vision-language tasks.
We employ the semi-autoregressive sampling strategy introduced in LLaDA (Nie et al., 2025), where the output sequence is partitioned into multiple blocks and generated from left to right. In our evaluation, we set the generation length to 256 and the block length to 128, unless specified otherwise.
For the hyperparameters of WINO, we set the verification threshold $\tau_{2}$ to 0.9 and tune the drafting threshold $\tau_{1}$ from {0.5, 0.6, 0.7}.

### 5.2 Main Results

Performance and speedup on text generation.
We report the performance, decoding steps and throughput (TPS) of LLaDA, with and without WINO, on language benchmarks in [Table˜1](https://arxiv.org/html/2507.18578v2#S4.T1). WINO achieves significantly better accuracy with far fewer decoding steps than the baseline LLaDA, except for the MBPP task, where WINO achieves the same performance as LLaDA. For instance, WINO improves accuracy on GSM8K by 2.58% with 6.10$\times$ step reduction and 5.66$\times$ TPS speedup.
[Table˜1](https://arxiv.org/html/2507.18578v2#S4.T1) demonstrate the effectiveness of WINO in enhancing generation quality and inference efficiency.

**Table 2: Performance and inference speedup comparison across diverse multi-modal understanding and reasoning benchmarks. We use CIDEr for Flickr30k and accuracy for other benchmarks.**
| Benchmark | Method | Performance | Steps | Step | TPS | TPS |
| --- | --- | --- | --- | --- | --- | --- |
|  |  |  |  | Reduction |  | Speedup |
| Flickr30k<br>Captioning | MMaDA | 53.67 | 256 | 1.00 $\times$ | 6.41 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 53.83 (+0.16) | \cellcolorourred 25.47 (-230.53) | \cellcolorourred 10.05 $\times$ | \cellcolorourred 55.11 (+48.70) | \cellcolorourred 8.60 $\times$ |
| AI2D<br>Chart Understanding | MMaDA | 54.86 | 256 | 1.00 $\times$ | 6.31 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 57.19 (+2.33) | \cellcolorourred 30.90 (-225.10) | \cellcolorourred 8.30 $\times$ | \cellcolorourred 46.04 (+39.73) | \cellcolorourred 7.30 $\times$ |
| MATH-Vision<br>Math Reasoning | MMaDA | 8.55 | 256 | 1.00 $\times$ | 6.22 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 9.57 (+1.02) | \cellcolorourred 44.69 (-211.31) | \cellcolorourred 5.73 $\times$ | \cellcolorourred 31.17 (+24.95) | \cellcolorourred 5.01 $\times$ |
| MathVista-mini<br>Math Reasoning | MMaDA | 31.10 | 256 | 1.00 $\times$ | 6.21 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 31.40 (+0.30) | \cellcolorourred 33.45 (-222.55) | \cellcolorourred 7.65 $\times$ | \cellcolorourred 41.96 (+35.75) | \cellcolorourred 6.76 $\times$ |
| MMMU-val<br>Multi-discipline Reasoning | MMaDA | 18.56 | 256 | 1.00 $\times$ | 6.02 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 24.00 (+5.44) | \cellcolorourred 38.47 (-217.53) | \cellcolorourred 6.65 $\times$ | \cellcolorourred 36.13 (+30.11) | \cellcolorourred 6.00 $\times$ |
| ScienceQA<br>Multi-discipline Reasoning | MMaDA | 30.89 | 256 | 1.00 $\times$ | 6.07 | 1.00 $\times$ |
|  | \cellcolorourred WINO | \cellcolorourred 42.24 (+11.35) | \cellcolorourred 28.12 (-227.88) | \cellcolorourred 9.10 $\times$ | \cellcolorourred 49.45 (+43.38) | \cellcolorourred 8.15 $\times$ |

Performance and speedup on multimodal understanding and reasoning. We assess the performance and efficiency gain of WINO incorporated into MMaDA and summarize the results in [Table˜2](https://arxiv.org/html/2507.18578v2#S5.T2). Compared to the vanilla MMaDA, WINO demonstrates consistent and substantial improvements in inference efficiency across all benchmarks. Notably, the speedup effect is even more pronounced than that on textual domain tasks, when compared with results in [Table˜1](https://arxiv.org/html/2507.18578v2#S4.T1). Furthermore, WINO greatly improves the task performance of MMaDA on AI2D, MMMU and ScienceQA while maintaining comparable results on Flickr30k, MATH-Vision and MathVista. These results indicate that WINO consistently delivers both performance gains and accelerated inference in the multimodal domain.

Figure: Figure 3: Decoding steps of WINO on subsets of the MATH benchmark with varied difficulty levels.
Refer to caption: x4.png

Relation between speedup and task complexity. As shown in [Table˜1](https://arxiv.org/html/2507.18578v2#S4.T1) and [Table˜2](https://arxiv.org/html/2507.18578v2#S5.T2), we observe a consistent positive correlation between the degree of speedup and task performance across all benchmarks.
For instance, WINO achieves a 10.05$\times$ step reduction on the relatively simple captioning task Flickr30k, compared to only 5.73$\times$ step reduction on the more challenging math reasoning benchmark MATH-Vision.
This is because models can, in principle, solve tasks they are more proficient at with lower computational cost, leaving greater room for acceleration under our decoding method.
And since models are typically more confident when handling easier tasks, each decoding step in WINO tends to yield a larger number of effective tokens.
To further investigate this, we evaluate the decoding steps of WINO across subsets of the MATH-500 benchmark categorized by difficulty levels. As shown in [Fig.˜3](https://arxiv.org/html/2507.18578v2#S5.F3), WINO achieves progressively greater acceleration as the difficulty decreases, highlighting its capability to adaptively optimize inference speed based on task complexity.

### 5.3 Ablation Study and Further Analysis.

On different generation length. In [Table˜3](https://arxiv.org/html/2507.18578v2#S5.T3), we evaluate the performance of WINO with experiments on different generation lengths, where the block length $L_{b}$ is fixed to 128 and the baselines unmask 1 token every decoding step (to achieve their best generation performance). When the generation length is set to 512, WINO still achieves comparable or better task performance with significantly fewer decoding steps, demonstrating the effectiveness of WINO across different generation lengths.

**Table 3: Experiment results on different generation lengths and full diffusion setting, respectively.**
| Benchmark | Generation | Block | Method | Accuracy | Steps | Step | TPS | TPS |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|  | Length | Length |  |  |  | Reduction |  | Speedup |
| *Different Generation Lengths* |  |  |  |  |  |  |  |  |
| GSM8K | 256 | 128 | LLaDA | 73.24 | 256 | 1.00 $\times$ | 17.76 | 1.00 $\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 75.82 (+2.58) | \cellcolorourred 41.93 | \cellcolorourred 6.10 $\times$ | \cellcolorourred 100.53 | \cellcolorourred 5.66 $\times$ |
|  | 512 | 128 | LLaDA | 74.60 | 512 | 1.00 $\times$ | 11.84 | 1.00 $\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 79.91 (+5.31) | \cellcolorourred 68.53 | \cellcolorourred 7.47 $\times$ | \cellcolorourred 82.64 | \cellcolorourred 6.98 $\times$ |
| MMMU-val | 256 | 128 | MMaDA | 18.56 | 256 | 1.00 $\times$ | 6.02 | 1.00 $\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 24.00 (+5.44) | \cellcolorourred 38.47 | \cellcolorourred 6.65 $\times$ | \cellcolorourred 36.13 | \cellcolorourred 6.00 $\times$ |
|  | 512 | 128 | MMaDA | 18.44 | 512 | 1.00 $\times$ | 5.01 | 1.00 $\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 23.44<br>(+5.00) | \cellcolorourred 64.82 | \cellcolorourred 7.90 $\times$ | \cellcolorourred 35.01 | \cellcolorourred 6.99 $\times$ |
| *Full Diffusion* |  |  |  |  |  |  |  |  |
| GSM8K | 256 | 256 | LLaDA | 34.34 | 256 | 1.00 $\times$ | 17.73 | 1.00 $\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 58.22 (+23.88) | \cellcolorourred 38.77 | \cellcolorourred 6.60 $\times$ | \cellcolorourred 93.61 | \cellcolorourred 5.28 $\times$ |
|  | 128 | 128 | LLaDA | 58.60 | 128 | 1.00 $\times$ | 23.23 | 1.00 $\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 62.32 (+3.72) | \cellcolorourred 23.95 | \cellcolorourred 5.34 $\times$ | \cellcolorourred 114.29 | \cellcolorourred 4.92 $\times$ |
| MMMU-val | 256 | 256 | MMaDA | 17.22 | 256 | 1.00$\times$ | 6.11 | 1.00$\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 22.44 (+5.22) | \cellcolorourred 24.94 | \cellcolorourred 10.26$\times$ | \cellcolorourred 50.03 | \cellcolorourred 8.19$\times$ |
|  | 128 | 128 | MMaDA | 15.33 | 128 | 1.00$\times$ | 6.70 | 1.00 $\times$ |
|  |  |  | \cellcolorourred WINO | \cellcolorourred 23.11 (+7.78) | \cellcolorourred 19.14 | \cellcolorourred 6.69$\times$ | \cellcolorourred 39.94 | \cellcolorourred 5.96 $\times$ |

**Table 4: Experiment results on the variant of WINO without the verification module.**
| Benchmark | Method | Accuracy | Steps | Step | TPS | TPS |
| --- | --- | --- | --- | --- | --- | --- |
|  |  |  |  | Reduction |  | Speedup |
| GSM8K | LLaDA | 73.24 | 256 | 1.00 $\times$ | 17.76 | 1.00 $\times$ |
|  | Only Draft ($\tau_{1}=0.6$) | 70.28 | 34.79 | 7.36 $\times$ | 130.89 | 7.37 $\times$ |
|  | Only Draft ($\tau_{1}=0.9$) | 72.33 | 81.39 | 3.15 $\times$ | 56.12 | 3.16 $\times$ |
|  | WINO | 75.82 | 41.93 | 6.10 $\times$ | 100.53 | 5.66 $\times$ |
| MMMU-val | MMaDA | 18.56 | 256 | 1.00 $\times$ | 6.02 | 1.00 $\times$ |
|  | Only Draft ($\tau_{1}=0.6$) | 19.89 | 35.63 | 7.18 $\times$ | 43.22 | 7.18 $\times$ |
|  | Only Draft ($\tau_{1}=0.9$) | 18.56 | 79.74 | 3.21 $\times$ | 19.38 | 3.22 $\times$ |
|  | WINO | 24.00 | 38.47 | 6.65 $\times$ | 36.13 | 6.00 $\times$ |

On full diffusion decoding (instead of semi-autoregressive decoding). In [Table˜3](https://arxiv.org/html/2507.18578v2#S5.T3), we compare the baselines and WINO applying full diffusion decoding, which means the block length $L_{b}$ is set equal to the generation length. Compared to results on the semi-autoregressive decoding in [Table˜1](https://arxiv.org/html/2507.18578v2#S4.T1) and [Table˜2](https://arxiv.org/html/2507.18578v2#S5.T2), WINO demonstrates substantially strong accuracy gains under the full diffusion setting. Notably, while LLaDA suffers a substantial accuracy drop on GSM8K with full diffusion decoding, WINO maintains reasonable performance with far fewer decoding steps. These results indicate that WINO unlocks significantly greater potential for boosting model performance and computational efficiency when applied in full diffusion decoding scenarios.

Comparison with naive parallel sampling. The decoding process of existing DLLMs can be sped up by generating multiple tokens per step, *i.e.*, naive parallel sampling. However, directly increasing the fixed number of generated tokens per step for DLLMs leads to significant performance degradation. For instance, on GSM8K, accuracy drops from 73.24% with 256 steps (1 token/step) to 71.11% with 128 steps (2 tokens/step), and further down to 64.67% with 64 steps (4 tokens/step). In contrast, the draft-and-verify procedure of WINO enables flexible decoding during the generation process, achieving 75.82% accuracy with only 41.93 steps on average, corresponding to a 6.10$\times$ speedup, thereby substantially improving task performance while accelerating inference.

Ablation on verification module. We conduct an ablation study on a variant of WINO that excludes the verification module, implemented by setting the verification threshold $\tau_{2}$ to zero. As presented in [Table˜4](https://arxiv.org/html/2507.18578v2#S5.T4), this variant exhibits significant performance degradation across both benchmarks compared to WINO. Specifically, when the drafting threshold $\tau_{1}$ is small (corresponding to 0.6 in the table), more candidate tokens are unmasked per decoding step, which naturally introduces a higher proportion of unreliable tokens and ultimately compromises output quality. Conversely, when $\tau_{1}$ is large (corresponding to 0.9 in the table), fewer candidate tokens are unmasked per decoding step, which can mitigate error propagation but at the expense of computational efficiency. Crucially, without the verification module, the generation process lacks a mechanism to correct erroneous predictions. As a result, even with a large $\tau_{1}$, the model may fail to achieve comparable performance, underscoring the necessity of the verification module in maintaining both generation quality.

Figure: (a) WINO (LLaDA-based) on GSM8K.
Refer to caption: x5.png

Figure: Figure 5: Case Study: GSM8K Example. We compare standard decoding with LLaDA against the intermediate and final results produced by WINO. More detailed case studies are provided in [Appendix˜A](https://arxiv.org/html/2507.18578v2#A1).
Refer to caption: x7.png

Effect of threshold tuning. In [Fig.˜4](https://arxiv.org/html/2507.18578v2#S5.F4), we present the evaluation results of WINO with varying drafting threshold $\tau_{1}$ and verification threshold $\tau_{2}$. Our experiments suggest that WINO consistently outperforms baselines across different benchmarks and the $\tau_{1}$ and $\tau_{2}$ values in terms of both task performance and inference efficiency. As the $\tau_{1}$ value decreases, more candidate tokens are unmasked at each decoding step, thereby accelerating inference by reducing the required decoding steps. However, this comes at the cost of introducing more unreliable predictions, which may place a greater burden on the verification module to correct errors. Empirically, we find that setting the value of drafting threshold $\tau_{1}$ within the range of 0.5 to 0.7 achieves an optimal balance, maintaining competitive task performance while preserving efficient generation. The verification threshold $\tau_{2}$ controls the strictness of the verification process and thus influences decoding speed. Since the performance is relatively robust to $\tau_{2}$, we fix $\tau_{2}=0.9$ in all experiments, while leaving open the possibility of further tuning this parameter for even better performance and speedup.

Figure: Figure 6: GPU memory usage.
Refer to caption: x8.png

GPU memory usage. To facilitate efficient and effective quality verification of the unmasked tokens, WINO introduces an auxiliary shadow block whose size equals the specified block length $L_{b}$ of the semi-autoregressive decoding process. Therefore, WINO induces additional GPU memory cost due to the longer sequence length. We evaluate the GPU memory cost of WINO and present the results in [Fig.˜6](https://arxiv.org/html/2507.18578v2#S5.F6). The additional memory cost of WINO remains marginal compared to the baselines across all the benchmarks. For instance, on GSM8K, WINO increases GPU memory usage by only 2.4% (from 16.18 to 16.57 GB) compared to standard LLaMA decoding. For other datasets, the memory overhead introduced by WINO is similarly negligible.

Case Study: Decoding Dynamics. To conduct a fine-grained examination of the decoding processes of WINO, we present an example from GSM8K in [Fig.˜5](https://arxiv.org/html/2507.18578v2#S5.F5). As shown, the baseline may produce erroneous tokens at the early decoding stages. Since the generated tokens by the baseline remain unchanged in subsequent decoding steps, the false contextual information propagates throughout the whole generation process, eventually leading to low-quality generation results. In contrast, WINO enables dynamical refinement of generated tokens via an iterative draft-and-verify mechanism, which mitigates error accumulation and facilitates high-quality decoded outputs.

## 6 Conclusion

In this work, we introduce Wide-In, Narrow-Out (WINO), a training-free decoding algorithm that resolves the critical quality-speed trade-off in Diffusion Large Language Models (DLLMs) by making their generation process revokable. WINO overcomes the limitations of irrevokable standard decoding by employing a parallel draft-and-verify mechanism, allowing the model to aggressively generate tokens and iteratively correct errors using its full bidirectional context. Our experiments on existing open-source models like LLaDA and MMaDA demonstrate that WINO simultaneously accelerates inference by up to 10$\times$ while significantly improving accuracy across a diverse set of language and vision-language tasks. While acknowledging areas for future architectural improvements, WINO fundamentally enhances the practicality of DLLMs by rethinking the decoding process itself, establishing them as a truly efficient and high-quality alternative to autoregressive systems.

## References

- Arriola et al. (2025)
Marianne Arriola, Aaron Gokaslan, Justin T. Chiu, Zhihan Yang, Zhixuan Qi, Jiaqi Han, Subham Sekhar Sahoo, and Volodymyr Kuleshov.
Block diffusion: Interpolating between autoregressive and diffusion language models.
In *The Thirteenth International Conference on Learning Representations, ICLR 2025, Singapore, April 24-28, 2025*. OpenReview.net, 2025.
- Austin et al. (2021a)
Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, and Rianne van den Berg.
Structured denoising diffusion models in discrete state-spaces.
In Marc’Aurelio Ranzato, Alina Beygelzimer, Yann N. Dauphin, Percy Liang, and Jennifer Wortman Vaughan, editors, *Advances in Neural Information Processing Systems 34: Annual Conference on Neural Information Processing Systems 2021, NeurIPS 2021, December 6-14, 2021, virtual*, pages 17981–17993, 2021a.
- Austin et al. (2021b)
Jacob Austin, Augustus Odena, Maxwell I. Nye, Maarten Bosma, Henryk Michalewski, David Dohan, Ellen Jiang, Carrie J. Cai, Michael Terry, Quoc V. Le, and Charles Sutton.
Program synthesis with large language models.
*CoRR*, abs/2108.07732, 2021b.
- Ben-Hamu et al. (2025)
Heli Ben-Hamu, Itai Gat, Daniel Severo, Niklas Nolte, and Brian Karrer.
Accelerated sampling from masked diffusion models via entropy bounded unmasking.
*CoRR*, abs/2505.24857, 2025.
- Campbell et al. (2022)
Andrew Campbell, Joe Benton, Valentin De Bortoli, Thomas Rainforth, George Deligiannidis, and Arnaud Doucet.
A continuous time framework for discrete denoising models.
In Sanmi Koyejo, S. Mohamed, A. Agarwal, Danielle Belgrave, K. Cho, and A. Oh, editors, *Advances in Neural Information Processing Systems 35: Annual Conference on Neural Information Processing Systems 2022, NeurIPS 2022, New Orleans, LA, USA, November 28 - December 9, 2022*, 2022.
- Chen et al. (2021)
Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Pondé de Oliveira Pinto, Jared Kaplan, Harri Edwards, Yuri Burda, Nicholas Joseph, Greg Brockman, Alex Ray, Raul Puri, Gretchen Krueger, Michael Petrov, Heidy Khlaaf, Girish Sastry, Pamela Mishkin, Brooke Chan, Scott Gray, Nick Ryder, Mikhail Pavlov, Alethea Power, Lukasz Kaiser, Mohammad Bavarian, Clemens Winter, Philippe Tillet, Felipe Petroski Such, Dave Cummings, Matthias Plappert, Fotios Chantzis, Elizabeth Barnes, Ariel Herbert-Voss, William Hebgen Guss, Alex Nichol, Alex Paino, Nikolas Tezak, Jie Tang, Igor Babuschkin, Suchir Balaji, Shantanu Jain, William Saunders, Christopher Hesse, Andrew N. Carr, Jan Leike, Joshua Achiam, Vedant Misra, Evan Morikawa, Alec Radford, Matthew Knight, Miles Brundage, Mira Murati, Katie Mayer, Peter Welinder, Bob McGrew, Dario Amodei, Sam McCandlish, Ilya Sutskever, and Wojciech Zaremba.
Evaluating large language models trained on code.
*CoRR*, abs/2107.03374, 2021.
- Clark et al. (2018)
Peter Clark, Isaac Cowhey, Oren Etzioni, Tushar Khot, Ashish Sabharwal, Carissa Schoenick, and Oyvind Tafjord.
Think you have solved question answering? try arc, the AI2 reasoning challenge.
*CoRR*, abs/1803.05457, 2018.
- Cobbe et al. (2021)
Karl Cobbe, Vineet Kosaraju, Mohammad Bavarian, Mark Chen, Heewoo Jun, Lukasz Kaiser, Matthias Plappert, Jerry Tworek, Jacob Hilton, Reiichiro Nakano, Christopher Hesse, and John Schulman.
Training verifiers to solve math word problems.
*CoRR*, abs/2110.14168, 2021.
- Google DeepMind (2025)
Google DeepMind.
Gemini diffusion.
Google DeepMind Models, 2025.
URL [https://deepmind.google/models/gemini-diffusion](https://deepmind.google/models/gemini-diffusion).
- Hendrycks et al. (2021)
Dan Hendrycks, Collin Burns, Saurav Kadavath, Akul Arora, Steven Basart, Eric Tang, Dawn Song, and Jacob Steinhardt.
Measuring mathematical problem solving with the MATH dataset.
In *NeurIPS Datasets and Benchmarks*, 2021.
- Ho et al. (2020)
Jonathan Ho, Ajay Jain, and Pieter Abbeel.
Denoising diffusion probabilistic models.
In Hugo Larochelle, Marc’Aurelio Ranzato, Raia Hadsell, Maria-Florina Balcan, and Hsuan-Tien Lin, editors, *Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual*, 2020.
- Inception Labs (2025)
Inception Labs.
Introducing mercury: The first commercial diffusion-based language model.
Inception Labs Blog, 2025.
URL [https://www.inceptionlabs.ai/introducing-mercury](https://www.inceptionlabs.ai/introducing-mercury).
- Kembhavi et al. (2016)
Aniruddha Kembhavi, Mike Salvato, Eric Kolve, Min Joon Seo, Hannaneh Hajishirzi, and Ali Farhadi.
A diagram is worth A dozen images.
*CoRR*, abs/1603.07396, 2016.
- Li et al. (2022)
Xiang Lisa Li, John Thickstun, Ishaan Gulrajani, Percy Liang, and Tatsunori B. Hashimoto.
Diffusion-lm improves controllable text generation.
In Sanmi Koyejo, S. Mohamed, A. Agarwal, Danielle Belgrave, K. Cho, and A. Oh, editors, *Advances in Neural Information Processing Systems 35: Annual Conference on Neural Information Processing Systems 2022, NeurIPS 2022, New Orleans, LA, USA, November 28 - December 9, 2022*, 2022.
- Liu et al. (2025)
Zhiyuan Liu, Yicun Yang, Yaojie Zhang, Junjie Chen, Chang Zou, Qingyuan Wei, Shaobo Wang, and Linfeng Zhang.
dllm-cache: Accelerating diffusion large language models with adaptive caching.
*CoRR*, abs/2506.06295, 2025.
- Lu et al. (2022)
Pan Lu, Swaroop Mishra, Tanglin Xia, Liang Qiu, Kai-Wei Chang, Song-Chun Zhu, Oyvind Tafjord, Peter Clark, and Ashwin Kalyan.
Learn to explain: Multimodal reasoning via thought chains for science question answering.
In *NeurIPS*, 2022.
- Lu et al. (2024)
Pan Lu, Hritik Bansal, Tony Xia, Jiacheng Liu, Chunyuan Li, Hannaneh Hajishirzi, Hao Cheng, Kai-Wei Chang, Michel Galley, and Jianfeng Gao.
Mathvista: Evaluating mathematical reasoning of foundation models in visual contexts.
In *ICLR*, 2024.
- Mei et al. (2025)
Lingrui Mei, Jiayu Yao, Yuyao Ge, Yiwei Wang, Baolong Bi, Yujun Cai, Jiazhi Liu, Mingyu Li, Zhong-Zhi Li, Duzhen Zhang, Chenlin Zhou, Jiayi Mao, Tianze Xia, Jiafeng Guo, and Shenghua Liu.
A survey of context engineering for large language models, 2025.
URL [https://arxiv.org/abs/2507.13334](https://arxiv.org/abs/2507.13334).
- Nichol et al. (2022)
Alexander Quinn Nichol, Prafulla Dhariwal, Aditya Ramesh, Pranav Shyam, Pamela Mishkin, Bob McGrew, Ilya Sutskever, and Mark Chen.
GLIDE: towards photorealistic image generation and editing with text-guided diffusion models.
In Kamalika Chaudhuri, Stefanie Jegelka, Le Song, Csaba Szepesvári, Gang Niu, and Sivan Sabato, editors, *International Conference on Machine Learning, ICML 2022, 17-23 July 2022, Baltimore, Maryland, USA*, volume 162 of *Proceedings of Machine Learning Research*, pages 16784–16804. PMLR, 2022.
- Nie et al. (2025)
Shen Nie, Fengqi Zhu, Zebin You, Xiaolu Zhang, Jingyang Ou, Jun Hu, Jun Zhou, Yankai Lin, Ji-Rong Wen, and Chongxuan Li.
Large language diffusion models.
*CoRR*, abs/2502.09992, 2025.
- OpenAI (2022)
OpenAI.
Chatgpt: Optimizing language models for dialogue.
OpenAI Blog, November 2022.
URL [https://openai.com/blog/chatgpt/](https://openai.com/blog/chatgpt/).
- Ou et al. (2025)
Jingyang Ou, Shen Nie, Kaiwen Xue, Fengqi Zhu, Jiacheng Sun, Zhenguo Li, and Chongxuan Li.
Your absorbing discrete diffusion secretly models the conditional distributions of clean data.
In *The Thirteenth International Conference on Learning Representations, ICLR 2025, Singapore, April 24-28, 2025*. OpenReview.net, 2025.
- Radford et al. (2018)
Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever, et al.
Improving language understanding by generative pre-training.
2018.
- Radford et al. (2019)
Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever, et al.
Language models are unsupervised multitask learners.
*OpenAI blog*, 1(8):9, 2019.
- Rombach et al. (2022)
Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, and Björn Ommer.
High-resolution image synthesis with latent diffusion models.
In *IEEE/CVF Conference on Computer Vision and Pattern Recognition, CVPR 2022, New Orleans, LA, USA, June 18-24, 2022*, pages 10674–10685. IEEE, 2022.
- Saharia et al. (2022)
Chitwan Saharia, William Chan, Saurabh Saxena, Lala Li, Jay Whang, Emily L. Denton, Seyed Kamyar Seyed Ghasemipour, Raphael Gontijo Lopes, Burcu Karagol Ayan, Tim Salimans, Jonathan Ho, David J. Fleet, and Mohammad Norouzi.
Photorealistic text-to-image diffusion models with deep language understanding.
In Sanmi Koyejo, S. Mohamed, A. Agarwal, Danielle Belgrave, K. Cho, and A. Oh, editors, *Advances in Neural Information Processing Systems 35: Annual Conference on Neural Information Processing Systems 2022, NeurIPS 2022, New Orleans, LA, USA, November 28 - December 9, 2022*, 2022.
- Sahoo et al. (2024)
Subham S. Sahoo, Marianne Arriola, Yair Schiff, Aaron Gokaslan, Edgar Marroquin, Justin T. Chiu, Alexander Rush, and Volodymyr Kuleshov.
Simple and effective masked diffusion language models.
In Amir Globersons, Lester Mackey, Danielle Belgrave, Angela Fan, Ulrich Paquet, Jakub M. Tomczak, and Cheng Zhang, editors, *Advances in Neural Information Processing Systems 38: Annual Conference on Neural Information Processing Systems 2024, NeurIPS 2024, Vancouver, BC, Canada, December 10 - 15, 2024*, 2024.
- Seo et al. (2017)
Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi.
Bidirectional attention flow for machine comprehension.
In *ICLR*, 2017.
- Shi et al. (2024)
Jiaxin Shi, Kehang Han, Zhe Wang, Arnaud Doucet, and Michalis K. Titsias.
Simplified and generalized masked diffusion for discrete data.
In Amir Globersons, Lester Mackey, Danielle Belgrave, Angela Fan, Ulrich Paquet, Jakub M. Tomczak, and Cheng Zhang, editors, *Advances in Neural Information Processing Systems 38: Annual Conference on Neural Information Processing Systems 2024, NeurIPS 2024, Vancouver, BC, Canada, December 10 - 15, 2024*, 2024.
- Sohl-Dickstein et al. (2015)
Jascha Sohl-Dickstein, Eric A. Weiss, Niru Maheswaranathan, and Surya Ganguli.
Deep unsupervised learning using nonequilibrium thermodynamics.
*CoRR*, abs/1503.03585, 2015.
- Song et al. (2021)
Yang Song, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon, and Ben Poole.
Score-based generative modeling through stochastic differential equations.
In *9th International Conference on Learning Representations, ICLR 2021, Virtual Event, Austria, May 3-7, 2021*. OpenReview.net, 2021.
- Stechly et al. (2023)
Kaya Stechly, Matthew Marquez, and Subbarao Kambhampati.
GPT-4 doesn’t know it’s wrong: An analysis of iterative prompting for reasoning problems.
*CoRR*, abs/2310.12397, 2023.
- Valmeekam et al. (2023)
Karthik Valmeekam, Matthew Marquez, and Subbarao Kambhampati.
Can large language models really improve by self-critiquing their own plans?
*CoRR*, abs/2310.08118, 2023.
- Vedantam et al. (2015)
Ramakrishna Vedantam, C. Lawrence Zitnick, and Devi Parikh.
Cider: Consensus-based image description evaluation.
In *CVPR*, pages 4566–4575, 2015.
- Wang et al. (2024)
Ke Wang, Junting Pan, Weikang Shi, Zimu Lu, Houxing Ren, Aojun Zhou, Mingjie Zhan, and Hongsheng Li.
Measuring multimodal mathematical reasoning with math-vision dataset.
In *NeurIPS*, 2024.
- Wu et al. (2025)
Chengyue Wu, Hao Zhang, Shuchen Xue, Zhijian Liu, Shizhe Diao, Ligeng Zhu, Ping Luo, Song Han, and Enze Xie.
Fast-dllm: Training-free acceleration of diffusion LLM by enabling KV cache and parallel decoding.
*CoRR*, abs/2505.22618, 2025.
- Yang et al. (2025)
Ling Yang, Ye Tian, Bowen Li, Xinchen Zhang, Ke Shen, Yunhai Tong, and Mengdi Wang.
Mmada: Multimodal large diffusion language models.
*CoRR*, abs/2505.15809, 2025.
- Ye et al. (2025)
Jiacheng Ye, Zhihui Xie, Lin Zheng, Jiahui Gao, Zirui Wu, Xin Jiang, Zhenguo Li, and Lingpeng Kong.
Dream 7b, 2025.
URL [https://hkunlp.github.io/blog/2025/dream](https://hkunlp.github.io/blog/2025/dream).
- Young et al. (2014)
Peter Young, Alice Lai, Micah Hodosh, and Julia Hockenmaier.
From image descriptions to visual denotations: New similarity metrics for semantic inference over event descriptions.
*Trans. Assoc. Comput. Linguistics*, 2:67–78, 2014.
- Yue et al. (2024)
Xiang Yue, Yuansheng Ni, Tianyu Zheng, Kai Zhang, Ruoqi Liu, Ge Zhang, Samuel Stevens, Dongfu Jiang, Weiming Ren, Yuxuan Sun, Cong Wei, Botao Yu, Ruibin Yuan, Renliang Sun, Ming Yin, Boyuan Zheng, Zhenzhu Yang, Yibo Liu, Wenhao Huang, Huan Sun, Yu Su, and Wenhu Chen.
MMMU: A massive multi-discipline multimodal understanding and reasoning benchmark for expert AGI.
In *CVPR*, pages 9556–9567. IEEE, 2024.
- Zhao et al. (2025)
Siyan Zhao, Devaansh Gupta, Qinqing Zheng, and Aditya Grover.
d1: Scaling reasoning in diffusion large language models via reinforcement learning.
*CoRR*, abs/2504.12216, 2025.

## Appendix A Case Study

Case Study: Decoding Dynamics. To conduct a fine-grained examination of the decoding processes of the baselines and WINO, we present two generation examples—one from GSM8K and one from MMMU-val below. As shown, the baseline may produce erroneous tokens at the early decoding stages. Since the generated tokens by the baseline remain unchanged in subsequent decoding steps, the false contextual information propagates throughout the whole generation process, eventually leading to low-quality generation results. In contrast, WINO enables dynamical refinement of generated tokens via an iterative draft-and-verify mechanism, which mitigates error accumulation and facilitates high-quality decoded outputs.

## Appendix B Limitations and Future Directions

Our work establishes WINO as a training-free framework that makes the decoding process of Diffusion Large Language Models (DLLMs) revokable, effectively addressing their quality-speed trade-off. The degree of acceleration, however, is inherently linked to the base model’s capabilities; as our experiments show, more proficient models produce better drafts that require fewer refinement steps, leading to greater speedups. This insight points to a promising future direction: integrating the concept of revokable sampling directly into the training phase. A model trained with an awareness of a draft-and-verify mechanism could learn to generate more robust initial predictions and self-correct more efficiently, potentially unlocking even greater gains in performance and speed.

## Peer Reviews

confidence: 3
contribution: 3
initial_rating: 6
presentation: 3
questions: None
soundness: 2
strengths: 1. The proposed method is training-free, allowing it to function as a plug-and-play module for existing pre-trained DLLMs.
2. The algorithm demonstrates strong performance gains while accelerating the inference.
summary: This paper introduces Wide-In, Narrow-Out (WINO), a novel training-free decoding algorithm for Diffusion Large Language Models (DLLMs) that enables revokable decoding. WINO's core contribution is a parallel draft-and-verify mechanism. It first aggressively generates a large set of candidate tokens, and then uses the model's bidirectional context to verify all currently unmasked tokens (including historical ones), re-masking any that are identified as low-quality. The experiments show that WINO improves the quality-speed trade-off, reducing inference steps while improving accuracy.
weaknesses: 1. The proposed solution to prevent information leakage during verification seems insufficient. The paper states that a token in the Y_shad cannot attend to its corresponding token in Y_cur. However, it can attend to other tokens within Y_cur. Since full self-attention is applied within Y_cur, these other tokens already contain contextual information about the token being verified. Therefore, information leakage still exists. It causes doubt on the mechanism's claimed effectiveness, as the model is not re-evaluating the token with truly independent context.

2. The applicability of WINO to the full class of diffusion language models is unclear. It is not obvious how this method would apply to or benefit other diffusion frameworks, such as SEDD[1], which utilize different sampling schemes (e.g., τ-leaping) that are inherently iterative and corrective.

3. The decoding algorithm appears to be deterministic. The paper does not address how WINO could be adapted for stochastic sampling to produce diverse outputs for a single prompt.

[1] Lou et al., Discrete Diffusion Modeling by Estimating the Ratios of the Data Distribution.

---

confidence: 3
contribution: 3
initial_rating: 6
presentation: 2
questions: - My most critical point is the comparison to other dynamic samplers. Can you provide results comparing WINO against Fast-dLLM-parallel and/or an entropy-bounded sampler on key benchmarks like GSM8K and Flickr30k? This would be essential to isolate the benefit of your novel verification/revocation mechanism.

- Could you provide a more detailed breakdown of the practical overheads? Specifically, what is the wall-clock time for a single forward pass with WINO compared to a standard forward pass on a sequence of equivalent length (i.e., `L_orig + Lb`)? This would clarify the true per-step latency cost of the custom attention mechanism.

- Additionally,  a formal pseudocode algorithm for the WINO decoding loop would be highly beneficial for clarity and reproducibility.
soundness: 3
strengths: - **Clear and Intuitive Motivation:** The identification of "irreversibility" as a core problem is a strong conceptual contribution. The proposed draft-and-verify solution is a logical and elegant response to this problem. However, this seems to be aligning with many recent work, which might be worth including to related work, and the idea is also not super novel in AR LLMs community. Being honest with that will not hurt the novelty of the paper but establishes a great baseline. 

- **Novel Mechanism:** The "shadow block" trick for enabling verification within a single forward pass is a clever and efficient design.

- **Promising Initial Results:** The ability to simultaneously reduce decoding steps by a large margin and improve accuracy on challenging benchmarks like GSM8K and ARC is a noteworthy and promising result. (but I have another concern that GSM8K seems to be a very contaminated dataset...)

- **Training-Free and Model-Agnostic:** The method's applicability to existing, pre-trained dLLMs without any fine-tuning is a major practical advantage.
summary: This paper identifies the "irreversibility" of standard decoding in dLLMs as a primary cause for their poor quality-speed trade-off. To address this, the authors propose a training-free decoding algorithm named WINO: Wide-In, Narrow-Out. WINO introduces a revokable generation process through a parallel draft-and-verify mechanism. At each step, it uses a lenient threshold to aggressively draft multiple tokens ("Wide-In") and, in the same forward pass, leverages an auxiliary "shadow block" to re-evaluate previously generated tokens. Tokens that fail a stricter verification check are re-masked for later refinement ("Narrow-Out"). The method is evaluated on the LLaDA and MMaDA models, where it is shown to significantly reduce the number of decoding steps while often improving task performance. 


While I am not against accepting the paper, I have a some concerns regarding the empirical evaluation and a lack of detail on the practical overheads. My primary reservations is on baselines. The paper's central claim of superiority is substantially weakened by the lack of comparison to other sophisticated, recently proposed dLLM acceleration techniques(but maybe they are concurrent work? depending on the definition of ICLR on this term). The experiments primarily compare against "standard" (one token at a time) and "naive parallel" decoding, which are weak baselines. Without benchmarking against other dynamic samplers, it is difficult to assess the true contribution of WINO over the state-of-the-art.
weaknesses: - **Missing Key Baseline Comparisons:** This is the most significant weakness. The paper compares WINO to generating 1 token/step or a fixed M tokens/step. However, the related work section itself mentions other advanced samplers like Fast-dLLM-parallel and the entropy-bounded (EB) sampler, which also perform dynamic, confidence-based parallel decoding. To convincingly demonstrate the superiority of the WINO mechanism (specifically, the benefit of *revocation*), it is crucial to compare against these state-of-the-art dynamic samplers that perform aggressive drafting but lack a verification/revocation step. Without this, the reported gains might stem from simply being a better dynamic sampler, rather than from the novel revocation mechanism.

- **Lack of Analysis on Computational and Memory Overhead:**
     -  **Latency:** The speedup is reported in terms of step reduction and TPS. However, WINO increases the sequence length by adding a shadow block and requires a non-standard attention mask. This could slow down the per-step computation, especially if it prevents the use of highly optimized kernels like FlashAttention. A direct wall-clock time ablation comparing a forward pass with and without the WINO modifications (on sequences of the same effective length) is needed to understand the true per-step cost.

    - **Memory:** The paper claims the memory cost is "marginal." While likely true for the tested block length of 128, this cost is `(batch_size * Lb * d_model)`, which is non-trivial and scales with the block length `Lb`. A more rigorous analysis of how this memory overhead scales and its implications for longer-context decoding would strengthen the paper.

---

confidence: 4
contribution: 3
initial_rating: 6
presentation: 3
questions: 1. Why did the authors choose to append an additional auxiliary block at the end of the context to run the verification step on the freshly drafted block? Were alternative designs explored to achieve the same goal, for example adding trainable layers or parameters inside the model? 
2. The draft-verify workflow can be interpreted as explicit self-refinement during DLLM generation, where the decision to re-mask a position is the refinement step. Under this view, allowing more reflection steps during inference could trade speed for higher accuracy. However, in the threshold-tuning ablations (Fig. 4), accuracy often rises at first and then declines as the number of steps increases. Do the authors have a plausible explanation for this pattern?
soundness: 3
strengths: 1. The work introduces a novel draft-verify procedure that replaces the naive write-many-at-once update used in prior DLLM decoding. Compared with earlier approaches, WINO maintains high speedups without sacrificing performance and in many benchmarks even improves accuracy. 
2. The study evaluates both text-only and vision-language settings over 14 tasks, which strengthens the credibility of the conclusions. 
3. WINO does not require retraining and is easy to deploy as a plug-and-play component in other DLLMs.
summary: The paper proposes Wide-In, Narrow-Out (WINO), a decoding method for accelerating inference in DLLMs. WINO appends a shadow block to the end of the context so that, after a single forward update, the model can write new tokens in parallel at several positions within the current block and also verify whether tokens written earlier in that block are reasonable, re-masking those deemed incorrect. Two hyperparameters, a drafting threshold and a verification threshold, allow a balance between throughput and accuracy. Because WINO is training-free and plug-and-play, it can be adopted by other DLLMs. The method is validated across multiple benchmarks and baselines.
weaknesses: 1. As described in Section 4.2, during verification each position in y_shad conditions on the corresponding position in y_curr from the previous step. It is unclear whether this one-step lag negatively affects performance. 
2. The paper lacks detailed hardware information for the experiments, especially which GPU models and how many were used to obtain the main TPS results.

---

confidence: 3
contribution: 2
initial_rating: 2
presentation: 3
questions: see weakness section
soundness: 3
strengths: - Revokable Decoding: The paper’s main idea is to make the decoding process "revokable." This means the model can undo an early mistake and fix it right away, instead of being stuck with it (which is what happens in standard DLLMs).

- No Extra Training Needed: The WINO method is a simple algorithm change, meaning it works immediately with existing DLLMs like LLaDA and MMaDA without having to retrain them.

Improved Speed and Quality: WINO solves the trade-off between speed and accuracy. It makes the models much faster while also making them more accurate. The method provides huge gains in real-world tasks: GSM8K and Flickr30K.
summary: Identified problem: DLLMs have to deal with quality speed trade off and it is attributed to irreversiblity of standard DLLM decoding.

The paper introduces WINO (wide in, narrow out), a training free algorithm that enables revocable decoding.

WINO's parallel draft-and verify strategy includes:
- Drafting (Wide in): aggressively draft multiple new tokens based on a lenient confidence threshold.
- Verification (Narrow out): A verification module that re-evalutes all unmasked tokens with a bit stricter verification check, remasking the ones that fail the check.

Results show good efficiency and quality gains on GSM8k and Flickr30k.
weaknesses: - Please include some comparison on latency instead of decoding steps. 
- Additionally add a comparison of the number of parameters in the baseline model vs combined number of params in the drafter and verifier.
- It is a bit unclear, but IIUC, the baselines do not use remasking based on low confidence, which is pretty standard and also mentioned in the related work section. Do your baselines use remasking?


Decision: Accept (Poster)