Evidence of Meaning in Language Models Trained on Programs

我们提供证据表明,语言模型可以学习意义,尽管它们只是在文本上执行下一个标记预测的训练,具体来说是程序语料库。每个程序都以(文本)输入输出示例形式的规范为前置条件。与程序一起工作使我们能够精确地定义与语言中有关含义相关的概念(例如正确性和语义),使得程序合成非常适合作为表征语言模型中存在或不存在含义的中间测试平台。

我们首先在程序库上训练Transformer模型,然后探究经过训练的模型完成给定规范的程序时隐藏状态。尽管没有提供任何归纳偏差来学习语言的语义,但我们发现线性探针能够从模型状态中提取当前和未来程序状态的抽象表示。此外,在探针准确度和模型生成实现规范方案所需编程能力之间存在强烈、统计显著相关性。

为了评估是否将该方法用于获取并表示自然语言(而不仅仅是特定领域内)意思时也同样有效果, 我们设计了一种新颖实验流程干预了自然语言处理任务,并保留其词汇和句法结构等基础信息。我们还证明了该模型学习生成的正确程序比训练集中的平均长度要短,这表明语言模型输出可能与训练分布在语义上有所不同。总之,本文没有提出任何新的语言模型训练技术,但是开发了一个实验框架,并为获取和表示(正式)自然语言意义提供了深入见解。

来源: