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,使用世界、英国、商业等新闻领域的数据训练,在新闻中其它类别(如健康、技术等)的数据上测试。

相关推荐
余生H34 分钟前
transformer.js(三):底层架构及性能优化指南
javascript·深度学习·架构·transformer
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工1 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz1 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
罗小罗同学1 小时前
医工交叉入门书籍分享:Transformer模型在机器学习领域的应用|个人观点·24-11-22
深度学习·机器学习·transformer
孤独且没人爱的纸鹤1 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭1 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~1 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码1 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng11331 小时前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类