当前位置: 首页 > news >正文

大模型入门-大模型蒸馏与微调3

QLoRA:量化与低秩适配的终极组合

论文地址:https://arxiv.org/pdf/2305.14314

QLoRA 的核心思想

QLoRA(量化低秩适应)是2023年Meta提出的高效微调技术,通过量化预训练模型与 LoRA 的组合来进行大模型微调 。

  • QLoRA 模型本身使用 4bit 加载,训练时把数值反量化到 bf16 后进行训练 。

  • 这种方法利用 LoRA 可以锁定原模型参数不参与训练、只训练少量 LoRA 参数的特性,使得训练所需的显存大大减少 。

QLoRA 的四大技术突破

4位NF4量化:首创正态浮点4位(NF4)数据类型,针对 Transformer 权重的正态分布特性进行了优化 。

双重量化:将模型参数划分为若干个 block,每个 block 内的参数共享一个常量 c,这个 c 是用于该 block 内参数量化的缩放因子,用于将原始浮点参数转换为低比特(如 4bit)量化值以实现压缩 。由于 c 原本以 float32 存储,会带来额外显存开销 。双重量化对其进行二次量化,将其转换为 8bit 的 c’,从而进一步降低存储成本 。

分页优化器:解决了量化模型训练时的内存碎片问题,能够动态管理梯度内存

高秩 LoRA 适配器:继承了 LoRA 的低秩分解思想,但支持更高秩(如 r=64/128),在低精度下仍保持强表达能力 。通过冻结量化后的预训练权重,在 LoRA 的基础上大大降低了所需显存 。

实际意义与应用价值

训练显存大大降低:13B 模型微调仅需 7GB 显存,70B 模型单张 48GB GPU 即可完成,而以前则需要多卡 A100 才行 。

多任务友好:可以共享量化后的基础模型,为每个任务仅保存极小的 LoRA 权重(例如,7B 模型任务权重仅为 4MB) 。

总结:QLoRA 通过量化压缩与低秩微调的组合创新,将大模型的微调成本大大降低 。这使得我们在 RTX4090 等消费级硬件上微调百亿参数模型成为可能,让大模型可以更好地在垂直领域中落地使用 。

数据蒸馏:让小模型继承大模型的智慧

什么是数据蒸馏?

Hinton 在 NIPS 2014 年提出了知识蒸馏的概念,其核心目的是将一个大模型或多个模型学到的知识迁移到另一个轻量级的单模型上,以便于部署 。简单来说,就是用小模型去学习大模型的预测结果(Soft Label),而不是仅仅学习训练集中的真实标签(Hard Label) 。

在蒸馏的过程中,有以下几个核心概念:

教师模型 (Teacher):原始的大模型 。

学生模型 (Student):新的轻量级小模型 。

Hard Label:训练集中的真实标签(例如,单一的类别标签[1, 0, 0]) 。

Soft Label:教师模型对输入数据进行预测时输出的概率分布 。相比于绝对的 Hard Label,教师模型输出的概率分布(如[0.7, 0.2, 0.1])反映了模型对每个类别的“信心程度”,并且包含了类别间的相对关系(例如类别B可能比类别C更接近真实答案) 。

Temperature (T):用来调整 Soft Label 平滑程度的超参数 。

数据蒸馏之所以有效,核心思想在于一个好模型的终极目标是学习如何泛化到新的数据,而不仅仅是拟合现有的训练数据 。因此,蒸馏的目标是让学生模型学习到教师模型的泛化能力,理论上这样训练出来的结果会比单纯去拟合训练数据的学生模型更好 。

如何进行知识蒸馏?

对于简单的二分类任务来说,如果直接拿教师预测的 0/1 结果作为目标,这与直接使用训练集差不多,没有什么意义 。为了解决这个问题并更好地控制输出概率的平滑程度,Hinton 在教师模型的 softmax 函数中引入了参数T TT(Temperature) :

q i = e x p ( z i / T ) ∑ j e x p ( z j / T ) q_{i}=\frac{exp(z_{i}/T)}{\sum_{j}exp(z_{j}/T)}qi=jexp(zj/T)exp(zi/T)

有了教师模型的输出分布后,学生模型的目标就是尽可能拟合这个分布 。此时,新的损失函数(Loss)变为:

L = ( 1 − α ) C E ( y , p ) + α C E ( q , p ) ⋅ T 2 L=(1-\alpha)CE(y,p)+\alpha CE(q,p)\cdot T^{2}L=(1α)CE(y,p)+αCE(q,p)T2

  • 其中,C E CECE代表交叉熵(Cross-Entropy),y yy是真实标签,p pp是学生模型的预测结果,α \alphaα是蒸馏 loss 的权重 。

注意:因为学生模型要拟合教师模型的分布,所以学生模型在计算概率p pp时也必须使用相同的参数T TT。同时,由于新的目标函数会导致求梯度时梯度缩小为以前的1 / T 2 1/T^{2}1/T2,所以最后需要乘上T 2 T^{2}T2,以保证在T TT变化时,Hard Label 的影响权重不会失衡 。

扩展思考:如果可以拟合概率分布,可以直接拟合 logits 吗?Hinton 在论文中证明了是可以的:当T TT很大,且 logits 分布的均值为 0 时,优化概率交叉熵和优化 logits 的平方差在数学上是等价的 。

数据蒸馏的损失函数解析

学生模型的终极目标是同时拟合 Hard Label 和 Soft Label,因此最终的总损失是任务损失和蒸馏损失的加权和 :

L t o t a l = α ⋅ L t a s k + ( 1 − α ) ⋅ L d i s t i l l L_{total}=\alpha\cdot L_{task}+(1-\alpha)\cdot L_{distill}Ltotal=αLtask+(1α)Ldistill

这两个 Loss 分别代表:

任务损失 (Task Loss):这是学生模型在真实标签 (Hard Label) 上的损失,通常使用交叉熵损失 (Cross-Entropy Loss) 来计算 。其目标是确保学生模型能够正确预测训练数据中的标准答案 。

蒸馏损失 (Distillation Loss):这是学生模型在教师模型的预测概率 (Soft Label) 上的损失,通常使用 KL 散度来计算 。其目标是让学生模型的输出分布尽可能接近教师模型的输出分布 。

延伸案例:DeepSeek 是怎么进行数据蒸馏的?

既然蒸馏需要学习概率分布,那么大模型进行数据蒸馏的前提,是不是必须保证学生模型和教师模型的词表(Vocabulary)大小完全一致?

通过查阅模型配置文件可以发现一个有趣的现象:

  • DeepSeek-R1 教师模型的词表大小是 129280 。

  • 由 R1 蒸馏出来的 Qwen-7B 学生模型,其词表大小是 152064 。

  • 由 R1 蒸馏出来的 Llama-70B 学生模型,其词表大小是 128256 。

词表大小不一致,就意味着教师模型预测出来的词元概率,在学生模型中可能根本找不到对应的词,Soft Label 也就对应不上,传统的基于 KL 散度的学习方式便无法进行 。

由此可以推断出,DeepSeek-R1 所宣称的“蒸馏”大概率只进行了有监督微调(SFT) 。也就是把大模型生成的优质内容直接当作 Hard Label 让小模型去学习,这也侧面证明了仅仅进行全参微调(SFT)时,数据质量确实非常重要 。目前 DeepSeek-R1 只开源了模型而没有开源训练数据,这恰恰反映出了训练数据的重要性,高质量的数据无疑是 DeepSeek-R1 最大的护城河 。

print('hello world')
http://www.jsqmd.com/news/858598/

相关文章:

  • 2026年常州热缩管源头厂家深度横评:从标准品突围到工业级定制化解决方案 - 精选优质企业推荐官
  • ElevenLabs希腊文语音合成精度提升87%:基于ISO 639-2标准的音素对齐校准全流程详解
  • 天虹购物卡线上回收全流程指南:轻松回收变现! - 团团收购物卡回收
  • Taotoken API Key管理与访问控制功能在团队大赛中的协作应用
  • DS4Windows终极指南:如何免费解决手柄漂移并优化游戏操控精度
  • 目的地婚礼哪家专业各品牌优劣一览:5大关键维度实拍参考 - 速递信息
  • Obsidian Local REST API:5个实用场景教你快速实现笔记自动化
  • 为内部知识库问答机器人接入 Taotoken 多模型后备链路
  • MapTRV2 部署训练与测试(踩坑版本)
  • 2026 年 5 月在职备考软考?3 款免费刷题软件横评 - 讲清楚了
  • 2026 含金量高 IT 行业证书有哪些
  • 2026 国内免示教焊接机器人实力厂商全景解析:技术落地与场景适配指南 - 深度智识库
  • 2026免费本地视频去水印软件推荐|电脑手机端实测对比
  • 2026年5月最新 超声波明渠流量计选型指南:防腐与适用场景 - 液体流量液位品牌推荐
  • PrismLauncher-Cracked:如何通过代码修改实现Minecraft完全离线启动?
  • Windhawk终极指南:如何免费深度定制你的Windows系统界面与功能
  • ElevenLabs蒙古文语音接入全攻略:从API密钥配置到蒙古文音素对齐的7步落地法
  • 2026年广告小程序开发平台有哪些公司?这几家快收藏 - FaiscoJeff
  • 终极指南:在Debian/Ubuntu系统上快速配置DisplayLink多屏扩展驱动
  • 如何快速掌握LuaJIT字节码还原:面向开发者的完整指南
  • ServiceState (网络服务状态) 架构设计
  • Flutter Dark Mode 在 OpenHarmony 系统中的适配实践
  • 探索AI编程工具的民主化:从技术壁垒到开源共享的技术演进之路
  • C#方法(方法的调用与定义与方法的参数)
  • 2026 年 5 月|企业培训无闭环、效率低?这 3 款平台让培管更简单 - 讲清楚了
  • 实测实锤!AI低代码造ERP,效率狂升600%,技术+避坑全拆解
  • AntiDupl.NET:智能图片去重工具的完整使用指南与实战方案
  • 四川志恒汇达:重竹地板塑木围栏 HUPC 幕墙优质供应商 - 深度智识库
  • vscode使用claude code接入deepseek教程
  • 终极密码学工具箱ToolsFx:30+编码转换与一键解码的完整解决方案