字节跳动Seed Diffusion:AI代码生成速度提升5.4倍,颠覆开发流程

Decoder

字节跳动近日公布了Seed Diffusion预览版,这是一款实验性人工智能模型,旨在通过大幅加速代码生成过程来彻底改变其方式。与每次生成一块代码的传统方法不同,Seed Diffusion预览版采用并行操作,能够同时生成多个代码片段。这种创新方法带来了惊人的速度,字节跳动报告称,在Nvidia H20 GPU上,其生成速率高达每秒2,146个令牌,这使其可能比之前的模型快5.4倍。

Seed Diffusion预览版的核心在于其“离散状态扩散”方法。虽然扩散模型通常是为图像等连续数据设计的,但字节跳动巧妙地将这种方法应用于文本等离散数据类型,以及至关重要的代码。该模型并非按线性顺序预测代码的每个基本单元或“令牌”,而是从一个嘈杂的、部分填充的状态中重建代码。这种并行重建得益于复杂的Transformer架构,该架构能够同时预测多个代码段,超越了传统的循序渐进生成过程。

尽管输出速度快,字节跳动强调Seed Diffusion预览版保持了高代码质量。基准测试表明,该模型在代码编辑任务中表现出特别的优势和效率,与行业领先的代码生成模型相比具有竞争力。这表明速度的提升并非以牺牲准确性或实用性为代价。

为了实现速度和质量的平衡,字节跳动实施了精细的两阶段训练过程。初始阶段采用基于掩码的训练,其中代码的某些部分被替换为占位符令牌,促使模型填充空白。然而,这种方法有时可能导致模型仅仅复制未被掩码的令牌,而没有彻底验证它们。为了解决这个问题,引入了第二个关键的、基于编辑的训练阶段,其中包含了插入和删除操作。这迫使模型全面审查和纠正所有令牌,而不仅仅是最初被掩码的那些,从而确保了更健壮和准确的输出。此外,开发团队精心优化了生成顺序,考虑了代码固有的结构和依赖性——例如,确保变量在使用前声明。然后,该模型在一个庞大且经过精心筛选的高质量生成序列数据集上进行训练,其中许多序列是由预训练模型本身创建的,从而形成了一个自我改进的循环。

并行解码的概念虽然在理论上可以通过扩散模型实现,但却带来了显著的计算障碍。每个并行推理步骤都需要大量的处理能力,而简单地减少步骤数量可能会损害输出质量。字节跳动通过将“在策略学习”(on-policy learning)整合到模型的训练中来解决这个问题。这使得Seed Diffusion预览版能够自主优化其生成过程,旨在最大限度地减少所需步骤的数量,同时一个独立的验证模型严格检查生成代码的质量。在实际应用中,Seed Diffusion预览版在定义的块内并行处理代码,同时仍保持这些块之间逻辑上的顺序。字节跳动团队还专门为这些要求苛刻的扩散工作负载优化了其内部软件框架。

Seed Diffusion预览版进入了一个竞争激烈的领域,尤其挑战了谷歌的Gemini Diffusion,后者于五月发布,也同样专注于代码生成。字节跳动已表示将持续致力于进一步的实验,包括扩展模型并将其创新方法应用于更复杂的推理任务。感兴趣的用户目前可以访问公开演示,亲身体验其功能。