Meta 开源代码世界模型CWM:让AI像程序员一样"推演"代码的世界模型

大语言模型2个月前发布 小马良
125 0

Meta近日发布并开源代码世界模型(Code World Model, CWM,这是一款320亿参数的仅解码器大型语言模型(LLM),支持最长131k tokens的上下文长度。不同于传统代码模型仅依赖静态文本训练,CWM通过学习代码执行轨迹与环境交互数据,实现了对代码运行状态的动态理解,为代码生成与推理研究提供了新范式。此次发布同步开放了预训练、监督微调(SFT)及强化学习(RL)后的全部模型权重与技术工具,供研究者进一步探索。

为什么需要"懂执行"的代码模型?

当前主流代码生成模型的核心局限在于,它们将代码视为静态文本进行学习,本质是通过海量数据预测"下一个token",掌握的是语法规则与常见模式,却不理解代码执行后的实际影响。这导致模型生成的代码常出现"看起来正确但无法运行"的问题——既不懂一行代码如何改变变量状态,也无法预判多文件修改的全局影响。

Meta 开源代码世界模型CWM:让AI像程序员一样"推演"代码的世界模型

而人类程序员的核心能力恰恰在于"脑内推演":写代码前会模拟执行逻辑,调试时能追溯状态变化。CWM的研发正是为了弥补这一差距,通过引入"世界模型"理念,让模型学会像程序员一样理解代码的动态执行过程。

核心能力:从"生成代码"到"推演代码"

CWM的突破在于将静态代码理解升级为动态执行建模,其核心能力可概括为三点:

1. 代码执行模拟

通过学习Python解释器的执行轨迹数据,CWM能逐行模拟代码运行过程,预测变量状态变化、函数调用效果甚至潜在错误。例如在统计"strawberry"中字母"r"的数量这类任务中,它会以类似调试器(pdb)的方式分步推演验证,追踪每一步的计算结果。这种能力让模型摆脱了"盲写代码"的困境,从源头提升了代码的可执行性。

2. 自我调试与修复

CWM能模拟人类程序员的"编写-测试-修复"闭环:生成代码后可自动构造测试用例,发现问题时能通过多路径修改尝试自我修复。这一能力得益于其在Docker环境中学习的Agent交互轨迹——模型通过观察自动化Agent修复Bug、实现功能的过程,掌握了"用工具解决问题"的编码思路。

3. 复杂任务推理规划

面对编程竞赛、数学求解等复杂任务时,CWM能先分析问题步骤、规划函数结构,再结合执行预测逐步生成验证代码。131k tokens的超长上下文支持,使其能处理多文件代码、大型项目文档等复杂场景,展现出更强的多轮逻辑推理能力。

技术拆解:四层训练构建世界模型能力

CWM的能力源于其独特的四阶段训练流程,其中"中训"阶段是实现世界建模的核心:

  1. 预训练:打下基础
    使用约8T tokens的通用语料与代码语料(代码占比30%)进行初始训练,让模型掌握基础语言规律与代码语法,此时上下文长度为8k tokens。
  2. 中训:植入"世界认知"
    这是CWM的关键创新环节。模型引入5T tokens的世界建模数据,将上下文长度扩展至131k tokens,通过两类核心数据实现动态理解:

    • Python执行轨迹:将函数、测试的执行过程转化为"观察→行动→观察"的序列,让模型学会预测代码对局部状态的改变;
    • Agent环境交互轨迹:记录自动化Agent在Docker环境中执行Bash命令、编辑文件、运行测试的过程,培养全局问题解决能力。
  3. 监督微调(SFT)
    针对指令遵循与推理能力进行优化,让模型能更准确地理解人类需求并输出符合预期的结果。
  4. 强化学习(RL)
    在可验证编码、数学问题、多轮软件工程等环境中进行多任务训练,通过与环境的实时交互持续优化代码生成的准确性与可靠性。

实测表现:320亿参数实现"小模型大能力"

在多项权威基准测试中,CWM展现出超越同规模模型的性能,部分指标接近大型闭源模型:

Meta 开源代码世界模型CWM:让AI像程序员一样"推演"代码的世界模型
测试基准pass@1 分数表现说明
SWE-bench Verified65.8%领先所有开源同规模模型,与Gemini-2.5-Thinking持平
LiveCodeBench68.6%展现强大的实时代码生成能力
Math-50096.6%数学问题求解精度极高
AIME 202476.0%复杂数学推理能力突出
CruxEval94.3%代码理解与执行验证能力优异
© 版权声明

相关文章

暂无评论

none
暂无评论...