学习视频网址:
XTuner 大模型单卡低成本微调实战_哔哩哔哩_bilibili
一、什么是微调(Finetune)
大模型中常用的两种微调方式:增量预训练微调,指令跟随微调
(一)增量预训练微调
使用场景:让基座模型学习到一些新知识,如某个领域的知识
训练数据:文章,书籍,代码等
(二)指令跟随微调
使用场景:让模型学会对话模板,根据人类指令进行对话
训练数据:高质量的对话,问答数据
一个能更直观的描述指令跟随微调作用的图
在没有进行指令微调之前,大模型并不能准确识别出“什么是肺癌?”这句话是一个问题,他只会根据文本匹配来输出结果。而进行了指令微调后,大模型才知道,这是一个问题,我应该给出怎样的回答。
二、Xtuner中使用的微调方法
LoRA&QLoRA
(一)LoRA(Low-Rank Adaptation of Large Language Models)
LLM的参数量主要集中在模型中的Linear,训练这些参数会耗费大量的显存。LoRA通过在原本的Linear旁,新增一个支路,包含两个连续的小Linear,新增的这个支路通常叫做Adapter。
Adapter 参数量远小于原本的 Linear,能大幅降低训练的显存消耗
(二)QLoRA
在加载模型的时候使用4-bit量化,能够节省显存。并且优化器可以在GPU和CPU之间进行调度,其他和LoRA一样。