把“会跑的代码世界”装进AI,Meta重磅开源首个代码世界模型:让AI像程序员一样思考
今日凌晨,Meta FAIR 团队重磅发布了 Code World Model(CWM)——一个参数量为 32B、支持最长 131k token 上下文的开放权重 LLM。
根据 Meta 官方介绍,CWM 的目标很明确:把“世界模型”的思想带到代码生成与推理中,让模型不仅会写代码,还能模拟代码执行过程、推理程序状态、自我检测并修复 Bug。
值得一提的是,为了支持社区在“代码世界模型”方向的研究,此次 Meta 还开源了CWM在中期训练(mid-training)、SFT和RL 阶段的权重检查点。为此,Meta 首席 AI 官 Alexandr Wang 还在 X 上呼吁:“我们鼓励研究界对这个开放权重的模型进行研究!”
为什么要把“世界模型”带入代码领域?
在 CWM 研究论文开篇,Meta 团队就提到,当前传统的代码预训练是把代码视为静态文本,模型主要学习从左到右、从上到下逐行预测代码——换句话说,模型学到的是语法、常见模式和命名约定,但并不懂执行过程。
“我们认为这还不够——要真正掌握编码,不仅要了解代码长什么样,更要了解代码执行时的作用。”
这种技能对软件工程师的日常工作至关重要:在局部层面,他们了解一行代码的执行如何改变局部变量的状态;在全局层面,他们可以预测代码库的变化将如何影响程序的输出。
基于此,CWM 的核心出发点是:要把“世界模型”的想法带进代码领域,让模型学会观察——行动——观察的执行轨迹,从而提升生成代码的可执行性、可验证性与自我修复能力。
怎么做到从“看代码”到“看世界”?
如开头所说,CWM 是一个 32B 参数、支持超长上下文(最高可到 131k tokens)的 LLM,为此它采用了局部+全局交替机制和长序列稳定化技巧。训练分为三大阶段进行:
● 预训练阶段:使用大规模通用语料与代码语料(约8T tokens,其中代码占比约 30%),为模型打基础,早期上下文长度为 8k token。
● 中期训练阶段:引入了 5T tokens 的世界建模数据,将上下文长度扩展到 131k tokens,这一步也是把世界模型能力“内化”的核心。
● 后训练阶段(SFT + RL):先做 SFT(100B tokens,32k 上下文)强化 instruction 与推理能力,然后做大规模多任务多回合 RL(172B tokens,131k 上下文),训练目标覆盖可验证的编码、算法题与软件工程交互。
其中,据 Meta 团队介绍,CWM 的世界模型能力主要靠中期训练阶段的两类数据驱动:
(1)Python 执行轨迹(execution traces):把函数或测试在解释器中执行的中间栈帧与局部变量状态序列化为observation→action→observation 的形式,并以专用格式喂给模型,让模型学会预测“下一步执行会如何改变局部状态”。
据了解,Meta 喂给 CWM 的这一类数据覆盖函数级、竞赛题解、以及仓库单元测试轨迹,总量非常大。通过学习这类数据,模型就能在没有真实运行环境时模拟代码执行路径。
(2)Agent与环境的交互轨迹:用一个自动化 Agent在可执行的仓库镜像里“觅食”——执行 Bash、编辑文件、运行测试,去修 Bug 或实现缺失功能。据悉,Meta 由此收集的此类数据量也很庞大:“从 10.2 万张图片和 3.15 万个底层存储库中收集了约 300 万条轨迹。”
这些动态轨迹数据,直接把 Agent 与环境的交互经验提前放到中期训练中,帮助模型学会“用工具修复软件”的编码思路,尤其对多回合软件工程任务帮助很大。
除此之外,Meta 还分享了 CWM 在后训练阶段中的两处工程细节:
首先,在 SFT 阶段引入特定的“推理 token”(reasoning token),帮助模型区分直答与推理过程;到了 RL 阶段,改用更灵活的 <think> 标签以鼓励模型形成自己的推理路径;其次,使用自举策略,即把早期 RL 模型生成的高质量轨迹回流到 SFT,形成良性循环,既能稳步提升 Agentic 能力,又能降低 RL 的训练噪声。
在基准测试中,CWM 表现强劲
在 Meta 论文公布的基准测试中,CWM 在代码修复类与数学题上表现强劲:
● 在 SWE-bench Verified 上,CWM 在启用 Test-Time-Scaling(多候选并投票)时能达到 65.8% pass@1,未启用时为 53.9%;
● 在 LiveCodeBench、Math-500、AIME 等基准上也有亮眼结果:在 LiveCodeBench 上取得 68.6%;在 Math-500 上达到 96.6%;在 AIME 2024 上达到 76.0%。
以上面这张 SWE-bench Verified(该测试要求 AI 模型修复 GitHub 项目中的实际错误)得分为例,可以看出 CWM 不仅领先于其他参数量相近的开源模型,甚至能与更大或闭源的 LLM 相媲美,已接近 GPT-4 水平。
不过 Meta 也坦言 CWM 并非无可挑剔,因为它并非通用聊天模型,在某些编辑格式或多语言场景仍有差距;而且大量 Agentic 训练可能引入“格式化噪音”,需要用筛选与自举手段来缓解。
来自业界的赞许与质疑
从社交平台的刷屏程度来看,今天 CWM 的发布显然引起了广泛关注——毕竟,这是 Meta 高调重组其 AI 业务后推出的首款模型。
除了开头提到的 Alexandr Wang,多位 Meta AI 研究人员都进行了宣传与分享。例如,CWM 资深核心贡献者 Gabriel Synnaeve简单复盘了CWM 的研究思路;Yann LeCun 也转发了 Gabriel Synnaeve 的帖子,并用一句话总结:
“代码世界模型(CWM):通过想象执行指令的效果和规划产生预期效果的指令来生成代码。”
与此同时,业界对于 CWM 的发布也普遍表示好奇与欢迎,尤其赞赏 Meta 不只是开源最终模型,还公开了从中期训练到 SFT 与 RL 各阶段的检查点——这对学术与工程复现极其有用,在当前多家公司封闭策略的大环境下显得难能可贵。
然而,热情之余也伴随不少现实的质疑与顾虑。
不少开发者指出,希望 CWM 能与现有的代码生成系统进行独立的、面对面的比较,并在开发环境中进行实际试验。此外,毕竟 CWM 拥有 32B 参数,需要强大的计算能力,对于日常开发人员来说,或许轻量化的变体对他们而言才更有实感。正如 CTOL.digital 工程团队所说:“CWM 是一项伟大的研究成果,编写扎实,前景光明,但我们还是需要实际测试它。”
那么,你认为 CWM 的发布意味着什么?如果 AI 能真正理解代码执行并从此成为常态,我们又是否会进入一个软件开发新时代?
参考链接:
https://ai.meta.com/research/publications/cwm-an-open-weights-llm-for-research-on-code-generation-with-world-models/
https://www.ctol.digital/news/meta-drops-ai-that-gets-how-code-works-shaking-silicon-valley/
本文来自微信公众号“CSDN”,整理:郑丽媛,36氪经授权发布。