MemPrompt: Memory-assisted Prompt Editing with User Feedback

news2024/10/6 0:13:12

Paper name

MemPrompt: Memory-assisted Prompt Editing with User Feedback

Paper Reading Note

URL: https://arxiv.org/pdf/2201.06009.pdf

TL;DR

  • ACL 2022 Workshop CSRR 文章,MemPrompt 将用户对模型预测错误的反馈保存下来,之后遇到类似的问题能够通过用户反馈修正预测,不需要对模型进行 retrain

Introduction

背景

  • 像 GPT-3 这样的大型语言模型功能强大,但也会犯对人类来说很明显的错误。例如,GPT-3 会错误地将“什么词与good相似?” 解释为返回同音字,而用户想要的是同义词。
  • 本文的目标是通过用户与系统的交互有效地纠正这些错误,不需要重新训练模型

本文方案

  • 将GPT-3与越来越多的记录案例进行配对,这些案例中模型误解了用户的意图,以及用户的澄清反馈。这样的内存使本文所提出的系统能够根据用户反馈为任何新的查询生成增强的提示,以纠正过去类似情况下的错误

在这里插入图片描述
比如对于 GPT-3 将 “similar to” 理解为“发音相似”,而用户想要的是“意思相似”,于是用户可以将 “similar to means with similar meaning” 的反馈记录到 memory M 中,之后遇到类似的问题时,模型能够正确处理

  • memory M 是一个维护的键值对数据:key 是误解的问题;value 是用户修正该问题的反馈
  • 遇到新问题时,在 memory M 中查询是否有类似的问题,找到了的话,将该问题的用户反馈加到 prompt 中
  • 本文 contribution
    • 展示了像GPT-3这样的大型模型可以在部署后得到改进,而不需要重新训练,通过内存辅助架构
    • 实现 MemPrompt 是第一次证明这是可能的——这是真正使用 LMs 的重要一步,本文列出了其他人可以在此基础上构建的通用体系结构、特定的实现以及对多个任务的详细评估

Dataset/Algorithm/Model/Experiment Detail

实现方式

Memory enhanced GPT-3 architecture

  • 在本文设置中,给定一个输入 x,一个模型生成一个输出 y 和一个句子 u,表达它对任务的理解,这是通过提示中的几个示例学习到的技能,然后用户可以通过提供自然语言反馈 fb 来批评模型输出的 u,用户反馈是不需要知道 y 是否是正确的(因为他们批评的是模型对他们意图的理解,而不是答案本身)

在这里插入图片描述- Memory M: 存储键值对 (xi <-> fbi)

  • Lookup M(x):判断新的输入 x 是否与 memory M 中的 key 的相似度
  • Combiner C(x, M(x)):一个门控函数,允许不相关的,检索反馈被忽略
  • MemPrompt setup:如前所述,给定一个输入x,提示模型生成一个输出和一个句子u来表达它对任务的理解。因此,MemPrompt 的上下文示例的形式是 x→u, y。除了输入 x 之外,如果之前问过类似 x 的问题,MemPrompt 还会检索一个 fb。为了使模型能够对这样的反馈做出反应,还在提示符中包含了表单 (x, fb→u, y) 的示例,目的是教会模型对 fb 做出反应

Verbalizing Task Understanding(描述任务理解)

  • 除了答案之外,我们建议从模型中引出任务理解 u 的语言化,最终用户因此可以批评模型的任务理解 u 来进行反馈。如下图绿色字符是任务理解
    在这里插入图片描述
  • GPT-3擅长用少量示例进行推理,因此可以预期它会模仿提示生成任务理解和答案,GPT-3在所有的任务中生成这样的附加信息

Allowing GPT-3 to react to feedback

  • 通过在提示符中添加一些x, fb→u, y形式的例子,并设置fb = u,使得模型能够利用上用户反馈信息
    在这里插入图片描述

Feedback on model’s understanding

  • 在设置x→u, y中,本文关注以下两种故障模式
    • 任务指令理解:这在多任务设置中尤其重要,其中模型可能会考虑与用户预期的任务不同的问题
    • 任务细致理解:当模型理解了任务类型,但误解了任务问题中微妙的意图
  • 虽然对模型输出的反馈是本文的主要目标,但也尝试了一些设置,其中 Oracle 可以提供对标签的反馈。我们再次注意到,模型会对反馈做出反应,因为一些上下文样本的形式是:(x, fb→u, y)和(x→u, y)。我们考虑了一组不同的任务(x→y), fb和u,如表中总结
    在这里插入图片描述

MemPrompt Implementation

  • Implementation of memory M,词汇测试任务的示例如下
    在这里插入图片描述
  • Implementation of retriever M(x)
    • 提出了一种基于 SEQ2SEQ 的变换,称为 GUD-IR:给定 x, GUD-IR使用生成 SEQ2SEQ 模型为 x 生成转换后的反馈fb
    • 在转换阶段结束后,使用最接近的匹配项作为对应的fb。变换将M(x)简化为对fb1, fb2,……, fb|M|,并使用fb作为搜索查询。基于一个经过微调的 Sentence transformers 来计算相似度
  • Implementation of combiner C
    • 计算输入 x 与检索得到的 fb 的相似度,只将相似度高的 fb concat 到输入中

实验结果

实验配置

  • baseline 方法:
    • NO-MEM:标准 GPT-3 在 few-shot prompting mode 下
    • GROW-PROMPT:其中 prompt 不断增加,用一个子集的内存 M (最大 2048 tokens)存储 prompt;插入的 M 内存的最新子集插入到提示符中
  • Clarification probability:在实际情况中,我们不能期望用户为所有示例提供反馈(例如,用户可能不知道对模型的理解是错误的)。为了模拟这种现实的设置,我们对不同的澄清概率值进行了实验 Pr

MemPrompt improves GPT-3 accuracy

  • Ethical-NL 任务
    在这里插入图片描述

Clarification probability 消融实验

  • 指令精度随着澄清概率的增大而急剧提高;随着时间的推移,0.5 的也能赶上 1.0,因为内存逐渐被错误情况和反馈填满
    在这里插入图片描述

标签精度实验

  • 对于所有的澄清概率值,标签精度随时间的增加而增加
    在这里插入图片描述

对比实验

在这里插入图片描述

在这里插入图片描述

Thoughts

  • 不用 retrain,让用户反馈能帮助模型修正犯过的错误,不在同一个地方跌倒两次,增加语言模型实用性

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

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

相关文章

CesiumLab安装、CesiumLab账号注册以及不同授权类型的说明 CesiumLab系列教程

下载软件并安装 官方下载地址&#xff1a;http://cesiumlab.com/#/update 双击 exe 安装。 CesiumLab安装包 CesiumLab安装过程 CesiumLab需要的依赖环境 安装过程会提示 本程序依赖 VC2019 实时运行库&#xff0c;如本机已安装了 VC2019 实时运行库&#xff0c;可以点击【取…

【STM32笔记】HAL库Flash读写配置

【STM32笔记】HAL库Flash读写配置 在keil里面的默认工程配置中 Flash分配地址 程序部分为0x0800 0000到0x0810 0000 总共是0x0010 0000的大小 也就是1048576Byte 1024KB 1MB 而实际上程序部分大小应该要看硬件手册来确定 可以通过配置keil工程中size的大小 来确定程序地址的范…

实验二十七 IPSec配置

实验二十七 IPSec配置实验目的&#xff1a; 某公司由总部和分支机构构成&#xff0c;通过IPsec实验网络安全&#xff0c;保证总部和分支机构的局域 网安全通信。网络拓扑图&#xff1a;IPSec(IP Security)是IETF定义的一组协议&#xff0c;用于增强IP网络的安全性 。 IPsec的功…

【深度学习】李宏毅2021/2022春深度学习课程笔记 - Anomaly Detection(异常侦测)

文章目录一、Problem Formulation二、What is Anomaly&#xff1f;三、Applications四、Binary Classification&#xff1f;五、Categories六、Case 1&#xff1a;With Classifier七、Case 2&#xff1a;Without Labels八、Use Auto-Encoder九、More一、Problem Formulation 假…

Java之反射机制

反射机制 引出反射 我们的猫类 传统的方式 就是new 然后通过对象调用呗 用properties做的话&#xff0c;首先肯定是获取信息 读取配置文件的信息 然后我们需要创建对象是吧 但是这个时候 new classfullpath是不行的&#xff0c;因为我们实际上需要的是 类名 而不是字符串&…

2023年1月7日:fastadmin导出数据为excel格式

需求图&#xff1a; 实现方法&#xff1a; 第一种方法&#xff1a;fastadmin自带导出数据&#xff0c;直接点击下载即可 效果图第二种方法&#xff1a;自定义导出按钮&#xff0c;需要编写方法 效果图&#xff1a; 效果图代码实现 首先&#xff1a;前端按钮代码(可直接拿来用…

【HCIA-openEuler】实验手册—01【openEuler操作系统安装】

文章目录一、实验介绍1、关于本实验2、实验目的3、实验所需材料二、配置虚拟化环境步骤1&#xff1a;硬件准备步骤2&#xff1a;软件准备三、安装openEuler操作系统1、创建虚拟机步骤1&#xff1a;新建虚拟机步骤2&#xff1a;向导选择典型(推荐)步骤3&#xff1a;选择镜像文件…

MonoScene: Monocular 3D Semantic Scene Completion

Paper name MonoScene: Monocular 3D Semantic Scene Completion Paper Reading Note URL: https://arxiv.org/pdf/2112.00726.pdf TL;DR 2022 cvpr 论文&#xff0c;提出一种能在室内与室外场景均可使用的单目 SSC 方案&#xff0c;与特斯拉的 Occupancy Network 非常相似…

【Java基础】day12

一、Redis 的缓存穿透、缓存击穿、缓存雪崩是什么&#xff1f; 缓存穿透 请求不存在【 DB 和 Redis 中都不存在】的数据&#xff0c;导致请求直接打到持久层数据库中&#xff0c;导致数据库负载过高&#xff0c;甚至导致宕机。这样的请求几乎可以导致请求次次到达 DB &#xff…

Cesium中tif转经纬度投影或墨卡托地图瓦片 CesiumLab系列教程

Cesium 目前支持的影像切片规范有两种形式的&#xff1a; 1.经纬度直拉切片方式 &#xff08;GeographicTilingScheme &#xff09;&#xff0c; 2.web 墨卡托切片方式 &#xff08;WebMercatorTilingScheme&#xff09;。 根据常规传统&#xff0c;瓦片大小都是 256&#x…

数字验证学习笔记——SystemVerilog芯片验证22 ——功能覆盖率策略覆盖组

一、功能覆盖率策略 1.1 收集信息而非数据 对于一些设计&#xff0c;你需要关心的是合法的寄存器地址和非法的寄存器地址&#xff0c;可写的寄存器域和非法的寄存器域&#xff0c;而不是具体的寄存器地址数值。一旦关注的地方着眼于感兴趣的状态&#xff0c;而不是具体数值&a…

2022年中职网络安全竞赛SSH弱口令渗透测试解析(详细)

B-7 SSH弱口令渗透测试 任务环境说明: 服务器场景:Server18(关闭链接)服务器场景操作系统:Linux(版本不详)在本地PC渗透测试平台Kali中使用zenmap工具扫描服务器场景Server18-2所在网段(例如:172.16.101.0/24)范围内存活的主机IP地址和指定开放的21、22、23端口。并将…

【NI Multisim 14.0原理图环境设置——标题栏】

目录 序言 一、标题栏 &#x1f34d;1.添加标题块 &#x1f34d; 2.修改标题块 &#xff08;1&#xff09;直接修改 &#xff08;2&#xff09;标题块编辑器 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表…

【C++】命名空间 以及 如何理解using namespace std;

目录 命名空间 1.由来 2.概念 3.使用 方法一 方法二 方法三 4.嵌套使用 命名空间 很多人在学习C的时候&#xff0c;第一个代码想必是如下样子的。和C语言相比&#xff0c;库函数换了&#xff0c;同时多了一个 using namespace std&#xff1b; 但是&#xff0c;你真的了…

Allegro174版本新功能介绍之高阶Contour模式使用

Allegro174版本新功能介绍之高阶Contour模式使用 在Allegro低版本166以及172版本中,有Contour命令,但是只有沿着routekeepin和Connect Line功能,如下图 当升级到了174版本的时候,Allegro支持沿着任意目标走线,甚至是过孔和铜皮,如下图 具体操作介绍如下 以沿着这块铜皮轮…

一元三次方程求解 -- 二分查找

[NOIP2001 提高组] 一元三次方题目描述思路codetag&#xff1a;数学&#xff0c;二分查找 题目链接&#xff1a;洛谷P1024: [NOIP2001 提高组] 一元三次方 题目描述 思路 先对三次函数求导得到二次函数 3ax22bxc03ax^2 2bx c 03ax22bxc0 然后利用求根公式计算出两个极值点 …

Vue--》Vue3自定义组件以及新组件的使用讲解

目录 customRef Vue3提供的新组件 Fragment Teleport Suspense Vue3中全局API的改变 customRef 创建一个自定义的ref&#xff0c;并对其依赖项跟踪和更新触发进行显示控制。 <template><input type"text" v-model"keyword"><h3>…

谷粒学苑项目-第一章公共模块下的Swagger配置类-1.4

一、在common子模块下创建Swagger配置类 1. guli_parent->common子模块->service_base子模块->SwaggerConfig配置类 common子模块是pom类型 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId>…

【Java寒假打卡】Java基础-集合Collection

【Java寒假打卡】Java基础-集合Collection集合与数组之间的区别集合体系结构Collection常用的方法集合-迭代器迭代器原理分析迭代器删除方法的注意事项增强for循环集合与数组之间的区别 数组的长度是不可变的&#xff0c;集合的长度是可变的数组可以存基本数据类型和引用数据类…

Xilinx AXI4 协议

AXI4 相对复杂&#xff0c;但 SOC 开发者必须掌握。AXI 协议的具体内容可参考 Xilinx UG761 AXI Reference Guide。在这里我们简单了解一下。 AXI4 所采用的是一种 READY&#xff0c;VALID 握手通信机制&#xff0c;即主从模块进行数据通信前&#xff0c;先根据操作对各所用到的…