不改权重也能微调大模型: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 来部分弥补,但推理时的反量化开销和极低比特下的效果衰减仍需实测权衡。
相关推荐

投票权失守之后:美国民主的隐性代价
探讨美国民主党未能通过《约翰·刘易斯投票权促进法案》和《自由投票法案》后,各州限制性投票立法、最高法院削弱《投票权法案》以及党派杰利蝾螈对选民参与和公平代表性的影响。

AI编程Agent最难的不是写代码,而是知道何时该动手
一位开发者分享构建AI编程Agent的经验:最难的不是让模型更聪明,而是让它知道何时直接动手、何时询问确认、何时完全不碰,配合自检沙箱与模型路由实现可控行为。

陶哲轩:AI正将优美数学变成训练废料
陶哲轩批评硅谷用AI强攻数学难题,将优美数学降格为原始训练材料,产生大量缺乏结构美感的证明。本文解析其“有毒废料”比喻背后的数学审美与激励冲突。