论文 | 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. 模式重构 (Pattern Reframing):
问题: LM 往往忽略抽象描述,难以理解需要背景知识的内容。
方法: 找到目标任务的低级模式,并在指令中添加这些模式。
示例: 将“生成一个需要常识来回答的问题”重构为“使用 ‘可能会发生什么’、‘将会…?’、‘为什么可能会’、‘什么可能导致了’、‘关于什么可能是真的’、‘什么可能是真的’、‘什么必须’ 以及类似的短语来提问”。
- 2. 项目化重构 (Itemizing Reframing):
问题: LM 难以遵循包含多个要求的长段落指令,并且对否定陈述的处理效果不佳。
方法: 将长段落分解为包含多个要求的子弹点列表,并将否定陈述转换为肯定陈述。
示例: 将“根据给定的上下文单词生成输出。做 < >。做 < >。不要 < >”重构为“根据给定的上下文单词生成输出。- 做 < >- 做 < >- 做 < >”。
- 3. 分解重构 (Decomposition Reframing):
问题: LM 难以处理需要多步推理的复杂任务。
方法: 将复杂的任务分解为多个不同的子任务,这些子任务可以按顺序或并行执行。
示例: 将“根据给定的上下文单词,你需要创建一个包含空格 (_) 及其对应答案的句子对。句子对应该看起来相似,并且应该关于两个相关但不同的对象;例如 ‘奖杯’ 和 ‘手提箱’。此外,句子必须在触发词(例如 ‘小’ 和 ‘大’)方面有所不同,这些触发词表达了两个对象之间对比属性。”重构为五个子任务:1) 基于给定的上下文单词写两个对象;2) 写一个连接对象的句子;3) 从句子中创建一个填空题;4) 修改问题,使答案翻转;5) 生成问题和答案。
- 4. 限制重构 (Restraining Reframing):
问题: LM 可能会偏离其预训练目标,例如,在预测问题类型时回答问题,或在阅读理解任务中根据背景知识回答问题。
方法: 在任务指令中添加关于输出生成的约束条件。
示例: 将“给定问题对应答案的类型是什么?数字、日期还是跨度?”重构为“给定问题对应答案的类型是什么?数字、日期还是跨度?请回答数字、日期或跨度”。
- 5. 专业化重构 (Specialization Reframing):
问题: LM 忽略通用指令,并且可能误解输出格式,尤其是在指令中包含冗余文本时。
方法: 将指令重新表述为直接描述低级任务的指令,并删除所有重复和通用的陈述。
示例: 将“回答以下问题”重构为“计算以下问题的答案。你需要添加或减去问题中与两个对象相关的数字”。
实验结果
论文在 NATURAL INSTRUCTIONS 数据集上进行了广泛的实验,比较了原始指令和重构指令在不同模型上的表现。主要发现如下:
重构指令优于原始指令和基线方法: 在少样本和零样本学习设置中,重构指令在 ROUGE-L 指标上均优于原始指令、模式选择基线、校准方法和最大示例方法。
重构指令在不同模型上表现一致: 重构指令在不同模型上均表现出一致的性能提升,这表明重构指令对不同架构的模型具有泛化能力。
重构指令与监督学习模型相当: 在一些任务类别中,重构指令在少样本学习设置中甚至优于监督学习模型,这表明重构指令可以有效地利用大型语言模型的知识。
相关文章:
论文 | Reframing Instructional Prompts to GPTk’s Language
作者:Swaroop Mishra, Daniel Khashabi, Chitta Baral, Yejin Choi, Hannaneh Hajishirzi 论文摘要:语言模型 (LM) 更容易遵循哪些类型的指令提示? 我们通过进行广泛的实证分析来研究这个问题,这些分析阐明了成功指令提示的重要特…...
C++ Qt / VS2019 +opencv + onnxruntime 部署语义分割模型【经验2】
前序工作 C Qt / VS2019 opencv onnxruntime 部署语义分割模型【经验】 引言 前序工作中介绍了Pytorch模型如何转为ONNX格式,以及在Python中如何使用onnx模型 介绍了如何在VA或QT中配置Onnxruntime运行库 本文重点列出全部源代码及其使用 依赖库 onnxruntime…...
代码随想录算法训练营Day9
232.用栈实现队列 Collection——List——Vector类——Stack类 class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue() {stackInnew Stack();stackOutnew Stack();} public void push(int x) {stackIn.push(x);}public int pop() {no…...
2025秋招NLP算法面试真题(二十)-有监督微调基本概念
1.基本概念 1.微调方法是啥?如何微调? 微调(Fine-tuning)是一种迁移学习的方法,用于在一个预训练模型的基础上,通过在特定任务的数据上进行有监督训练,来适应该任务的要求并提高模型性能。微调利用了预训练模型在大规模通用数据上学习到的语言知识和表示能力,将其迁移…...
使用宝塔部署项目在win上
项目部署 注意: 前后端部署项目,需要两个域名(二级域名,就是主域名结尾的域名,需要在主域名下添加就可以了),前端一个,后端一个 思路:访问域名就会浏览器会加载前端的代…...
[大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
Generation of Complex 3D Human Motion by Temporal and Spatial Composition of Diffusion Models L Mandelli, S Berretti - arXiv preprint arXiv:2409.11920, 2024 通过时间和空间组合扩散模型生成复杂的3D人物动作 摘要 本文提出了一种新的方法࿰…...
vue 引入 esri-loader 并加载地图
记录一下: npm i esri-loader 引入css 在app.vue中 <style> import url(https://js.arcgis.com/4.6/esri/css/main.css); </style> 新建js文件 在js文件中引入esri-loader 并加载其init.js文件 加载init.js 需要其中的loadScript 部分如下&…...
LobeChat:使用服务端数据库部署 - Docker+NextAuth(github)+腾讯云
总流程 Docker部署 身份验证服务-NextAuth github S3存储服务 腾讯云COS 1. 安装Docker brew install docker --cask2. 创建pgvector容器(PostgresSQL) docker run --name [myPgvector] -p 5432:5432 -e POSTGRES_PASSWORD[pwd] -d -e POSTGRES_USER[username] pgvector/…...
长列表加载性能优化
一、长列表优化概述 列表是应用开发中最常见的一类开发场景,它可以将杂乱的信息整理成有规律、易于理解和操作的形式,便于用户查找和获取所需要的信息。应用程序中常见的列表场景有新闻列表、购物车列表、各类排行榜等。随着信息数据的累积,特…...
Vue ElemetUI table的行实现按住上下键高亮上下移动效果
1、添加初始化的方法 // 添加键盘事件监听器: mounted() {window.addEventListener(keydown, this.handleKeydown);}, // 这段代码的作用是在 Vue 组件销毁之前移除一个键盘事件监听器 // 这样做可以确保当组件不再使用时,不会留下任何未清理的事件监听…...
windows C++-指定特定的计划程序策略
通过计划程序策略,可控制计划程序在管理任务时使用的策略。 本文演示如何使用计划程序策略来增加将进度指示器打印到控制台的任务的线程优先级。 示例 以下示例并行执行两个任务。 第一个任务计算第 n 个斐波那契数。 第二个任务将进度指示器打印到控制台。 第一…...
python脚本程序怎么写更优雅?argparse模块巧妙应用
前言 命令行程序,也称CLI程序,另一个直观的名字是脚本程序,简称脚本,由于没有图形用户界面(GUI),所以脚本程序常见的交互方式有3种: 1、脚本程序中读取环境变量,比如env…...
【React】(推荐项目)使用 React、Socket.io、Nodejs、Redux-Toolkit、MongoDB 构建聊天应用程序 (2024)
使用 React、Socket.io、Nodejs、Redux-Toolkit、MongoDB 构建聊天应用程序 (2024) 学习使用 React、Socket.io、Node.js、Redux-Toolkit 和 MongoDB 构建响应式实时消息聊天应用程序。这个项目涵盖了从设置到实施的所有内容,提供了宝贵的见解和实用技能。无论您是…...
C++:std::move 和 std::forward
先说结论: std::forward:用于完全按照传递的参数转发,保留其值类别(左值或右值)std::move:用于将对象转换为右值引用,通常用于启用移动语义并转移所有权 示例: 先看一个简单的示例࿰…...
PHP探索校园新生态校园帮小程序系统小程序源码
探索校园新生态 —— 校园帮小程序系统,让生活更精彩! 🌱【开篇:走进未来校园,遇见新生态】🌱 你是否厌倦了传统校园的繁琐与单调?是否渴望在校园里也能享受到便捷、智能的生活体验࿱…...
通信工程学习:什么是MANO管理编排
MANO:管理编排 MANO:Management and Network Orchestration(管理和网络编排)在网络功能虚拟化(NFV)架构中扮演着至关重要的角色。MANO是一个由多个功能实体组合而成的层次,这些功能实体负责管理…...
备战软考Day04-计算机网络
1、计算机网络的分类 2、七层网络体系结构 3、网络的设备与标准 4、TCP/IP协议族 TCP/IP作为Internet的核心协议,被广泛应用于局域网和广域网中,目前已成为事实上的国际标准 1、TCP/IP分层模型 TCP/IP协议是Internet的基础和核心,和OSI参考…...
可以把台式电脑做成服务器吗
是的,台式电脑可以被改造成服务器。以下是一些步骤和考虑因素,可以帮助你实现这一目标: 1. 选择合适的操作系统 Windows Server:如果你习惯于Windows环境,可以选择Windows Server版本,适合运行多种服务&a…...
JavaScript 输出方式
JavaScript 提供了多种输出方式,用于在浏览器中显示信息。以下是几种常见的输出方式及其详细代码示例: 1. console.log() 用于在浏览器的开发者控制台输出信息,常用于调试。 优点: 调试方便:可以输出任意类型的数据&…...
微服务(一)
目录 一、概念 1、单体架构 2、微服务 3、springcloud 二、微服务的拆分 1、微服务的拆分原则 1.1 什么时候拆 1.2 怎么拆 2、服务调用 2.1 resttemplate 2.2 远程调用 一、概念 1、单体架构 单体架构(monolithic structure):顾名…...
SDXL动画生成实战:AnimateDiff与Hotshot-XL效果对比与配置详解
1. SDXL动画生成工具概览 最近在玩SDXL动画生成的朋友应该都听说过AnimateDiff和Hotshot-XL这两款神器。作为目前最主流的两个文生视频开源工具,它们都能基于SDXL模型将静态图片转换成动态视频。不过在实际使用中,我发现两者的效果差异还挺明显的。 先说…...
Java应用性能监控利器zorka:嵌入式APM的深度定制与实战
1. 项目概述:一个被低估的Java应用性能监控利器如果你是一名Java后端开发者或系统运维,肯定对应用性能监控(APM)不陌生。市面上有New Relic、Dynatrace这样的商业巨兽,也有Pinpoint、SkyWalking这类开源明星。但今天我…...
物联网设备网络无缝切换与多网融合:exnetif模块实战指南
1. 项目概述:为什么我们需要exnetif? 在物联网项目的实际开发中,我遇到过太多因为网络环境不稳定而导致的“玄学”问题。比如,一个部署在工厂车间的智能网关,原本通过稳定的有线以太网连接云端,一旦生产线调…...
英雄联盟国服换肤终极指南:R3nzSkin免费体验全皮肤
英雄联盟国服换肤终极指南:R3nzSkin免费体验全皮肤 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 厌倦了英雄联盟国服中单调的默认皮肤&am…...
大多数癌症没有微生物组?Cell:有还是无,这是个问题
小编导读:这项发表于《Cell》的重磅研究对16,369个肿瘤全基因组进行了系统的微生物信号分析,开发并验证了名为PathSeq-T2T的宿主过滤与去污染流程。研究发现,大多数癌症类型的微生物信号在去污染后与背景无法区分,唯有口消化道癌&…...
Loop窗口管理:5个高效工作流提升你的Mac生产力
Loop窗口管理:5个高效工作流提升你的Mac生产力 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop Loop是一款为macOS设计的优雅窗口管理工具,通过径向菜单、快捷键绑定和智能窗口操…...
Contextcore:轻量高性能的框架无关状态管理核心
1. 项目概述:一个为现代前端应用量身定制的状态管理核心 如果你正在开发一个中大型的React、Vue或任何现代前端应用,并且对现有状态管理库的复杂性、样板代码量或者性能优化感到头疼,那么 lucifer-ux/Contextcore 这个项目很可能就是你一直…...
NCM解密终极指南:3步释放网易云音乐到任何播放器
NCM解密终极指南:3步释放网易云音乐到任何播放器 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现只能在特定应用中播放?当你想要将音乐迁移到其他设…...
实战演练:C#窗体交互式绘图控件开发全流程
1. 从零搭建绘图控件开发环境 第一次接触C#绘图控件开发时,我踩过不少环境配置的坑。现在回想起来,其实只要把握几个关键点就能快速搭建开发环境。首先打开Visual Studio(建议2019或2022版本),选择"新建项目"…...
3步快速上手AnotherRedisDesktopManager:Redis桌面管理终极指南
3步快速上手AnotherRedisDesktopManager:Redis桌面管理终极指南 【免费下载链接】AnotherRedisDesktopManager 🚀🚀🚀A faster, better and more stable Redis desktop manager [GUI client], compatible with Linux, Windows, Ma…...
