书生浦语训练营第四次课笔记:XTuner 微调 LLM:1.8B、多模态、Agent

课程文档:https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.md


Finetune 简介

在这里插入图片描述
两种Finetune范式:增量预训练微调、指令跟随微调
在这里插入图片描述

微调数据集

在这里插入图片描述
在这里插入图片描述
上述是我们所期待模型回答的内容,在训练时损失的计算也是基于这个。
训练数据集看起来是这样,但是真正喂给模型的,是经过对话模板组装后的

下图中: <|System|>|<User>|等对话模板
在这里插入图片描述
在这里插入图片描述
对话模板的作用:为了让大语言模型知道什么时候开始一段对话,什么时候结束一段对话。
在这里插入图片描述
在这里插入图片描述

微调方案 LoRA & QLoRA


LoRA: 通过在原本模型的Linear旁新增一个旁路分支Adapter(两个连续的小Linear层)。可以简单的理解LoRA文件就是两个层的参数保存下来的东西。

在这里插入图片描述
全参数微调:整个模型加载到显存中,所有模型参数的优化器也要加载到显存中。非常吃显存
LoRA微调:整个模型加载到显存中,对于参数优化器,只需要保存LoRA部分的参数优化器,大大减小了显存的占用。
QLoRA微调:把模型本身加载到显存中时,就已经是使用4bit量化的方式加载。从而由节省了显存开销。

XTuner 介绍

在这里插入图片描述
在这里插入图片描述
在不同量级的模型上,训练速度都是比LLaMa-Factory显著的更快
在这里插入图片描述
与LLaMa-Factory相比,同样是LLaMa2 70B超大参数量的模型,在不同的数据长度下,Xtuner的表现也是比LLaMa-Factory更好
在这里插入图片描述
XTunner对性能优化和显存优化做的更好!

8GB显存玩转LLM

在这里插入图片描述
chat标记的模型是经过指令跟随微调后的模型,无chat就是基座模型
在这里插入图片描述
pack_to_max_length参数,比如说有一张24GB的显卡,如果不修改配置文件,只能占用8GB进行训练,20小时完成。这时就可以调整这个参数,使其占用满24GB
evaluation_inputs接受list,里面可以添加多个问题。
在这里插入图片描述

微调生成出来的结果是一个Adapter文件(保存QLoRA参数)
如果想与微调后的模型进行对话,则需要指定Adapter的路径

在这里插入图片描述
还支持工具类模型的调用

对于各种格式不一样的开源数据集,XTunner加载时写好了映射参数,可以自动变成统一的对话格式
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

InternLM2 1.8B 模型

在这里插入图片描述
Xtunner中内置的两种加速方式:Flash Attention、DeepSpeed ZeRO

在这里插入图片描述
在这里插入图片描述

多模态LLM微调

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LLaVA方案:文本问题+图片作为输入,文本回答作为输出

在这里插入图片描述
Finetune阶段是指令跟随阶段,可以让大模型了解到我们想问什么,从而根据我们的问题回答。
这个过程和之前所说的:增量预训练+指令微调类似
在这里插入图片描述

Pretrain阶段数据集:图片+描述

在这里插入图片描述
Finetune阶段的数据:不仅有问题描述图片,还有很多个关于图片的一问一答的问答对。

动手实战环节

在这里插入图片描述

在这里插入图片描述
没有经过Finetune,只经过Pretrain阶段的模型,只会对图片进行打标签
在这里插入图片描述
根据Finetune后会根据图像回答问题了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值