1. 微调介绍
1.1 为什么要微调?
列举学员的一些优秀项目
LLM微调是一项通过在较小、特定数据集上进一步训练预训练模型的过程。这个过程的目的是提升模型的性能,使其在特定任务或领域上表现更好。简而言之,微调就是为了让通用模型更适应特定的应用场景,从而缩小通用模型和特定需求之间的差距,确保模型更符合人类的预期。
1.2 两种Finetune范式
举例说明 增量预训练和指令微调之间有什么区别
如果底座模型没有进行指令微调,就只能单纯拟合训练数据中的空间分布,无法识别问题输入;
进行指令微调类的训练后则能进行正常一问一答的回复
1.3数据处理的一般过程
(1)标准格式数据
标准格式数据:训练框架能够识别的数据格式
(2)添加对话模板
是为了让LLM区分出System、User、Assitant
且不用的模型有不同的模板
不同的的增量预训练微调,数据中会有input和output,所以只需要对output部分计算loss
1.4 大模型微调方案(全参数微调 vs LoRA微调 VS QLoRa微调)
1.4.1 全量微调
通过在预训练的大模型基础上调整所有层和参数,使其适应特定任务。这一过程使用较小的学习率和特定任务的数据进行,可以充分利用预训练模型的通用特征,需要更多的计算资源。
1.4.2 高效参数微调
高效参数微调是指微调少量或额外的模型参数,固定大部分预训练模型参数,从而大大降低了计算和存储成本,同时能实现与全量参数微调相当的性能,甚至在某些情况下效果更好。
高效参数微调可以粗略分为三类:增加额外参数、选取一部分参数更新、引入重参数化。
增加额外参数又分为类适配器方法和软提示两类。
高效参数微调目标
1、能够达到相当于全量微调的效果
2、仅更新模型的一部分参数
3、是数据通过流的方式到达,而不是同时到达,便于高效的硬件部署。
4、改变的参数在不同的下游任务中是一致的。 LoRA & QLoRA
2.XTuner介绍
2.1 XTuner简介
- 傻瓜式,上手难度低
- 轻量级,对于7B参数量的LLM,微调需要的最小显存仅为8GB
2.2 LLaMA-Factory vs XTuner
XTuner训练速度在不同的量级的模型上训练速度都显著高于LLaMa-Factory
在不同参数长度下,无论是兼容性、性能优化、显存优化等方面XTuner都更具优势
2.3 XTuner 数据引擎
2.3.1、数据处理流程
2.3.2、数据集映射函数
XTuner 内置了多种热门数据集的映射函数
2.3.3、对话模板映射函数
2.3.4、多数据样本拼接
2.4、训练技巧
XTuner 有两个很重要的训练技巧——Flash ATTention 和 DeepSpeedZero。
2.4.1、Flash Attention
2.4.2、DeepSpeedZero
3.8GB显存玩转LLM
4.InternLM2 1.8B模型
5.多模态LLM模型
给LLM装上电子眼:多模态LLM原理简介
什么型号的电子眼:LLaVA方案简介
快速上手:InternLM2 Chat 1.8B + LLaVA
6.Agent