1. 介绍

在某些情况下,GPT-3可以在没有任何特定任务调整的情况下部署。用户只需预先准备一个自然语言任务指令(例如摘要任务的指示为:TL​​;DR)和一些例子拼接到输入,然后就可以从LM生成输出。这种方法被称为情境学习(in-context learning)或提示(prompting)。

受到提示的启发,这篇论文提出了Prefix-tuning——一个自然语言生成 (NLG) 任务微调的轻量级替代方案。如下图所示,Fine-tuning更新transformer的所有参数(红色部分表示参数更新),因此对于不同的任务,都要保存微调后整个模型的参数;而Prefix-tuning将一系列连续的任务特定向量添加到输入中,这些向量称为Prefix(前缀),与GPT-3添加的真实tokens提示不同,Prefix是虚拟的tokens。Prefix-tuning训练期间冻结transformer的参数,只更新Prefix的参数,这样,我们只需要存储大型Transformer的一个副本和学习到的特定于任务的前缀,为每个附加任务产生非常小的开销。

2. Prefix为何有效? 离散or连续?

论文指出,适当的上下文提示可以在不改变模型参数的情况下,引导模型的输出。例如,如果我们希望模型生成一个单词(例如,Obama),我们可以将其常见搭配作为上下文(例如,Barack),模型就会为所需的单词分配更高的概率。将这种直觉扩展到生成单个单词或句子之外,我们想要找到一个上下文来引导语言模型解决 NLG 任务。然而这样的上下文的存在并不明显,比如说“用一句话概括下表”这样的提示对大部分预训练模型都不起作用(除了GPT-3),无法引导模型执行table-to-text任务。利用训练数据自动寻找最佳的指示可能会有所帮助,但是离散优化在计算上有挑战性。因此,论文用连续的词向量前缀代替离散的tokens,让模型自己根据训练数据去学习任务特定的前缀,免去了人工设计前缀的麻烦,减去了离散优化前缀的繁琐,同时扩大了前缀可学习的空间。

如上图所示, Prefix-tuning 为自回归模型添加前缀以获得输入z=[PREFIX;x;y],或者为编码器译码器添加前缀以获得输入z = [ P R E F I X ; x ; P R E F I X'; y ]P_{idx}表示前缀索引的序列,|P_{idx}|来表示前缀的长度。Prefix-tuning会初始化一个大小为|P_{idx}| \times dim(h_{i}) 的可训练参数矩阵P_{\Theta },其中dim(h_{i})表示transformer的第i时刻的隐状态维度。当i在前缀范围内时,直接从矩阵中取出前缀对应的向量作为该时刻的隐向量(Prefix在每一层都保持一致?),其他时刻利用模型的attention机制进行生成:

此外,作者在实验中发现,直接优化Prefix参数矩阵P_{\Theta }对学习率和初始化非常敏感,因此作者定义了一个中间矩阵P'_{\Theta }辅助学习,先初始化一个维度相对小的参数矩阵,然后借助MLP将其映射到维度dim(h_{i}),一旦训练完成,这些额外的参数就可以去掉,只需要保存前缀(P_{\Theta })。

3. 疑惑

论文7.2节做了一个对比实验,对比了离散prompt、embedding-only ablation和本文的prefix-tuning的实验效果,离散prompt指的是使用自然语言模板作为提示,疑惑点在于embedding-only ablation,根据本人的理解,embedding-only ablation应该指的是将添加的连续前缀向量视为虚拟tokens,在transformer的每一层都要更新,由attention机制计算得到新的状态向量;而prefix-tuning添加的前缀向量不参与attention计算,每一层都保持不变。不知道是不是这个意思,希望看到的大佬可以指正~

论文笔记:Prefix-Tuning: Optimizing Continuous Prompts for Generation相关推荐

  1. 论文解读:Prefix-Tuning: Optimizing Continuous Prompts for Generation

    论文解读:Prefix-Tuning: Optimizing Continuous Prompts for Generation  &emps;本文我们提出一种prefix-tuning方法, ...

  2. Prefix-Tuning: Optimizing Continuous Prompts for Generation翻译

    摘要 微调是利用大型预训练语言模型来执行下游任务时所使用的方法.但是,它修改了语言模型中所有模块的参数,因此需要为每个任务存储全拷贝.在本文中,我们提出了Prefix-Tuning,一种轻量级替代方法 ...

  3. 【论文笔记】GeDi:Generative Discriminator Guided Sequence Generation

    GeDi: Generative Discriminator Guided Sequence Generation 文章目录 GeDi: Generative Discriminator Guided ...

  4. 论文笔记 | 谷歌 Soft Prompt Learning ,Prefix-Tuning的 -> soft promt -> p tuning v2

    论文笔记 | 谷歌 Soft Prompt Learning ptuning -> Prefix-Tuning -> soft promt -> p tuning v2 " ...

  5. 《CPT COLORFUL PROMPT TUNING FOR PRE-TRAINED》 论文笔记

    文章目录 摘要 1. NTRODUCTION 2 PRELIMINARY 3. CROSS-MODAL P ROMPT TUNING (CPT) 3.1 OVERVIEW 3.2 VISUAL SUB ...

  6. 【论文笔记】Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP

    摘要 Unlike traditional supervised learning, which trains a model to take in an input x and predict an ...

  7. Deep Learning论文笔记之(二)Sparse Filtering稀疏滤波

    Deep Learning论文笔记之(二)Sparse Filtering稀疏滤波 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看 ...

  8. Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记

    Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记 一.Abstract 二.引言 三.R ...

  9. 论文笔记【A Comprehensive Study of Deep Video Action Recognition】

    论文链接:A Comprehensive Study of Deep Video Action Recognition 目录 A Comprehensive Study of Deep Video A ...

最新文章

  1. 怎样能拿到第一份编程工作?这里告诉你答案 | 码书
  2. 快讯 | 第二届数据标准化及治理大会成功举办,清华力量助推中国数据标准化建设
  3. Android严苛模式StrictMode使用与取消
  4. JAVA WEB开发环境与搭建
  5. UA OPTI512R 傅立叶光学导论5 光学常用基本函数回顾
  6. tensorflow padd
  7. Java线程详解(3)-线程栈模型与线程的变量
  8. 腾讯专家教你如何保证应用开发安全
  9. 网格布局每个网格都能放置一个组件_Android综合试题
  10. 膜拜大佬!不同层级的Android开发者的不同行为,社招面试心得
  11. 又一款5G手机获进网许可 开售在即 你会尝鲜吗?
  12. Python os.system()调用.sh脚本
  13. 库存盘点后的盘点差异解决方法
  14. 并行接口芯片8255与定时器/计数器接口芯片8253
  15. 欧拉运动放大算法实现心率检测
  16. PowerPoint基础操作-PowerPoint学习记录-8.1/2/3/4
  17. 苹果、google、微软的那些事(iPhone)
  18. 71.JAVA编程思想——JAVA与CGI
  19. bcache / 如何使用bcache构建LVM,软RAID / 如何优化bcache
  20. 西门子S7-1500PLC大型程序,各种FB块PTO控制20多个轴

热门文章

  1. 黑马程序员——JAVA菜鸟修炼记之天下大势:Java体系鸟瞰
  2. jsbarcode 条形码
  3. 产品结构设计学习笔记--结构工程师更新ing
  4. Extjs6 gridPanel排序与获取Store的排序信息
  5. JS输出100以内的素数
  6. FPGA学习回顾之SPI的使用
  7. 情感驿站 | 什么叫跟对人,才能做对事?
  8. MySQL_帐号密码匹配规则与命名规范
  9. NFS(网络文件系统)基于什么协议
  10. 解决MSN登陆不了的几种方法