一、概述

title:Decoder Tuning: Efficient Language Understanding as Decoding

论文地址:https://arxiv.org/abs/2212.08408

代码:GitHub - thunlp/DecT

二、Motivation

  1. 现在有很多模型只提供API,没法直接训练,并且是按请求次数计费的,成本也比较高。
  2. 之前大模型微调方法主要是冻结原始模型,在输入层进行tuning,但是该方法缺乏梯度信号,训练比较难,训练过程需要请求上千次api,带来的计算和时间成本都比较高。

三、方法

1 PipeLine of DecT

在黑盒模型的输出端进行tuning,提升其在下游任务的表现

pipeline解读:

  • 输入:构建人工temple,引入MASK,拼接原始文本作为输入,有点类似prompt design方法。
  • ProtoNet模型(本地知识):训练一个ProtoNet模型,其训练特征来自MASK对应的隐藏层的特征。
  • 模型带来的先验知识:直接拿原始PTM预测的label的分数。
  • 输出:将ProtoNet模型结果和PTM API的预测score(topk类别PLM模型预测结果)融合作为输出。

2 输入输出以及融合方法

  • Dec()为可训练的模型,sk为PLM预测的logit,l为融合权重

3 PLM原始模型权重标定方法

  • 原始PLM预测的结果高频词预测概率高,这里对其概率重新进行了标定。

4 ProtoNet模型选择原因

  • Prototypical方法在few-shot和prompt-based tuning方法效果比较好,所以选择该模型作为对mask特征进行tuiling的模型。

四、Conclusion

  1. 相当于在一个黑盒的PLMs情况下,只提供api接口,做了一个高效适配下游任务的方法(主要是分类任务)
  2. few-shot效果又快又好,比所有baseline都好,并且速度提升200倍

五、limitation

  1. 提供了一个黑盒PTMs的下游任务训练方法,但是当数据量扩大后,比fine-tuning方法效果还是差不少,特别是在一些比较难的任务上。
  2. 只在分类任务上做了尝试,没有测试自由形式的文本生成任务。

六、基础实验结果

1 实验baseline设置

  • prompt方法:是指使用模板包装的示例直接执行零样本分类。
  • 上下文学习(ICL):测试样本之前进一步连接了一些示例。
  • BBT(Sun等人,2022b)使用进化算法优化soft prompt方法。
  • BBTv2(Sun等人,2022a)进一步将深度提示插入中间层,以获得更好的性能。
  • RLPrompt(Deng等人,2022年)是另一种最新的算法,通过强化学习优化离散提示。
  • PromptBoosting(Hou等人,2022年)是一项应用boosting算法应用到prompt ensembling。
  • backbone:roberta-large

2 zero-shot和few-shot实验结果

  • 大部分zero-shot和few-shot效果都比之前的模型好,只有在MNLI数据集上,ICL的1-shot方法表现好一些,但是ICL由于输入长度限制,不可能输入非常多的样本。

3 与fine-tuning全量tuning对比

  • 在一些难的任务上,训练数据在256个的时候,就搞不过fine-tuning了

七、消融实验结果

1 Protonet模型参数的影响(1、4、6是啥意思?)

  • 发现s,r都有的时候,特别是1的时候,提升比较大。

2 选MLP还是ProtoNet作为模型呢?

  • ProtoNet在1-shot的时候,比MLP好的非常多,说明ProtoNet模型的few-shot能力还是比较强的

3 融合权重l的影响

  • 说明l=1的时候,效果最好?

4 不同模板Template的影响

  • 随便一个Template,DecT本文方法比Prompt方法都要高不少,说明本文方法的有效性。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐