XTuner 大模型单卡低成本微调原理

Finetune简介

微调模式:

  • 增量预训练微调
    • 使用场景:让基座模型学习到一些新知识,如某个垂直领域的常识
    • 训练数据:文章、书籍、代码等
  • 指令跟随微调
    • 使用场景:让模型学会对话模板,根据人类指令进行对话
    • 训练数据:高质量的对话、问答数据

指令跟随微调及增量预训练微调

增量预训练微调

增量预训练微调不需要问题,只需要回答,是一个一个的陈述句的数据集
在这里插入图片描述

指令跟随微调

不进行指令微调时,只是单纯的拟合训练数据集中分布,并不知道是问模型一个问题。为了让模型更加明白我们的意图就要在预训练好的模型上进行指令跟随微调
在这里插入图片描述
指令跟随是一问一答的数据
在这里插入图片描述
在这里插入图片描述

微调原理

微调策略采用LoRA或QLoRA

  • LoRA是在原本的Linear旁,新增一个支路,包含两个连续的小Linear, 新增的这个支路叫Adapter
  • Adapter参数量远小于原本的Linear,大幅降低训练的显存消耗
    在这里插入图片描述
    对大模型进行全面改动显存消耗非常大,因此,有一种叫LoRA的方法,只对模型的某些参数进行改动,而不是对整个大模型的参数进行修改,而QLoRA是LoRA的一种改进,可以改动更小的模型参数,就能达到想要的结果
    在这里插入图片描述

XTuner微调框架

书生·浦语大模型全链路开源体系有详细的介绍,需要的可以查看

XTuner数据引擎

在这里插入图片描述

XTuner微调的优化策略

  • Flash Attention
    • 将Attention计算并行,避免了计算过程中Attention Score N×N的显存占用(训练过程中N都比较大)
  • DeepSpeed ZeRO
    • ZeRO优化,通过将训练过程中的参数、梯度和优化器状态切片保存,能够在多个GPU训练时显著节省显存
    • 除了训练时切片,DeepSpeed训练时使用FP16的权重,相较于Pytorch的AMP训练,在单个GPU上也能大幅节省显存

动手实战

手把手的实现微调训练一个自己模型见XTuner 大模型单卡低成本微调实战

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值