您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [IBM]:超越自回归视野:对扩散模型、世界建模和状态空间模型在代码生成领域的全面调研 - 发现报告

超越自回归视野:对扩散模型、世界建模和状态空间模型在代码生成领域的全面调研

信息技术 2026-04-09 Kishan Maharaj, Ashita Saxena, Srikanth Tamilselvam IBM 惊雷
报告封面

基尚·马哈拉吉 ∗ 阿希塔·萨克斯纳 ∗ 斯里坎特·塔米尔塞拉瓦姆 IBM {kishanmaharaj, ashitasaxena}@ibm.com srikanth.tamilselvam@in.ibm.com 与人类语言相悖,它强加了严格的序列性,这可能限制其表达能力,进而导致泛化能力差(Chen等人,2025b;Zhang等人,2025;Lin等人,2021)。 摘要 自回归(AR)语言模型在自动化软件工程领域取得了显著进展,推动了强大的代码生成与辅助系统的发展。然而,下一词预测范式为代码推理引入了结构性限制,包括全局规划受限、维持长距离依赖关系存在挑战,以及在程序执行语义上的基础有限。鉴于现有文献对自回归模型的严重偏向,我们探讨了可能通过解锁代码智能的下一代架构能力,从而克服下一词预测的逻辑和扩展瓶颈的新兴范式。具体而言,我们讨论了扩散模型(Diffusion Models)的潜力,该模型通过整体去噪生成代码,捕捉了自回归模型常忽略的长距离句法约束。我们还讨论了代码世界模型(Code WorldModels, CWMs),该模型通过模拟执行状态来支持推理,以及状态空间模型(State Space Models, SSMs),该模型为大规模上下文提供了线性时间效率。通过将这些发展与认知神经科学的发现相结合,我们勾勒了开发“系统2”代码生成代理的方向。 从左到右的AR模型生成过程会形成我们所说的“顺序依赖陷阱”。在软件工程中,早期的决策(例如选择库版本或定义函数/类)会约束后续编写的代码,而函数体内的实现细节可能会决定文件开头的所需导入,从而引入相对于AR生成方向反向流动的依赖。当AR模型犯下早期错误,例如选择次优数据结构或误用函数定义时,它会创建一个“有毒”的上下文。由于模型无法回溯,后续的token必须基于这个错误进行条件判断,而这个错误无法被修正,导致错误传播,模型会幻觉出为初始错误辩护的理由(Zhang等人,2023;Huang等人,2025;Kalai等人,2025)。相比之下,人类开发者非线性地编写代码:起草函数签名、勾勒实现草图、添加缺失的导入,并迭代地完善逻辑。“一次写入”的AR推理特性,因此阻碍了这种反馈循环。 arXiv:2606.23690v1 [cs.SE] 9 Apr 2026编程语言是受严格语法规则约束的形式化语言,这些规则在代码中往往跨越很远距离(Harrison,1978;Al-lamanis 等人,2018)。例如,位于第500行的闭合大括号“}”必须与位于第10行的开启大括号“{”匹配,并且在一个循环内部深处使用的变量必须遵守在头文件中早先建立的类型定义。AR模型依赖注意力机制(Vaswani 等人,2017)来引用先前的token,然而它们难以精确地维持这种长距离依赖关系(Rando 等人,2025;Liu 等人,2025),尤其是在上下文窗口因无关信息而饱和时(Liu 等人,2024;Shi 等人,2023)。尽管注意力机制能够访问过去的token,但它 1 简介:自回归瓶颈 现代大型语言模型(LLMs)的主流框架是自回归(AR)目标(Radford等人,2018年,2019年),该框架将序列 (x₁, ..., x) 的合概率建模条件概率的乘:P(x₁, ..., x) = ∏<0xE2><0x82><0x99><0xE1><0xB5><0xA3><0xE2><0x82><0x99><0xE1><0xB5><0xA3>₁<0xE2><0x82><0x99><0xE1><0xB5><0xA3>ₙ P(x<0xE2><0x82><0x99><0xE1><0xB5><0xA3> | x<0xE2><0x82><0x99><0xE1><0xB5><0xA3>₋₁),其中 t=1。虽然这种形式在数学上是易于处理的,并且对于线性流动的自然语言非常有效,* 这些作者贡献相同。 不允许模型修改早期的token以满足后来出现的约束。这一限制在填空任务(Fill-in-the-Middle,FIM,Bavarian等人,2022)中尤为明显,因为在这些任务中生成的代码必须同时与一个前缀和一个后缀保持一致。虽然AR模型可以用FIM目标进行训练(Wolf等人,2023;Fried等人,2022),但它们的架构无法原生地将前缀和后缀视为一个可联合编辑的表示。此外,这种训练范式并未考虑解释器或编译器在顺序处理代码时产生的执行语义。 根据我们对开源模型的理解,我们无意评论或推测任何闭源模型,闭源模型据我们所知也可能包含非自回归模型的成分(例如扩散模型、状态空间模型等)。我们的贡献是: 我们针对代码建模的非自回归范式,呈现了一份结构化的综述,重点阐述了扩散模型、状态空间模型(SSMs)和代码世界模型(CWMs)的架构原理及其与代码任务的关联性。 总体而言,传统的自回归(AR)模型在库规模软件工程中面临三个关键瓶颈,限制了其有效性。首先,序列依赖性强制单向、逐个token生成,阻止跨位置的multi-token预测,不允许修改先前生成的token。这种不可逆性导致早期错误传播,常常引发级联错误和幻觉。其次,O(N self-attention)的计算成本呈平方级(O(N^2))增长,使得处理大型库级上下文成本过高。最后,AR模型通过将代码纯视为文本而表现出语义脱节,缺乏对执行语义的内在理解。因此,它们可能生成语法上看似合理但功能上错误的逻辑,忽略了编程环境的运行时行为。 我们对这些范式进行对比分析,考察它们在计算效率、扩展到长上下文的能力以及生成代码的结构一致性方面的权衡。 我们将这些范式与认知神经科学的见解相结合,将其置于一个受人类“系统2”推理启发的视角中,该视角强调刻意分析和错误纠正。 2 扩散:迭代优化的范式 扩散模型(DMs)在文本生成(Sahoo等人,2024;Yi等人,2024;Nie等人,2025)和代码合成(Xie等人,2025;Gong等人,2025;Singh等人,2023)领域的出现,标志着一种根本性的架构转变,从自回归的下一词预测转向整个序列的迭代优化。与生成输出时按顺序逐步依赖先前已生成词元的自回归(AR)模型不同,受非平衡热力学(Sohl-Dickstein等人,2015)启发的基于扩散的方法,将生成过程表述为一种去噪过程,逐步将一个噪声序列转化为连贯的输出。该方法的日益成熟体现在近期的大规模和商业化扩散系统之中,包括Seed Diffusion(Song等人,2025)、Mercury(Khanna等人,2025)和Gemini Diffusion(谷歌DeepMind,2025),这些系统展示了基于扩散的生成在长文本和高保真代码方面的可行性。 尽管自动化软件工程领域的现有文献主要集中在对自回归(AR)框架的研究(Wang等人,2025;Gu等人,2025;Yang等人,2025b;Jelodar等人,2025;Chen等人,2025c;Li等人,2025b;Lyu等人,2025),本研究旨在通过考察与代码建模相关的涌现非自回归范式(如图1所示)来拓宽讨论范围。具体而言,我们分析了扩散模型、代码世界模型(CWMs)和状态空间模型(SSMs),并强调了它们的架构特性如何为代码生成和推理提供替代机制(如图2所示)。据我们所知,本研究是首次系统地在这些范式在代码合成和软件工程背景下的讨论中进行的综述。我们希望这篇综述能鼓励NLP和软件工程领域进一步探索此类方法。我们还想进一步指出,这项工作... 2.1 扩散模型的基础 在本节中,我们讨论了离散数据背景下扩散模型的基础。 类似于图像扩散,后者在连续的高斯空间中运行(Ho等人,2020年;Rombach等人,2022年;Chen等人,2025a),代码生成则需要处理离散的标记(Shi等人,2024年;Sahoo等人,2024年;Austin等人,2021a)。 由一个独立同分布(i.i.d.)的掩码操作定义: 离散扩散(Sa-hoo等人,2024;Shi等人,2024)的最新进展已建立了一个框架,其中正向污染过程q(x|x)的特点是具有吸收态,t t−1[ ],通常是一个特殊的MASK标记。 个体到α kens的转移概率受生存概率t支配: x = [w, w, ..., w] 对于长度为0, 1, 2, ...,L的序列,在时间t∈[0, 1]时,向潜在状态的转换 x x 其中表示干净数据,表示时间t的损坏状态,表示吸收状态[α MASK]。噪声计划是一个单调递减的函数,使得α ≈ 0(干净数据)和α = 1(完全损坏)。 掩码标记(例如: 生成过程通过神经网络(例如Transformer)p(x|xs)对上述方程进行参数化,从掩码序列中估计原始token,从而逆转这种退化。为了从更嘈杂的状态(x0)过渡到更干净的状态(xt)(0≤ s < t),反向步骤被定义为: 迭代优化取代了单次去噪编码,采用去噪迭代,其中整个序列被反复更新。这使得模型能够修正早期步骤中引入的不一致,例如变量定义与后续使用之间的不匹配,从而创建了一种内在的自纠正机制。它还支持步长解耦,其中去噪迭代的次数与序列长度无关;与自回归模型不同,更长的输出不需要成比例地增加解码步骤(Zhang等人,2025)。 ˆ x 此处表示模型对所有被掩盖位置的词汇的类别预判。在实践中,模型输出 log- t θ它们,并通过 softmax 层转换为概率。用于优化的另一个简化的目标是一个仅专注于被掩盖标记的加权交叉熵损失: 由于双向上下文的存在,这些模型天生就具备满足固定规则集和形式语法的能力,这一点在通用自然语言处理文献中常被忽视,但对代码生成至关重要(Cardei等人,2025)。与自回归模型不同——在自回归模型中,强制执行诸如匹配括号等约束依赖于模型以概率方式记住先前的标记(Mündler等人,2025)——扩散模型在每一时间步都通过潜在表示维持整个序列。这使得句法约束能够在整个序列范围内进行全局优化(Singh等人,2023;Xie等人,2025)。例如,在位置处存在一个闭合大括号会影响在位置1处生成相应 opening brace 的概率,因为模型优化的是整个序列的联合概率,而不是下一个标记的条件概率。 # X L λ(t) logp(x|x)(θ)=E∼U θ0,i t t(0,1),x∼D,0i∈Maskx∼q(x|x)t t0(4) t是从均匀分布U(0, 1)中采样的,M表示x = [λ(t) MASK]的索引集合,λ(t)是一个由噪声调度α衍生的时间相关权重因子。这确保了模型在扩散轨迹的不同阶段优先进行准确的重建。 通过训练网络从噪声状态中预测原始的、未受污染的 x x 个标记,该 0 t 模型学会了捕捉顺序自回归模型常常忽略的全局依赖关系和结构约束。 在实际场景中,这些特性使扩散模型能够根据问题的复杂性表现出自适应的生成行为(Xie等人,2025年)。例如,如果任务需要明确的程序结构,模型可以在早期高噪声阶段建立高级程序结构(例如,导入、类定义、主块),在后续步骤填充局部细节(如变量名或操作)之前,有效规划代码骨架。相反,对于推理密集型任务(例如,多步逻辑),生成可能以非线性、交错的方式推进,首先生成关键逻辑条件,然后是支持代码,最后是细化边缘情况,这反映了 2.2 传播过程中的世代动态 扩散模型通过引入迭代优化,从根本上改变了并行解码的动态。 并行解码使模型能够同时更新序列中的所有标记,而不是一次生成一个标记。这自然地支持多标记预测和双向上下文感知,允许每个标记都使用左右上下文进行生成。例如,模型可以从一个序列开始 一种采样策略,用于在训练补全过程中构建互补掩码噪声,从而避免半自回归解码。 解决方案的结构往往依赖于突出的见解。 这种由粗到精的生成方式与代码的层级特性相吻合,其中高层的架构决策会约