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

【论文笔记】Prefix-Tuning: Optimizing Continuous Prompts for Generation

🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


基本信息

标题: Prefix-Tuning: Optimizing Continuous Prompts for Generation
作者: Xiang Lisa Li, Percy Liang
发表: ACL 2021
arXiv: https://arxiv.org/abs/2101.00190

基本信息

摘要

微调是利用大型预训练语言模型进行下游任务的事实上的方法。

然而,微调会修改所有语言模型参数,因此需要为每个任务存储一个完整副本。

在本文中,我们提出了Prefix-tuning,这是一种轻量级的自然语言生成任务微调替代方案,它保持语言模型参数冻结,并优化一系列连续的任务特定向量,我们称之为Prefix。

Prefix-tuning从语言模型的提示中汲取灵感,允许后续标记将此Prefix视为“虚拟token”。

我们将Prefix-tuning应用于GPT-2进行表格到文本生成,以及应用于BART进行摘要。

我们表明,通过仅修改0.1%的参数,Prefix-tuning在全数据设置中获得了可比的性能,在低数据设置中优于微调,并且更好地推广到训练期间未见过的主题示例。

Fine-tuning (top) updates all LM parameters (the red Transformer box) and requires storing a full model copy for each task

全量微调(上方)更新所有LM参数(红色Transformer框)并需要为每个任务存储完整模型副本。我们提出Prefix-tuning(下方),冻结LM参数,仅优化Prefix(红色Prefix块)

Prefix-Tuning

Prefix-Tuning

实验

Metrics (higher is better, except for TER) for table-to-text generation on E2E (left), WebNLG (middle) and DART (right)

性能指标(除TER外,数值越高越好)用于E2E(左侧)、WebNLG(中间)和DART(右侧)的表格到文本生成。

(Left) qualitative examples in lowdata settings. (Right) prefix-tuning (orange) outperforms fine-tuning (blue) in low-data regimes in addition to requiring many fewer parameters.

(左)低数据环境中的定性示例。(右)前缀调整(橙色)在低数据机制中优于微调(蓝色),并且需要更少的参数。

Performance of methods on the XSUM summarization dataset

XSUM摘要数据集上方法的性能。

Extrapolation performance on XSUM

XSUM上的外推性能。

Prefix length vs. performance on summerization (left) and table-to-text (right)

XSUM上的外推性能。前缀长度与摘要(左)和表格到文本(右)的性能对比。

Intrinsic evaluation of Embedding-only and Infixing

内嵌式和插入式的内在评估。

Initializing the prefix with activations of real words significantly outperforms random initialization, in low-data settings

初始化前缀时,使用真实单词的激活效果显著优于随机初始化,尤其是在低数据集环境下。

Data efficiency curves: percentage of training set vs. performance on table-to-text (E2E)

数据效率曲线:训练集百分比与表格到文本(端到端)性能对比。


http://www.kler.cn/a/393166.html

相关文章:

  • Spark生态圈
  • 【unity c#】深入理解string,以及不同方式构造类与反射的性能测试(基于BenchmarkDotNet)
  • 面试突击-JAVA集合类(持续更新...)
  • [C/C++]new/delete 和 malloc/free 的区别?
  • C++ 面向对象编程:继承、继承方式
  • C++、Python有哪些相同和不同
  • Spring框架之策略模式 (Strategy Pattern)
  • NoETL
  • 【网络安全】OSI网络安全体系结构
  • 接口自动化分支管理规范
  • Android音频架构
  • <websocket><PLC>使用js和html实现webscoket,与PLC进行socket通讯的实例
  • SPSS频率统计计算公式示例
  • 电子电气架构 ---车载以太网络环境下的安全威胁
  • 1. ShardingJDBC实际使用01
  • 详解机器学习经典模型(原理及应用)——DBSCAN
  • C++网络编程之SSL/TLS加密通信
  • turtlesim修改窗口大小;添加自己的小乌龟;
  • React Native 全栈开发实战班 - 列表与滚动视图
  • 【无线传感器网络】数据集合集!
  • 云服务器搭建及Docker使用---清风
  • 贪心算法理论
  • 集群聊天服务器(2)Json介绍
  • android studio中按钮提示Hardcoded string “XX“, should use `@string` resource
  • 【windows 下使用 tree】
  • sql专题 之 where和join on