代码世界模型(CWM)
搜索文档
LeCun团队开源首个代码世界模型:能生成代码还能自测自修!传统编程模型一夜成古典
量子位· 2025-09-25 09:06
文章核心观点 - Meta FAIR推出了全球首个系统性引入世界模型的代码生成语言模型CWM,其核心创新在于让模型“懂得”代码如何执行,能够模拟代码运行过程中的状态变化,从而在代码生成、理解、调试和规划能力上实现显著提升,接近人类程序员的思考能力[1][2][3] 模型概述与核心创新 - CWM是一个参数量为320亿、上下文长度达131k token的密集语言模型,专为代码生成和推理打造[1] - 与现有模型不同,CWM不仅能生成和理解代码,更能模拟代码执行过程,预测变量状态变化与环境反馈,解决了现有大模型将代码视为静态文本、执行效果不稳定的痛点[2][9][10][11] - 模型首次在训练中引入“代码世界建模”概念,使理解维度从静态文本跃迁到动态执行[12][15][16] 模型关键能力 - **代码执行模拟**:可逐行模拟代码执行,预测每行代码对变量状态的影响,甚至提前判断潜在错误,为构建“神经调试器”提供可能[18][19][20][21] - **自我调试与修复**:能够在生成代码后自动构造测试用例,并在发现失败后尝试多种路径进行自我修复,模拟人类“写-测试-改-再测”的开发闭环[22][23][24] - **推理与规划能力**:面对复杂问题可进行多轮逻辑推理与步骤规划,再结合执行预测生成并验证代码[25] 模型架构与性能 - 采用64层decoder-only Transformer架构,参数量320亿,支持131k tokens的长上下文输入[26][27] - 注意力机制采用局部(窗口大小8192 tokens)与全局(最大上下文131072 tokens)交替,兼顾效率与覆盖[28][29] - 在多项基准测试中表现优异:SWE-bench Verified得分65.8%,领先所有同规模开源模型并接近GPT-4级别;LiveCodeBench v5得分68.6%;Math-500得分96.6%;Terminal-Bench得分26.3%,高于Gemini 2.5 Pro;Aider Polyglot多语言代码生成得分35.1%,与Qwen3-32B相近[4][31][33] 训练流程与数据 - 训练分为三个阶段:1) **预训练阶段**:使用8T tokens数据(代码占比约30%),上下文长度8k token[38][39][40];2) **中期训练阶段**:引入5T tokens的世界建模数据,训练模型识别代码运行中的状态变化,并将上下文能力扩展到131k token[41][42][45];3) **后训练阶段**:进行100B tokens的监督微调和172B tokens的多任务强化学习,任务覆盖真实软件工程、编程竞赛和数学推理[46][47] - 世界建模核心数据包括:Python执行轨迹数据(来自数千万函数调用与代码提交)、ForagerAgent数据(300万条在真实Docker环境中的交互轨迹)以及自然语言描述版本[43] - 训练使用FlashAttention-3、FSDP+TP并行策略及fp8低精度加速,并遵循前沿AI安全框架,评估表明其不会对网络安全、化学、生物等高敏感领域构成滥用风险[50][51][52] 当前限制与未来方向 - 当前CWM的世界建模数据仅支持Python语言,尚未覆盖C++、Java等其他主流语言或符号执行任务[53] - 研究团队表示未来将探索多语言扩展,以形成自动化编程助手的通用框架[54] - 模型主要面向代码理解与复杂推理研究,未进行RLHF对齐,因此不适合对话任务或作为Chatbot使用[55][56] - 模型明确定位为“研究用”,仅供非商业研究使用[57] 发布与开源情况 - Meta FAIR开源了CWM的模型代码、训练细节以及多个阶段的权重检查点,提供了预训练模型、SFT模型等不同检查点供研究人员使用[5][32] - 团队选择了模型、数据、训练复现的全面开放,旨在推动研究社区探讨“如果大模型能理解世界,它能成为更好的程序员吗”这一问题[58]