一、Finetune简介
LLM的下游应用中,增量预训练和指令跟随是经常会用到两种的微调模式
增量预训练微调
使用场景:让基座模型学习到一些新知识,如某个垂类领域的常识
训练数据:文章、书籍、代码等
指令跟随微调
使用场景:让模型学会对话模板,根据人类指令进行对话
训练数据:高质量的对话、问答数据
指令跟随微调是未来得到能够实际对话的LLM
在实际对话时,通常会有三种角色
System 给定一些上下文信息
User实际用户,会提出一些问题
Assistant根据User的输入,结合System的上下文,做出回答
对话模板
对话模板是未来能够让LLM区分出,System,User和Assistant不同的模型会有不同的模板
LoRA&QLoRA
LLM的参数量主要集中在模型中的Linear,训练这些参数会耗费大量的显存
LoRA同过在原本的Linear旁,新增一个支路,包含两个连续的小Linear,新增的这个之路通常叫做Adapter
Adapter参数量远小于原本的Linear,能大幅降低训练的显存消耗
二、XTuner介绍
以配置文件的形式封装了大部分微调场景,0基础的非专业人员也能一键开始微调。
微调所需的最小显存仅为8GB
XTuner简介
功能亮点
适配多种生态
- 多种微调算法
- 适配多种开源生态
- 自动优化加速
适配多种硬件
- 训练方案覆盖NVIDIA20系以上的所有显卡
- 最低只需8GB显存即可微调7B模型
XTuner数据引擎
数据处理流程
1.原始问答对-格式化问答对
2.格式化问答对-可训练语料
数据集映射函数
XTuner内置了多种热门数据集的映射函数
对话模板映射函数
XTuner内置了多种对话模块映射函数