书生·浦语大模型实战营-学习笔记4

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

书生·浦语大模型实战营-学习笔记4_第1张图片

Finetune简介

常见的两种微调策略:增量预训练、指令跟随
书生·浦语大模型实战营-学习笔记4_第2张图片
书生·浦语大模型实战营-学习笔记4_第3张图片

指令跟随微调

数据是一问一答的形式
对话模板构建
书生·浦语大模型实战营-学习笔记4_第4张图片
每个开源模型使用的对话模板都不相同
书生·浦语大模型实战营-学习笔记4_第5张图片

指令微调原理:
由于只有答案部分是我们期望模型来进行回答的内容,所以我们只对答案部分进行损失的计算
书生·浦语大模型实战营-学习笔记4_第6张图片

增量预训练微调

数据都是陈述句,没有问答形式
书生·浦语大模型实战营-学习笔记4_第7张图片
书生·浦语大模型实战营-学习笔记4_第8张图片

LoRA & QLoRA

XTuner中使用的微调原理:LoRA & QLoRA
如果我们要对整个模型的所有参数都进行调整的话,需要非常大的显存才能够进行训练,但是用LoRA的方法就不需要这么大的显存开销了

LoRA: Low-Rank Adaptation
书生·浦语大模型实战营-学习笔记4_第9张图片
比较:全参数微调、LoRA、QLoRA

全参数微调:整个模型都要加载到显存中,所有模型参数的优化器也都要加载到显存中,显存不够根本无法进行。

LoRA:模型也是要先加载到显存中,但是我们只需要保存LoRA部分的参数优化器,大大减小了显存占用。

QLoRA:加载模型时就使用4bit量化的方式加载(相当于不那么精确的加载),但是可以节省显存开销,QLoRA部分的参数优化器,还可以在GPU和CPU之间进行调度【这是Xtunner进行整合的功能 】,显存满了就自动去内存中去跑。

书生·浦语大模型实战营-学习笔记4_第10张图片

XTuner介绍

书生·浦语大模型实战营-学习笔记4_第11张图片

书生·浦语大模型实战营-学习笔记4_第12张图片

XTuner快速上手

  1. 安装
pip install xtuner
  1. 挑选配置模版
xtuner list-cfg -p internlm_20b
  1. 一键训练
xtuner train internlm_20b_qlora_oasst1_512_e3
  1. Config 命名规则
模型名 internlm_20b ( 无 chat 代表是基座模型 )
使用算法 qlora
数据集 oasst1
数据长度 512
Epoch e3, epoch 3

书生·浦语大模型实战营-学习笔记4_第13张图片
自定义训练(微调):

  1. 拷贝配置模板
  2. 修改配置文件
  3. 启动训练
  4. 配置模板中的常用超参数
    书生·浦语大模型实战营-学习笔记4_第14张图片
    对话:
    训练完成后得到了Adapter文件(LoRA文件),我们就需要在加载底座模型的基础上,同时加载这个Adapter,来进行模型的对话与测试。
  5. Float 16模型对话
  6. 4bit量化模式模型对话
  7. 加载Adapter模型对话
    书生·浦语大模型实战营-学习笔记4_第15张图片
    XTuner还支持工具类模型的对话,类似于GPT里面的plugin
    书生·浦语大模型实战营-学习笔记4_第16张图片
    XTunner具有强大的数据处理引擎,对于这种格式化的问答对,进行了统一的数据指定。对于开源数据集进行了映射函数的内置,可以方便的在很多流行的开源数据集上进行一键启动。
    这样开发者可以专注于数据内容,不必花费精力处理复杂的数据格式。
    书生·浦语大模型实战营-学习笔记4_第17张图片

书生·浦语大模型实战营-学习笔记4_第18张图片
XTunner支持多数据的样本拼接,如果使用XTunner的默认配置,它只需要6GB或者8GB的显存消耗。如果有更大显存的显卡,为了利用更大显存,就需要增加运行效率,进行多数据样本拼接,将多条数据拼接到一起后,输入模型,然后统一的进行梯度的传播,增加并行性,充分利用GPU资源。
书生·浦语大模型实战营-学习笔记4_第19张图片
自定义数据集建议使用json格式
书生·浦语大模型实战营-学习笔记4_第20张图片

8GB显卡玩转LLM

XTuner默认开启了Flash Attention的加速方式,可以加速训练,同时也集成了deepspeed_zero的优化方法,也可以在训练在训练的过程中更快。

deep speed不是默认启动的
书生·浦语大模型实战营-学习笔记4_第21张图片
书生·浦语大模型实战营-学习笔记4_第22张图片
优化前优化后,不同计算卡上的显存占用情况
书生·浦语大模型实战营-学习笔记4_第23张图片

动手实战环节

https://github.com/InternLM/tutorial/blob/main/xtuner/README.md

你可能感兴趣的:(大模型,学习,笔记,自然语言处理,chatgpt,nlp)