找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 38|回复: 0

Meta的代码生成世界模型CWM,先预测结果再写代码,IDE很快会多一个“预言”按钮

[复制链接]

2085

主题

0

回帖

6443

积分

管理员

积分
6443
发表于 2025-10-9 10:06:37 | 显示全部楼层 |阅读模式
您修过Bug吗?在Vibe coding的时代之前,当程序员遇到自己写的 Bug 时,通常能顺着自己的思路反推问题所在。但当面对 AI 生成的 Bug 时,情况变得复杂得多,我们不清楚 AI 的“思考过程”,这使得调试过程像是在探索一个“黑箱”。一方面,修复一个Bug的交互链条非常长,Token消耗呈指数级增长;另一方面,开发者需要不断地向 AI 解释错误、提供上下文,反复拉锯的过程会极大地消耗开发者的心力和时间,全程漫长又煎熬,甚至在一些大型项目中,Bug到最后还不一定能修好。

Meta FAIR最近发布的一项研究直指这个问题,他们提到:传统大语言模型在训练时,通常将代码视为一种特殊的静态文本。模型学习的是代码从左到右、从上到下的文本预测。这种方法存在一个根本性的缺陷:它只学到了代码的“静态语法 (Syntax)”,而忽略了其“动态语义 (Semantics)”,而这刚好是代码最本质的特性。一个优秀的程序员不仅知道代码长什么样,更重要的是知道代码执行时会发生什么



因此他们发布了Code World Model(CWM),这是一款320亿参数、开源权重的代码大模型,主打“代码世界建模”:不仅学代码长什么样(语法),还学代码执行时环境如何变化(语义与动态),结果是在 SWE-bench Verified 等评测上拿到强劲成绩,同时开放中间与最终 checkpoint,作为学界研究“世界模型和代码生成”的试验台。

为什么这样做?

先预测结果再写代码的背后,是一种深刻的编程思想,研究者称之为“通过追踪进行推理” (reasoning-via-tracing)。其核心优势在于:

从“做什么”到“怎么做”的逻辑转变: 这种方法强制模型首先深度思考并规划出解决问题的具体步骤(What to do),然后再将这些步骤转化为代码语法(How to do it)。这非常符合人类解决问题的模式:我们通常会先在脑中或者草稿纸上构思出逻辑步骤,然后再动手写代码。这避免了模型在不理解问题的情况下,直接陷入复杂的语法细节中。



画线内容:“我将首先发出执行轨迹,并检查它是否能得到预期的输出。然后,如果输出是正确的,提取代码就变得很简单了。”

让代码生成“有据可依”: 传统的代码生成是“漂浮”的,模型直接根据提示生成一堆文本。而通过这种方法,代码的每一行都是从一个被验证过可以产生正确结果的、具体的执行路径中提取出来的。这使得生成的代码逻辑更可靠,更不容易出现与预期不符的错误。

致敬经典计算机科学思想

研究者指出,这种方法与计算机科学先驱Hoare和Dijkstra的思想不谋而合。他们提倡在编程时,应该用逻辑推理来指导程序的开发过程,而不仅仅是在代码写完后用测试去验证其正确性。CWM在某种程度上将这种高级的编程思想自动化了。



CWM专为长代码而生

CWM不仅在训练理念上创新,其底层的Transformer架构也为高效处理长篇代码进行了专门优化。其核心设计有两大特点:



混合注意力机制 (Alternating Attention): 为了高效处理高达 131k tokens 的超长上下文,CWM 并没有采用全局的注意力机制,因为那样计算成本太高。它巧妙地采用了局部与全局注意力交替的模式。具体来说,模型大部分的 Transformer 层使用 8k tokens 的“局部”滑动窗口注意力,而在每3层局部注意力之后,会插入1层能够看到全部 131k 上下文的“全局”注意力层。这种 3:1 的混合模式,如同“既能用放大镜仔细看代码细节,又能周期性地用广角镜审视全局结构”,在计算效率和长依赖捕捉之间取得了绝佳的平衡。

分组查询注意力 (Grouped-Query Attention, GQA): 这是另一项关键的优化技术。在传统的注意力机制中,每一个“查询头”(Query Head)都需要与所有的“键值头”(Key-Value Head)进行计算。而 GQA 允许多个查询头共享同一组键值头。这极大地减少了计算量和内存占用,使得模型在保持强大性能的同时,推理速度更快,对硬件更友好。

通过这些精心设计的架构,CWM 才能在实际训练中高效地处理复杂的代码仓库和长篇的交互历史,为其“世界模型”的构建打下了坚实的硬件和算法基础。

CWM独特的训练流程

CWM最核心的创新在于引入了“代码世界模型中继训练 (Code World Modeling Mid-training)”,它在通用预训练之后、指令微调之前,专门向模型灌输代码的动态执行逻辑。整个流程可以看作是逐步为模型构建能力,从通用的语言和代码知识,到深刻的执行语义理解,再到解决复杂问题的专业技能,可以分为两个主要阶段和四个具体步骤。



第一阶段:预训练 (Pre-training) - 构建基础与核心世界模型

这个阶段的目标是让模型不仅学会代码的表面语法,更要理解其内在的执行逻辑。

步骤1: 通用预训练 (General Pre-training)步骤2: 代码世界模型中继训练 (Code World Modeling Mid-training)-核心创新

这是整个流程中最关键、最独特的一步。它的目标是构建 CWM 的核心能力,代码世界模型,主要通过两种互补的数据来构建:

支柱一:Python 执行追踪 (Python Execution Traces)学习微观层面的“代码物理定律”

这是为了让模型理解代码的直接因果关系。

训练目标:给定一个“观察”和一个“行动”,模型必须学会准确预测出执行完这个行动后,程序会进入怎样一个新的“观察”状态(即变量如何变化)。

效果:通过数万亿次的这种训练,CWM 仿佛在内部构建了一个虚拟的“Python 解释器”。它不再是把 n += 1 当作一个普通的文本序列,而是将其理解为一个会导致变量 n 的值增加 1 的确定性操作。它学会了代码的执行语义 (semantics),而不仅仅是语法 (syntax)。

支柱二:ForagerAgent数据-学习宏观层面的“工程实践动态”

这是为了让模型理解代码在一个真实、复杂的开发环境中是如何被使用的。

小结

“代码世界模型中继训练”是 CWM 训练流程的点睛之笔。它是一个承上启下的关键阶段:

可以说,没有这个“中继训练”阶段,CWM 就只是另一个强大的代码补全工具;而有了这个阶段,它才真正拥有了成为一个“代码世界模型”的潜力。

第二阶段:后训练 (Post-training)-精通复杂任务

在模型具备了世界模型的基础后,通过后训练阶段将其能力引导至解决实际、复杂的编程和推理问题上。

步骤 3: 监督微调 (Supervised Fine-tuning, SFT)步骤 4: 联合强化学习 (Joint Reinforcement Learning, RL)



“代码世界模型”的核心思想,就是通过让模型学习代码执行的动态过程和在真实环境中的交互后果,使其从一个只会“读谱”的模仿者,转变为一个能在内心“预演”代码执行效果的思考者。这种深刻的理解力,是 CWM 接下来能够在复杂的软件工程任务上超越其他模型的根本原因。

真的有用吗?数据消融研究

但是,如此复杂的训练流程和特殊的数据集,真的比传统方法更有效吗?为了回答这个问题,研究者进行了一项关键的数据消融研究 (Data Ablation Study),用科学实验证明了其方法的有效性。 实验中,他们使用规模较小的 80 亿参数模型,并系统性地在中继训练阶段添加或移除三种核心的“世界模型”数据集:GitHub PR 轨迹数据、Python 执行追踪数据和 ForagerAgent 代理交互数据。

结论非常有力:



最终赢家:包含了全部三种特殊数据集的模型,在所有相关的评估指标上均取得了最佳性能。

各有专长:每一种数据都对模型的特定能力有不可或缺的贡献:

性能与新能力:CWM究竟有多猛?

最终,经过这样一番特殊训练的CWM,在其设计的核心领域,复杂的代码任务和代理式软件工程中达到了业界顶尖水平,甚至在某些方面超越了更大规模或闭源的专有模型。

王牌能力:代理式软件工程 (Agentic SWE)-解决真实世界Bug

这是 CWM 最亮眼的表现,直接证明了其“代码世界模型”的价值。





这个成绩非常厉害。它超越了所有同等参数规模的开源模型,并且与更大、更昂贵的闭源专有模型(如 GPT-5 和 Claude Sonnet-4)具有很强的竞争力。这表明 CWM 不仅仅是生成代码片段,而是真正具备了理解和解决复杂工程问题的能力。

独特能力:代码执行与深度推理-证明其“懂”代码

CWM 的强大不仅在于结果,更在于它能像人一样“思考”和“预演”代码。



与直接预测(Direct)或简单的思维链(CoT)相比,开启为 CWM 特别设计的“推理”(Reasoning)模式后,模型准确率实现了质的飞跃。

程序终止预测 (HaltEval-prelim):

算法复杂度分析 (BIGO(BENCH)):

通用编程与数学能力-基础扎实

除了在尖端任务上表现突出,CWM 在传统的编程和数学基准上也同样强大。

数学推理:

超长上下文处理能力 - 应对大规模代码库



写在最后

CWM目前虽然开源,但并非通用模型:仅专注于代码,未经过RLHF对齐,所以目前还是一个为研究目的发布的模型。但它所展示的潜力,无疑为我们描绘了一幅AI驱动软件开发新范式的蓝图。

来已来,有缘一起同行!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|花享网 ( 琼ICP备2024046163号-1 )

GMT+8, 2025-12-1 10:28 , Processed in 0.213604 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表