当前位置: 首页 > news >正文

论文 | Reframing Instructional Prompts to GPTk’s Language

作者:Swaroop Mishra, Daniel Khashabi, Chitta Baral, Yejin Choi, Hannaneh Hajishirzi

        论文摘要:语言模型 (LM) 更容易遵循哪些类型的指令提示? 我们通过进行广泛的实证分析来研究这个问题,这些分析阐明了成功指令提示的重要特征。具体而言,我们研究了将提示手动重新构建为更有效形式的几种重构技术。一些例子包括将复杂的任务指令分解为多个更简单的任务,或将指令细化为一系列步骤。我们的实验比较了在 12 个 NLP 任务上使用重构指令提示的 LM 的零样本和少样本学习性能。与原始指令相比,我们的重构指令在具有不同规模的 LM 中都取得了显著的改进。例如,相同的重构提示平均提高了 GPT3 系列和 GPT2 系列的少样本学习性能 12.5% 和 6.7%。此外,重构指令减少了在少样本学习设置中提示 LM 所需的示例数量。我们希望这些以经验为驱动的技术将为更有效的未来提示算法铺平道路。

五种重构技术:

  1. 1. 模式重构 (Pattern Reframing):

问题: LM 往往忽略抽象描述,难以理解需要背景知识的内容。

方法: 找到目标任务的低级模式,并在指令中添加这些模式。

示例: 将“生成一个需要常识来回答的问题”重构为“使用 ‘可能会发生什么’、‘将会…?’、‘为什么可能会’、‘什么可能导致了’、‘关于什么可能是真的’、‘什么可能是真的’、‘什么必须’ 以及类似的短语来提问”。

  1. 2. 项目化重构 (Itemizing Reframing):

问题: LM 难以遵循包含多个要求的长段落指令,并且对否定陈述的处理效果不佳。

方法: 将长段落分解为包含多个要求的子弹点列表,并将否定陈述转换为肯定陈述。

示例: 将“根据给定的上下文单词生成输出。做 < >。做 < >。不要 < >”重构为“根据给定的上下文单词生成输出。- 做 < >- 做 < >- 做 < >”。

  1. 3. 分解重构 (Decomposition Reframing):

问题: LM 难以处理需要多步推理的复杂任务。

方法: 将复杂的任务分解为多个不同的子任务,这些子任务可以按顺序或并行执行。

示例: 将“根据给定的上下文单词,你需要创建一个包含空格 (_) 及其对应答案的句子对。句子对应该看起来相似,并且应该关于两个相关但不同的对象;例如 ‘奖杯’ 和 ‘手提箱’。此外,句子必须在触发词(例如 ‘小’ 和 ‘大’)方面有所不同,这些触发词表达了两个对象之间对比属性。”重构为五个子任务:1) 基于给定的上下文单词写两个对象;2) 写一个连接对象的句子;3) 从句子中创建一个填空题;4) 修改问题,使答案翻转;5) 生成问题和答案。

  1. 4. 限制重构 (Restraining Reframing):

问题: LM 可能会偏离其预训练目标,例如,在预测问题类型时回答问题,或在阅读理解任务中根据背景知识回答问题。

方法: 在任务指令中添加关于输出生成的约束条件。

示例: 将“给定问题对应答案的类型是什么?数字、日期还是跨度?”重构为“给定问题对应答案的类型是什么?数字、日期还是跨度?请回答数字、日期或跨度”。

  1. 5. 专业化重构 (Specialization Reframing):

问题: LM 忽略通用指令,并且可能误解输出格式,尤其是在指令中包含冗余文本时。

方法: 将指令重新表述为直接描述低级任务的指令,并删除所有重复和通用的陈述。

示例: 将“回答以下问题”重构为“计算以下问题的答案。你需要添加或减去问题中与两个对象相关的数字”。

实验结果

        论文在 NATURAL INSTRUCTIONS 数据集上进行了广泛的实验,比较了原始指令和重构指令在不同模型上的表现。主要发现如下:

        重构指令优于原始指令和基线方法: 在少样本和零样本学习设置中,重构指令在 ROUGE-L 指标上均优于原始指令、模式选择基线、校准方法和最大示例方法。

        重构指令在不同模型上表现一致: 重构指令在不同模型上均表现出一致的性能提升,这表明重构指令对不同架构的模型具有泛化能力。

        重构指令与监督学习模型相当: 在一些任务类别中,重构指令在少样本学习设置中甚至优于监督学习模型,这表明重构指令可以有效地利用大型语言模型的知识。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 等保测评与企业内部安全管理体系的融合
  • 虚幻引擎游戏保存/加载存档功能
  • 23个Python在自然语言处理中的应用实例
  • TS系列(1):TS是什么?如何使用?
  • 基础容器.
  • Elasticsearch:检索增强生成背后的重要思想
  • Facebook对现代社交互动的影响
  • 【30天玩转python】高级面向对象编程
  • 哈希——字符串哈希
  • Postman 发送 JSON 格式数据
  • 【速成Redis】04 Redis 概念扫盲:事务、持久化、主从复制、哨兵模式
  • Kubernetes 深入浅出系列 | 容器剖析之容器基本实现原理
  • 力扣每日一题 字符串中最多数目的子序列 贪心 字符串 前缀和
  • Leetcode 1039. 多边形三角形剖分的最低得分 枚举型区间dp C++实现
  • YOLOv8——测量高速公路上汽车的速度
  • ----------
  • 230. Kth Smallest Element in a BST
  • android图片蒙层
  • AWS实战 - 利用IAM对S3做访问控制
  • canvas 五子棋游戏
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • HTML5新特性总结
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Python_OOP
  • rabbitmq延迟消息示例
  • Selenium实战教程系列(二)---元素定位
  • Spring声明式事务管理之一:五大属性分析
  • SQLServer之创建显式事务
  • vue:响应原理
  • 闭包,sync使用细节
  • 记一次用 NodeJs 实现模拟登录的思路
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 思维导图—你不知道的JavaScript中卷
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • # 数仓建模:如何构建主题宽表模型?
  • #1014 : Trie树
  • #window11设置系统变量#
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (补)B+树一些思想
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core 6 redis操作类
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net项目IIS、VS 附加进程调试
  • [012-1].第12节:Mysql的配置文件的使用