不改权重也能微调大模型:PEFT、适配器与前缀调优解析

PEFT 冻结主干、只训少量参数,让大模型微调在单卡上可行,LoRA 是首选。
文章围绕 Reddit 讨论帖,系统梳理了参数高效微调(PEFT)的三条主流路线。全量微调需保存梯度与优化器状态,显存占用高且每个任务需完整复制模型,PEFT 则冻结预训练权重、只训练不到 1% 的新增参数。LoRA 通过低秩分解在权重旁挂小矩阵,推理可合并、延迟低,是社区默认入门方案;适配器在 Transformer 层间插入小模块,模块化程度高但引入额外串行延迟;前缀/提示调优在隐空间学习虚拟前缀或软提示,参数量最小但对初始化和学习率更敏感。文章给出选型逻辑:低延迟选 LoRA,多任务隔离选适配器,参数极紧选前缀类方法,并强调需保留全量微调基线做对照。落地时需注意低秩维度、学习率、目标模块选择及合并量化精度等坑。
大模型动辄百亿千亿参数,全量微调对显存和算力的要求让多数团队望而却步。Reddit 上近期一则讨论帖「Fine-Tune a Giant AI Without Touching Its Weights - PEFT, Adapters & Prefix tuning」把焦点放回了参数高效微调(PEFT)这条技术路线:不更新原始权重,也能让通用大模型适配具体任务。

为什么需要「不碰权重」的微调
全量微调的代价不只是钱。以十亿级参数模型为例,训练时除了模型权重本身,还要保存梯度与优化器状态,显存占用往往是推理的数倍;每换一个下游任务,就得完整复制一份模型,部署和版本管理随之膨胀。
PEFT 的思路是把「学什么」和「模型本体」解耦:冻结绝大部分预训练参数,只训练少量新增参数或低秩增量。Reddit 讨论中反复出现的一个判断是,在多数分类、指令跟随和领域适配任务上,PEFT 能达到接近全量微调的效果,而可训练参数常被压到 1% 以下。这意味着单卡甚至消费级显卡也能参与大模型定制。
三条主流路线:LoRA、适配器与前缀调优
LoRA:用低秩增量改写权重
LoRA(Low-Rank Adaptation)不直接修改原权重矩阵,而是在旁边挂两个小矩阵做低秩分解,前向时把增量加回原权重。训练完成后可以只保存这份增量,推理时合并回主干,不增加额外延迟。
它的工程优势很明显:可训练参数少、显存占用低、切换任务只需换一份小文件。社区里大量开源微调脚本都以 LoRA 为默认方案,讨论帖也把它列为首选入门路径。代价是秩的选择需要实验,秩过低会限制表达能力。
低秩分解的数学直觉:LoRA 的核心假设是权重更新矩阵 ΔW 具有低内在秩。对于一个预训练权重矩阵 W₀ ∈ ℝ^{d×k},LoRA 将其更新约束为 ΔW = BA,其中 B ∈ ℝ^{d×r}、A ∈ ℝ^{r×k},且秩 r ≪ min(d,k)。这样可训练参数量从 d×k 降到 r×(d+k)。例如 d=k=4096、r=8 时,参数量从约 1678 万降到约 6.5 万,压缩超过 250 倍。前向计算变为 h = W₀x + BAx,训练时 W₀ 冻结,只更新 A 和 B。初始化上,A 通常用高斯随机初始化,B 初始化为零,保证训练起点与原模型完全一致,避免引入初始噪声。
适配器层:在层间插入小模块
适配器(Adapters)的做法是在 Transformer 层之间插入小型前馈模块,只训练这些模块。它的结构清晰、模块化程度高,一个主干可以挂多个任务适配器按需切换。
不过适配器会引入额外的串行计算,推理延迟略高于 LoRA;插入位置和瓶颈维度也会影响效果。讨论中有人认为适配器更适合需要严格隔离多任务的场景,而非追求极致推理速度的部署。
前缀调优:把指令学进隐空间
前缀调优(Prefix Tuning)不碰模型结构,而是学习一段可训练的「虚拟前缀」,作为额外的键值对参与注意力计算,相当于在隐空间里给模型注入任务条件。提示调优(Prompt Tuning)是它的简化变体,只学习输入端的软提示向量。
这条路线的参数量最小,但训练稳定性对初始化和学习率更敏感,效果在生成类任务上波动较大。讨论帖提醒,前缀类方法更适合作为轻量适配手段,复杂任务上仍需与其他方法对比验证。
软提示与硬提示的区别:传统提示工程中的提示词是离散的 token 序列,而提示调优(Prompt Tuning)学习的是连续的嵌入向量(soft prompt),这些向量不对应词表中的任何真实 token,而是直接拼接在输入嵌入序列前参与计算。Prefix Tuning 则更进一步,在每一层 Transformer 的注意力计算中都注入可训练的前缀键值对,影响更为深层。两者都属于「不改变模型结构、只改输入条件」的思路,但 Prefix Tuning 的干预粒度更细、参数量略多,Prompt Tuning 则最为轻量。这种连续提示的缺点是丧失了可读性——学到的向量无法直接翻译成人类可理解的自然语言指令。
方法选择的实用判断
把三条路线放在一起看,选择逻辑并不复杂:
- 追求低延迟、易部署、生态成熟,优先 LoRA;
- 需要多任务隔离、模块化挂载,考虑适配器;
- 参数预算极紧、任务相对简单,可试前缀或提示调优。
Reddit 讨论中还有一个共识:无论选哪种方法,都要保留一份全量微调或更强基线做对照,否则很难判断收益来自方法本身还是数据质量。
落地时的几个坑
PEFT 降低了门槛,但没有消除调参成本。低秩维度、学习率、目标模块的选择都会显著影响结果;数据质量差时,参数高效方法同样会过拟合小样本。另一个常被忽略的点是合并与量化:LoRA 权重合并回主干时的精度处理,以及量化后微调(如 QLoRA)的显存收益与精度损失,都需要在部署前实测。
讨论帖的价值在于把「不改权重」这件事讲清楚了:它不是省事的捷径,而是一套在算力约束下重新分配训练预算的工程方法。对多数团队来说,先用 PEFT 跑通任务闭环,再决定是否投入全量微调,是更务实的顺序。
QLoRA 的量化基础:QLoRA 的核心是将冻结的主干模型量化为 4-bit NormalFloat(NF4)格式,再在量化权重上附加 LoRA 适配器进行训练。NF4 是一种信息论上对正态分布权重最优的 4-bit 数据类型,配合双重量化(Double Quantization)进一步压缩量化常数本身的存储开销,以及分页优化器(Paged Optimizers)应对显存峰值。这使得在单张 48GB 显卡上微调 65B 参数模型成为可能。代价是量化带来的精度损失,通常通过将计算时的数据类型反量化为 BF16 来部分弥补,但推理时的反量化开销和极低比特下的效果衰减仍需实测权衡。
相关推荐

B站保姆级Codex攻略:从安装到实战,让AI帮你操作电脑
基于B站保姆级教程,详解Codex从安装、工作模式设置到项目文件夹管理、文件整理、计划模式与可视化仪表盘的完整实战流程,附使用心法与注意事项。

Agent Skills渐进式披露架构详解:让AI智能体拥有无限能力
详解Agent Skills渐进式披露架构:从什么是Agent Skills、解决什么问题,到如何定义Skills列表与调用工具,并对比Multi-Agent的区别,帮助开发者快速掌握这一AI智能体能力扩展方案。

Agent Loop面试十连问:B站最细Loop Engineering教程拆解
B站Agent Loop面试十连问教程拆解:从生命周期、工具、记忆、交付物四个维度讲清Agent Loop与单次API调用的本质区别,附可直接套用的面试回答模板,帮你在Loop Engineering面试中少走弯路。