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

视频:https://www.bilibili.com/video/BV1yK4y1B75J/?spm_id_from=333.788&vd_source=d5e90f8fa067b4804697b319c7cc88e4
视频中跟的操作笔记:https://github.com/InternLM/tutorial/blob/main/xtuner/README.md
视频推荐star:https://github.com/internLM/xtuner

Finetune简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
system在一个训练数据集里面是固定的
在这里插入图片描述

在这里插入图片描述
增量预训练微调是陈述句,没有输入,放入assistant里面,计算损失。

stable defusion就是通过不同的LoRA模型,作为旁路分支,替换不同风格。
在这里插入图片描述
QLoRA在加载模型时量化为4-bit,不精确加载,相当于生锈的螺丝刀,减小显存开销。

XTuner 介绍

特色
🤓 傻瓜化: 以 配置文件 的形式封装了大部分微调场景,0基础的非专业人员也能一键开始微调。
🍃 轻量级: 对于 7B 参数量的LLM,微调所需的最小显存仅为 8GB : 消费级显卡✅,colab✅

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
adapter就是训练好的LoRA模型,在加载大模型的时候要一同加载进去。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多条训练数据拼接,统一计算loss。并行训练,增大显存。增强训练的效率。
在这里插入图片描述

在这里插入图片描述
QLoRA跟的是zero2

8GB显卡玩转LLM

动手实践

视频说要gite源码安装xtuner,但是我pip安装了,后面需要。
Xtuner开箱即用的配置:
baichuan2_13b_base_qlora_alpaca_e3 的意思是
<模型名字><模型参数><模型是base还是指令微调后的chat模型><微调算法><微调数据集><3个epoch>
在这里插入图片描述
训练先加载底座模型,Map内置好了一些函数,把不是标准格式的数据变成sys、user、assistant这样格式的数据。

01/11 20:02:26 - mmengine - INFO - Epoch(train) [1][  10/2162]  lr: 2.8573e-05  eta: 2:44:21  time: 4.5825  data_time: 0.0100  memory: 11668  loss: 1.5038

eta:预计训练时间,太长了。

  1. 需要加deepspeed,需要先删除微调路径:当前目录下的work_dirs。
  2. 需要保持远程连接,连接中断,训练中断,需要后台。下载tmux,中断连接,但是训练继续。
# 1. 加deepspeed,,建议下完tmux一起加
rm -rf work_dirs
xtuner train ./internlm_chat_7b_qlora_oasst1_e3_copy.py --deepspeed deepspeed_zero2 
# 2. tmux下载
apt update -y
apt install tmux -y

# 3. 下载好tumx后新建任务名“finetune“,进入tumx行
tmux new -s finetune
# 虚拟的Ctrl+B D返回之前的命令行
# 再次返回之前新建的finetune tmux环境
tmux attach -t finetune

比较微调前和微调h后:
使用merge之后的模型提问:双眼视物模糊2个月,用英文是因为中文报错了,not a string。可能中文编码支持有问题。
在这里插入图片描述
使用intern7b的基座模型提问:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
微调后有结果,遇到的问题主要是:

  1. git clone 有503报错,还好gitee有备份,基本上所有的下载不了的都可以试试同样路径下的gitee。
# 拉取 0.1.9 的版本源码
git clone -b v0.1.9  https://github.com/InternLM/xtuner
# 无法访问github的用户请从 gitee 拉取:
# git clone -b v0.1.9 https://gitee.com/Internlm/xtuner

其他无法拉取的资源保持https://gitee.com/Internlm/<所需资源>
  1. 有个user.png读不出来,来来回回下了好几次都不行,索性给他换了个可以读的图片:
    FileNotFoundError: [Errno 2] No such file or directory: ‘doc/imgs/user.png’
    在这里插入图片描述
    在这里插入图片描述
    我的解决办法:随机选择一个图片命名成发生错误的user.png
(personal_assistant) root@intern-studio:~/personal_assistant/code# cd InternLM/doc/imgs/
(personal_assistant) root@intern-studio:~/personal_assistant/code/InternLM/doc/imgs# ls
compass_support.svg           license.svg          pack_into_one.png           robot.png              torch_profiler_trace.png
flops.png                     logo.svg             params_memory_sunburst.png  sequence_parallel.png  train_performance.png
hybrid_parallel_training.png  modelscope_logo.png  pipeline_schedule.png       tensor_parallel.png    user.png
(personal_assistant) root@intern-studio:~/personal_assistant/code/InternLM/doc/imgs# mv user.png user_o.png 
(personal_assistant) root@intern-studio:~/personal_assistant/code/InternLM/doc/imgs# cp robot.png user.png 
  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值