PEFT

背景

1 本质是大模型训练/调优成本过高,才有了高效微调


image.png

2 通过in-context learning就能取得不错的成果,为什么还要微调——Hard Prompt
2.1 早期,各种尝试,总结最优实践
2.2 后期,提示词模板化
随着模型的变化,Prompt也会有变化

2.3 Prompt Template for AutoGPT:Made by LangChain
完成复杂任务

  • 基于指令选择不同的模型
  • 将指令拆解成多个子任务,拆解后检查小任务是否完成
  • 100~200行代码


    image.png

Bert(2018)

主要方案,上游预训练,下游微调
问题:预训练和微调都需要加载全部参数,需要大量GPU,训练成本高;寻人网需要重新微调


image.png

Adatper Tuning:PEFT (Parameter-Efficient Transfer Learning for NLP)

摘要:在自然语言处理(NLP)中,使用预训练模型进行微调是一种有效的迁移学习方法。然而,这种方法在面对大量下游任务时,参数效率低下,因为每个任务都需要全新的模型。为此,本文提出了一种名为adapter的模块化方法。Adapter模块能够生成紧凑且可扩展的模型,每个任务只需要增加少量可训练参数,而且新任务可以无需重新训练已存在的任务。原始网络的参数保持不变,实现了高度的参数共享。为了验证adapter的有效性,我们将最近提出的BERT Transformer模型应用于26个不同的文本分类任务,包括GLUE基准测试。结果显示,使用adapter可以达到接近最佳的性能,同时每个任务只增加了少量参数。在GLUE基准测试中,adapter的性能与完全微调的模型相差仅0.4%,而参数增加量仅为每个任务的3.6%。相比之下,微调则需要为每个任务训练100%的参数。综上所述,adapter是一种高效的迁移学习方法,可以应用于在线任务流,避免为每个新任务训练全新的模型。这种方法通过参数共享和少量可训练参数的增加,实现了高性能的迁移学习。

image.png

1 对每个Transformer进行改造,增加两个Adapter
2 使用skip-connection,(能够解决梯度消失),保证模型能力不退化,兜底
3 Adapter学习降维后的特征
4 需要加载整个模型,将模型都放到显存里面

Adapter Tuning实验结果:


image.png

Prefix Tuning(2021)

目标还是降低成本


image.png

1 Fine-tuning是全部参数调试,Prefix-tuning只调试Prefix模块
2 不需要加载全部参数,大模型可以被微调了
3 Prefix 是一个小的网络
4 Prefix 训练有难度
5 在不同场景效果都不错,摘要生成,表格识别等
6 Prefix在哪些层也要设计和调试

Prompt Tuning(2021)

1 Prefix Tuning的简化版本
2 还是简化成本
3 独立一个外部模型
4 不同的任务可以放在一起微调
5

image.png

P-Tuning v1(2021)

将Prompt转换为可学习的Embedding Layer
近年来,预训练语言模型(PLM)在自然语言理解(NLU)领域取得了显著进展。PLM通过不同的预训练目标,如掩码语言建模、自回归语言建模、seq2seq和排列语言建模进行训练。PLM的性能可以通过提示(prompting)进一步增强。提示利用手动编写的提示模式作为语言模型的额外输入,使PLM在小型标注数据集上微调或在下游任务上进行直接推理。然而,初步研究表明,手动离散提示可能导致性能不稳定,例如更改提示中的单个单词可能会导致性能大幅下降。为了解决这一问题,我们提出了新颖的P-Tuning方法。P-Tuning采用可训练的连续提示嵌入与离散提示进行连接。实验表明,P-Tuning不仅通过最小化不同离散提示之间的差距来稳定训练,而且在LAMA和SuperGLUE等广泛的NLU任务上实现了显著的性能提升。P-Tuning对冻结和调用的语言模型都有效,适用于完全监督和少量样本设置。我们的方法提供了一种通用的框架,可用于各种不同的预训练语言模型和任务。此外,P-Tuning可以轻松地集成到现有的自然语言处理工具中,以加速研究和开发过程。
P-tuning是一种改进预训练语言模型的方法,通过使用连续的prompt嵌入与离散的prompt进行连接,以提高模型在自然语言理解任务上的性能和稳定性。这种方法的主要思想是通过训练prompt嵌入来最小化不同离散prompt之间的性能差距,从而稳定训练过程并提高性能。P-tuning在各种自然语言理解任务上表现出了显著的效果

1 P-Tuning直接对嵌入层进行优化,调Embedding层的模型参数
2 将原有的Prompt提示信息,通过Encoder转换为Embendding的一部分;
3 在知识探测类任务中效果好

image.png

伪提示(P-Tuning)是一种使用连续提示嵌入的方法,旨在改进和稳定模型的表现。以下是伪提示的一个例子:

题目:英国的首都是什么?

提示:在给定的上下文中(蓝色区域,“英国”),目标是填写(红色区域,"[MASK]")。在图2(a)中,提示生成器只接收离散的奖励。相反,在图2(b)中,连续的提示嵌入和提示编码器可以通过可微分的方式进行优化。

在这个例子中,伪提示是通过将任务重新表述为填充空白的方式,将标注的数据(包括输入x和标签y)组织成一系列文本令牌。例如,一个可能的提示模板是"The capital of [D0] is [MASK]",其中[D0]是一个离散的提示令牌,用于指示问题的上下文。通过这种方式,可以将任务转换为一种可微分的格式,使得模型的表现可以通过反向传播进行优化。

然而,离散提示令牌往往非常不稳定,这可能会导致模型的表现下降。因此,伪提示使用连续的提示嵌入来改善和稳定模型的表现。通过将提示嵌入到模型中,可以使得模型能够更好地理解和生成文本,从而提高模型的性能。


image.png

作者认为直接通过虚拟token引入prompt存在两个问题:

离散性:如果用预训练词表的embedding初始化,经过预训练的词在空间分布上较稀疏,微调的幅度有限,容易陷入局部最优。这里到底是局部最优还是有效信息prior其实很难分清
整体性:多个token的连续prompt应该相互依赖作为一个整体
针对这两个问题,作者使用双向LSTM+2层MLP来对prompt进行表征, 这样LSTM的结构提高prompt的整体性,Relu激活函数的MLP提高离散型。这样更新prompt就是对应更新整个lstm+MLP部分的Prompt Encoder。下面是p-tuning和离散prompt的对比
相比Prefix Tuning,P-Tuning加入的可微virtual token,但仅限于输入层,没有在每一层都加;另外,virtual token的位置也不一定是前缀,插入的位置是可选的。这里的出发点实际是把传统人工设计模版中的真实token替换成可微的virtual token。
参考:http://lihuaxi.xjx100.cn/news/1450561.html?action=onClick

P-tuning v2

image.png

之前提到的Prompt Tuning,是只冻结大语言模型的参数来优化连续Prompts,这样可以大大减少每个任务的存储和训练时的内存使用,但是Prompt Tuning论文中表明当模型规模超过100亿个参数时,提示优化可以与全量微调相媲美。但是对于那些较小的模型(从100M到1B),提示优化和全量微调的表现有很大差异,这大大限制了提示优化的适用性。虽然在GLUE和SuperGLUE 基准测试上表现出一定的优势,然而在较难的硬序列标记任务(即序列标注)的有效性尚未得到验证。
基于此,作者提出了P-tuning v2,它利用深度提示优化(如:Prefix Tuning),对Prompt Tuning和P-Tuning进行改进,作为一个跨规模和NLU任务的通用解决方案。
与P-tuning相比,该方法在每一层都加入了Prompts tokens作为输入,而不是仅仅加在输入层,这带来两个方面的好处:

  • 更多可学习的参数(从P-tuning和Prompt Tuning的0.01%增加到0.1%-3%),同时也足够参数高效。
  • 加入到更深层结构中的Prompt能给模型预测带来更直接的影响。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容