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,让用户反馈能帮助模型修正犯过的错误,不在同一个地方跌倒两次,增加语言模型实用性