大语言模型的「逆转诅咒」,被解开了!
这个诅咒在去年9月首次被发现,一时间引起LeCun、Karpathy、马库斯等一众大佬的惊呼。
由于风光无两、不可一世的大模型竟存在着“阿克琉斯之踵”:一个在“A是B”上训练的语言模型,并不能正确回答出“B是否A”。
比如下面这个例子:在LLM明知道「汤姆·克鲁斯的母亲是Mary Lee Pfeiffer」的情况下,却无法答出「Mary Lee Pfeiffer的孩子是汤姆·克鲁斯」。
——这可是当时最先进的GPT-4,结果连小孩子都具备的正常逻辑思维,LLM却做不到。
基于海量的数据之上,记住了几乎超过所有人类的知识,却表现得如此呆板,取得了智慧之火,却永远被囚禁于这个诅咒之中。
论文地址:https://arxiv.org/pdf/2309.12288v1.pdf
这事一出,全网一片哗然。
一方面,网友们表示,大模型真傻,真的。单知道「A是B」,却不知道「B是A」,自己终于保住了作为人类的尊严。
而另一方面,研究人员们也开始对此展开研究,快马加鞭解决这个重大挑战。
近日,来自Meta FAIR的研究人员推出了反向训练大法来一举解决LLM的“逆转诅咒”。
论文地址:https://arxiv.org/pdf/2403.13799.pdf
研究人员首先观察到,LLMs从左到右以自回归的方式进行训练,——这可能是导致逆转诅咒的原因。
那么,如果以从右到左的方向来训练LLM(逆向训练),就有可能让模型在反方向上看到事实。
可以将反向文本视为第二语言,通过多任务处理或跨语言预训练,来利用多个不同的来源。
研究人员考虑了4种反向类型:标记反转、单词反转、实体保留反转和随机段反转。
标记和单词反转,通过将序列分别拆分为标记或单词,并颠倒它们的顺序以形成新序列。
实体保留反转,在序列中查找实体名称,并在其中保留从左到右的单词顺序,同时进行单词反转。
随机段反转,将标记化的序列分割成随机长度的块,然后保留每个块内从左到右的顺序。
研究人员在1.4B和7B的参数规模上,测试了这些反转类型的有效性,结果表明,实体保留和随机分段反向训练可以减轻逆向诅咒,甚至在某些情况下完全消除它。
此外,研究人员还发现,与标准的从左到右训练相比,训练前逆转的方式使模型的表现有所提高,——所以反向训练可以作为一种通用的训练方法。
逆向训练包括获取具有N个样本的训练数据集,并构造反向样本集REVERSE(x)。
函数REVERSE负责反转给定的字符串,具体做法如下:
单词反转 :每个示例首先被拆分为单词,然后在单词级别反转字符串,用空格将其连接在一起。
实体保留反转:对给定的训练样本运行实体检测器,将非实体也拆分为单词。然后将非实体的单词进行颠倒,而表示实体的单词保留原有词序。
随机段反转:这里没有使用实体检测器,而是尝试使用均匀采样,将序列随机分割成大小为1到k个token之间的句段,然后颠倒这些句段,但保持每个句段内的词序,之后,这些句段使用特殊标记[REV]连接。
上表给出了在给定字符串上,不同反转类型的示例。
此时,语言模型仍然从左到右进行训练,在单词反转的情况下,就相当于从右到左预测句子。
逆向训练涉及对标准和反向示例的训练,因此训练token的数量增加了一倍,同时正向和反向训练样本都混合在一起。
逆向转换可以看作是模型必须学习的第二种语言,请注意,在反转的过程中,事实之间的关系保持不变,模型可以从语法中判断它是处于正向还是反向语言预测模式。
逆向训练的另一个角度可以由信息论来解释:语言建模的目标是学习自然语言的概率分布
实体对映射
首先创建一个简单的基于符号数据集,以研究受控环境中的反转诅咒。
以一对一的方式随机配对实体a和b,训练数据包含所有(a→b)映射对,但仅包含一半的(b→a)映射,另一半作为测试数据。
模型必须从训练数据中推断规则a→b ⇔ b→a,然后将其推广到测试数据中的对。
上表展示了符号反向任务的测试准确率(%)。尽管这项任务很简单,但标准语言模型训练完全失败了,这表明仅靠扩展不太可能解决。
相比之下,反向训练几乎可以解决两个单词实体的问题,但随着实体变长,其性能会迅速下降。
单词反转适用于较短的实体,但对于具有较多单词的实体,实体保留反转是必要的。当最大段长度k至少与实体一样长时,随机段反转表现良好。
恢复人名
上表展示了确定人全名的反转任务,当仅给出出生日期确定一个人的全名时,反转任务的准确性仍然接近于零,——这是因为在本文采用的实体检测方法中,日期被视为三个实体,因此在反转中不会保留它们的顺序。
如果将反转任务简化为仅确定人的姓氏,则单词级别的反转就足够了。
另一个可能会令人感到惊讶的现象是,实体保留方法可以确定该人的全名,但不能确定该人的姓氏。
这是一个已知的现象:语言模型可能完全无法检索知识片段的后期标记(比如姓氏)。
现实世界事实
这里作者训练了一个Llama-2 14亿参数模型,在从左到右方向上训练一个2万亿个token的基线模型。
相比之下,逆向训练仅使用1万亿token,但使用相同的数据子集在从左到右和从右到左两个方向上进行训练,——两个方向合起来是2万亿个token,在计算资源上做到公平公正。
为了测试对现实世界事实的反转能力,研究人员使用了一个名人任务,其中包含“诸如某个名人的母亲是谁”之类的问题,同时还包含更具挑战性的反向问题,比如“某个名人的父母的孩子是谁”。
结果如上表所示。研究人员对每个问题的模型进行多次抽样,如果其中任何一个包含正确答案,则将其视为成功。
一般来说,由于模型在参数数量方面很小,预训练有限,并且缺乏微调,因此准确性通常相对较低。然而,反向训练的表现更加优秀。
1988年,Fodor和Pylyshyn在《认知》刊物上发了一篇关于思维的系统性的文章。
如果你真的理解这个世界,那你就应该能够理解a相对于b的关系,也能理解b相对于a的关系。
即使是非语言认知生物,也应该能够做到这一点。
以上是破除36年前魔咒!Meta推出反向训练大法消除大模型「逆转诅咒」的详细内容。更多信息请关注PHP中文网其他相关文章!