笔记七:大模型微调与高效训练——从 SFT 到 MoE 的完整指南
目录第一部分:监督微调(SFT)与损失计算1.1 SFT 是什么?1.2 SFT 的损失是怎么计算的?(重点)1.3 预训练(CLM)和微调(SFT)的损失计算有什么区别?1.4 SFT 训练的最佳实践第二部分:LoRA 与参数高效微调2.1 为什么需要 LoRA?2.2 LoRA 的核心思想2.3 LoRA 的两个模块加在哪里?2.4 为什么只改 1% 的参数,影响却不小?2.5 为什么推理时要"吸收(合并)"LoRA?2.6 LoRA 的秩(Rank)怎么选?2.7 LoRA 的变种们2.8 QLoRA 和 DoRA 的区别2.9 QLoRA 的显存账单第三部分:混合专家模型(MoE)3.1 为什么需要 MoE?3.2 MoE 的架构拆解3.3 速度悖论3.4 负载均衡3.5 训练的核心谜团:TopK 不可导,路由器怎么学?3.6 著名的 MoE 模型3.7 总结:MoE 的优缺点摘要:本文系统梳理了大模型训练中的三大核心主题:监督微调(SFT)的损失计算原理与最佳实践、参数高效微调方法 LoRA 及其变种的核心思想与选型指南,以及混合专家模型(MoE)的架构设计、训练谜团与工业界方案。文章以通俗易懂的比喻和手算示例,帮助读者从原理到实战全面理解这些关键技术。第一部分:监督微调(SFT)与损失计算1.1 SFT 是什么?SFT(Supervised Fine-Tuning,监督微调),就是把一个已经会“文字接龙”的预训练大模型,调教成一个能听懂人话、按指令办事的智能助手。预训练模型:像个看过海量书籍的“书呆子”,只会根据上文猜下文(比如看到“今天天气真”,会接“好”)。SFT 之后:变成了能回答问题的“助理”。你问它“今天天气怎么样?”,它能回答“今天天气晴朗,适合出游”。这个过程需要给它看大量的“问题-标准答案”对,让它学习如何给出高质量的回答。1.2 SFT 的损失是怎么计算的?(重点)这是很多人的困惑:模型是一字一字地预测,那损失也是一字一字算的吗?答案是:是的,数学上是“一字一字”算的,但显卡是“一眼”全看完一起算的(矩阵并行计算)。它的核心机制叫做“教师强制(Teacher Forcing)”。1.2.1 什么是“教师强制”?在训练时,我们把“问题”和“答案”拼成一条完整的序列送进模型。模型会并行地预测每一个位置的下一个字。但关键点在于:模型预测时看到的“上文”,永远是正确的原文,而不是自己猜错的结果。举个具体例子,我们要训练模型回答“我爱你”:训练数据:输入是 [我, 爱, 你]。模型内部计算:看到 [我],预测下一个字是爱。看到 [我, 爱],预测下一个字是你。注意:在预测你的时候,模型看到的输入是 [我, 爱],其中“爱”是数据里给的正确答案,而不是模型自己在第一步预测出来的结果(哪怕它第一步预测错了,算第二步时依然用正确的“爱”)。打个比方:这就像老师给你做完形填空,句子是“我( )你”。训练时(Teacher Forcing):老师直接把正确答案“爱”写在括号里,让你看着“我爱”去填后面的“你”。就算你第一空填了“恨”,老师也会用板擦把“恨”擦掉,强行把“爱”写回去,再让你填第二空。推理时(生成答案):没有老师管你了,你第一空填了“恨”,第二空就只能基于“我恨”去填,所以会生成“我恨你”。1.2.2 那损失到底怎么算?我们用上一步的例子来手算一遍。第一步:看位置 1(预测“爱”)模型根据输入的[我],预测下一个词。模型输出的原始分数(Logits)经过 Softmax 变成概率:概率(我)=0.4,概率(爱)=0.5,概率(你)=0.05,概率(EOS)=0.05计算这个位置的损失(负对数似然):Loss₁ = -log(概率_爱) = -log(0.5) ≈ 0.693第二步:看位置 2(预测“你”)模型根据输入[我, 爱],预测下一个词。输出的概率:概率(我)=0.1,概率(爱)=0.2,概率(你)=0.6,概率(EOS)=0.1计算这个位置的损失:Loss₂ = -log(概率_你) = -log(0.6) ≈ 0.511第三步:算出最终的 Loss因为答案长度是 2,所以总损失 = (Loss₁ + Loss₂) / 2 = (0.693 + 0.511) / 2 = 0.602这个 0.602,就是最终传回给模型、用来更新参数的那一个数字(标量)。1.2.3 提示词(Prompt)有损失吗?绝对没有!在 SFT 中,我们只计算“答案部分”的损失,提示词部分的标签会被设为 -100。PyTorch 的 CrossEntropyLoss 函数看到 -100 就会自动跳过,不计算损失,也不传回梯度。打个比方:这就像老师改卷子,只改学生在答题卡上写的答案(Response),至于试卷上的题目(Prompt)本身写了什么,看都不看,更不会扣分,因为题目是本来就印在上面的!1.3 预训练(CLM)和微调(SFT)的损失计算有什么区别?对比维度预训练 (CLM)微调 (SFT)数据长什么样连续的一段话:[A, B, C, D]拼凑的两段话:[问题, 答案]标签(Label)设置[B, C, D, EOS](全是正常ID,没有-100)[-100, -100, 答案, 答案](问题部分挖掉,答案部分保留)哪些位置算损失每个位置(除了开头的第一个字)只有“答案”部分的位置学习目标学会预测任何一个下文单词(学语法、常识)只学会预测针对特定问题的回答(学指令跟随)一句话总结:CLM 算所有位置,是因为全是正文;SFT 只算答案,是因为人为把前半段标记成了只读的“上下文”。1.4 SFT 训练的最佳实践1.4.1 数据质量:LIMA 原则重质不重量:论文证明,1000 条极其精良的问答数据,训练效果能超过 5 万多条的粗糙数据。好数据必须满足:多样性:涵盖问答、摘要、代码、数学、创意写作、多轮对话等。正确性:每个回答必须事实准确、格式规范。长度平衡

相关新闻

电子电路分压器设计原理与应用指南

电子电路分压器设计原理与应用指南

1. 电源分压器的基本概念与工作原理 分压器是电子电路中最基础也最重要的组成部分之一,它的核心功能是将输入电压按特定比例降低到所需的输出电压。这个看似简单的功能背后,却蕴含着丰富的电子学原理和实际应用技巧。 在直流电源系统中,分压…

2026/10/22 11:36:09 阅读更多 →
源码交付!混合存储+对象化组织+流批一体+数据治理:煤机制造工业数据中台

源码交付!混合存储+对象化组织+流批一体+数据治理:煤机制造工业数据中台

在煤机制造这个行业:厂里的设备越来越先进,系统越上越多,但数据却越来越“散”。MES管生产、ERP管财务、PLM管研发、SCADA管设备——每个系统都在兢兢业业地记录着自己的那一亩三分地。可当你想把设备的实时运行数据和当天的生产工单关联起来…

2026/10/21 21:49:29 阅读更多 →
单片机数字滤波算法详解与工程实践

单片机数字滤波算法详解与工程实践

1. 单片机滤波算法概述 在嵌入式系统开发中,传感器数据采集是基础但至关重要的环节。我从业十余年,见过太多因为数据抖动导致系统误动作的案例——从工业生产线上的误停机到医疗设备的误报警。滤波算法就是解决这类问题的"数字稳定器"。 滤波…

2026/10/21 15:07:42 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/22 21:33:42 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 22:56:44 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 22:56:12 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 19:06:46 阅读更多 →