书生·浦语全链条开源体系(第四节课学习心得内容)

视频链接:https://www.bilibili.com/video/BV1yK4y1B75J/?spm_id_from=333.788&vd_source=3bbd0d74033e31cbca9ee35e111ed3d1

XTuner大模型单卡低成本微调实战笔记

本节课主要包括理论和实战两大部分,理论部分介绍微调框架XTuner以及整个微调的工作流程,实战部分讲解如何使用XTuner来微调一个属于自己的开源模型,会以IntenLM为底座模型来进行微调。

1. Finetune简介

大语言模型是在海量的文本内容上以无监督或半监督的方式进行训练的。这些海量的文本内容,赋予了大语言模型各行各业的知识。但是如果想将这种大语言模型实际应用到具体的生产或科研中,往往会发现模型的回答不尽如人意。这种时候我们就需要对模型进行微调,使其在具体的使用场景或是具体的领域中输出更好的回答。常见的两种微调策略分别是增量预训练微调以及指令跟随微调。

所谓的增量预训练,往往就是给模型投喂一些新的知识,这些新知识就是你目标领域的文本内容。比如说如果现在想微调一个可以诊断癌症的模型。那么在增量预训练微调策略中,我们需要给模型投喂更多关于癌症相关的专业知识。然后经过对新知识的学习,模型在该领域就能获得更好的表现。

在LLM的下游应用中主要使用的微调方式是增量预训练指令跟随

1.增量预训练微调是将新领域的文本内容喂给大模型

2. 指令微调:让模型学会根据人类指令进行对话

进行指令微调的时候,每条数据都是由一问一答的形式构成的。但是增量训练的数据不需要问题,只需要回答,或者说增量训练的数据都是一个一个的陈述句,都是在陈述事实,不是以问答的形式存在。所以依照刚才的对话模板,我们只需要把system和user这两个角色的这个内容留空,把增量预训练的这一条数据放到assistant的角色中即可,在计算损失时,与前面一样,仍然计算system部分的损失。

说完了训练数据的处理,接下来再来讲一下XTuner中使用的微调原理(Lora和QLora)

2. XTuner介绍

XTuner是一个打包好的大模型微调工具箱,它支持从HuggingFace和ModelScope加载模型和数集。它支持多款开源大模型,比如说InternLM、Meta的Llama家族、阿里的通义千问家族、百川大模型、清华的ChatGLM家族等等,包括最近出来的多专家的模型(Mistral)也是支持的。

下面就是快速上手部分,这一部分的详细操作,会在下一部分手把手文档教学视频中进行详细讲解,这里先简单地过一遍。

XTuner具有强大的数据处理引擎。对于格式化的问答对,已进行了统一的数据的指定。然后也对很多开源的数据集进行了映射函数的内置,大家可以很方便的在更多流行的开源数据集上进行一键的启动。这样开发者就可以专注于数据内容,而不必花费精力处理这些复杂的数据格式了。

3、8GB显卡玩转LLM

XTuner默认开启Flash attention的加速方式,就相当于黑魔法一样,有了这个方法就可以加速你的训练。
集成了deepspeed_zero的优化方法,可以在训练过程中更快(deepspeed不是默认启动的,因此在启动的时候需要增加一个deepspeed的启动参数。对于QLora算法,后面就跟deepspeed_zero2就行了)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值