大模型微调系列之LoRA详解

大模型微调之LoRA

1 大模型微调的动机

对于在开源大模型的基础上进行修改,创建可自用的大模型用于自定义的对话/翻译/推理/做题等业务,微调都是一个绕不开的研究方向。此外,由于个人的经济能力限制,可具备的计算资源也是有限的,且普通机箱的显卡槽位为1个,通常为单张RTX 4090 (24 GB显存)。而4卡槽/6卡槽工作站的显存可达到96 GB - 288GB (采用单张 24 GB 或 单张 48 GB 的显卡,型号包括90系,或A5000/A6000)。上述配置想开发自己的大模型的周期过长,且取得的效果也是有限的,此外目前开源社区 (huggingface魔搭社区GitHub) 中也存在大量的不同规格的开源大模型,如 (LLaMA 系列、通义千问 系列 等) 。以通义千问为例,各尺寸模型的微调所需计算资源如下:

微调方法名称 方法类别 精度 7B 13B 30B 72B 110B
FULL 全参数微调 AMP 120 GB 240 GB 600 GB 1200 GB 2000 GB
FULL 全参数微调 16 bit 60 GB 120 GB 300 GB 600 GB 900 GB
Freeze 部分参数微调 16 bit 20 GB 40 GB 80 GB 200 GB 360 GB
LoRA/GaLore/BAdam 部分参数微调 16 bit 16 GB 32 GB 64 GB 160 GB 240 GB
QLoRA 部分参数微调 8 bit 16 GB 32 GB 64 GB 160 GB 240 GB
QLoRA 部分参数微调 4 bit 10 GB 20 GB 40 GB 80 GB 140 GB
QLoRA 部分参数微调 2 bit 4 GB 8 GB 16 GB 24 GB 48 GB

如上表所示,全参数微调所需的计算资源仍然较大,但低精度微调的准确度又较低,因此选取较中间的部分参数微调方式,如LoRA (16 bit),可一定程度上达到精度与计算资源的平衡。本文就将结合原文介绍部分参数微调领域的经典方法: LoRA。

2 微调方法背景介绍

该论文的原文为:

LoRA: Low-Rank Adaptation of Large Language Models

在这里插入图片描述

如论文[1]题目所示,LoRA是 Low-Rank Adaptation 的简写,意为低秩自适应。动机为下列假设:

过参数化模型实际上存在于较低的内生性纬度中,在模型参数微调时,若假设其过参数化模型也存在于较低纬度中,则可通过仅对这些纬度进行微调,已达到可在降低计算量的并通知获取与全参数微调相同甚至更好的效果。

根据论文中的结论,使用LoRA可相对于传统方法提高3倍的训练效率。

3 论文主要内容

3.1 问题叙述

论文提出的方法是一般性的,但为了方便叙述,选定了大模型最常见的语言建模任务作为背景:

给定预训练自回归语言模型 (如 GPTQwen 等) P Φ ( y ∣ x ) P_\Phi(y|x) PΦ(yx) ,带有可训练参数 Φ \Phi Φ 。该模型中的每个下游任务 (downstream task) 由 Z = { ( x i , y i ) } i = 1 , . . . , N \mathcal{Z}=\{(x_{i},y_{i})\}_{i=1,...,N} Z={(xi,yi)}i=1,...,N 构成的数据集来表征(这里是因为大模型的数据驱动性比较强,基本是通过数据集来驱动新的模型业务),其中 x i x_{i} xi 为输入词元(input token), y i y_{i} yi 为输出词元(output token)。

在全参数微调时,上述模型可被初始化为预训练权重 Φ 0 \Phi_0 Φ0 ,并可通过最大化下列条件性语言模型并被更新为 Φ 0 + Δ Φ \Phi_0+\Delta\Phi Φ0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空 白II

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值