该方法认为模型权重矩阵在特定微调后具有较低的本征秩,故基于秩分解的概念尊龙凯时企业文化,将预训练模型的现有权重矩阵分成两个较小的矩阵■◆★■。
AdaLoRA的做法是让模型学习SVD分解的近似。在损失函数中增加了惩罚项,防止矩阵P和Q偏离正交性太远,以实现稳定训练。
使用的是预训练的各种T5模型■■。在流行的SuperGLUE基准测试中,Prompt Tuning的任务性能与传统的模型调优相当,且随着模型规模的增加,差距逐渐减小。在零样本领域迁移中,Prompt Tuning可以改善泛化性能。
软提示(Soft Prompts)将离散的“提示”问题转为连续的“提示★◆◆■◆”问题,通过过反向传播和梯度下降更新参数来学习Prompts,而不是人工设计Prompts。有仅对输入层进行训练■◆◆■◆◆,也有对所有层进行训练的类型★◆◆◆■。下面将介绍几种热门的Soft Prompts微调方法◆■◆◆■★。
2022年9月5日,BitFit出现,这是一种稀疏微调方法■★◆■★,仅修改模型的Bias(偏置项)或其中的子集。
除了以上3大类方法之外,还有混合参数高效微调方法,其是综合了多种PEFT类别思想的方法。比如MAM Adapter同时结合了Adapter和Prompt-Tuning的思想,UniPELT综合了LoRA★◆■、Prefix Tuning和Adapter的思想◆■◆■★。混合参数高效微调方法大概率优于单个高效微调方法,但训练参数和推理延时的都增加了。下次将会对大模型的加速并行框架进行探讨,欢迎大家持续关注◆★!
选择性方法对模型的现有参数进行微调★■★★,可以根据层的深度、层类型或者甚至是个别参数进行选择◆■★■。
在每一个Transformer层中的每个子层之后插入两个串行的Adapter。在Adapter微调期间,绿色层是根据下游数据进行训练的,而预训练模型的原参数保持不变。
1★■◆★. 只在输入层加入Prompt,并且不需要加入MLP进行调整来解决难训练的问题■◆■■◆◆。
使用公开的预训练BERT作为基础模型。Adapter微调具有高参数效率,可以生成性能强劲的紧凑模型◆★■★,与完全微调相比表现相当。Adapter通过使用原始模型0■◆★★.5-5%大小的参数量来微调,性能与BERT-LARGE上具有竞争力的结果相差不到1%。
2★■◆◆■■. 提出了Prompt Ensembling,即通过在同一任务上训练N个提示,也就是在同一个批次中,对同一个问题添加不同的Prompt◆★★,相当于为任务创建了N个独立的“模型”,同时仍然共享核心语言建模参数■◆★★★。
该方法基于权重矩阵的重要性而自适应调整不同模块的秩◆★,节省计算量,可理解为LoRA的升级版■◆◆★★。
1. 第一个前馈子层将原始特征的维度d投影到一个更小的维度m,应用非线性函数,再投影回维度d的特征(作为Adapter模块的输出)★■。
在上一期的大模型技术实践中,我们为大家介绍了基于“LangChain+LLM★★★”框架快速搭建知识增强后的问答机器人,并探讨了提升模型内容理解和执行能力的潜在优化方向。
BitFit方法只更新模型内部偏置项参数所以训练参数量很微小,但整体效果比LoRA■◆◆、Adapter等方法弱。LoRA方法不存在推理延时,但无法动态更新增量矩阵的秩■★◆◆,不过改进版AdaLoRA解决了这个问题。
只优化前缀(红色前缀块),该前缀添加到每一个Transformer Block中。
基于重新参数化的高效微调方法利用低秩表示来最小化可训练参数的数量◆■◆■★,其中包括2021年10月到2023年3月间出现的LoRA和AdaRoLA方法。
官网代码可去Hugging Face下载其模型文件。应用AdaLoRA之后的模型训练参数仅占总参数的0.0468%■★。
参数高效微调方法■◆★★◆◆,可大致分为三个类别■◆■:增加式方法◆★◆■、选择式方法和重新参数化式方法[1]。
以上几类参数高效微调方法◆■■★■,各有千秋■■。Adapter方法在预训练模型的层中插入可训练模块的形式简单,但增加推理延时。Soft Prompts方法避免了人工“硬提示■★★★”的局限性,却可能难收敛★■■◆★。
P-Tuning v2每一层的输入都加入了Tokens,允许更高的任务容量同时保持参数效率;且添加到更深层的提示对模型的预测有更直接的影响。
使用的是BERT系列和GLM系列模型◆◆。P-Tuning v2是一种在不同规模和任务中都可与微调相媲美的提示方法。在NLU任务中,整体上P-Tuning v2与全量微调的性能相差很小。
1★◆◆◆. 冻结预训练语言模型的参数,为每个任务存储特定的连续可微的前缀,节省空间。
使用的是GPT系列和BERT系列的模型◆◆■◆◆。P-Tuning与全参数效果相当,且在一些任务上优于全参数微调,可以显著提高GPT模型在自然语言理解方面的性能,并且BERT风格的模型也可以获得较小的增益。
早期的提示微调通过修改输入文本来控制语言模型的行为,称为硬提示(Hard Prompts)微调★◆★◆★。这些方法很难优化,且受到最大模型输入长度的限制。下图为离散的人工设计的Prompt示例:
增加式方法通过增加额外的参数或层来扩展现有的预训练模型,且仅训练新增加的参数。目前■★■■★,这是PEFT方法中被应用最广泛的类别。
本期内容UCloud将为您解析参数高效微调技术(PEFT)◆★★■■,即对已预训练好的模型,固定住其大部分参数,而仅调整其中小部分或额外的参数,以达到与全部参数微调相近的效果。
包括儿科、外科等问答数据,数据中会有建议去医院看病之类的文字。此处选取儿科和外科的数据分别10000条数据作为训练数据集■■■◆★★,将文件保存为json格式。
3. 当投影层的参数初始化接近零时,根据一个skip-connection,将该模块就初始化为近似恒等函数,以确保微调的有效性。
使用的模型是RoBERTa、DeBERTa★◆■■◆■、GPT-2、GPT-3 175B。在多个数据集上,LoRA在性能上能和全量微调相近,且在某些任务上优于全量微调。
3. 每个新任务只需要存储偏置项参数向量(占总参数数量的不到0★■■◆.1%)和任务特定的最终线 BitFit的实验结果
1. 冻结大部分Transformer编码器的参数,只训练偏置项和任务特定的分类层。
2■■. 总参数量为2md + d + m。通过设置m d,我们限制了每个任务添加的参数数量。
使用公开可用的预训练BERTBASE、BERTLARGE和RoBERTaBA模型。BitFit微调结果不及全量参数微调,但在极少数参数可更新的情况下,远超Frozen(冻结模型参数)方式。