XTuner 低成本微调实战

本文介绍了Finetune的两种策略:增量预训练和指令跟随,以及预训练模型如何通过指令微调理解问题。重点讨论了XTuner工具箱,一个支持多种大模型微调的实用工具,包括LoRA和QLoRA的内存优化技术。
摘要由CSDN通过智能技术生成

一、Finetune简介

1. 微调策略分为增量预训练和指令跟随两种

2. 增量预训练是给模型投喂新的知识,特别是目标领域的文本内容

3. 通过学习新知识,模型在该领域的表现能够得到提升

4. 指令跟随是一种更通俗的说法,指的是根据给定的指令来微调模型

5. 这两种微调策略可以结合使用,以达到更好的效果

1. 预训练模型是一种海量预训练数据训练出来的模型,也称为base模型或pretrained模型

2. 预训练模型在没有进行指令微调之前,无法理解输入的问题,只是拟合训练数据集中的分布

3. 通过指令微调,可以让预训练模型理解问题并做出回答

4. 指令微调是通过对训练数据进行角色指定来实现的

5. 在指令跟随微调中,需要将问题和答案构成的数据投给模型,并指定问题的角色为问者,答案的角色为答者

1. 在角色指定时,需要将问题部分指定给user角色

2. system部分需要按照自己微调的目标领域来书写

3. 同一次微调中,system部分通常是固定的

4. 完成对话模板的构建后,可以将数据喂给模型进行微调训练

5. 不同的开源模型所使用的对话模板不尽相同

 指令微调的原理是通过对话模板构建角色

1.进行指令微调时,每条数据都是由一问一答的形式构成的

2. 增量训练的数据不需要问题,只需要回答,都是一个一个的陈述

3. 在增量预训练中,只需要将system和user这两个角色的内容留空,将增量训练的数据放到assistant的角色中,计算损失时仍然计算system部分的损失。

1. 训练数据的处理包括预处理和剪枝

2. Xtuner中使用的微调原理是QLoRA和LoRA

3. LoRA模型是在原模型的linear旁新增一个旁路分支,即adapter,adapter的参数量远小于原模型的linear,可以降低训练显存的消耗。

4. QLoRA是LoRA的改进,可以在不改动整个模型的情况下对部分零件进行改动,进一步减小显存占用。

5. 全参数微调需要加载整个模型和所有参数优化器到显存中,而lora微调只需要加载部分参数优化器,QLoRA微调则使用4比特量化加载,并可以在GPU和CPU之间进行调度。

二、 XTuner

1.  XTuner是一个打包好的大模型微调工具箱。

2.  XTuner支持从huggingface和modelscope加载模型和数据集

3.  XTuner支持多款开源大模型,如书生、Llama、阿里的通义千问、百川大模型和清华的chatGLM等

1. 首先需要安装XTuner,并指定版本以避免版本问题。

2. 创建大环境,选择配置模板,并进行一键训练

3. 训练完成后,得到adapter文件,需要在加载底座模型的基础上加载adapter进行对话和测试

4. 使用XTuner自带的chat命令进行对话模式和比特量化模式的设置。

5. 启动模式的设置使用XTuner自带的chat命令。

1.默认开启了flash attention的加速方式,可以加速训练

2. 集成了deepspeed zero的优化方法,可以在训练过程中更快

3. 对于qlora算法,需要使用deepspeed zero2。

4. 展示了不同算法上的计算卡的显存占用情况

  • 33
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值