背诵不等于理解,深度解析大模型背后的知识储存与提取

自然语言模型的背诵 (memorization) 并不等于理解。即使模型能完整记住所有数据,也可能无法通过微调 (finetune) 提取这些知识,无法回答简单的问题。

随着模型规模的增大,人们开始探索大模型是如何掌握大量知识的。一种观点认为这归功于 “无损压缩”,即模型通过大量训练,记忆更多内容以提高预测精度。但 “无损压缩” 真的能让大模型理解这些知识吗?朱泽园 (MetaAI) 和李远志 (MBZUAI) 的最新研究《语言模型物理学 Part 3.1:知识的储存与提取》深入探讨了这个问题

论文地址:https://arxiv.org/pdf/2309.14316.pdf

对于人类,有句话叫 “书读百遍,其意自现”。这句话虽不适用于所有知识,但对于简单知识,只要我们能记住相关书籍,就能轻松回答相关问题。例如,只要我们记住古诗 “静夜思”,就能轻松回答 “诗里把月光比作了什么?”;只要我们记住百度百科关于 “出师表 / 创作背景” 那一段,就能轻松回答 “出师表的创作时间是什么?”。那么,大模型是否也能做到这一点呢?

图片

图 1:GPT-4 的一些知识提取的实例(左图为 ChatGPT,右图为 API)

GPT-4 虽然能理解并复述与问题相关的段落,但为何它无法像人类一样回答简单的问题呢?是因为模型不够大,记忆力不足,还是训练后的微调不够?都不是!文章指出,即使自然语言模型足够大,训练时间足够长,微调也足够充分,但它仍可能无法回答人类认为简单的问题。这其中的深层原因,与知识在预训练数据集 (pretrain data) 中的呈现方式有关。同一知识,需要在预训练数据集中多次出现,且具有足够的 “多样性”,微调后才更容易被提取出来。

为了证实这一点,两位作者创建了一个包含 100k 个人物传记的数据集,每个人物有一个传记条目,包含人名和六个固定属性:出生日期,出生地,大学专业,大学名称,工作地点,工作单位。他们设计了 BioS 和 BioR 两种数据集,BioS 的每个句子选自 50 种固定模板,BioR 则用 LLaMA-30B 进行改写,更逼真,多样性更大。两种数据集的结果一致,下面以 BioS 为例,展示一个样例条目:

Anya Briar Forger was born on October 2, 1996. She spent her early years in Princeton, NJ. She received mentorship and guidance from faculty members at MIT. She completed her education with a focus on Communications. She had a professional role at Meta Platforms. She was employed in Menlo Park, CA.

图 2

一个自然语言模型即使完美地预训练 (pretrain) 了 100k 个人的自传,也无法通过 QA 微调 (finetuning) 准确回答 “Anya 本科念了哪所学校” 这样的问题。如图 2 所示,即使使用 50k 的人作为 QA 微调训练数据,尝试各种微调方法,包括 LoRA,模型在剩下的 50k 人上的正确率也只有 10%。即使使用了 682M 的模型(比人数大 7000 倍),训练了 1350 遍,作者甚至加入了 WikiBook 等标准 NLP 预训练数据,正确率也没有提升。可见 “大力出奇迹” 并没有发生。

因此,大模型并不一定能掌握或提取 “无损压缩” 的知识。那么 GPT-4 是如何掌握知识的呢?为了研究这一问题,两位作者对预训练集进行改动 —— 作者称之为知识增强

1、多样性 - multiM:为每个人创建 M 个传记条目,使用不同的叙述语言但保留相同的信息(每句话一共有 100 种叙述方法,每条传记的每句话从中选取一种)

2、随机排列 - permute:对传记句子进行随机排列

3、全名 - fullname:将传记里所有代词、姓、名替换全名

作者把原始数据集称为 bioS single,并试验了 15 种知识增强组合。例如,bioS multi5+permute 表示每人有 5 个传记,语序打乱。以下是 bioS multi5+permute 的一个示例:

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.

对于人和大模型,记住 bioS single 和 bioS multi5+permute 两个数据集的难度几乎相同(它们信息量相同,并且每句话都是选自 50 个模板)。那么,如果在这个新的知识增强数据集上进行预训练 (pretrain),然后 QA 微调,会有什么新的表现吗?

图片

图 3

图 3 显示,bioS single 预训练模型的 QA 正确率仅为 9.7%,而 bioS multi5+permute 预训练模型的正确率高达 96.6%。这个显著的提升与模型的微调、大小或训练时间无关,而是与知识在预训练 (pretrain) 中的呈现方式有关,即知识如何被大模型 “背诵”。

研究还发现,将传记分为名人 (celebrity) 和少数群体 (minority),只要名人传记有知识增强,即使少数群体没有,模型对少数群体的知识提取正确率也会大幅提升 —— 当然,最好的效果还是需要对所有数据进行知识增强。

图片

图 4:仅仅通过增加名人 (celebrity) 的训练数据多样性,少数群体的知识提取正确率猛增

那么为何背诵不同数据后,模型的问题回答能力差异大?为何反复背诵名人传记,可以让少数群体的知识提取能力也增强?原因是由于模型采取了不同的记忆方式。

作者通过两种线性探针 (linear probing) 深入探讨了模型的记忆知识的原理。我们来看其中一种叫 P 探针 (P-probing) 的方法。

在 P 探针中,我们输入传记条目到预训练模型,训练一个线性分类器预测六个目标属性(如大学、专业等)。我们想看模型是否能在早于属性的位置提取这些信息。如果分类器在人名后立即显示对 “工作单位” 有高准确率,说明模型直接学习了 “Anya 的雇主是 Meta”。如果只在传记结尾达到高准确率,可能模型用了有缺陷的记忆方法,例如 “某人生日是 1996 年 10 月 2 日,大学是 MIT,因此雇主是 Meta”。

P 探针的试验设计是这样的。找出每个传记中 6 个属性首次出现的位置,然后在这些位置的前一个位置,训练一个线性分类器来预测每个目标属性。这就产生了 36 个分类任务。

图片

图 5:P 探针试验结果显示,预训练数据集的知识增强使知识被存在更早的位置,部分甚至直接存储在人名上。模型是否能通过微调回答问题,与预训练时是否将信息直接存储在人名上有关(对比图 3 和图 5)。

P 探针试验结果显示,自然语言模型在预训练时可以通过人名记住信息以实现压缩,也可以通过其他信息(如 “在 MIT 就读并且生日是 1996 年 10 月 2 日的人的工作单位是...”)记忆。虽然第二种记忆方式对人来说 “不自然”,但对模型来说两种方法的压缩比无异。如果模型采用第二种方式记住信息,训练结束后将无法通过微调回答问题。而通过知识增强,预训练模型会逐渐倾向于学会使用第一种记忆方式。

有人可能会争论,上述 “知识提取” 失败可能是由于自回归 (autoregressive) 语言模型如 GPT 的单向性。实际上,双向语言模型如 BERT 在知识提取上更差,对 “Meta Platform” 这类多词组知识只能存储,无法提取。有兴趣的读者可以参考论文第 6 章。

总的来说,语言模型是否能回答 “知识提取” 问题,不仅取决于 “无损压缩”,还与 “如何在模型中压缩” 有关。论文强调,预训练过程中对关键但少见的数据进行知识增强是必要的(如使用 ChatGPT 进行多次改写)。如果没有这一步,无论如何努力微调,已预训练完的模型虽然无损压缩了训练数据,但是还是可能再也无法提取那些知识了!

结语

如何理解自然语言模型的工作原理?大多数研究者通过与 GPT-4 等模型对话,推测其能力。然而,《语言模型物理学》系列论文的作者提出了一种更精确的方法,通过精细设计训练数据和可控实验,探究 Transformer 的内部机制,解释其处理 AI 任务的能力。

在《Part 3.1:知识的储存与提取》中,作者精确测试了模型对不同数据的反应,找到了模型学习知识和能力与训练数据的准确关系。

他们还发布了《Part 3.2:知识的操作》,进一步研究了模型如何在特定情况下操作知识。例如,如果大模型记住了《静夜思》,能否通过微调使其推理出《静夜思》的最后一句是 “低头思故乡”?我们很快讲为大家带来后续报道。

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

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

相关文章

【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(其它指令)?

除了基础的 LDx 指令,还有 LDP、LDR 这些指令,我们也需要关注。 1 LDNP (SIMD&FP) 加载 SIMD&FP 寄存器对,带有非临时提示。该指令从内存加载一对 SIMD&FP 寄存器,向内存系统发出访问是非临时的提示。用于加载的地址是根据基址寄存器值和可选的立即偏移量计算…

计算机网络(一):概述

参考引用 计算机网络微课堂-湖科大教书匠计算机网络(第7版)-谢希仁 1. 计算机网络在信息时代的作用 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施计算机网络已经像水、电、煤气这些基础设施一样,成为我们生活中不可或…

网络协议--概述

1.2 分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。 TCP/IP通常被认为是一个四层协议系统,如图1-1所示。每一层负责不同的功能: 1.链…

【Vue.js】使用Element中的Mock.js搭建首页导航左侧菜单---【超高级教学】

一,Mock.js 1.1 认识Mock.js Mock.js是一个用于前端开发中生成随机数据、模拟接口响应的 JavaScript 库。模拟数据的生成器,用来帮助前端调试开发、进行前后端的原型分离以及用来提高自动化测试效率 总结来说,Element中的Mock.js是一个用于…

ClassNotFoundException与NoClassDefFoundError

如果这springboot服务启动时两个报错同时出现,那大概率是依赖间冲突导致的 查资料发现是springcloud的依赖版本和springboot的依赖版本不兼容,顺藤摸瓜找到springcloud jar包中调用org.springframework.boot.context.properties.ConfigurationProperties…

《MySQL高级篇》十六、主从复制

文章目录 1、主从复制概述1.1 如何提升数据库并发能力1.2 主从复制的作用 2、主从复制的原理2.1 原理剖析2.2 复制的基本原则 3、一主一从架构搭建3.1 准备工作3.2 主机配置文件3.3 从机配置文件3.4 主机:建立账户并授权3.5 从机:配置需要复制的主机3.6 …

为何每个开发者都在谈论Go?

目录 一、引言Go的历史回顾关键时间节点 使用场景Go的语言地位技术社群与企业支持资源投入和生态系统 二、简洁的语法结构基本组成元素变量声明与初始化代码示例 类型推断函数与返回值代码示例输出 接口与结构体:组合而非继承错误处理:明确而不是异常小结…

Python集成开发环境(IDE):WingPro for Mac

WingPro for Mac是一款Python集成开发环境(IDE)软件,它提供了一系列强大的工具和功能,帮助Python开发人员提高开发效率和质量。 WingPro for Mac拥有直观的用户界面和强大的调试器,可以帮助用户快速定位问题和修复错误…

10.1作业

#include <stdio.h> #include <string.h> #include <stdlib.h> /** function:* 创建一个双向链表&#xff0c;将26个英文字母通过头插的方式插入&#xff0c;通过为尾删的方式读取并删除* param [ in] * param [out] * return */ typedef struct double…

Redis代替session 实现登录流程

Redis代替session 实现登录流程 如果使用String&#xff0c;他的value&#xff0c;用多占用一点空间&#xff0c;如果使用哈希&#xff0c;则他的value中只会存储他数据本身&#xff0c;如果不是特别在意内存&#xff0c;其实使用String就可以 设计key的具体细节 在设计这个k…

Learning Invariant Representation for Unsupervised Image Restoration

Learning Invariant Representation for Unsupervised Image Restoration (Paper reading) Wenchao Du, Sichuan University, CVPR20, Cited:63, Code, Paper 1. 前言 近年来&#xff0c;跨域传输被应用于无监督图像恢复任务中。但是&#xff0c;直接应用已有的框架&#xf…

私有继承和虚函数私有化能用么?

源起 以前就知道private私有化声明关键字&#xff0c;和virtual虚函数关键字两者并不冲突&#xff0c;可以同时使用。 但是&#xff0c;它所表示的场景没有那么明晰&#xff0c;也觉得难以理解&#xff0c;直到近段时间遇到一个具体场景。 场景 借助ACE遇到的问题进行展示 …

四、2023.9.30.C++面向对象end.4

文章目录 49、 简述一下什么是常函数&#xff0c;有什么作用&#xff1f;50、 说说什么是虚继承&#xff0c;解决什么问题&#xff0c;如何实现&#xff1f;51、简述一下虚函数和纯虚函数&#xff0c;以及实现原理&#xff1f;52、说说纯虚函数能实例化吗&#xff0c;为什么&am…

【数据结构与算法】通过双向链表和HashMap实现LRU缓存 详解

这个双向链表采用的是有伪头节点和伪尾节点的 与上一篇文章中单链表的实现不同&#xff0c;区别于在实例化这个链表时就初始化了的伪头节点和伪尾节点&#xff0c;并相互指向&#xff0c;在第一次添加节点时&#xff0c;不需要再考虑空指针指向问题了。 /*** 通过链表与HashMa…

1 论文笔记:Efficient Trajectory Similarity Computation with ContrastiveLearning

2022CIKM 1 intro 1.1 背景 轨迹相似度计算是轨迹分析任务&#xff08;相似子轨迹搜索、轨迹预测和轨迹聚类&#xff09;最基础的组件之一现有的关于轨迹相似度计算的研究主要可以分为两大类&#xff1a; 传统方法 DTW、EDR、EDwP等二次计算复杂度O(n^2)缺乏稳健性 会受到非…

Flutter笔记:滚动之-无限滚动与动态加载的实现(GetX简单状态管理版)

Flutter笔记 无限滚动与动态加载的实现&#xff08;GeX简单状态管理版&#xff09; 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq…

stm32 - 初识2

stm32 - 初识2 工程架构点灯程序寄存器方式点灯库函数的方式点灯 工程架构 启动文件 中断向量表&#xff0c;中断服务函数&#xff0c;其他中断等 中断服务函数中的&#xff0c;复位中断是整个程序的入口&#xff0c;调用systeminit&#xff0c;和main函数 点灯程序 寄存器方式…

HTML的相关知识

1.什么是HTML&#xff1f;基本语法 HTML: Hyper Text Markup Language &#xff08;超文本标记语言&#xff09; 超文本&#xff1f;超级文本&#xff0c;例如流媒体&#xff0c;声音、视频、图片等。 标记语言&#xff1f;这种语言是由大量的标签组成。HTML标签参考手…

尚硅谷谷粒商城部分报错问题处理

1、启动报错&#xff1a; 内容&#xff1a; org.springframework.beans.factory.BeanCreationException: Error creating bean with name attrAttrgroupRelationController: Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed t…

Redis配置和优化

Redis配置和优化 一 、Redis介绍二、关系数据库和非关系数据库2.1、关系型数据库2.2、 非关系型数据库2.3、 非关系型数据库的产生背景2.4、 关系型数据库和非关系型数据库区别2.5、 总结 三、缓存概念3.1、系统缓存3.2、 缓存保存位置及分层结构3.2.1、DNS缓存3.2.2、 应用层缓…