从零理解大模型微调:LoRA、QLoRA 与后训练到底在做什么

举报
yd_221669320 发表于 2026/11/02 22:16:53 2026/11/02
【摘要】 一、为什么大模型需要"后训练"?现在的大模型(LLM)通常先经历一个叫预训练(Pre-training)的阶段:在海量文本上做"预测下一个词"的训练,从而获得通用的语言能力和世界知识。但预训练出来的模型有个问题——它更像一个"续写机器",你给它一句话,它会顺着往下编,而不一定按你的指令办事。于是就有了后训练(Post-training)。它的核心目标不是从零训练一个新模型,而是在预训练模型的...

一、为什么大模型需要"后训练"?

现在的大模型(LLM)通常先经历一个叫预训练(Pre-training)的阶段:在海量文本上做"预测下一个词"的训练,从而获得通用的语言能力和世界知识。但预训练出来的模型有个问题——它更像一个"续写机器",你给它一句话,它会顺着往下编,而不一定按你的指令办事。

于是就有了后训练(Post-training)。它的核心目标不是从零训练一个新模型,而是在预训练模型的基础上,用领域数据或人类反馈数据继续更新参数,让模型学会:

  • 听懂指令、按格式回答(指令跟随);

  • 符合人类偏好(更有用、更无害、更诚实);

  • 掌握特定领域的技能(医疗、法律、代码等)。

后训练常见的手段包括 SFT(监督微调)、RLHF(基于人类反馈的强化学习)、DPO(直接偏好优化) 等。其中 SFT 是最基础的一步:用"人工标注的标准答案"去拟合模型,让它学会"问什么、答什么"的对话范式。

二、全量微调太贵了,于是有了 LoRA

理想情况下,SFT 可以解冻模型全部参数做全量更新。但一个大模型动辄几十亿甚至上千亿参数,全量微调对显存和算力的要求极高,普通团队根本玩不起。

LoRA(Low-Rank Adaptation,低秩适配) 就是为解决这个问题而生的。它的思路很聪明:

冻结原始模型权重,在权重矩阵旁边新增一对低秩矩阵 A 和 B,只训练这两个小矩阵。

最终生效的新权重可以写成:

text
新权重 = 原始权重 + A × B

因为 A、B 的秩很低,参数量远小于原矩阵,所以训练成本大幅下降。更妙的是,推理时可以把 A × B 融合回原权重,不增加推理耗时。这也是 LoRA 被广泛用于"通用大模型微调、对话 SFT"的原因。

LoRA 的典型特点可以总结为:

  • 冻结原模型权重,旁路新增低秩矩阵训练;

  • 新增参数挂在权重层旁路;

  • 权重可融合,推理不增延迟;

  • 显存开销相对全量微调低很多(但并非"极低",这点常被误解)。

三、QLoRA:把门槛再降一档

LoRA 虽好,但加载一个大模型本身仍需要不少显存。QLoRA 在 LoRA 基础上又往前推了一步,最核心的区别是:

把主模型权重量化为 4bit,再在其上挂 LoRA 低秩矩阵训练。

这样一来,显存占用被压得非常低,低配设备也能微调超大模型——这正是 QLoRA 最突出的优势。它让"用一张消费级显卡微调大模型"从玩笑变成了现实。

需要注意的是,QLoRA 并不是用 Adapter 层,也不代表"不支持对话 SFT";它只是把基座量化了,训练逻辑仍然是 LoRA 那一套。

四、SFT 到底有哪几种参数更新策略?

同样是做 SFT,参数更新方式可以很灵活,常见的有:

  1. 全量更新:解冻全部层级参数,效果最好但最贵;

  2. 冻结主干 + 训练 LoRA:性价比最高的主流做法;

  3. 4bit 量化冻结 + LoRA:即 QLoRA 路线,显存最省。

("冻结全部参数仅训练输出层"通常不算主流 SFT 策略,因为可训练容量太小。)

五、别忘了数据:清洗与评估同样重要

模型微调不只是"调参",数据质量往往决定上限。一个规范的数据流程通常包括:

  • 数据导入:本地上传、OBS 桶导入等(ModelArts 等平台支持);

  • 数据清洗:冗余去重、违规过滤、敏感脱敏、格式归一;

  • 数据精炼:脏数据清洗、样本稀缺时做数据合成、隐私合规处理。

训练完之后还要做模型评估,它的核心价值在于:

  • 衡量微调后模型的能力提升程度;

  • 定位模型在特定任务上的薄弱环节;

  • 用量化指标判断是否达到上线标准;

  • 在多个候选模型中选择最适合业务场景的版本。

六、一句话总结

  • 后训练:让预训练模型学会听指令、合偏好;

  • SFT:用标准答案拟合,打好对话基础;

  • LoRA:冻结主干、旁路低秩矩阵,便宜又好用;

  • QLoRA:再把基座量化到 4bit,显存门槛一降再降;

  • 数据与评估:决定微调效果的上限和上线底气。

如果你正在入门大模型微调,建议的动手路径是:先跑通一个 LoRA 的对话 SFT 例子,再尝试 QLoRA 在小显存上微调更大的模型,最后补上数据清洗和评估环节。走完这一圈,你对"后训练"的理解就不会只停留在名词上了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。