DiscoverDaily LLM PapersSeed Diffusion Preview: 来自字节 Seed 团队的高速推理代码语言模型
Seed Diffusion Preview: 来自字节 Seed 团队的高速推理代码语言模型

Seed Diffusion Preview: 来自字节 Seed 团队的高速推理代码语言模型

Update: 2025-08-03
Share

Description

Seed Diffusion Preview 技术报告

Seed Diffusion模型将扩散(Diffusion)方法应用于代码生成,并实现了显著的高速推理,其核心在于将连续域的扩散概念巧妙地适配到离散的文本数据上,并通过一系列优化策略来加速其迭代生成过程。

以下是其主要实现方式:

  • 离散状态扩散(Discrete-state Diffusion)挑战:传统的Diffusion模型天然适用于图像像素或音频频谱图等连续的高维数据,因为在这些数据上定义和操作高斯噪声是一个自然的过程。然而,将Diffusion模型直接应用于文本等离散数据(如代码词元)更具挑战性,因为“给一个单词添加一点点噪声”的概念并不直观,需要设计特殊的离散扩散技术。
    解决方案:Seed Diffusion Preview是一个基于离散状态扩散的大规模语言模型。它通过定义明确的状态转移矩阵,直接在离散状态空间上构建扩散过程。

    双阶段课程学习(Two-Stage Curriculum, TSC):为了提升离散扩散模型的鲁棒性和消除采样过程中可能出现的重复等异常行为,Seed Diffusion采用了两阶段的前向破坏过程训练:基于掩码的前向过程(Mask-based Forward Process):在训练的前80%步骤中,模型逐步将原始序列中的词元替换为特殊的[MASK]词元。这是一种标准且低方差的训练目标。
    基于编辑的前向过程(Edit-based Forward Process):在训练的最后20%步骤中,模型增加了基于编辑的操作,如删除、插入和替换,其破坏程度通过Levenstein距离来控制。这种方法强制模型重新评估所有词元(包括未被掩码的词元),从而缓解了单纯基于掩码训练导致的“过度自信”(即认为未被掩码的词元总是正确的)问题,提高了模型在推理时的自我纠错能力。
  • 实现高速推理非自回归(Non-autoregressive)但迭代式的挑战:尽管扩散模型本身是非自回归的,理论上可以并行生成,但其迭代式、步进敏感的去噪过程在实践中引入了严重的延迟,这削弱了其相对于传统自回归模型的优势。

    策略性采样与优化:Seed Diffusion采用多种方法来解决推理效率问题:策略性策略扩散学习(On-policy Diffusion Learning):为了充分发挥并行能力,模型优化了一个目标函数,旨在最小化反向去噪过程的采样步骤数量(|τ|)。这意味着模型学习以更少的迭代次数生成高质量样本,从而显著加快推理速度。这种方法在效果上类似于非自回归机器翻译中的“模式过滤”技术。
    块级并行扩散采样(Block-level Parallel Diffusion Sampling):在推理时,模型采用一种半自回归(semi-AR)的方式,以块为单位并行生成词元,同时保持块之间的因果顺序。
    KV缓存(KV-caching):对于已经生成的块,模型会利用KV缓存来条件化后续块的生成,进一步提高效率。
    系统优化:除了算法设计,Seed Diffusion还采用了全面的系统优化和专门的内部基础设施框架,以高效支持块级推理。
  • 架构基础:Seed Diffusion模型的核心架构是一个标准的密集Transformer。这意味着它利用了Transformer在处理序列数据和捕捉长程依赖方面的强大能力。
  • 性能表现:通过上述创新,Seed Diffusion Preview在H20 GPU上实现了2146词元/秒的推理速度。在多个代码评估基准测试(如HumanEval、MBPP、BigCodeBench、LiveCodeBench、MBXP、NaturalCodeBench、Aider和CanItEdit)中,它保持了与先进自回归模型相当的竞争力,甚至在代码编辑任务上表现出显著提升。

总而言之,Seed Diffusion通过将Diffusion模型的核心思想(从噪声中逐步去噪)应用于离散文本数据,并通过两阶段课程训练来优化其学习过程,同时结合策略性采样、块级并行推理以及Transformer架构的优势,成功克服了离散数据处理和迭代式推理速度慢的固有挑战,为代码生成领域带来了高速且高质量的解决方案。

Comments 
00:00
00:00
1.0x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Seed Diffusion Preview: 来自字节 Seed 团队的高速推理代码语言模型

Seed Diffusion Preview: 来自字节 Seed 团队的高速推理代码语言模型