一文全面掌握大型语言模型11种微调方法
大型预训练模型,简单说就是在海量文本上预先训练好的深度学习模型。它们能通过无标注数据学习通用的语言表示,然后在下游任务中微调、迁移。但随着模型参数规模不断膨胀,微调和推理阶段的资源消耗也跟着水涨船高。针对这个难题,研究者们主要从两个方向同时发力: 一方面,既然训练参数太多导致资源吃紧,那就干脆把基础
大型预训练模型,简单说就是在海量文本上预先训练好的深度学习模型。它们能通过无标注数据学习通用的语言表示,然后在下游任务中微调、迁移。但随着模型参数规模不断膨胀,微调和推理阶段的资源消耗也跟着水涨船高。针对这个难题,研究者们主要从两个方向同时发力:
一方面,既然训练参数太多导致资源吃紧,那就干脆把基础大语言模型的参数冻住,只引入部分特定参数来训练——这样既能大幅降低算力消耗,还能加速训练。前缀调优、提示调优这些方法就是典型代表。
另一方面,也可以不动基础模型的架构,而是在旁边加一条“新旁路”,专门针对特定任务或数据进行微调。眼下大火的LoRA就是通过加旁路来提升多任务表现的。
好,下面就来盘点11种主流的高效参数调优方法。
本文目录
- 前缀调优
- 提示调优
- P-Tuning v2
- LoRA
- DyLoRA
- AdaLoRA
- QLoRA
- QA-LoRA
- LongLoRA
- VeRA
- S-LoRA
- 总结
1. 前缀调优
前缀调优(Prefix Tuning)是一种轻量级的微调替代方案,专门用在自然语言生成任务上。它的灵感来自语言模型提示,这些前缀就像“虚拟标记”一样,能在特定任务的上下文中引导模型生成文本。
最特别的是,前缀调优不改变语言模型本身的参数——它把LM参数冻住,只优化一串连续的任务特定向量(即前缀)。图1展示了它的架构。

图1 前缀调优的架构
因为训练时只需要为每个任务存一个前缀,所以这种轻量设计避免了存储和计算资源的浪费,同时还能保持模型性能,模块化程度高、空间利用率好,有望为NLP任务提供高效的解决方案。
2. 提示调优
提示调优(Prompt Tuning)由Brian Lester在论文《The Power of Scale for Parameter-Efficient Prompt Tuning》中提出。
它的做法是采用“软提示”(Soft Prompt):冻结整个预训练模型,只允许每个下游任务在输入文本前面加k个可调的标记(Token),从而赋予语言模型执行特定任务的能力。图2画出了它的架构。

图2 提示调优的架构
论文实验显示,对于T5-XXL模型,每个经过调整的模型副本需要110亿个参数;而提示调优只需要20480个参数。在少样本提示方面,它的表现相当出色。
3. P-Tuning v2
提示调优虽然有效,但底座模型规模较小(尤其是小于1000亿参数)时,效果就不太行了。为了解决这个问题,清华大学的团队提出了P-Tuning v2——一种针对深度提示调优的优化与适应性实现。
它最显著的改进是:对预训练模型的每一层都应用连续提示,而不仅仅是在输入层。说白了,就是在词嵌入层和每个Transformer层前面都加上新参数。这种深度提示调优增强了连续提示的功能,缩小了各种设置之间微调的差距,尤其适用于小型模型和困难任务。
实验表明,P-Tuning v2在30亿到100亿参数的不同规模模型上,以及在提取式问答、命名实体识别等NLP任务上,都能与传统微调性能相当,而训练成本却大大降低。
4. LoRA
微软公司在2021年提出了Low-Rank Adaptation(LoRA,低秩适配器)。它的核心思想是:冻结预训练模型的权重,把可训练的秩分解矩阵注入Transformer架构的每一层,从而大幅减少下游任务中可训练参数的数量。训练时,固定原始模型参数,只训练降维矩阵A和升维矩阵B。图3展示了LoRA的架构。

图3 LoRA的架构
具体地,假设预训练矩阵为W,它的更新可表示为:W' = W + B·A,其中A和B是低秩矩阵。与使用Adam微调的GPT-3 175B相比,LoRA把可训练参数减少了10000倍,GPU内存需求减少3倍。尽管可训练参数少,训练吞吐量高,但在RoBERTa、DeBERTa、GPT-2、GPT-3等模型上,LoRA的质量与全量微调相当甚至更好。
5. DyLoRA
但随着研究深入,LoRA块暴露出两个核心问题:第一,一旦训练完成,LoRA块的大小就固定了,想调整秩就得重新训练整个模型,时间和计算成本很高;第二,LoRA块的大小是训练前设好的超参,优化秩需要精细搜索调优,只设计单一超参往往效果不佳。
针对这些问题,研究者引入了DyLoRA(动态低秩适应)。他们参考LoRA的基本架构,为每个LoRA块设计了上投影(Wup)和下投影(Wdw)矩阵以及当前LoRA块的规模范围R。训练时,通过对LoRA块在不同秩的信息内容进行排序,再结合预定义的随机分布抽样,对上下投影矩阵进行截断,最终确定单个LoRA块的大小。图4展示了DyLoRA的架构。

图4 DyLoRA的架构
研究结果显示,与LoRA相比,DyLoRA训练出的模型速度提升4~7倍,性能几乎没有下降;在更宽的秩范围内,它还展现出了更优越的性能。
6. AdaLoRA
和DyLoRA类似,AdaLoRA的研究者也发现了LoRA需要改进的方向:权重矩阵在不同LoRA块和模型层中的重要性有差异,不能提前统一设定秩来约束;需要设计能动态更新的参数矩阵,并有效评估重要性,给重要性高的矩阵分配更多参数量,对重要性低的矩阵进行裁剪,进一步降低计算量。
基于这些思想,AdaLoRA方法应运而生。它根据权重矩阵的重要性得分,在权重矩阵之间自适应地分配参数规模。实际操作中,AdaLoRA采用奇异值分解(SVD)进行参数训练,并根据重要性指标剪掉不重要的奇异值,从而提升计算效率,最终提升微调效果。
7. QLoRA
Tim Dettmers等研究者在论文《QLoRA: Efficient Finetuning of Quantized LLMs》中提出了QLoRA。图5展示了它的架构。

图5 QLoRA的架构
QLoRA的创新主要有三点:
- 4bit NormalFloat(NF4)——一种新型数据类型,对正态分布的权重来说是信息论上的最优选择。
- 双重量化技术——通过对已量化的常量再量化,减少平均内存使用。
- 分页优化器——帮助管理内存峰值,防止梯度检查点时出现内存不足错误。
实验表明,QLoRA让研究者能在单个48GB GPU上微调650亿参数的模型,同时维持16bit精度的完整性能。比如训练Guanaco模型,只需在单个GPU上微调24小时,就能达到与ChatGPT相当的99.3%性能水平。QLoRA有效降低了模型微调时的显存消耗。
8. QA-LoRA
大语言模型发展迅猛,但在许多语言理解任务中表现出色的同时,巨大的计算负担限制了它们在边缘设备上的部署。具体来说,预训练权重矩阵的每一列只伴随一个缩放和零参数对,但LoRA参数却很多。这种不平衡不仅导致大量量化误差(损害LLM准确性),还使辅助权重难以整合到主模型中。
在论文《QA-LoRA: Quantization-aware Low-rank Adaptation of Large Language Models》中,研究者提出了量化感知的低秩适应(QA-LoRA)算法。该方法源自量化和适应自由度不平衡的思想,采用分组运算符,在增加量化自由度的同时减少适应自由度。
QA-LoRA的实现非常简便,只需几行代码,而且赋予了原始LoRA两倍的能力:
- 微调过程中,LLM的权重被量化(如INT4),降低时间和内存使用;
- 微调后,LLM和辅助权重能自然集成到一个量化模型中,不损失准确性。
在LLaMA和LLaMA2系列模型上的实验证明,QA-LoRA在不同的微调数据集和下游场景中都验证了有效性。如图6所示,与LoRA和QLoRA相比,QA-LoRA在微调和推理阶段计算效率更高。更重要的是,由于不需要进行训练后量化,它不会造成准确性损失。图中展示的是INT4量化,但QA-LoRA可以推广到INT3和INT2。

图6 LoRA、QLoRA、QA-LoRA的架构对比
9. LongLoRA
用较长的上下文长度训练大语言模型,计算成本通常很高,需要大量的训练时间和GPU资源。为了在有限成本下扩展预训练模型的上下文大小,研究者在论文《LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models》中提出了LongLoRA,整体架构如图7所示。

图7 LongLoRA的整体架构
LongLoRA在两个方面做了改进:
- 虽然推理时需要密集的全局注意力,但通过采用稀疏的局部注意力,可以高效地进行模型微调。LongLoRA引入的短暂注意力机制能有效实现上下文扩展,性能与使用香草注意力(Vanilla Attention)微调相似。
- 通过重新审视上下文扩展的参数高效微调机制,研究者发现,在可训练嵌入和规范化的前提下,用于上下文扩展的LoRA表现良好。
LongLoRA在LLaMA2模型(70亿、130亿到700亿参数)的各种任务上都取得了不错的结果。例如,采用LLaMA2-7B,将上下文长度从4000个Token扩展到10万个Token,仍然保持了高效计算的能力。这为大语言模型的进一步优化和应用提供了有益思路。
10. VeRA
LoRA虽然能减少可训练参数的数量,但随着模型规模进一步扩大,或者需要部署大量适应于每个用户或任务的模型时,存储问题仍然是个挑战。
研究者提出了一种基于向量的随机矩阵适应方法——VeRA(Vector-based Random matrix Adaptation)。它的实现方法是:使用一对低秩矩阵在所有层之间共享,然后学习小的缩放向量来完成适应。
与LoRA相比,VeRA成功将可训练参数减少了10倍,同时保持了相同的性能水平。图8对比了VeRA与LoRA的架构:LoRA通过训练低秩矩阵A和B来更新权重,中间秩为r;而在VeRA中,这些矩阵被冻结,在所有层之间共享,通过可训练向量b和d进行适应,从而显著减少可训练参数。而且,低秩矩阵和向量可以合并到原始权重矩阵中,不引入额外延迟。

图8 VeRA与LoRA的架构对比
实验证明,VeRA在GLUE和E2E基准测试中展现了有效性,使用LLaMA 7B模型时仅用140万个参数就取得了不错的效果。这一方法为大语言模型微调中降低存储开销提供了新思路,有望在实际应用中发挥更大作用。
11. S-LoRA
LoRA作为一种参数高效微调方法,常被用来将基础模型适应到多种任务中,从而形成大量派生模型。由于这些LoRA模型共享同一个底座模型,因此可以考虑批处理模式进行推理。
为此,研究者提出了S-LoRA(Serving Thousands of Concurrent LoRA Adapters),一种专为可伸缩地服务多个LoRA适配器而设计的方法。它的设计理念是:将所有适配器存储在主内存中,在GPU内存中动态获取当前运行查询所需的适配器。为了高效使用GPU内存并减少碎片,S-LoRA引入了统一分页——用统一的内存池管理具有不同秩的动态适配器权重以及具有不同序列长度的KV缓存张量。此外,它还采用了一种新颖的张量并行策略和高度优化的自定义CUDA核心,用于异构批处理LoRA计算。这些特性使得S-LoRA能够在单个GPU或跨多个GPU上提供数千个LoRA适配器,而开销相对较小。
实验发现,S-LoRA的吞吐量提高了4倍多,提供的适配器数量增加了数个数量级。因此,S-LoRA在实现对许多任务特定微调模型的可伸缩服务方面取得了显著进展,为大规模定制微调服务提供了潜在可能性。
总结
本文从背景、来源、技术路线及性能等方面,综述了11种模型参数调优阶段的方法。其中,前缀调优、提示调优和P-Tuning v2属于引入特定参数来减少算力消耗、提升训练速度;而基于LoRA的各种方法,基本思想则是添加新旁路,对特定任务或数据进行微调。
开源社区Hugging Face将这11种方法归纳为高效参数调优方法(Parameter-Efficient Fine-Tuning,PEFT)。PEFT方法能够在不微调所有模型参数的情况下,有效地让预训练语言模型适应各种下游应用,只微调少量额外参数,大幅降低大模型训练和微调的计算与存储成本。合理使用PEFT方法,不仅能提高模型的训练效率,还能在特定任务上达到大型语言模型的效果。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:一文全面掌握大型语言模型11种微调方法要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点写出爆款知乎回答需通过问题拆解框定用户痛点,用钩子库生成高唤醒开头,构建三层证据链避免主观断言,并利用情绪标尺控制阅读节奏。火龙果写作工具可辅助结构化表达、规避AI识别,提升信任感与互动率。
会议行动项提示词需嵌入具体使用场景:明确角色、动作、设备及时间颗粒度,如销售主管会后用安卓手机操作飞书表格。同时嵌入失败信号倒逼可执行性,并按会后5分钟、今日下班前、下周一晨会前分层输出,确保三分钟内可动手操作。
火龙果写作精准修改语法与用词需开启学术润色模式,并人工复核每项建议。系统可识别中式英语、冗余表达,提供替换建议,但最终判断依赖作者。高级检查功能可批量修正模糊词,提升学术表达准确性。
跨语种提示词理解存在中英文混杂、术语误读等问题。通过四步实现精准理解:三栏术语表锚定词义并强制绑定;设定双语角色与解析规则;启用主干剥离式解析提取语法主干再对齐;追加学术信号词触发语种切换。
- 日榜
- 周榜
- 月榜
热点快看
