第四节课 XTuner 大模型单卡低成本微调实战(笔记)

来源:(4)XTuner 大模型单卡低成本微调实战_哔哩哔哩_bilibili

课程文档:https://github.com/InternLM/tutorial/blob/main/xtuner/README.md

1.Finetune简介

LLM的下游应用中,增量预训练指令跟随是经常会用到的两种的微调模式。

增量预训练微调

使用场景:让基座模型学习到一些新知识,如某个垂类领域的常识

训练数据:文章、书籍、代码等

指令跟随微调

使用场景:让模型学会对话模板,根据人类指令进行对话

训练数据:高质量的对话、问答数据

指令跟随微调是为了得到能够实际对话的LLM

在实际对话时,通常会有三种角色:

  • System    给定一些上下文信息
  • User         实际用户,会提出一些问题
  • Assistant  根据User的输入,结合System的上下文信息,做出回答。

在使用对话模型时,通常是不会感知到这三种角色。

对话模板:

LoRA & QLoRA

LoRA:LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

LLM的参数量主要集中在模型中的Linear,训练这些参数会耗费大量显存。

LoRA通过在原本的Linear旁,新增一个支路,包含两个连续的小Linear,新增的这个支路通常叫做Adapter。

Adapter参数量远小于原本的Linear,能大幅降低训练的显存消耗。

2.XTuner介绍

(1)功能亮点

适配多种生态

  • 多种微调算法
  • 适配多种开源生态
  • 自动优化加速

适配多种硬件

  • 训练方案覆盖NVDIA 20 系以上所有显卡
  • 最低只需8GB显存即可微调7B模型

(2)XTuner技术架构图

(3)XTuner快速上手

1.安装

2.挑选配置模板

3.一键训练

Config命名规则:

……

(4)XTuner数据引擎

数据处理流程

1.原始问答对—>格式化问答对

2.格式化问答对—>可训练语料

(蓝色代表训练loss的部分)

数据集映射函数

对话模板映射函数

多数据样本拼接

充分利用GPU

3.8GB显卡玩转LLM

Flash Attention 和 DeepSpeed ZeRO 是XTuner最重要的两个优化技巧。

Flash Attention

Flash Attention将Attention计算并行化避免了计算过程中Attention Score NxN的显存占用(训练过程中的N都比较大)。

DeepSpeed ZeRO

ZeRO优化,通过将训练过程中的参数、梯度和优化器状态切片保存,能够在多GPU训练时显著节省显存。

除了将训练中间状态切片外,DeepSpeed训练时使用FP16的权重,相较于Pytorch的AMP训练,在单GPU上也能大幅节省显存。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值