在以往的项目中,我们通常都是通过提示语工程,或者以工作流编排的方式来构建我们的AI产品,其底层调用的都是通用大模型。
不知道大家有没有这样一种体会:我们大量时间都花在了编写和调整提示词的工作上,但最终都没有得到非常好的效果,特别对一些相对复杂或者专业领域的任务时则更加明显。甚至针对某些特定样例时,不管你如何调整优化提示词你都无法改变模型的输出结果,让你无计可施。
提示词工程初期比较有效,但当你想让模型在复杂任务中稳定表现(如内容审查、业务摘要、规则问答),往往需要多层提示、few-shot 示例、自反式指令(self-consistency prompt)等等,这些最终会让提示词变得非常庞大、维护困难。
而对于输出风格、语气调整,比如想让模型“像公司客服一样说话”、“像某位专家那样回答”,提示词可以临时实现,但一致性差。
如果你也遇到了以上问题,那可能就需要换个思路来解决了。
对,我说的就是微调。
一、大模型训练的几个阶段
要理解什么是微调,我们需要先大概讲一下大模型训练的基础知识。
大模型训练分为如下几个阶段:
1、预训练(Pretraining):让模型从海量数据中学习语言的底层规律、语法和事实知识,构建“知识底座”。是从随机初始化的参数开始训练模型,目标是获得“通用语言理解能力”,并生成一个“基础模型”(Base Model);
2、继续预训练(Pretraining Extension):在已有的预训练模型(Base Model)上,使用新的语料(通常是特定领域的语料)继续进行“自监督”训练。不再从零开始训练参数,而是基于已有参数继续更新;
3、指令微调 (Instruction Fine-Tuning, IFT):预训练得到的基础模型只会做一件事,那就是预测文本。而指令微调是使用“指令-响应”对基础模型进行微调,教会基础模型理解并遵循人类的指令,将其转变为有用的“助手”;
4、偏好对齐 (Alignment):使模型的输出更安全、可靠、符合人类价值观和偏好(如更有帮助、更诚实)。如通过基于人类反馈的强化学习(RLHF)方法,通过人类评分数据 → Reward Model → PPO优化策略,最终输出更符合人类偏好的结果;
5、推理优化 (Reasoning):在不更新模型权重的情况下,通过改进推理(生成)过程来激发模型潜力,提升复杂任务的表现。
要注意的是,在以上五个阶段中,继续预训练、指令微调、偏好对齐 都属于微调,这三个阶段都是基于已有的模型参数进行全部或部分参数更新。
而我们在实际项目中通常所说的微调,更多的是指“指令微调”。
而指令微调又都是通过监督微调(Supervised Fine-Tuning, SFT)方式进行参数调整。指的是用人工标注的监督数据(如输入 → 期望输出)进行有监督训练。SFT 是一种训练范式(方法论),强调使用“监督数据”。
通常我们也把指令微调阶段称之为监督微调阶段,也称SFT。
二、SFT微调方法
SFT的微调方法有如下几种:
1、全参数微调(Full Fine-tuning):模型所有权重都可以更新,不冻结任何层,通常采用较低学习率(例如 1e-5 或更低),防止“灾难性遗忘”,训练目标往往是让模型的语言行为完全向目标任务或风格靠拢。通常用于任务变化较大的场景(如从通用语言 → 医疗文本模型),一般项目中比较少用;
2、部分层微调(Partial Fine-Tuning):固定大部分层,只更新部分模块。即冻结(不更新)大部分或部分预训练模型的权重,仅训练部分层或新增组件;
3、参数高效微调(PEFT,Parameter Efficient Fine-Tuning):只更新部分参数,而非全参数更新,参数的更新量通常低于 10%,是SFT的高效实现策略,也是目前最主流的做法。
对于PEFT,我们可以继续粗浅地分为三种方式:
1、Additive 微调(增加额外参数):在模型外部增加新参数或模块(如 Adapter、Prefix、Prompt embedding),与原模型并行或叠加。常见的方法有 Prefix Tuning, Prompt Tuning, Adapter;
2、Selective 微调(部分参数更新):只更新原模型的一部分参数(例如最后几层、LN层等),方法有 BitFit, Last-layer fine-tune;
3、Reparameterization-based 微调(重参数化方法):通过重写模型参数的表达方式(reparameterize)来高效地更新参数;核心是引入新的参数化形式。常见方法有 LoRA(QLoRA), IA³, DoRA。
以上方法,我们挑一些比较常见的方法作下简单说明:
1、LoRA:在权重矩阵中注入低秩可训练分量;
2、QLoRA:在量化模型上应用 LoRA;
3、Prefix Tuning:训练 Transformer 每层的前缀向量;
4、Prompt Tuning:训练输入端的软提示 embedding;
5、Adapter:在层间插入可训练模块;
6、BitFit:仅训练偏置项。
三、LoRA 与 QLoRA 微调
我们对最为常用的微调方法作进一步的说明,对其它方法有兴趣的请大家自行了解。
全量微调要更新模型的所有参数(例如 LLaMA-7B 有 70 亿参数),代价极高。但实验发现,大多数任务中,模型权重的更新变化矩阵是低秩的(即信息集中在很少几个方向上)。于是 LoRA 提出:与其更新整个矩阵,不如只学习一个低秩近似矩阵。
LoRA 之所以成为当前主流方法,是因为它在性能、成本、部署、兼容性上做到了最佳平衡。
1、低佚适应微调(Low-Rank Adaptation,LoRA)
对权重矩阵 W ≈ W₀ + A·B 分解,只训练 A、B。可直接在 FP16 模型上进行微调,可使用中型 GPU 集群(A100 / H100 单机多卡)训练,此微调方法训练更稳定。
LoRA 的原理
以 Transformer 的线性层为例:y=Wx+b
LoRA 不直接更新 W,而是加上一个可训练的低秩部分(BA),也就是不去改动原来的 W,而是在推理时额外加上一点“可学习的偏移量”:
W′ = W+ΔW = W+BA
所谓“秩”,就是BA两个小矩阵的公共维度 r 。在线性代数里,矩阵的秩(rank)表示这个矩阵所包含的“独立信息的维度”( LoRA中通常为 8、16、32),在LoRA 中表示允许新增权重变化矩阵 ΔW 的“复杂度”或“自由度”。秩高的矩阵能表达的变化模式更多,更灵活;秩低的矩阵只能表达有限的方向变化,更简洁。

举个小例子:
假设B为 8×2 的矩阵,A为 2×9 的矩阵,存在公共维度2,BA矩阵就可以相乘,并得到一个 8×9 的新矩阵ΔW。
如果权重参数矩阵 W 刚好就是一个 8×9 的矩阵,那这两个矩阵就可以进行相加的计算:W′ = W+ΔW,这样就完成了权重偏移。
总结来说就是:
使用两个小矩阵(参数量少)进行相乘计算,转换成了一个大矩阵后,使之可以与原始权重大矩阵相加,实现参数偏移(微调)。
(这里面是线性代数的知识。为了理解这个,我又把大学时的知识复习了一下。以前没有应用场景难以理解没有兴趣,现在觉得还是有点意思的)
LoRA 微调时实际要训练的参数量 = B的参数量 + A的参数量。
假如大模型中神经网络中一层的原始权重参数数量为: 12288 × 2288 = 1,5094,4944 (1.5亿)
假设秩定为8,则偏移矩阵BA的参数量为:(12288 × 8) + (8 × 12288)= 19,6608 (19万)
训练参数量占比:19,6608 ÷ 1,5094,4944 = 0.13%
也就是说,只训练不到原来 1% 的参数量,却能让模型学到任务相关的新知识。
为什么这种方法有效?
因为原权重 W 已经含有大模型的通用知识(语言、语义、语法等),而 LoRA 只学习任务特定的“方向性调整”, 这些方向通常位于低维子空间,所以低秩近似(rank r)就足够了。
又因为 B、A 的维度很小,所以训练高效,内存占用少。可在多个任务之间快速切换不同 LoRA 适配器。
LoRA 训练完后有两种部署方案:
- 动态注入(推荐):推理时保留 W 和 A,B 两组参数,可随时加载/卸载 LoRA 模块,实现多任务共存。这个过程通常由框架(如 Hugging Face PEFT)自动完成。
- 合并权重:将 LoRA 权重直接“合并”到原权重即base 模型中,生成后的模型文件即可像普通模型一样部署到 vLLM、TGI 等推理服务。推理时只用一套权重,效率更高但失去灵活性。
2、QLoRA(Quantized LoRA)
LoRA对显存的要求还是比较高的(中型 GPU 集群),如果资源条件达不到却又想微调大模型,则可以使用QLoRA方法。
QLoRA是一项技术组合,即4-bit 量化 + LoRA 微调。兼顾性能与显存。可在单卡消费级 GPU(如 RTX 3090 / 4090,24GB 以下显存)上训练 7B~13B 模型。
简单来说,QLoRA就是将基座大模型的原始权重进行量化后,再进行LoRA微调的一种方法策略。
而且 QLoRA 使用一种 “双量化”策略(Double Quantization) 来平衡精度与显存节省。
- 什么是量化?
量化是让模型“用更少的比特表示参数值”以节省显存和存储的技术。换句话说就是:量化 = 用更粗的刻度近似表示原本精细的数值。量化后权重值变得更“粗糙”,但模型还能大致保持方向和分布。
量化不是压缩。
它是降低数值精度,将参数矩阵中每个浮点数转化为更少位宽的整数进行存储。量化值可直接计算,但“压缩”不行,得先解压。
也可以说,量化是一种“可计算的压缩”。它不是简单地把模型打包,而是让权重在更小的数值空间中运算。
- 量化的原理与流程
① 将权重矩阵参数分块:常见块大小为64元素/块(QLoRA默认),按行优先顺序进行分块,即从矩阵第一行开始,从左到右逐行扫描元素,每连续 64 个元素划分为一个块;
② 分别计算每块的缩放因子(Scale):分块中绝对值最大的值 ÷ 7(4-bit整数范围[-7,7]),得到缩放因子。这个值最终也会量化存储(缩放因子二次量化为8-bit)。
③ NF4量化映射:用参数 ÷ 对应块的缩放因子,得到归一化值如-0.537,再将归一化值查找到NF4码本中最相近的值,如-0.525,其索引值为2,最终这个2就是参数对应量化后要存储的值。
NF4码本有16个分位点值,基于标准正态分布优化。如下示例:
NF4 = [-1.0, -0.696, -0.525, -0.395, -0.284, -0.185, -0.091, 0, 0.080, 0.161, 0.246, 0.338, 0.441, 0.563, 0.723, 1.0]
索引 =[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
也就是原始权重参数从一个FP16的16比特(2字节)的浮点数,最终量化为4比特(0.5字节)的整数值。
假如70B参数模型:FP16需140GB → QLoRA仅需8.75GB(压缩94%)
在微调训练和推理时,量化权重参数需要还原成计算精度(如BF16/FP16)的近似浮点值参与运算,而且是动态还原(需要计算时才还原,节省显存)。这和原始矩阵的数值非常接近,只有极小误差。
在进行LoRA微调时,量化后的基础模型权重被冻结(不参与梯度更新),仅插入可训练的LoRA低秩矩阵。
需要注意的是,微调完成后,推理部署阶段一般依然是使用 “量化模型 + LoRA 增量” 进行推理,而不是回到原始(全精度)模型。也就是以动态注入的方式将LoRA增量与量化模型。
如果你此时再切换回原始 FP16 模型,你会丧失 QLoRA 的核心优势 —— 显存与存储节省。
除非你要将微调后的模型部署在不支持QLoRA的推理框架中(如TensorRT),则需要通过合并权重的方式导出全精度模型文件做部署推理服务。
最后总结一下:
QLoRA 是为了“能训”,LoRA 是为了“能用得好”。
QLoRA 让中小团队能在有限硬件上训练大模型,而LoRA 让模型能在工业级部署中稳定、高效地运行。
四、训练流程
我们了解完微调的基础理论知识后,就需要进一步了解微调训练是怎么做的了。
在讲训练之前,我们需要准备标注数据,这些数据将分为三部分:
① 训练集:模型学习用的数据,大概占比为80%~90%;
② 验证集:监控训练过程、调参用的数据,大概占比为5%~10%;
③ 测试集:训练完毕后,用来客观评估性能的数据,非必须,大概占比为 0%~10%
如果准备的数据量比较大时(如1万以上),训练集可以采用大占比,因为此数量级下能保证验证集和测试集的数据量要求。
微调训练其实是一个循环过程,一轮(epoch)一轮地往下执行。每一轮都是按下列步骤进行的:
1)训练
① 从训练集中取一小批量样本(batch)进行训练,比如32条;
② 执行前向传播,模型根据输入计算输出,得到预测值;
③ 计算损失(loss),度量预测和目标的差距;
④ 反向传播,根据损失计算每个参数的梯度;
⑤ 参数更新,用优化算法更新参数;
2)验证
⑥ 使用整个验证集做一次前向推理;
⑦ 计算 loss(比如验证集平均 loss),这里不更新参数;
⑧ 判断模型是否在“泛化能力”上提升或退步,如果提升则继续训练(下一轮),如果退步则表示过拟合,需要作调整。
在第⑧步中,泛化能力的提升或退步,是通过对验证集的loss值来判断的,如果值下降,表示训练仍处在有价值学习的状态,可以继续训练;但如果值开始上升了,则表示模型开始“过拟合”,模型在训练集上学得太细、记住了噪声,对新数据泛化变差。
在这种情况下,我们常见的做法是:
- 停止训练:保存上一轮的模型权重(可见上一轮的效果最好),作为最终的微调模型使用;
- 降低学习率:调整参数,继续训练;
- 增加正则化:在训练时对模型的参数或输出加限制,防止模型过度拟合训练数据;
- 使用更小的模型或更多数据:减少参数量,让模型容量与任务难度匹配,不容易记住训练集噪声;增加样本多样性,让模型学到通用规律而不是死记训练样本。
五、写在最后
我们再来做一下总结:
大模型微调的知识点路径是这样的:
微调 → SFT → PEFT → LoRA/QLoRA。
我们按这样的路径去学习和掌握,就会有一个系统化的认知。
然后再了解大模型微调项目的执行动作:
训练 → 验证 → 测试 → 评估 → 部署。
当然,本文所讲解的内容可能不能完全包含以上知识点,但大体的框架已经有了,大家可以自行补充学习。
如果站在AI产品经理的视角,则只需要理解其中大体的原理、方法、步骤即可,而不需要深挖技术细节。因为产品人员所要负责的工作,其重心是数据准备、模型评估、模型迭代等工作。原本这块知识是准备在本文中一并写完的,但写着写着就发现,加上这部分内容后,文章实在太长了,也失去了重点,因此索性先不写了,就此收笔。
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01 教学内容

-
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
-
大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。

vx扫描下方二维码即可

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03 入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:

04 视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05 行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!

06 90+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

1967

被折叠的 条评论
为什么被折叠?



