最近接触了不少做微调的朋友,发现大家对"微调到底是什么"这个问题的理解差异很大。
有人觉得是炼丹,有人觉得是工程,也有人觉得两者都是。
写这篇的目的是把自己理解的微调脉络理清楚,也给刚开始接触的人一个参考。
微调解决的是什么问题
很多人以为微调是在教模型“新知识”,但实际情况完全不是。
预训练模型的能力很强,这是公认的。
但它有一个天然局限——它是通用的。
你让它写代码、做翻译、总结文章都没问题,但一旦涉及你公司内部的格式规范、业务流程、行业术语,它就开始自由发挥了。
这不是模型的错,是预训练阶段根本没接触过这些内容。
微调做的事情,就是在预训练模型已有的通用能力之上,注入特定领域的知识和规则。
模型还是那个模型,参数没变多少,但它开始按你的规矩办事了。
微调的标准流程
目前业界比较成熟的微调方案,大致包含三个阶段。
第一阶段:SFT
SFT 全称是 Supervised Fine-Tuning,有监督微调。做法很简单——准备一批高质量的问答对,让模型照着学。
比如你给模型看这样的数据:
输入:请帮我写一个请假条
期望输出:好的,以下是您的请假条模板……
模型在这个过程中学到的不是新知识,而是一种"行为模式":用户提出某个请求时,我应该用什么样的格式和语气来回应。
这个阶段数据质量是第一优先级。
十个劣质样本不如一个优质样本,因为模型在模仿你的数据分布,你喂给它什么风格,它就学会什么风格。
所以微调本质上不是教模型“会不会”,而是教它“怎么回答”。
第二阶段:奖励模型
SFT 解决的是"模型知道该怎么回答",但还没解决"模型知道什么叫答得好"。
奖励模型(Reward Model,简称 RM)就是用来解决这个问题的。
它的训练方式和普通大模型不同——它不生成文本,而是对两个回答做打分比较。
你给它一组数据:同一个问题下的两个回答,以及人类标注员认为更好的那个。反复训练之后,RM 就具备了评判回答质量的能力。
可以把它理解为一个裁判,专门负责给模型的输出打分。
第三阶段:对齐
有了裁判之后,下一步就是让模型根据裁判的反馈来调整自己。
这一步有两种主流做法:RLHF 和 DPO。
RLHF(基于人类反馈的强化学习)的流程相对复杂,模型生成回答 → 裁判打分 → 根据分数反向更新模型参数。
DPO(直接偏好优化)则简化了这个过程,把奖励模型的学习直接整合到了微调目标函数里,省去了单独的 RL 训练阶段。
两种方式效果接近,DPO 因为实现更简单,近年来使用越来越广泛。
不管选哪种,目的都一样:
让模型的回答更安全、更符合人类预期,减少胡说八道的情况。

参数微调的策略
全参数微调理论上效果最好,但代价也最大。
一个 70B 的模型全量微调,显存需求是普通显卡承受不了的。
而且全量更新还有一个副作用——模型可能在新任务上表现不错,但把预训练阶段的通用能力给覆盖了,这就是常说的灾难性遗忘。
为了解决这些问题,出现了不少高效微调方案。
LoRA
LoRA(Low-Rank Adaptation)的思路很简洁:
不在原始参数上做加法,而是并行加一小块。
具体来说,它在每一层网络旁边挂一个低秩矩阵,训练的时候只更新这两个小矩阵,原始参数完全冻结。
推理阶段,训练好的低秩矩阵可以直接叠加回原始参数,不增加任何延迟。
显存需求从几百 GB 降到十几 GB,这也是 LoRA 能快速普及的主要原因。
QLoRA
QLoRA 在 LoRA 的基础上又往前了一步——先把预训练模型量化到 4bit,再做 LoRA 微调。
4bit 意味着参数量只有原来的四分之一,显存压力大幅降低。
虽然精度有损失,但在大多数下游任务上,效果差别不大。

实践中容易遇到的问题
数据质量
这是最容易被低估的一环。
很多项目效果不理想,回头一看数据,质量参差不齐。
模型不会自动区分好坏数据,它只会忠实地拟合训练集中的每一个模式。
如果训练集里混杂了大量低质样本,模型学到的就是混乱的行为。
解决思路是用更强的模型先去清洗数据,过滤掉格式错误、内容不完整、标注不一致的样本。
这一步多花的时间,后面能省回来。
过拟合
过拟合的表现是:
训练集上效果很好,验证集上指标下滑。
缓解手段有两个:
早停(验证集指标不再提升时停止训练)和权重衰减(给损失函数加一个正则化项,限制参数更新幅度)。
这两个都是经典方法,不算新技术,但对控制过拟合确实有效。
显存不足
显存不够的时候,可以从几个方向入手:
用 QLoRA 降低基础开销,开启梯度检查点用计算换显存,设置梯度累加模拟更大的 batch size。
通常组合使用效果最好。
数据配比
做了微调之后发现模型在某些通用能力上退化了,这时候可以考虑在训练数据里混入一部分通用语料,保持模型的基础语言能力不被覆盖。
数据混合的比例需要根据具体任务调试,没有固定公式。

微调这件事,拆开了看其实并不神秘。
SFT 教格式,RM 立标准,对齐做收敛,LoRA 降门槛。
每个环节都有明确的分工,也有成熟的工具链支持。
真正难的是数据准备和超参调试,这部分没有捷径,只能一遍遍试。
但好消息是,随着 QLoRA 这类方案的普及,试错的边际成本已经低了很多。


