(2023)逆转诅咒:由“A is B”训练的LLM没有学到“B is A”

news2024/11/19 9:34:32

The Reversal Curse: LLMs trained on “A is B” fail to learn “B is A”

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 实验和结果

4. 讨论和未来工作


0. 摘要

我们揭示自回归大型语言模型(LLMs)在泛化方面的一个令人惊讶的失败。如果模型在类似 “A is B” 的句子上进行训练,它不会自动泛化到反方向 “B is A”。这就是逆转诅咒(Reversal Curse)。例如,如果一个模型在 “Olaf Scholz 是德国第九任总理” 这样的句子上进行训练,它不会自动回答问题,“德国第九任总理是谁?” 而且,正确答案(“Olaf Scholz”)的可能性也不会高于随机姓名。因此,模型表现出了基本的逻辑推断失败,无法泛化到其训练集中的一种普遍模式(即如果 “A是B” 发生,则 “B是A” 更有可能发生)。

我们通过在虚构的陈述(如 “Uriah Hawthorne 是深渊旋律的作曲家”)上微调 GPT-3 和 Llama-1,并展示它们未能正确回答 “谁创作了深渊旋律?” 的问题,为逆转诅咒提供了证据。逆转诅咒在模型大小和模型家族之间都是稳健的,并且不受数据增强的缓解。我们还在 ChatGPT(GPT-3.5 和 GPT-4)上评估了关于真实世界名人的问题,例如 “汤姆·克鲁斯的母亲是谁?[A:玛丽·李·费菲尔]”以及相反的 “玛丽·李·费菲尔的儿子是谁?”。GPT-4 在前一种问题上正确回答的概率为 79%,而在后一种问题上为 33%。这显示了我们假设是由逆转诅咒引起的逻辑推断失败。

代码:https://github.com/lukasberglund/reversal_curse

2. 实验和结果

我们实验的目标是测试在训练中学到了 “A 是 B” 的自回归语言模型(LLM)是否会泛化到反转形式“B 是 A”(其中 A 和 B 是实体名称的占位符)。我们通过向 LLM 提供包含 B 的提示 p 并评估其在回应中生成 A 的可能性来测试对 “B是A” 的泛化。提示 p 包含一个句子前缀,用于提出问题,我们期望如果模型成功推断 “B是A”,则会引出 A。如果模型生成 A 的可能性不高于对其他随机词或短语的生成,那么该模型未能泛化并受到逆转诅咒的影响。

在实验 1 中,我们对 LLMs 进行微调,使其适应 “<name> 是 <description>” 形式的文档,并测试对 “<description> 是 <name>” 的泛化,其中名称和描述是虚构名人的(因此不出现在 LLM 的训练数据中)。我们还尝试了基本设置的不同变体,以帮助模型泛化。请参见图 3。

在实验 2 中,我们在不进行微调的情况下测试 LLMs 对有关名人的真实事实(图 1)。例如,“汤姆·克鲁斯的母亲是谁?” 和相反的 “玛丽·李·费菲尔的儿子是谁?”。由于我们不知道 LLM 的训练集的确切内容,实验 2 并不是对逆转诅咒的直接测试,因此任何结论都有一定的不确定性。

4. 讨论和未来工作

在这篇论文中,我们旨在证明一个负面结果。这样做是困难的,因为总会有一种情境使模型避免逆转诅咒,而我们的实验未能发现这一点。然而,我们发现在模型大小和模型家族之间的比例图是平坦的(参见第 2.1 节)。我们还发现,当顺序颠倒时,模型甚至不会增加正确响应的可能性(图 4)。此外,独立工作中的影响函数和模型编辑还提供了互补证据(第 3 节)。

是什么解释了自回归 LLMs 中的逆转诅咒?我们主要留给未来的工作。目前,我们提供了一个对解释的简要概述(也参见 Grosse 等人(2023))。当模型在 “A 是 B” 上进行更新时,这个梯度更新可能会稍微改变 A 的表示,以包含有关 B 的信息(例如,根据 Geva 等人(2022,2023)的说法,在中间的 MLP 层)。这个梯度更新也应该合理地改变 B 的表示,以包含关于 A 的信息。然而,梯度更新是短视的,并且依赖于给定 A 时 B 的概率对数,而不是在未来必须从 B 预测 A。(我们所提出的观点并不排除一个 “元学习” 的情景,其中关于 A 和 B 的信息被对称地存储,从而避免逆转诅咒。)

4.1 未来工作

除了解释逆转诅咒,以下是一些未来工作的项目:

研究其他类型的关系。模型是否无法逆转其他类型的关系(如逆转诅咒所预测的)?这可能包括逻辑蕴涵(例如 “X 蕴涵 Y” 和 “非 X 蕴涵非 Y”),空间关系(例如 “杯子在桌子上” 和 “桌子在杯子下面”),或 n 元关系(例如 “爱丽丝、鲍勃、卡罗尔和丹在同一组中”)。

通过实体链接找到逆转失败原因。Kandpal 等人(2023)对 GPT-J 和 Bloom(Wang&Komatsuzaki,2021; Workshop等人,2023)的预训练数据集进行实体链接(entity-linking),以找到预训练数据中实体的所有出现。这些信息可用于在只以一个方向发生信息的预训练数据中找到示例。

分析逆转诅咒的实际影响。现代 LLMs 的预训练集非常庞大且多样化。因此,有用的信息可能会在数据集中多次出现,并以不同的顺序出现,这可能掩盖了逆转诅咒。然而,正如实验 2 所示,训练语料库中实体的提及计数分布呈长尾分布,因此其中一些信息在逆序中可能很少表达。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1419054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动手学深度学习(一)深度学习介绍2

目录 二、起源 三、深度学习的成功案例&#xff1a; 四、特点&#xff1a; 五、小结&#xff1a; 二、起源 为了解决各种各样的机器学习问题&#xff0c;深度学习提供了强大的工具。 虽然许多深度学习方法都是最近才有重大突破&#xff0c;但使用数据和神经网络编程的核心思…

代码随想录算法训练营DAY6 | 哈希表(1)

DAY5休息一天&#xff0c;今天重启~ 哈希表理论基础&#xff1a;代码随想录 Java hash实现 &#xff1a;java 哈希表-CSDN博客 一、LeetCode 242 有效的字母异位词 题目链接&#xff1a;242.有效的字母异位词 思路&#xff1a;设置字典 class Solution {public boolean isAnag…

C/C++ - 内存管理(C++)

堆栈 C中的栈和堆是用于存储变量和对象​​的两个主要内存区域。栈是一种自动分配和释放内存的区域&#xff0c;用于存储局部变量和函数调用的上下文。栈上的内存分配和释放是自动进行的&#xff0c;无需手动管理。堆是动态分配内存的区域&#xff0c;用于存储动态创建的对象和…

Blender教程(基础)-内插面、分离、环切、倒角-08

一、内插面 菜单位置如下图位置。 单击需要处理的面&#xff0c;出现一个黄色的圈。 1、菜单选中内插 鼠标悬停在黄色圈内单击左键可以来回实现内插&#xff0c;但是发现并不好操作。 2、快捷键内插 在选中需要操作的面之后&#xff0c;鼠标移动到外面&#xff0c;键盘在英…

计算机设计大赛 基于图像识别的跌倒检测算法

前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于图像识别的跌倒检测算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/…

Java图形化界面基本案例

案例&#xff1a; public class exer1 {JFrame snew JFrame("练习");//菜单JMenuBar jMenuBarnew JMenuBar();JMenu wenjiannew JMenu("文件");JMenu bianjinew JMenu("编辑");JMenuItem zidongnew JMenuItem("自动换行");JMenuItem f…

斜率优化dp模型整理

300. 任务安排1&#xff08;300. 任务安排1 - AcWing题库&#xff09; 思路&#xff1a;很明显这些任务是按顺序排好的&#xff0c;我们能执行的操作只是对它们进行分批&#xff0c;我们可以发现每一批之前的开始时间s&#xff0c;影响的不仅仅是当前这一批的结束时间&#xff…

Java强训day9(选择题编程题)

选择题 class Person {String name "No name";public Person(String nm) {name nm;} } class Employee extends Person {String empID "0000";public Employee(String id) {super(" ");//要调用父类的有参构造方法否则报错empID id;} } pu…

常用芯片学习——AMS1117芯片

AMS1117 1A 低压差线性稳压器 使用说明 AMS1117 是一款低压差线性稳压电路&#xff0c;该电路输出电流能力为1A。该系列电路包含固定输出电压版本和可调输出电压版本&#xff0c;其输出电压精度为士1.5%。为了保证芯片和电源系统的稳定性&#xff0c;XBLWAMS1117 内置热保护和…

秋招面试—浏览器原理篇

浏览器原理篇 1.什么是XSS、CSRF,怎么预防&#xff1f; &#xff08;1&#xff09;XSS(跨站脚本攻击)&#xff1a;攻击者将恶意代码植入到浏览器页面中&#xff0c;盗取存储在客户端的Cookie&#xff1b; ​ XSS分为&#xff1a;①存储型&#xff1a;论坛发帖、商品评论、用户…

大型电商系统商城源码_架构_订单系统_OctShop

中国的电商差不多发展到今天已经有20多年的历史啦&#xff0c;特别是过去的10年里其发展速度与竞争是相当的激烈&#xff0c;发展出了各种各样的模式如&#xff1a;B2B、B2C、B2B2C、O2O、社交电商等等。对于广大的企业或商家来说&#xff0c;电商是一个不可或缺的销售渠道&…

猫咪不吃东西怎么办?公认适口性好的生骨肉冻干分享

猫咪不吃东西怎么办&#xff1f;遇到这类情况主人需要仔细观察并分析情况。如果猫咪出现其他异常症状&#xff0c;如呕吐、腹泻、体温异常等&#xff0c;可能是生病了&#xff0c;应及时就医。如果猫咪没有其他异常症状&#xff0c;那猫咪不吃东西怎么办&#xff1f;可能是猫粮…

JAVA多线程并发补充

AQS 是一个抽象父类 全称是 AbstractQueuedSynchronizer&#xff0c;是阻塞式锁和相关的同步器工具的框架。 用 state 属性来表示资源的状态&#xff08;分独占模式和共享模式&#xff09;&#xff0c;子类需要定义如何维护这个状态&#xff0c;控制如何获取锁和释放锁 getSt…

Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?

本文九河云介绍Windows实例内部自定义域名解析与本地网络域名解析不一致导致无法访问网站的问题描述、问题原因和解决方案。 问题描述 在Windows实例内部通过浏览器无法访问某网站&#xff0c;但在其他设备上可以正常访问&#xff0c;排查发现Windows实例内部自定义域名解析与…

6.s081 学习实验记录(三)system calls

文章目录 一、use gdb二、syscall&#xff1a;trace注意&#xff1a;实验代码&#xff1a;实验结果&#xff1a; 三、sysinfotips&#xff1a;实验代码实验结果 需要切换到 syscall 分支 一、use gdb 学习使用 gdb 调试 make qemu-gdb打开一个新的终端&#xff1a; gdb-mult…

Selenium教程11:模拟账号密码,自动登入qq空间

Python爬虫教程30&#xff1a;Selenium网页元素&#xff0c;定位的8种方法&#xff01; Selenium自动化教程02&#xff1a;浏览器options配置及常用的操作方法 Selenium自动化教程03&#xff1a;延时等待的3种方式 Selenium自动化教程04&#xff1a;鼠标键盘网页的模拟操作 …

文件的相关概念及用法

文件的作用 程序运行时产生的数据都属于临时文件&#xff0c;程序一旦运行结束就会被释放。若想让数据保存下来&#xff0c;则可以通过文件将数据持久化 文件需要包含的头文件<fstream>(文件流) 文件分类 文件分为文本文件和二进制文件。 文本文件&#xff1a;文件以…

快速上手Git

目录 一、Git概述 二、Git的常用命令 Git全局配置 获取Git仓库 基本概念 本地仓库操作 远程仓库操作 分支操作 标签操作 三、在IDEA中使用Git 在IDEA中配置Git 本地仓库操作 远程仓库操作 分支操作 冲突解决 一、Git概述 Git是一个分布式版本控制工具&…

探索设计模式的魅力:深入了解适配器模式-优雅地解决接口不匹配问题

设计模式专栏&#xff1a;http://t.csdnimg.cn/nolNS 目录 一、引言 1. 概述 2. 为什么需要适配器模式 3. 本文的目的和结构 二、简价 1. 适配器模式的定义和特点 定义 特点 2. 适配器模式的作用和适用场景 作用 适用场景 3. 适配器模式与其他设计模式的比较 三、适配…