1、FineTune简介
1.1、为什么要微调?大语言模型有各行各业的通用知识,但具体深入到某个领域,模型表现不尽如人意,需要微调
1.2、两种微调:增量预训练和指令微调
1.4、增量预训练:给模型投喂额外的特定领域的知识语料,模型在新的语料上继续学习训练。
1.5、指令微调:基座模型学习到到是在须训练数据集上的一个语言分布,本不能理解问题的意图。所以需要有一些方法让基座模型理解人类的意图(指令),这种方法叫指令微调。
1.6、如何进行指令微调:使用指令微调模板,其中有三个角色,System、User和Asistant。在System中设置具体领域的背景信息和意图,User中设置需要回答的问题,Asistant中设置期望的答案。有很多指令微调的框架,可以简化我们的工作,XTuner就是其中之一。
1.7、不同的开源框架有不同的微调框架。Llama和InternLM的格式有些不同。但都能在预测阶段自动的模板组装都是有微调框架完成的。
1.8、指令微调时,需要准备输入输出数据,但只对输出数据/label计算损失。
1.9、增量预训练:和指令微调的一问一答的训练语料不一样,增量预训练只有答案,或者说只有陈述句。所以在语料编写时,System和User部分都设置为空。但计算损失时,和指令微调是一样的。
1.10、XTuner中使用的是LoRA和QLoRA
LLM中线下全连接层有大量的参数,如果全都要进行微调,将需要很大的显存和工作量,为了节省显存和计算量,可以搞一个旁路,以小的参数量来近似达成全量调整的效果。这个旁路由两个变换矩阵构成。
1.11、全量调整、LORA、QLORA的对比
2、XTuner介绍
1、XTuner:开源微调框架,支撑HuggingFace和ModelScope和多个开源大模型家族,包括Llama、通义千问、ChatGLM以及InternLM;支撑多种GPU显卡,包括消费级显卡和数据中心级显卡
3、8G显卡玩转LLM
4、实战
标签:训练营,微调,书生,开源,指令,显卡,语料,模型 From: https://www.cnblogs.com/littlesuccess/p/18017568