当代码成为“世界”:FAIR的Code World Model在想什么
正在加载视频...
视频章节
这场来自Meta FAIR的演讲,试图回答一个少有人认真对待的问题:如果把代码当作一个可以被建模、被预测的“世界”,会发生什么?Jacob Kahn介绍了Code World Model如何通过执行轨迹理解程序,并展示了这种思路为何可能改变AI对计算与推理的理解方式。
当代码成为“世界”:FAIR的Code World Model在想什么
这场来自Meta FAIR的演讲,试图回答一个少有人认真对待的问题:如果把代码当作一个可以被建模、被预测的“世界”,会发生什么?Jacob Kahn介绍了Code World Model如何通过执行轨迹理解程序,并展示了这种思路为何可能改变AI对计算与推理的理解方式。
为什么要为“计算”建立世界模型
理解这一工作的价值,首先要理解Jacob Kahn给出的动机。在演讲一开始,他就明确了Code World Model(CWM)的目标:不是简单生成代码,而是“build models that reason, plan and make decisions”。这句话奠定了整场演讲的基调——CWM关注的不是表面的语法补全,而是代码背后的因果结构。
在FAIR的视角里,代码并不是静态文本,而是一套可以演化的状态系统。程序在运行时,会从一个状态转移到下一个状态,这与物理世界中的动力学系统极其相似。正因如此,Kahn将CWM称为“world model for computation”:它试图像物理世界模型预测未来帧那样,预测程序执行的下一步。
这一转向很重要。传统代码模型往往只在token层面学习相关性,而CWM的目标是理解“为什么这个状态会变成下一个状态”。Kahn在台上直言不讳地提出问题:“what does it mean to model code?” 这不是修辞,而是整个项目的核心哲学问题。
从程序状态到执行轨迹:代码的“动力学”
如果代码是一个世界,那么执行就是它的时间维度。Kahn在第二和第三个片段中重点讲解了execution tracing(执行追踪)。所谓执行追踪,是指在程序运行过程中,显式记录程序状态如何一步步变化。
他展示的关键想法是:与其只训练模型去预测下一行代码,不如训练模型去预测“状态转移函数”。也就是说,给定当前程序状态和输入,模型学习下一状态会是什么。这种建模方式,让代码不再只是语言,而成为一个可以被“模拟”的系统。
在演讲中,Kahn提到这种追踪可以是语言层面的(language tracing),也可以更贴近实际执行的状态变化。这一点尤其关键,因为它意味着模型有机会隐式学会执行逻辑,而不是死记硬背模式。正如他所暗示的那样,一旦模型掌握了这种结构,就可能“implicitly trace the execution”,即便没有显式运行程序。
数据从哪里来:从代码仓库到执行世界
世界模型的好坏,最终取决于它看到过什么样的世界。第五个片段中,Kahn把话题拉回到一个非常现实的问题:数据。他们并不是凭空生成执行轨迹,而是从真实的代码仓库出发。
演讲中提到,团队可以在repo级别获取代码,然后通过实际执行或分析,生成对应的execution traces。这一步看似工程化,却直接决定了模型能否接触到真实世界中的复杂性,例如函数调用、状态传递和中间结果。
这种数据构建方式,也解释了为什么CWM不是一个纯理论项目。它站在大量真实程序执行之上,试图让模型学会在这些轨迹中预测未来。Kahn强调,这样做的好处在于:模型看到的不是理想化的例子,而是“messy but real”的程序行为。
模型本身与训练策略:SRL、SWRL与后训练
在第六到第八个片段中,Kahn终于把镜头对准了Code World Model本身。他提到,这一体系从SRL和SWRL开始展开,逐步构建对程序执行的理解。虽然演讲中并未展开所有技术细节,但可以明确的是,这些模块都围绕“状态—动作—结果”的结构。
一个值得注意的点是训练策略。Kahn提到,模型在post-train阶段只使用了“relatively small number of steps”。这在当前大模型动辄数百万步训练的背景下,显得格外克制,也暗示CWM更依赖结构化信号,而非暴力规模。
在实际效果上,他分享说模型在多种任务上表现“pretty well”,并且“uses tools in bash very well”。这不是炫技,而是验证:当模型真正理解执行逻辑时,它对工具和环境的使用会自然变得可靠。
不只是工程:对理论界的“挑衅”
演讲接近尾声时,Kahn抛出了一个意味深长的玩笑:“This will make theoreticians bristle”。这句话引发了现场笑声,也点出了CWM的争议性。
在传统理论计算机科学中,程序语义往往通过形式化定义来描述,而CWM选择了一条经验驱动的道路:通过学习大量执行轨迹,让模型自行内化语义结构。这种做法未必优雅,却极其务实。
正是在这种张力中,CWM显得格外有趣。它既不是纯粹的符号方法,也不是简单的语言模型,而是一种试图横跨两者的实验。正如Kahn最后轻松地说,这项工作“fun”,而现场的掌声也说明,许多人愿意看到这种大胆尝试继续走下去。
总结
Code World Model并不是在教模型“写更像人的代码”,而是在逼近一个更困难的问题:理解计算本身。通过执行轨迹、状态转移和真实程序数据,FAIR团队展示了一条不同于主流路径的可能性。对读者而言,最大的启发也许在于:下一代代码模型的突破,未必来自更大的参数,而可能来自对“代码是什么”这一问题的重新定义。
关键词: Code World Model, 执行轨迹, 世界模型, 程序状态, FAIR
事实核查备注: Jacob Kahn(FAIR Meta研究员);Code World Model(CWM);演讲中使用的原话包括“what does it mean to model code?”、“build models that reason, plan and make decisions”、“This will make theoreticians bristle”;提及execution tracing、program state、transition function、SRL、SWRL、post-train steps较少、bash工具使用。