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

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计算,每一层都保持不变。不知道是不是这个意思,希望看到的大佬可以指正~

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值