大型语言模型(LLM)不仅能够学习编程,还能形成对现实世界的独特理解。麻省理工学院(MIT)的一项最新研究表明,随着模型能力的增强,它不仅仅模仿现实,而是能够自发地模拟一些复杂的概念。这篇论文已被国际机器学习大会(ICML 24)接受,揭示了LLM在理解和处理现实问题方面的能力远远超出了简单的统计关联。
研究背景及目的
研究团队来自MIT计算机科学与人工智能实验室(CSAIL),由华裔博士生Charles Jin和其导师Martin Rinard教授领导。他们旨在探究LLM是否能够真正理解代码背后的意义,而不只是记忆训练数据。通过构建一个合成数据集,该数据集由Karel教学语言编写的程序代码及其对应的输入输出组成,研究人员试图解答:LLM的能力是否仅基于大规模的统计相关性,还是它能产生有意义的理解?
实验设计
研究者创建了一个包含50万个随机生成的Karel程序的训练集,每个程序长度介于6至10之间。Karel是一种专门用于实现机器人在2D网格世界中导航任务的语言。为了评估模型的泛化性能,还构建了一个包含1万个样本的测试集。研究人员使用标准Transformer架构的变体——CodeGen模型进行训练,该模型能够访问每个样本的输入输出信息和程序前缀,但无法看到程序执行的完整轨迹和中间状态。
大模型学习的三个阶段
通过对模型产生的程序多样性、困惑度等指标的分析,研究者将训练过程划分为三个阶段:
– 胡言乱语阶段:输出程序高度重复,探测器准确率波动不定。
– 语法习得阶段:程序多样性显著增加,生成准确率略有提高,困惑度降低,表明模型开始掌握程序的语法结构。
– 语义习得阶段:程序多样性和语法结构趋于稳定,但生成准确率和探测器性能大幅上升,显示模型已经理解程序的语义。
探测器的应用
研究者设计了一套包含线性分类器和单/双隐层MLP的探测器组合,用于预测程序执行的中间状态。这些探测器不仅能够预测当前时间步的状态,还能预测后续时间步的状态,这表明模型在生成每一步时,就已经对未来的内容有所预期和规划。
语义探测干预实验
为了验证探测器的性能提升是否确实反映了生成模型的进步,研究人员进行了语义探测干预实验。通过改变程序操作的语义解释规则,包括“flip”和“adversarial”两种方式,实验结果显示,在新语义下探测器性能显著下降,证明了生成模型确实掌握了代码的含义。