详细摘要 摘要
生成:2025-06-07 14:17摘要详情
- 音频文件
- 应用深度学习 | 陈縕侬 | ADL 8.2: Parameter-Efficient Fine-Tuning (Adapter, LoRA) 如何低成本微调模型
- 摘要类型
- 详细摘要
- LLM 提供商
- openai
- LLM 模型
- gemini-2.5-pro-preview-06-05
- 已创建
- 2025-06-07 14:17:17
摘要内容
概览/核心摘要 (Executive Summary)
本内容总结了陈縕侬教授关于“参数高效微调”(Parameter-Efficient Fine-Tuning, PEFT)的讲座,核心探讨了在不调整大型语言模型全部参数的情况下,如何以低成本实现模型微调。讲座指出,传统研究过度关注模型性能(Accuracy)而忽略了效率(Efficiency),导致训练成本高昂,限制了学术界的发展。为解决此问题,PEFT方法应运而生。
讲座重点介绍了两种主流的PEFT技术:
1. Adapter Tuning:通过在预训练模型的Transformer层之间插入小型的、可训练的“适配器”模块,并冻结原始模型参数。这种方法实现了模块化,不同任务只需训练和存储各自的Adapter,既节省了存储空间,又避免了对原始模型的破坏性修改。
2. LoRA (Low-Rank Adaptation):该方法基于一个核心假设,即模型微调时的权重更新矩阵具有“低内在秩”(Low Intrinsic Rank)。它通过将大的权重更新矩阵分解为两个小的、低秩的矩阵来进行学习,从而将需要训练的参数数量减少几个数量级。实验证明,LoRA能用极少的参数(如在GPT-3 175B上仅用4.7M参数)达到与全量微调相近的性能,成为当前非常主流的高效微调方案。
此外,讲座还提到,没有一种PEFT方法是万能的,不同方法在不同任务上各有优劣。为了提升模型在未知任务上的泛化能力(通用能力),关键在于收集和训练“尽可能多样化的任务数据”,这正是GPT-3.5等模型采用指令微调(Instruction Tuning)和人类反馈来提升其通用智能的核心思想。
微调的挑战与效率的重要性
- 问题背景:直接微调(Fine-Tuning)整个大型预训练语言模型(Pre-trained Language Model)需要调整海量参数,计算成本和资源消耗巨大,对于学术界或资源有限的组织而言并不可行。
- 研究趋势分析:
- 讲座引用一项分析指出,AI领域的研究论文(如ACL, NeurIPS, ICLR)在历史上更侧重于报告模型的性能(Accuracy),而较少关注其效率(Efficiency)或训练成本。
- 原文引用:> “大部分的这些paper focus比较多是focus在accuracy instead of efficiency,就是大家只着着重在我的performance到底怎样。”
- 这种趋势导致了高成本的研究方向更容易被资金雄厚的业界所主导,促使学术界寻求更低成本、更高效率的解决方案。
- 发展动机:为了让更多研究者能够参与到大模型的微调和应用中,学术界开始大量涌现专注于降低训练成本和参数量的“参数高效微tuning”方法。
方法一:Adapter Tuning (可插拔式适配器)
- 核心思想:在保持预训练模型主体参数完全冻结(frozen)的情况下,仅在模型内部(特别是Transformer块中)插入一些小型的、可训练的神经网络层,称之为“Adapter”。
- 实现原理:
- 模型结构:在Transformer块的Attention层和前馈网络(Feed-Forward Network)之后,各插入一个Adapter模块。
- 学习目标:Adapter模块的目标是学习一个残差向量
ΔH。原始模型的输出为H,经过Adapter处理后,最终输出变为H' = H + ΔH。这样,Adapter只需学习对原始表征的“微调量”,而非重塑整个表征。 - 冻结与训练:原始模型(图示中的橘色部分)的权重在整个过程中保持不变,只有新加入的Adapter(紫色部分)的参数会被训练。
- 优点与特性:
- 模块化与可插拔:每个下游任务可以训练一个独立的Adapter。使用时,如同插件一样,将对应任务的Adapter插入基础模型即可。
> “你要用A任务的时候,你就把这个A插进去,然后要用B的时候就把B插进去。” - 存储高效:只需为每个任务存储小体积的Adapter参数,而无需保存整个模型的多个副本,极大地节省了存储空间。
- 稳健性:由于不改动原始模型,避免了在微调过程中可能发生的“灾难性遗忘”(Catastrophic Forgetting),即模型在新任务上表现变好但丧失了原有能力。
- 模块化与可插拔:每个下游任务可以训练一个独立的Adapter。使用时,如同插件一样,将对应任务的Adapter插入基础模型即可。
方法二:LoRA (Low-Rank Adaptation) 低秩适配
- 核心思想:LoRA是目前极为流行的高效微调方法。其核心假设是:在模型微调过程中,权重的变化量(
ΔW)是一个具有“低内在秩”(Low Intrinsic Rank)的矩阵。这意味着,尽管权重矩阵维度很高,但其变化可以被一个低维子空间中的少量信息所描述,即一个“高层次的方向性调整”。 - 实现原理:
- 低秩分解:LoRA不直接学习巨大的更新矩阵
ΔW,而是将其近似分解为两个更小的、低秩的矩阵A和B,即ΔW ≈ B * A。 - 结构与计算:在原始的权重层(如前馈网络中的
Wx)旁边,并联一个LoRA模块。输入x会同时流经原始层和LoRA模块。LoRA模块的计算为B * (A * x)。最终的输出是两者之和:H' = Wx + B(Ax)。 - 训练参数:在微调时,原始权重
W保持冻结,只有矩阵A和B的参数被训练。由于A和B的维度远小于W,需要训练的参数量急剧下降。
- 低秩分解:LoRA不直接学习巨大的更新矩阵
- 性能与数据:
- 实验案例:在 GPT-3 (175B) 模型上的实验显示:
- 全量微调(Full Fine-Tuning)需要训练 175B (1750亿) 个参数。
- 使用 LoRA,仅需训练 4.7M (470万) 个参数,其性能便能在多个任务上达到与全量微调相当甚至更好的水平。
- 效率优势:讲座中的图表(粉色线条代表LoRA)清晰地展示了LoRA在性能和效率之间的卓越平衡。它可以用远少于其他方法的参数量达到非常高的性能,并且性能曲线稳定,不易出现过拟合导致的性能下降。
- 实验案例:在 GPT-3 (175B) 模型上的实验显示:
不同参数高效微调方法的比较
- 研究发现:一篇论文在公平的设定下,对多种PEFT方法(如Adapter, LoRA, Prefix-Tuning等)进行了系统性比较。
- 核心结论:不存在任何一种单一方法能在所有任务上都取得最佳效果。
> “结论就是诶没有一个最好,就是每一种都有各自擅长的地方。” - 后续探索:基于上述结论,有研究者提出了一种“混合方法”,将多种PEFT技术(Adapter, Prefix-Tuning等)集成到一个模型中,并使用“门控机制”(Gate)让模型在训练中自动学习何时、何地激活哪种微调技术。实验证明,这种组合模型的性能通常优于任何单一方法,但模型结构也更复杂。
超越已知任务:提升模型的泛化能力
- 核心挑战:PEFT解决了在“已知任务”上的微调效率问题。但如何提升模型作为“通才”(Generalist)在“未知任务”(Unknown Tasks)上的表现?
- 解决方案:关键在于提升训练数据的多样性。
> “我就是要收集尽可能越来越多不同diverse这个task,我才能够让这个通才这种通用的能力可以上升。” - 具体实践:通过收集海量的、覆盖各种类型和领域的任务数据来对模型进行微调。这包括利用人类来创造更多样、更具挑战性的“考题”(指令)。
- 业界应用:这种思想正是 GPT-3.5 等模型成功的关键之一,即通过指令微调(Instruction Tuning)和基于人类反馈的强化学习(RLHF),利用人类提供的多样化反馈来持续提升模型的通用能力和对未知指令的理解与执行能力。