XTuner笔记

为什么要微调:

  1. 模型不具备一些私人定制的知识

2。模型回答问题的套路你不满意。

对应衍生出来两种概念

增量预训练微调:
  • 使用场景:让基座模型学习到一些新知识,如某个垂类领域的常识
  • 训练数据:文章、书籍、代码等等
指令跟随微调:
  • 使用场景:让模型学会对话模板,根据人类指令进行对话
  • 训练数据:高质量的对话、问答数据
  1. 数据的一生
LoRA和QLoRA
LoRA总结
之前的fine-tune的方法
Adapters

方法:在模型的每一层之间添加可训练的小规模的网络,冻结原始网络权重,以此来减少fine-tune所需要的参数量。

应用:适用于那些希望在保持预训练模型结构不变的同时,对模型进行特定任务调整的场景。

缺点:引入推理延时
*

Prefix Tuning

方法:在模型输入部分添加一些可训练的前缀向量,然后将这些向量和数据一起送入模型,改变模型对单独数据的推理结果。

应用:适用于需要对模型进行轻量级微调的场景,特别是当模型非常大,而可用于训练的资源有限时。

缺点:鲁棒性不够好,模型的结果严重依赖于前缀的质量(举一个不是很恰当的例子就是:网络本身就没这些只是,你非得加前缀让他说,这怎么能说出来?)

简单来说LoRA就是通过引入两个低秩参数化更新矩阵来减少参数量,我的理解是把参数量降维(变少)
问题描述:

假设一个网络的所有参数W,维度是d * k,微调它的梯度∆W维度也是是d * k,也就是说W和∆W的参数量是一样的,这就给我们训练参数量太大的网络带来困难。同时,如果有不同的下游任务,则需要对每个下游任务都训练出一个这样的∆W,因此这种方式的fine-tune是非常昂贵的。
*

解决方案:

针对这个问题,文章提出将∆W进行低秩分解,分解成两个矩阵A(维度是d * r)、B(维度是r * k),其中r远远小于d和k的最小值,然后我们就可以计算∆W和AB的参数量:

应用:

需要对大模型所有参数进行微调,但不显著增加计算量的场景
*

优点:

训练成本降低,训练速度提升,针对不同任务只需训练针对不同任务的AB即可
*

缺点:

以精度换速度

QLoRA总结

在LoRA的基础上,添加了NF4的数据压缩(信息理论中最有的正太分布数据量化数据类型),进一步减少了显存和内存的消耗;然后添加一组可学习的LoRA权重,这些权重通过量化权重的反向传播梯度进行调整。

块状 k-bit 量化:既压缩了数据,又解决了异常值(我理解为噪声)对数据压缩的影响。我理解为:数据分布不是线性的,因此利用块量化(类似分治?)进行数据压缩。

优点:

使用NF4量化预训练权重,减少内存。计算梯度的时候再反量化?量化和反量化的或称会不会带来时间消耗?

双重量化:虽然NF4的数据的内存消耗很小,但是将量化常数也占用了内存。

相关推荐
检信智能44 分钟前
检信 Allemotion 多模态融合技术,解析非接触情绪采集的底层逻辑
人工智能·语音识别
星云API|微信接口开发1 小时前
企业微信二次开发实战笔记:如何用在线调试快速验证接口功能
数据库·笔记·企业微信
RoboWizard1 小时前
固态硬盘对游戏帧数有影响吗?
人工智能
2301_768103494 小时前
AI视频创作Agent实战03:DeepSeek文案裂变与草稿版本控制
人工智能
火山引擎开发者社区4 小时前
Anker 首届黑客松挑战赛|9 月 7 日报名启动
人工智能
Dawson Zhu6 小时前
工作流与 Agent 的工程选型:从“控制权归属“看 LLM 应用架构
人工智能·语言模型·架构·aigc·agi
计算机源码社6 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
C^h6 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
David猪大卫7 小时前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
Rocky Ding*7 小时前
【三年面试五年模拟】2026-09-06 拼多多 AI Agent研发岗秋招笔试4道算法题完整题解
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·拼多多