面试题:PEFT 参数高效微调详解——什么是 PEFT、为什么需要 PEFT、LoRA/QLoRA/Adapter 原理与优缺点全解析
1. 为什么 PEFT 是大模型面试里的高频题?
1.1 这道题不是只问一个缩写,而是在问你有没有训练成本意识
大模型越大,训练和部署成本越高。过去模型规模不大时,遇到一个新任务,全量微调整个模型还比较自然;但到了百亿、千亿参数时代,动不动就更新全部参数,不仅显存吃不消,训练周期、存储成本和多任务维护成本也会迅速上升。
所以 PEFT 不是一个冷门技巧,而是大模型工程落地里的关键能力:如何在不动或少动大模型主体的情况下,让模型适应一个新任务、新领域或新风格。
2. 什么是 PEFT?
2.1 PEFT 的通俗解释
PEFT 全称是 Parameter-Efficient Fine-Tuning,中文通常叫参数高效微调。它的核心思想是:冻结已经训练好的大模型主体,只训练很少一部分新增参数或少量可调参数,让模型适配下游任务。
你可以把大模型看成一台非常昂贵、已经调试好的大型机器。全量微调相当于把整台机器重新拆开调;PEFT 则是在关键位置加几个可插拔小零件,让它适配新的工作场景。
2.2 PEFT 不是一种单独方法,而是一类方法
很多人会把 PEFT 和 LoRA 混在一起。更准确地说,LoRA 是 PEFT 家族中最常见、最流行的一种方法。除了 LoRA,还有 Adapter、Prefix Tuning、Prompt Tuning、IA3、QLoRA 等不同路线。
这些方法的共同点是:都不希望每次都全量更新大模型,而是通过少量参数完成任务适配。它们的区别在于:新增参数加在哪里、训练哪些东西、推理时是否增加延迟,以及对显存和效果的影响不同。
3. 为什么需要 PEFT?
3.1 全量微调的现实成本太高
全量微调不仅需要保存模型参数,还需要保存梯度和优化器状态。对于 Adam 这类优化器,训练时的显存开销远不止模型本身那么简单。模型越大,这个问题越明显。
更麻烦的是,多任务场景下,如果每个任务都保存一份完整模型,存储成本会非常夸张。比如一个基础模型要服务客服、营销、总结、代码、问答等多个任务,如果每个任务都全量复制一份模型,运维压力会非常大。
3.2 PEFT 解决的是训练、存储、部署和遗忘风险
PEFT 最大的价值,是让模型适配变得更轻。训练时只更新少量参数,显存更低;部署时只保存小 adapter,存储更省;多任务切换时只需要切换小模块,管理更灵活;同时,因为主体模型冻结,对原模型能力的扰动也更小。
面试时可以这样总结:需要 PEFT,是因为大模型全量微调在显存、训练、存储和多任务部署上成本太高,而 PEFT 通过少量可训练参数实现低成本适配。
4. PEFT 常见方法有哪些?
4.1 LoRA:最常见的大模型 PEFT 方法
LoRA 的核心思想是:冻结原模型权重,只在部分线性层旁边加入两个低秩矩阵,用这两个小矩阵来学习任务所需的权重增量。这样就不必训练整块大矩阵,只训练很少的参数。
面试里讲 LoRA,不需要把公式写得很复杂。只要能讲清:原权重 W 不动,新增低秩矩阵 A 和 B 来近似任务更新量,rank r 控制表达能力和参数量,就已经很清楚了。
4.2 Adapter:像在模型层之间插入小插件
Adapter 方法通常是在 Transformer 层之间插入小型瓶颈网络。训练时只更新 adapter 参数,原模型主体保持不变。它的优点是模块清晰、任务隔离好,缺点是可能增加推理路径上的额外计算。
4.3 Prefix Tuning 和 Prompt Tuning:让模型学习“软提示”
Prefix Tuning 会学习一段连续的前缀向量,让后续 token 在注意力计算时可以关注这些虚拟前缀;Prompt Tuning 则更像学习一组软提示 token。它们训练参数非常少,但在小模型或复杂任务上可能不如 LoRA 稳定。
4.4 IA3 和 QLoRA:更轻或更省显存的路线
IA3 通过少量缩放向量调节模型内部激活或注意力,是一种参数更少的适配方式。QLoRA 则是把 base model 量化后,再在上面训练 LoRA 参数,特别适合低显存环境下微调大模型。
5. PEFT 的完整训练与部署流程
5.1 训练流程不是只写一行 LoRA 配置
一个完整 PEFT 流程通常包括:选择合适底座模型,准备任务数据,选择 PEFT 方法,配置 target modules、rank、学习率等训练参数,然后只训练新增的小参数。训练完成后,再通过验证集和业务指标评估效果。
对 LoRA 来说,target modules 很重要。常见做法是把 LoRA 加到 attention 的 q_proj、v_proj,或者进一步加到 k_proj、o_proj、FFN 相关线性层。加得越多,表达能力可能越强,但参数量、显存和过拟合风险也会变高。
5.2 部署时可以动态加载,也可以合并权重
PEFT 部署有两种常见方式。第一种是动态加载 adapter,不同任务加载不同小模块,这种方式灵活,适合多任务、多版本共存。第二种是把 LoRA 权重合并到原模型权重里,推理路径更简洁,适合对延迟敏感或部署链路希望简单的场景。
6. PEFT 的优点
6.1 显存更低,训练更快
PEFT 只训练少量参数,因此显存压力明显低于全量微调。尤其在低显存单卡或少卡环境中,PEFT 往往是让大模型微调真正跑起来的关键。
6.2 存储成本低,多任务切换方便
每个任务只保存一个很小的 adapter,而不是保存一整份大模型。这让多任务、多客户、多领域的模型管理更加灵活。
6.3 对底座扰动小,遗忘风险更低
因为基础模型参数被冻结,PEFT 对原模型知识和能力的破坏通常更小。这对需要保留通用能力,同时适配特定任务的场景非常有价值。
7. PEFT 的缺点和局限
7.1 能力上限受底座模型限制
PEFT 不是万能增强器。如果底座模型本身不会某种语言、缺少某类知识、推理能力很弱,只靠少量 PEFT 参数往往很难彻底补齐。PEFT 更适合“适配”和“调优”,不适合指望它重塑底座能力。
7.2 对数据质量和配置很敏感
PEFT 参数少,但并不意味着不会过拟合。相反,在小数据、脏数据场景下,模型可能很快记住错误格式或噪声。rank、学习率、训练轮数、target modules 选错,也可能明显影响效果。
7.3 不同 PEFT 方法会带来不同推理代价
LoRA 可以合并到原权重中,推理额外开销相对小;但 Adapter、Prefix 等方法可能增加推理路径或占用上下文长度。因此,方法选择不能只看训练省不省,还要看线上推理是否能接受。
8. 面试高频追问,建议这样回答
8.1 什么是 PEFT?
答:PEFT 是 Parameter-Efficient Fine-Tuning,也就是参数高效微调。它通常冻结预训练大模型主体,只训练少量新增参数或可调参数,比如 LoRA、Adapter、Prefix 等,从而用更低成本适配下游任务。
8.2 为什么需要 PEFT?
答:因为大模型全量微调显存高、训练慢、存储成本大,多任务部署也不灵活。PEFT 通过训练少量参数降低训练和部署成本,同时减少对基础模型能力的扰动。
8.3 PEFT 有哪些优点?
答:主要优点是显存占用低、训练速度快、存储成本低、多任务切换方便,并且对原模型能力破坏较小。
8.4 PEFT 有哪些缺点?
答:主要缺点是能力上限受底座模型限制,对数据质量和超参数敏感,在复杂任务上可能不如全参微调,同时部分 PEFT 方法会带来额外推理延迟或运维复杂度。
8.5 LoRA 和 QLoRA 怎么理解?
答:LoRA 冻结原模型权重,只训练低秩矩阵来表示任务增量;QLoRA 则是在量化后的基础模型上训练 LoRA,进一步降低显存需求,适合低显存微调大模型。
9. 总结:PEFT 的本质,是把“大模型适配”从重资产变成轻资产
如果把 PEFT 浓缩成一句话,那就是:冻结大模型底座,只训练少量任务适配参数,用更低的显存、训练和存储成本完成下游适配。
它不是为了替代所有全参微调,也不是万能提升模型能力的魔法。它真正适合的场景,是底座模型已经具备较强通用能力,但需要快速适配某个领域、风格、格式或业务任务。面试里只要把“定义、必要性、常见方法、优缺点、工程选择”这条线讲顺,PEFT 这组题基本就稳了。
附:30 秒面试快答模板
“PEFT 是参数高效微调,核心是冻结预训练大模型主体,只训练少量新增或可调参数,比如 LoRA、Adapter、Prefix Tuning 等。它主要解决全量微调显存高、训练慢、存储大和多任务部署不灵活的问题。优点是低成本、训练快、易部署、任务切换方便;缺点是能力上限受底座模型限制,效果依赖数据质量和配置,复杂任务上可能不如全参微调。现在大模型微调里最常见的是 LoRA 和 QLoRA。”
