灵活运用知识是智慧的关键。人脑可以快速处理知识,如快速回答 “《静夜思》中有几个月字”。那么,大模型是否能进行类似操作?已知大模型可以通过思维链(Chain of Thought / CoT),先默写《静夜思》,再根据默写内容回答问题,但这会使生成的文字冗长。相比之下,人类可以在大脑中完成简单的知识推演,无需写出中间步骤。那么,超大语言模型能否在其人工脑 (artificial brain) 中直接生成答案,而无需先写下知识点呢?
答案竟然是否定的!图 1/2/3 展示了 GPT4 上的诸多反例。即使是最基本的分类(如判断名人生日的奇偶性)和比较(如比较两位总统的生日先后),竟然要通过思维链 Chain of Thought。更糟糕的是,大模型几乎完全不能逆向提取训练集中的知识。
朱泽园 (MetaAI) 和李远志 (MBZUAI) 的最新研究《语言模型物理学 Part 3.2:知识的推演 (manipulation)》集中探讨了上面这些问题。
论文地址:https://arxiv.org/abs/2309.14402
先问一个问题,诸如图 1/2/3 这样的问题,是 GPT4 对人的生日记忆不够精确(压缩比不够,训练 loss 不够低),还是未通过微调深化对奇偶性的理解?是否可以通过微调 GPT4,使其能够在模型内部组合现有知识,生成 "生日的奇偶性" 这种新知识,从而无需依赖 CoT 直接回答相关问题?由于我们不知道 GPT4 的训练数据集,无法微调。因此,作者提出通过可控训练集,来更深入研究语言模型的 “知识推演” 能力。
在《语言模型物理学 Part 3.1:知识的储存与提取》中,作者创建了一个包含 100k 个人物传记的数据集。每个传记包括人名和六个属性:出生日期,出生地,大学专业,大学名称,工作地点,工作单位。譬如:
「Anya Briar Forger originated from Princeton, NJ. She dedicated her studies to Communications. She gained work experience in Menlo Park, CA. She developed her career at Meta Platforms. She came into this world on October 2, 1996. She pursued advanced coursework at MIT.」
作者确保了传记条目的多样性,以帮助模型更好的存取知识。在预训练 (pretrain) 后,模型能通过微调准确回答知识提取类问题,如 “Anya 的生日是哪天” (正确率接近 100%)
接下来作者继续微调,试图让模型学会知识推演类问题,如知识的分类 / 比较 / 加减。文章发现,自然语言模型在知识推演方面的能力非常有限,难以通过微调产生新知识,即便它们只是模型已掌握知识的简单变换 / 组合。
如图 5,作者发现,尽管预训练(pretrain)之后模型已经能准确回答每个人的生日(正确率接近 100%),但要通过微调让其回答 “xxx 的出生月是偶数吗?” 并达到 75% 的正确率 —— 别忘了盲猜有 50% 的正确率 —— 需要至少 10000 个微调样本。相较之下,如果模型能正确完成 “生日” 和 “奇偶性” 的知识组合,那么根据传统机器学习理论,模型只需学习对 12 个月份进行二分类,通常约 100 个样本就足够了!
同样,模型预训练之后能准确回答每个人的专业(共 100 个不同专业),但即使用了 50000 个微调样本,让模型比较 “Anya 的专业和 Sabrina 的专业哪个更好”,正确率仅为 53.9%,近乎盲猜。
然而,当我们使用 CoT 微调让模型学习 “Anya 的出生月是 October,因此是偶数” 这样的句子时,模型在测试集上判断出生月奇偶性的正确率大幅提升(见图 5 的 “test 用 CoT” 一列)。
作者还尝试在微调训练数据中混合 CoT 和非 CoT 的回答,结果发现模型在测试集上不使用 CoT 时的正确率仍然很低(见图 5 的 “test 不用 CoT” 一列)。这说明,即便补上足够的 CoT 微调数据,模型依然无法学会 “颅内思考” 并直接报答案。
这些结果表明,对于语言模型来说,进行简单的知识运算极其困难!模型必须先把知识点写出来再进行运算,无法像人一样在大脑里直接进行操作,即使经过充分的微调也无济于事。
逆向知识搜索的挑战
文章也发现,自然语言模型无法逆向搜索学到的知识。尽管它能回答关于某人的所有信息,但无法根据这些信息确定人名。
和知识的分类 / 比较一样,作者对 GPT3.5/4 进行了试验,发现它们在逆向知识提取上表现差(见图 6)。但由于我们无法确定 GPT3.5/4 的训练集,这并不能证明所有语言模型都有此问题。
作者利用前述的人物传记数据集,对模型的逆向知识搜索能力进行了更深入的可控试验 (controlled experiment)。由于所有传记的人名都在段首,作者设计了 10 个反向信息提取问题,例如:
“请告诉我 1996 年 10 月 2 日在 Princeton, NJ 出生的人的名字是什么?”
“请告诉我在 MIT 学习 Communications ,1996 年 10 月 2 日在 Princeton, NJ 出生,并在 Menlo Park, CA 的 Meta Platforms 工作的人的名字是什么?”
作者验证了,尽管模型实现了无损知识压缩和充分知识增强,且能几乎 100% 正确提取这些知识,在经过微调后,模型仍无法进行知识的逆向搜索,准确率几乎为零(见图 7)。但是,一旦逆向知识直接出现在预训练集中,逆向搜索的准确率立即飙升。
综上所述,只有在预训练集 (pretrain data) 中直接包含了逆向知识时,模型才能通过微调来回答逆向问题 —— 但这实际上是作弊,因为如果知识已经反转,就不再是 “逆向知识搜索” 了。如果预训练集只包含正向知识,模型无法通过微调来掌握逆向回答问题的能力。因此,使用语言模型进行知识索引 (knowledge database) 目前看来是不可能的。
另外,有人可能会认为,上述 “逆向知识搜索” 的失败可能是由于自回归 (autoregressive) 语言模型如 GPT 的单向性。但实际上,双向语言模型如 BERT 在知识提取上表现更差,甚至在正向提取上也会失败。有兴趣的读者可以参考论文细节。