一般分三大类

  • Fine-Tuning:全量微调
  • PEFT:高效微调(SOTA PEFT),部分参数的微调方法
  • RLHF:基于人工反馈机制的强化方法

一、 Fine-Tuning:全参微调

定义:全微调是指对整个预训练模型进行微调,包括所有的模型参数。在这种方法中,预训练模型的所有层和参数都会被更新和优化,以适应目标任务的需求。
适用范围:这种微调方法通常适用于任务和预训练模型之间存在较大差异的情况,或者任务需要模型具有高度灵活性和自适应能力的情况。Full Fine-tuning需要较大的计算资源和时间,但可以获得更好的性能。

1.Fine tuning

经典的Fine tuning方法包括将预训练模型base-model与少量特定任务数据一起继续训练。在这个过程中,预训练模型的权重被更新,以更好地适应任务。所需的Fine-tuning量取决于预训练语料库和任务特定语料库之间的相似性。如果两者相似,可能只需要少量的Fine tuning。如果两者不相似,则可能需要更多的Fine tuning。

二、PEFT、高效微调(SOTA PEFT):部分参数的微调方法

微信截图_20240429141957.png

微调顶层:只微调预训练模型的顶层,以适应新的任务。
逐层微调:从底层开始,逐层微调预训练模型,直到所有层都被微调。
冻结底层:将预训练模型的底层固定不变,只对顶层进行微调。

P-tuning:( 2021年3月) 清华大学提出的可自动学习模版的P-tuning,这种方法通过引入连续提示(continuous prompts)的方式替代传统的离散文本提示(discrete text prompt),以更少的可训练参数量来适应特定下游任务。

在P-Tuning中,通常会为输入序列添加一个或多个可学习的向量(虚拟token),这些向量作为额外的“prompt”嵌入到模型的输入序列中,用于指导模型生成与特定任务相关的输出。相比于直接对整个模型进行微调,P-Tuning仅需要调整这部分新增的prompt参数,从而显著减少所需的计算资源和时间。

P-tuning2:(在每一层前面加入训练参数 2021年10月)基于Prefix Tuning,增加了多个Embedding层,连续的Prompts,在预训练的每一层都增加了prompts,适合GLM模型的微调

Adapter(在前面添加训练参数)Adapter Tuning:由Houlsby N等人在2019年提出,通过增加模型层数来引入额外的灵活性,但这也导致了额外的推理延迟
Prefix-tuning(在中间添加训练参数)由斯坦福大学提出,在原有模型基础上,增加一个可被训练的Embedding层,用于给提示词增加前缀,从而更好的让模型理解提示词的意图,通过修改输入的前缀来调整模型的行为,但这种方法难以训练,并且可能影响模型性能。
Prompt tuning:由谷歌提出,类似于Prefix-Tuning,通过修改输入提示来调整模型行为。
Lora(在旁边添加训练参数)(Low-Rank Adaptation):由微软在2021年提出,通过低秩矩阵分解来实现高效的参数调整。
QLora

在这些方法中,LORA因其优越的性能和较低的成本而备受推崇。

定义:部分微调是指在微调过程中只更新模型的顶层或少数几层,而保持预训练模型的底层参数不变。这种方法的目的是在保留预训练模型的通用知识的同时,通过微调顶层来适应特定任务。

适用范围:Repurposing通常适用于目标任务与预训练模型之间有一定相似性的情况,或者任务数据集较小的情况。由于只更新少数层,Repurposing相对于Full Fine-tuning需要较少的计算资源和时间,但在某些情况下性能可能会有所降低。

微调所有层:将预训练模型的所有层都参与微调,以适应新的任务。

1、P-tuning系列

P-tuning V1

英文名称: GPT Understands, Too
中文名称: GPT也懂
链接: https://arxiv.org/abs/2103.10385
作者: Xiao Liu, Yanan Zheng, Zhengxiao Du, Ming Ding, Yujie Qian, Zhilin Yang, Jie Tang
机构: 清华大学, 麻省理工学院
日期: 2021-03-18

目标:大模型的 Prompt 构造方式严重影响下游任务的效果。离散化的 token 的搜索出来的结果可能并不是最优的,导致性能不稳定。本篇论文旨在探讨,如何提升预训练语言模型进行自然语言提示的有效性。

方法:作者提出了 P-Tuning,设计了一种连续可微的 virtual token(同 Prefix-Tuning 类似)。将 Prompt 转换为可以学习的 Embedding 层,用 MLP+LSTM 的方式来对 Prompt Embedding 进行处理。
微信截图_20240429140514.png

结论:弥合 GPT 和 NLU 应用程序之间的差距 (2021 年),P 调参后的 GPT 可以比在 NLU 调参的类似大小的 BERT 效果更好。
0240426110655.png
微信截图_20240429140632.png
主图:一个关于“英国的首都是 [MASK]”的提示搜索的例子。在蓝色区域表示上下文(“英国”),红色区域表示目标(“[MASK]”),橙色区域表示提示。在(a)中,提示生成器只接收离散的奖励;在(b)中,连续的提示嵌入和提示编码器可以通过可微的方式进行优化。
参考:https://kexue.fm/search/Prompt+Tuning/

P-tuning V2

英文名称: P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks
中文名称: P-Tuning v2:提示调整可以在各种规模和任务上普遍与微调相媲美
链接: http://arxiv.org/abs/2110.07602v3
作者: Xiao Liu, Kaixuan Ji, Yicheng Fu, Weng Lam Tam, Zhengxiao Du, Zhilin Yang, Jie Tang
机构: 清华大学, 北京人工智能学会, 上海启智研究院
日期: 2021-10-14

目标:研究的目的是探索如何通过优化提示调整方法,在各种模型规模和自然语言理解任务中实现普遍有效的目标。

方法:最显著的改进是在预训练模型的每一层应用连续提示,而不仅仅是输入层。深度提示调整增加了连续提示的容量,并缩小了不同设置下微调差距的范围,尤其适用于小型模型和复杂任务。

结论:研究发现,经过适当优化的提示调整方法可以在各种模型规模和自然语言理解任务中达到与微调相当的性能,而只需调整 0.1%-3% 的参数(P-tuning 调整 0.01% 参数)。P-Tuning v2 被认为可以作为微调的替代方法,并为未来研究提供了一个强有力的基准。

0426145459.png

5.png
主图:P-tuning 到 P-tuning v2 对比。橙色块(即 h0,…,hi)指的是可训练的提示嵌入;蓝色块是由冻结的预训练语言模型存储或计算的嵌入。

参考:
1.https://zhuanlan.zhihu.com/p/687481429
2.https://www.zhihu.com/tardis/zm/art/627642632?source_id=1003
3.https://zhuanlan.zhihu.com/p/675231376

标签: none

添加新评论