书生大模型笔记4

好,我们来学习!

本节课是微调,但就和mmdetection等openmmlab开源的repo一样,都是基于config进行操作的,本次书生大模型的微调训练需要做出的改变其实就是使用xtuner run 来进行cfg文件的调用罢了,鉴于我之前也有笔记提到过训练部分,所以本文会更加偏向于摘录一些理念性的知识。

 

LORA:

LORA是一种低资源微调大模型方法,出自论文LoRA: Low-Rank Adaptation of Large Language Models。 使用LORA,训练参数仅为整体参数的万分之一、GPU显存使用量减少2/3且不会引入额外的推理耗时。

Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning这篇文章的研究表明:预训练模型拥有极小的内在维度(instrisic dimension),即存在一个极低维度的参数,微调它和在全参数空间中微调能起到相同的效果。

受instrisic dimension工作的启发,lora作者认为参数更新过程中也存在一个‘内在秩’。受instrisic dimension工作的启发,作者认为参数更新过程中也存在一个‘内在秩’。对于预训练权重矩阵W_0 \in \mathbb{R}^{d \times k},我们可以用一个低秩分解来表示参数更新△W:

W_0+\Delta W=W_0+B A \quad B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times k} \quad \text { and } \quad r \ll \min (d, k)

同时训练过程中冻结参数W,仅训练A和B中的参数。如上面那个蓝色与橙色的图所示。

QLoRA:

发布于2023年5月,引入了几项创新来节省内存:新的数据类型4位NormalFloat(NF4);双重量化以减少平均内存占用;分页优化器来管理内存峰值。

值得注意的是,微调结束并不是立刻可以使用了,还需要转为huggingface的模型,以以下命令进行:

xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH_file_dir} ${SAVE_PATH}

此时新生成的文件菜式所谓的“LoRA 模型文件”。

最后通过一下命令将微调厚的模型接入LM大模型达到我们的“篡改robot思维”的目的:

xtuner convert merge ./internlm-chat-7b ./hf ./merged --max-shard-size 2GB
# xtuner convert merge \
#     ${NAME_OR_PATH_TO_LLM} \
#     ${NAME_OR_PATH_TO_ADAPTER} \
#     ${SAVE_PATH} \
#     --max-shard-size 2GB

最后就是如前面几节课中说的,使用demo.py进行模型的运行与推送至Streamlit的本地web端口上啦。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值