Chatgpt如何引入新的知识?我们来看下ACL2023 预训练模型能否对新注入的知识进行推理这篇文章

news2025/1/6 17:22:30

一、概述

title:Can LMs Learn New Entities from Descriptions? Challenges in Propagating Injected Knowledge

论文地址:https://arxiv.org/abs/2305.01651

相关代码:

  1. EKP数据和代码:GitHub - yasumasaonoe/entity_knowledge_propagation
  2. MEND: Model Editing Networks using Gradient Decomposition:GitHub - eric-mitchell/mend: MEND: Fast Model Editing at Scale

1.1 Motivation

  1. 如何在预训练模型中引入最新的知识并验证模型能否对注入的知识进行推理呢?之前的模型编辑的方法注入知识只评估模型是否能复现原有知识,没有评估是否能对注入的知识进行推理。

1.2 Methods

  1. 通过两个完型填空任务来做这个实验
    1. 存在真实世界的的一个新实体数据集ECBD,以及简化版本easy-ECBD。
    2. 一个新的人工设置的模板的benchmark,需要对注入的知识进行各种级别的推理。
  1. 通过参数更新的方法以及非参数更新的方法来对比有效性
    1. 参数更新
      1. fine-tuning(全部参数 or 最后一层)
      2. MEND:通过新数据,一次性更新参数的方法
      3. ROME:先拿到某个新实体k的特征v,然后按照新实体的信息修改v,对其进行参数更新,学习新的知识
    1. 非参数更新
      1. in-context learning方法:不改变模型参数,直接将信息拼接到probe探针上

1.3 Conclusion

  1. 基于梯度的fine-tuning方法对注入的知识推理能力比较差,只当lexical重叠比较大才有提升。
  2. 直接将实体定义信息预先加到上下文(in-context-learning)获得了持续的提升,说明通过参数更新来注入知识还有很大的研究空间。

1.4 limitation

  1. 实验还考虑的不够全,因为某些实体的更新可能会牵扯到非常多其他实体,这里没有考虑这类实体。
  2. 只在英语上做了实验。
  3. 还需要尝试更大的模型和最新的一些参数更新的方法。

二、大纲

三、详细内容

1 评估是否能对引入的知识进行推理

  • 参数说明
    • <e, de, xe, ye>
    • e: 新实体
    • de: 新实体e定义的句子
    • xe:probe 探针,用于检查是否注入知识
    • ye: xe的理想答案
    • 知识编辑的方法是在原来的参数上,通过添加e,de来更新新的参数,即: θ′ ← update(θ, e, d )
  • prior work
    • 直接对注入的知识进行提问
  • this work
    • 不直接提问,根据注入的知识进行推理性质的提问

2 评测数据集说明

  • ECBD
    • 重新根据更新时间来组织ECBD数据集,这样来评估知识的的更新情况
    • e:wikipedia的实体词
    • definition:一般是wikipedia的第一句话
    • xe:探针句子,在wikipedia页面里main选出来的
    • goldspan:target span
  • ECBD-EASY
    • 从ECBD中挑选了一个简单的子集,其他definition句子de包含了target masked span y
    • 之前的MEND方法就是这种方式来做的,任务更简单
    • 评估方法:困惑度(由于tokenizer的不同,不同模型不好比较困惑度)
  • ENTITY INFERENCES
    • ECBD任务还是非常难,人类来做都非常难,需要非常多的知识和推理,为了更好控制的研究知识推理,构建了该数据集
    • 该数据集选择正确的span变得简单,相对于直接生成span,这里把它作为多选题
    • 两种推理类型
      • explicit:比较明确的,问的问题就在definition中
      • implicit:需要一些commonsense信息
    • 评估方法:accuracy 准确率 + specificity score 特异性

3 对比实验(参数更新方法以及incontext learning方法)

不同的模型架构可能对注入的知识也有影响,所以考虑了left-to-right以及seq-to-seq的架构,使用了GPT-Neo(1.3B)、T5-large、GPT2-XL(和ROME做比较)。

  • Finetuing
    • left-to-right模型(GPT-Neo):在de(定义描述)的数据上做next token prediction
    • filling models(T5):随机选择span来mask,注意不与entity重叠
    • 采用两种fine-tuning模式,更新全部参数或者last layer的参数
  • MEND(没咋看懂)
    • MEND(Mitchell et al., 2022)可以被视为一种超网络,它有效地将原始微调梯度转换为一次成功编辑基础模型参数的参数更新。这种方法旨在注入或编辑关于实体的单个事实,而不是一组关于实体的事实(即,一个完整的定义所包含的实体知识)。MEND参数在编辑数据集上进行训练,其中每个示例都包括输入-输出对、修改后的输出和局部性示例(用于测量敏感性)。MEND训练的目标是学习一个网络,该网络可以在不影响未修改的事实的情况下修改目标事实。
    • 爱可可AI前沿推介(10.23) - 知乎解读:大规模模型快速编辑。虽然大型预训练模型在各种下游任务上取得了令人印象深刻的结果,但最大的现有模型仍然会出错,甚至准确的预测也会随着时间的推移而变得过时。因为在训练时检测出所有这些错误是不可能的,所以让这些模型的开发者和终端用户能够纠正不准确的输出,同时保持模型的完整性是很有意义的。然而,大型神经网络所学习的表示的分布式、黑箱性质使得产生这种有针对性的编辑很困难。如果只有一个有问题的输入和新的期望输出,微调方法往往会过拟合;其他的编辑算法要么在计算上不可行,要么在应用于非常大的模型时根本没有效果。为了大规模实现简单的事后编辑,本文提出梯度分解模型编辑网络(MEND),一种小型辅助编辑网络的集合,使用单一期望输入-输出对,对预训练模型进行快速的局部编辑。MEND学习对通过标准微调获得的梯度进行转换,用梯度的低秩分解来使这种转换的参数化变得可行。即使是100亿以上的参数模型,MEND也可以在一天之内在单GPU上完成训练;一旦训练完成,MEND就可以快速应用新的编辑到预训练的模型上。对T5、GPT、BERT和BART模型的实验表明,MEND是唯一能对具有几千万到一百多亿参数的模型进行有效编辑的方法。
  • ROME
    • 通过将MLP视为键值存储年龄来执行知识编辑:它使用一个主题(如埃菲尔铁塔)来提取MLP中与该主题相关的“价值”。然后,它使用对MLP权重的一级修改来“重写”这个键值对。
  • in-context
    • 将definition加在probe的后面

4 实验结论

  • 总结:
    • finue-tuning方法,参数修改的方法,整体比较拉垮,MEND,ROME方法的模型在准确率有一定提升,但是有一些也牺牲了特异性,困惑度MEND方法甚至在GPT-Neo上还上升了
    • (in-context learning)输入增强的方法,也只有在输入相关的文本下有提升,输入不相关的文本下效果也是变差的

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

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

相关文章

香橙派4和树莓派4B构建K8S集群实践之四:BuildKit与LNMP

目录 1. 说明 2. 开始前的准备工作 2.1 docker 验证用户信息设置 2.2 安装BuildKit 3. 安装步骤 3.1 申请一个pvc存储区 (wwwroot-pvc.yaml) 3.2 Nginx 3.3 php-fpm 3.3.1 构建并推送镜像 4. 遇到的问题 5. 相关命令 6. 参考 1. 说明 k8s带来的灵活性&#xff0c;使…

Linux系统之安装PDF阅读器

Linux系统之安装PDF阅读器 一、PDF介绍1. PDF简介2. PDF特点3. evince介绍 二、本次实践环境介绍1. 本地环境规划2. 本次实践介绍 三、本地环境检查1. 检查操作系统版本2. 查看系统内核版本 四、安装前准备工作1. 配置yum仓库2. 检查本地yum仓库状态3. 查看evince安装包 五、安…

怎样做好一场线上研讨会?

怎样做好一场线上研讨会&#xff1f; 1-策划和准备。在开始前&#xff0c;需要仔细策划和准备。确定研讨会的主题、目标、议程和参与者&#xff0c;并为参与者提供足够的信息和资源&#xff0c;以确保他们能够充分准备并参与讨论。 2-选择合适的在线平台。选择一个适合您需求…

Ubuntu搭建VPN服务,PPTD和OpenVPN

本文提供了两种vpn方式&#xff0c;pptd移动端支持不够&#xff0c;OpenVPN跨平台能力更前&#xff0c;且安全性更好。 但pptd也不是一无是处&#xff0c;在使用midjuriney网站时&#xff0c;openvpn搭建的网络出现了无法将机器人加入服务器的情况&#xff0c;更换pptd后操作无…

基于Maven创建多模块的Spring Boot项目

使用 Spring Boot的初始化器等创建Spring Boot项目时,需要在pom.xml指定该项目的父项目是 spring-boot-starter-parent。 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><versio…

OSPF综合实验(第二部分)

目录 配置OSPF动态路由协议 重发布 减少路由条目&#xff1a;​ 特殊区域&#xff1a; 收敛配置 认证 NAT地址转换 空接口 配置OSPF动态路由协议 AR1&#xff1a; [r1]ospf 1 router-id 1.1.1.1 [r1-ospf-1]area 1 [r1-ospf-1-area-0.0.0.1]network 172.16.32.0 0.0.0.…

DeepLab V3+

Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation 分割图像的语义编码器-解码器和带孔可分离卷积的技术 摘要 对于语义分割任务&#xff0c;深度神经网络通常使用空间金字塔池化模块或编码器-解码器结构。前者通过以多种速率和多种有效视…

手把手教你安装Redis

在上一篇《Redis简介》中介绍了Redis的一特性和使用场景&#xff0c;下面我们就来动手安装一下Redis 主要分为Windows安装、Linux下安装和Docker下安装 Windows下安装Redis 很不幸&#xff0c;Redis官方不支持windows版本&#xff0c;以下是官方原话 Redis is not officiall…

【P19】JMeter CSS/JQuery提取器(CSS Selector Extractor)

文章目录 一、准备工作二、测试计划设计 一、准备工作 百度&#xff1a; https://www.baidu.com/ 进入网页后&#xff0c;右键检查或按F12&#xff0c;打开调试工具 使用CSS/JQuery提取器&#xff0c;获取六个百度热搜文本 二、测试计划设计 &#xff08;1&#xff09;、测…

供水管线 码蹄集

题目来源&#xff1a;码蹄集 题目描述&#xff1a; 解决思路&#xff1a; 首先&#xff0c;题目要求我们去掉一些管道&#xff0c;使得总的管道管理费用最小。在去掉部分管道的情况下&#xff0c;城市之间不再形成一个回路&#xff0c;即城市之间构成了一棵树。因此&#xff…

元宇宙医疗虚拟人的功能,创造哪些新体验

虚拟数字人的出现对于精准医疗及人类健康的发展将带来不可估量的作用。通过三维可视化、3D打印、大数据及人工智能等多种数字化手段&#xff0c;在医学研究方面取得新的进展。 居家/健康&#xff1a;智能虚拟管家、家庭虚拟医生、家庭虚拟陪护员 一、虚拟数字人的医学知识普及优…

ChatGPT中文指令(Prompt)角色预设大全!让你的AI更懂你!

ChatGPT的回答总是不令人满意&#xff0c;那可能是你对AI下错了指令/提示词&#xff08;Prompt&#xff09;&#xff0c;想要ChatGPT更懂你&#xff0c;回答更精准&#xff0c;就要给它下对指令。 在国外有大佬们已经整理出一些标准的问话模板&#xff0c;直接拿来使用后&#…

在Python环境中安装配置GDAL,并演示使用GDAL读取shapefile文件

GDAL是应用广泛的空间数据处理库&#xff0c;可以处理几何、栅格数据&#xff0c;Python是一门简单易学的编程语言&#xff0c;常用来编写数据处理工具、脚本。本文讲解如何在Python环境中安装、配置、使用GDAL。本文示例中使用的GDAL版本为3.4.3 一、下载GDAL的whl包 可以通过…

ComPDFKit PDF SDK for Windows crack

ComPDFKit PDF SDK for Windows crack 增加了对新文本编辑功能的支持&#xff0c;如添加其他字体、设置粗体/斜体、复制文本样式和修改文本透明度。 增加了对新级别文档加密的支持&#xff0c;包括AES-128和AES-256。 ComPDFKit PDF SDK允许开发人员在Windows(iOS和Android平台…

C高级-day(4)-(shell数组、shell中的算数、shell中的分支语句.)

一、编写一个名为myfirstshell.sh的脚本&#xff0c;它包括以下内容。 1、包含一段注释&#xff0c;列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和H…

C/C++中程序数据的分类与内存分布,C++内存管理方式之new / delete 操作符与malloc / free的区别

TIPS const修饰数据类型并不会影响它在内存当中某个区域的存储位置&#xff0c;比方说原先是在栈区上面的&#xff0c;然后用const修饰了一下&#xff0c;并不就是说你现在已经变到静态区里面去了&#xff0c;你还是在栈上面指针与指针之间的等号赋值也需要考虑到权限的放大与…

利用Python程序生成字符画 让男大学生们洗脑的挖呀挖呀挖

源码地址 原教程在这里 演示效果&#xff1a;&#xff08;有点虚&#xff09; 利用Python程序生成字符画 让男大学生们洗脑的挖呀挖呀挖 使用教程&#xff08;源码在文章最后&#xff09; 打开pyhton编译器安装opencv和Pillow库把要进行字符串化的视频命名为input.mp4&#…

nginx: 配置https证书,wss证书

作用&#xff1a;SSL证书卸载 1、制作证书 openssl genrsa -des3 -out server.key 2048 openssl req -new -key server.key -out server.csr openssl rsa -in server.key -out server.key openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt …

windows 通过bat一键Android手机截图

首先资源需要5积分链接如下&#xff1a; https://download.csdn.net/download/weixin_38287114/87774870?spm1001.2014.3001.5501 使用范围&#xff1a; 有一台电脑是window系统&#xff0c;电脑安装配置了adb 有一台手机&#xff0c;打开了usb调试 你想截图的软件没有usb…

ArrayList 和 LinkedList 之间应该怎么选择?

Joshua Bloch&#xff1a;我写了 LinkedList&#xff0c;但我自己都不用&#xff01; 对&#xff0c;Joshua Bloch 就是 LinkedList 的作者&#xff01; 如果你真信了作者的话&#xff0c;那就真的大错特错了&#xff0c;LinkedList 虽然用的没有 ArrayList 多&#xff0c;但使…