Prefix-Tuning 论文概述

Prefix-Tuning 论文概述

  • 前缀调优:优化生成的连续提示
    • 前言
    • 摘要
    • 论文十问
    • 实验
      • 数据集
      • 模型
      • 实验结论
      • 摘要任务
      • 泛化性能

前缀调优:优化生成的连续提示

前言

大规模预训练语言模型(PLM)在下游自然语言生成任务中广泛采用fine-tuning的方法进行adaptation。但是fine-tuning需要更新模型所有的参数,对于每个任务都需要保存一份完整的模型拷贝,存储成本很高。文章提出prefix-tuning方法,其只优化一个小的连续任务特定向量(称为prefix),KEEP 语言模型参数固定。该方法受prompting的启发,允许后续token参考这个prefix,就像参考一系列“虚拟token”。

文章将prefix-tuning应用于GPT-2在表格到文本生成任务和BART在摘要任务上。结果显示,只学习0.1%的参数,prefix-tuning获得与fine-tuning相当的性能;在低数据设置下,prefix-tuning优于fine-tuning;在extrapolation设置下评估泛化能力时,prefix-tuning也优于fine-tuning。

Prefix-tuning是一个轻量级的fine-tuning替代方法,大大减少了每个任务的存储成本。它通过优化一个小的、连续的、任务特定的prefix来steering一个固定的语言模型完成下游生成任务。
在这里插入图片描述

摘要

微调是利用大型预训练语言模型执行下游任务的事实上的方法。然而,它修改了所有语言模型参数,因此需要为每个任务存储完整副本。

在本文中,我们提出了前缀调优,这是自然语言生成任务微调的一种轻量级替代方案,它保持语言模型参数冻结,但优化了所有连续的特定于任务的向量(称为前缀)。前缀调整从提示中汲取灵感,允许后续令牌关注该前缀,就好像它是"虚拟令牌"一样。

我们将前缀调整应用于 GPT-2 以生成表到文本,并将前缀调整应用于 BART 以进行摘要。我们发现,通过仅学习 0.1% 的参数,前缀调整在完整数据设置中获得了相当的性能,在低数据设置中优于微调,并且更好地推断出训练期间未见过的主题的示例。

论文十问

  1. 论文试图解决什么问题?

这篇论文试图解决大型预训练语言模型微调所带来的存储成本问题。

  1. 这是否是一个新的问题?

这是一种新提出的问题。过去关注更多的是大型预训练语言模型微调的计算成本。

  1. 这篇文章要验证一个什么科学假设?

主要是提出 prefix tuning 这一方法来解决大型预训练语言模型微调中的存储问题。

  1. 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?

相关研究包括轻量级微调方法、提示学习等。值得关注的研究员包括文章作者李香丽(Xiang Lisa Li)和梁培杰(Percy Liang)。

  1. 论文中提到的解决方案之关键是什么?

文章提出的关键解决方案是 prefix tuning,只优化一个小的连续任务特定向量(prefix),保持PLM参数固定。

  1. 论文中的实验是如何设计的?

在GPT-2和BART上分别进行表格到文本生成和摘要生成任务的实验。使用标准数据集进行评估。

  1. 用于定量评估的数据集是什么?代码有没有开源?

使用的数据集有E2E、WebNLG、DART、XSUM。代码开源。

  1. 论文中的实验及结果有没有很好地支持需要验证的科学假设?

实验结果充分验证了prefix tuning相比微调可以获得可比性能,使用的参数量只有微调的千分之一。

  1. 这篇论文到底有什么贡献?

主要贡献是提出prefix tuning这一参数高效的PLM适配方法。

  1. 下一步呢?有什么工作可以继续深入?

下一步可以研究这种方法适配的理论解释,以及在更多下游任务和更大模型上验证这种方法的有效性。

实验

数据集

  • 表格到文本生成任务使用E2E、WebNLG和DART数据集。
  • 摘要任务使用XSUM数据集。

模型

  • 表格到文本生成对比了fine-tuning、只fine-tune顶层2层(FT-TOP2)、adapter-tuning和prefix-tuning。
  • 摘要任务对比了fine-tuning和prefix-tuning。

实验结论

  • 在充分数据设置下,prefix-tuning和fine-tuning在E2E表格到文本生成任务上的性能相当;在XSUM摘要任务上prefix-tuning性能略低。
  • 在低数据设置下,prefix-tuning的平均性能优于fine-tuning。
  • 在 extrapolation 设置下评估泛化能力,prefix-tuning也优于fine-tuning。
  • prefix-tuning只更新了0.1%的参数,远少于fine-tuning,但性能接近或超过fine-tuning。

在这里插入图片描述

摘要任务

摘要任务结果如上表所示,prefix-tuning和全量微调还是有差距,这与文本生成任务的结果有所不同,有如下几点原因:

  • XSUM数据集是三个table-to-text数据集的三倍。
  • 输入的文章比table-to-text的输入长17倍。
  • 摘要任务更复杂,因为需要从文本中挑选关键内容。

在这里插入图片描述

泛化性能

这里探索模型的泛化性能,即模型在未见过的主题上的数据上的表现。为此,作者对数据集进行了重新划分:

对于表格到文本任务,WebNLG数据集原本包含9个训练和验证中出现的类别(标记为SEEN),以及5个仅在测试集中出现的类别(标记为UNSEEN)。作者使用SEEN类别的数据进行训练,在UNSEEN类别的数据上进行测试,来评估模型的泛化能力。

对于摘要任务,构建了两个数据分割。第一个是news-to-sports,使用新闻文章进行训练,在体育文章上测试。第二个是within-news,使用世界、英国、商业等新闻领域的数据训练,在新闻中其它类别(如健康、技术等)的数据上测试。

在这里插入图片描述

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

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

相关文章

android studio安装SDK时无法勾选

这两天帮助学妹安装android studio安装SDK时无法勾选,记录一下最终解决办法。头大。 核心 360 问题 网上所有方法都尝试了包括挂梯子,改hosts,盘符权限等等。 最终解决下载360 使用这两个,DNS注意要用8.8.8.8的 成功解决

超硬核解析Mybatis动态代理原理!只有接口没实现也能跑?

文章目录 前言Mybatis dao层两种实现方式的对比原始Dao开发原始Dao开发的弊端 基于Mapper动态代理的开发方式 Mybatis动态代理实现方式的原理解析动态代理调用链路解析先给出链路调用结果1、调用方法的开始:session.getMapper2、DeaultSqlSession的getMapper3、Conf…

Selenium自动化测试:通过cookie绕过验证码的操作

验证码的处理 对于web应用,很多地方比如登录、发帖都需要输入验证码,类型也多种多样;登录/核心操作过程中,系统会产生随机的验证码图片,进行验证才能进行后续操作 ​解决验证码的方法如下: 1、开发做个万…

西瓜书-主要符号表

主要符号表 LaTeX符号说明How to read letter?\mathit{x}标量\boldsymbol{x}向量\mathrm{x}变量集\mathbf{A}矩阵\mathbf{I}单位阵\mathcal{X}样本空间或状态空间calligraphic X\mathcal{D}概率分布Ɗ calligraphic D\mathit{H}数据样本(数据集)\mathcal{H}假设空…

基于OpenCV的手势1~5识别系统(源码&环境部署)

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义: 随着计算机视觉技术的快速发展,手势识别系统在人机交互、虚拟现实、智能监控等领域得到了广泛应用。手势识别系统可以通过分析人体的手势…

LTO编译器优化介绍以及开启方法

文章目录 LTO介绍LTO 开启方法 LTO介绍 LTO(Link Time Optimization,链接时优化)是一种在链接阶段进行优化的技术。传统的编译过程中,编译器仅能对单个编译单元进行优化。LTO 允许编译器看到跨编译单元的代码,从而进行…

jquery 判断是手机端还是电脑端

判断为手机端: var sUserAgent navigator.userAgent.toLowerCase(); var bIsIpad sUserAgent.match(/ipad/i) "ipad"; var bIsIphoneOs sUserAgent.match(/iphone os/i) "iphone os"; var bIsMidp sUserAgent.match(/midp/i) "mid…

【开源】基于Vue和SpringBoot的快递管理系统

项目编号: S 007 ,文末获取源码。 \color{red}{项目编号:S007,文末获取源码。} 项目编号:S007,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快…

【读书笔记】微习惯

周日晚上尝试速读一本书《微习惯》,共七章看了下目录结构并不复杂,计划每章7-8分钟读完, 从20:15-21:00。读的时候,订下闹钟,催促着自己的进度。边读边记了一些要点和微信读书里面的划线。 第六章实践内容最为丰富&…

“此应用专为旧版android打造,因此可能无法运行”,问题解决方案

当用户在Android P系统上打开某些应用程序时,可能会弹出一个对话框,提示内容为:“此应用专为旧版Android打造,可能无法正常运行。请尝试检查更新或与开发者联系”。 随着Android平台的发展,每个新版本通常都会引入新的…

wvp gb28181 pro 平台国标级连功能说明

国标28181不同平台之间支持两种连接方式,平级和上下级,WVP目前支持向上级级联。 测试环境 测试平台上级:192.168.10.209(Alam centos8) 测试平台下级:192.168.10.206(ky10_x86) 下级…

KDE环境文件夹user-dirs为英文

KDE环境文件夹user-dirs 修改KDE主页文件夹为英文 该文件路径 ~/.config/user-dirs.dirs打开后会发现里面的内容如下 # This file is written by xdg-user-dirs-update # If you want to change or add directories, just edit the line youre # interested in. All local …

openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表

文章目录 openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表140.1 相关概念140.2 操作步骤140.3 维护建议 openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表 为了保证数据库的有效运行,数据库必须在插入/删除操作后,基于…

Ant Design Pro 框架设置API Token拦截器的功能

分享记录一个解决方法,希望对大家有帮助。 找到文件,然后定义一个方法。最后调用一下即可。 代码我也给你贴上了。 // 获取token 拦截方法 const setTokenRequest (config: any) > {const token 30|eh5GNXWRe5rO4XLjbbnqy132RABfiKqI338EoIhqc790a…

思维模型 反馈效应

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。反馈促进改进。 1 反馈效应的应用 1.1 反馈效应在营销中的应用 1 “可口可乐与百事可乐之战” 在 20 世纪 80 年代,可口可乐公司是全球最大的饮料公司之一,其市场…

利用reddit的api进行爬虫

1 介绍 Reddit是一个社交新闻聚合网站,用户可以发布、评价和讨论各种话题。Reddit的内容涵盖了广泛的主题,可以从中获取大量的文本数据进行情绪分析。 2 注册 2.1 注册reddit 你需要先注册一个reddit的账号。 2.2 注册api https://www.reddit.com/…

文科专业和编程基础薄弱的女孩子做软件的神器——aardio学习资源入门

相关资源 aardio 开发桌面应用,这几点必须要掌握! - 星安果的文章 - 知乎 https://zhuanlan.zhihu.com/p/430970376 从使用者角度来为aardio编程软件说句话 - popdes的文章 - 知乎 https://zhuanlan.zhihu.com/p/461290014 故事和情怀 优点 1 快捷 2 …

HarmonyOS开发(九):数据管理

1、概述 1.1、功能简介 数据管理为开发者提供数据存储、数据管理能力。 它分为两个部分: 数据存储:提供通用数据持久化能力,根据数据特点,分为用户首选项、键值型数据库和关系型数据库。数据管理:提供高效的数据管…

Bean的加载控制

Bean的加载控制 文章目录 Bean的加载控制编程式注解式ConditionalOn*** 编程式 public class MyImportSelector implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata annotationMetadata) {try {Class<?> clazz Class.forName("…

UCore-OS实验Lab0

实验内容&#xff1a;搭建ucore-os的实验环境 实验准备内容&#xff1a;vmware虚拟机&#xff0c;ubuntu22.04镜像&#xff0c;qemu7.0.0源码 ucore代码地址 GitHub - chyyuu/os_kernel_lab at x86-32 实验步骤&#xff1a; 在vmware中安装ubuntu&#xff0c;因为我个人喜欢…