网站代运营 如何纳税最简单的网站开发软件
web/
2025/10/4 23:48:24/
文章来源:
网站代运营 如何纳税,最简单的网站开发软件,wordpress 创建模板,网站后台如何登录XTuner微调LLM课程笔记 一、Finetune简介 1.为什么模型要做微调#xff1f; 现在其实大部分的大模型应该叫做“基座模型”#xff0c;也就是基于普遍性的任务去进行与训练的#xff0c;所以如果想让它落地在特定的下游领域中#xff0c;它的表现必然是不如在领域内训练的模…XTuner微调LLM课程笔记 一、Finetune简介 1.为什么模型要做微调 现在其实大部分的大模型应该叫做“基座模型”也就是基于普遍性的任务去进行与训练的所以如果想让它落地在特定的下游领域中它的表现必然是不如在领域内训练的模型所以现在最好的方式就是对大模型进行一个领域内知识的微调。
比如上一期学生的中医药助手食神等等。
2.一般有两种finetune范式 增量预训练微调增量预训练是一种训练策略它允许模型在已有的知识基础上不断学习和改进。在QLoRA中增量预训练意味着模型会在原始预训练数据的基础上不断添加新的数据并重新进行训练。这样可以不断提高模型的泛化能力使其更好地适应各种任务。
指令微调指令微调则是针对特定任务对模型进行微调的过程。在QLoRA中指令微调基于明确的微调指令对模型进行微调使得模型更加专注于特定任务的实现。
增量预训练单纯拓展知识库对语料进行拟合学习但是你如果问他问题他不一定能回答你而是根据你的问题进行拟合回答哈哈哈哈而指令微调就是通过对话对来进行微调训练的所以你问他问题之后他才能很好的回答你毕竟调教过怎么回
简单来说一个是丢知识拓展知识库一个是用高质量对话和回答数据用于训练特定的任务
下面这图就是表示这两者的区别上面就是单纯预训练模型或者单纯增量预训练的模型的问答下面是指令微调的问答 3.关于数据集的建立处理 这就是标准的格式数据有输入有输出 其实每个基底模型的对话模板都不一样这个要看各个大模型开发单位自己的想法比如LlaMa2和InternLM就不太一样自己可以看到这玩意就是为了让LLM区分出system/User/Assistant 关于system/users/assistant的详细内容详见https://zhuanlan.zhihu.com/p/682606003
这里就简单介绍一下system大部分LLM模型的系统指令System message的权重强化高于人工输入的prompt并在多轮对话中保持稳定您可以使用系统消息来描述助手的个性定义模型应该回答和不应该回答的内容以及定义模型响应的格式。 对话模板的作用其实核心就是为了让模型认识这个数据认识我的输入是什么认识它应该学哪个输出。 这就是指令微调与增量预训练微调的本质区别了增量预训练根本就不区分input和output直接拟合整个增量数据计算整个增量数据的loss所以你问他问题的时候他可能有时候直接就是拟合你的问题这句语料输出一个相似的话而指令微调是input/output对话对进行训练模型只学会output训练时只会对output的数据计算loss这样当模型推理时就能根据input输出符和这个input的output
3.微调方案LoRA和QLoRA介绍 简单来说LORA其实就是通过在大模型原有的linear周围新增几个小的linearAdapter)Adapter的参数量远小于原本的linear这样就能大幅降低计算成本的前提下微调这个大模型。其实就是套了一层壳咯然后再与原模型整合一下不就好了嘿嘿嘿主要还是因为要是对整个模型进行调参参数量太大了成本太高 3.1 Full Finetuning VS LoRA VS QLoRA非常重要 这张图已经挺清晰哈
1.Full Finetuning很显然就是要全部加载base model然后又全部加载参数 然后优化参数 又全部加载/
2.LoRA就是全部加载base model然后优化的时候只有新加入的Adapter部分更新参数并加载/
3.QLoRA就更离谱了加载base model的时候直接4bit量化了卧槽 更加小了 然后还是只优化Adapter层的参数 而且优化器还是使用的分页优化器可以在CPU和GPU之间相互转移offload,具体见此文章https://zhuanlan.zhihu.com/p/654356333
二.正式介绍XTuner
1.XTuner的优越性和特点
1.1 XTuner特点
你自己也实战过大概也都知道这玩意的方便性主要就是把模型微调的整个步骤集成为一个个命令而且还自带模型的配置文件自己根据微调范式改改就好还自带优化加速消费级显卡也能干总结一下打包带走开箱即用高效便捷 还不错还不错
1.2 性能对比
这就是说XTuner对模型微调过程中的性能优化和显存优化很好显存占用不多不容易 Out of the memory 1.3 开箱即用一键打包带走
挑选配置文件拷贝配置文件
原来那个配置文件的命名是这个意思吼 模型的基本参数介绍咱已经写在源码注释里啦 访问部署模型与之对话 2. XTuner数据引擎
Xtuner数据引擎自动帮你处理原始语料变成格式化问答对再变成可训练语料用于模型训练 针对不同的base model Xtuner集成了对应的数据处理引擎开发者一键调用就好这样的话大家就可以把精力放在珍贵的原始数据内容的收集上不用花费精力去处理它啦太酷啦太酷啦 这就是那个参数多数据样本拼接充分利用GPU的显存啦 3. XTuner的两个优化技巧Flash Attention和DeepSpeed ZeRo
Flash Attention默认开启主要看看DeepSpeed ZeRO:这个的话在实战部分的blog已经详细说明 详见书生·浦语大模型实战训练营第二期第四节--Xtuner微调LLM--notebook-CSDN博客
XTuner直接集成这个优化技巧一键命令开启 酷毙了 原来InternLM2-chat-1.8B也是基于InternLM2-1.8B基础模型微调而来的chat模型哈哈哈哈哈现在可能才知道为什么说大模型一开源就可以开始换汤不换药可以微调建立自己领域的大模型了嘿嘿 三、基于LLaVA方案------微调多模态LLM
1.多模态LLM其实就是解决输入文本/图像的问题咯一个是文本的embedding模型一个是image Projector训练好这两个玩意就能转为模型能识别的向量就可以训练多模态LLM啦 2.训练多模态LLM的方案LLaVA
大佬说不能简单说LLaVA模型就是文本单模态模型LLM训练出来的Image Projector 但是你就大概这样理解就好
原理大致如下图自己看图就能很好理解大概分为两个阶段训练阶段是结合单模态文本LLM和文本图像问答对训练数据进行训练得到“眼睛”image projector拆开细分来看这个具体的流程在后面的一节测试阶段就是将这个眼睛整合到原来的单模态文本LLM就可以变成多模态LLM 3.对比LLaVA和LoRA
对比一下LLaVA和LoRA的基本逻辑其实挺像的都是在已用的LLM基础上用新的数据添加一个小的玩意加上去从而实现额外的功能
LLM套上image projector后装上一双眼睛多模态LLM
LLM套上了LoRA后有了一个新的灵魂基于特定领域知识的角色 4.训练Image Projector流程
这个流程就是分为两个阶段嘛增量预训练指令微调
Pretrained: 先就是利用文本单模态LLM引入大量的图像及其简单的图像描述也就是大量的基本知识就是质量不太好而且不是对话数据先预训练一个model
Finetuned: 然后再引入高质量的图像复杂对话文本对这个预训练model进行微调成为image projector ---------------------------------------------------------------------------------------------------------------------------------
上面就已经训练完了image projector!!!!!!
然后把这个image projector 整合到原来的模型 就相当于加入了一个能解决图像处理的能力咯adpater)那就变成了多模态LLM
这整个流程叫做LLaVA方案如下图上面这节就是下图左边的LLaVA训练阶段啦 然后这就是这节课的理论笔记了下面的基于XTuner的单模态LLM微调和基于LLaVA的多模态LLM微调实战环节请详见我的下一篇博客
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87042.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!