大模型微调中的内存效率问题及解决方案

2024-09-02 14:04

本文主要是介绍大模型微调中的内存效率问题及解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

人工智能咨询培训老师叶梓 转载标明出处

大模型(LLMs)在大规模训练中的内存消耗问题日益凸显,传统的参数高效微调技术,如低秩适应(LoRA),虽然在一定程度上缓解了这一问题,但其性能在很多大规模微调场景下仍无法与全参数训练相媲美。

为了解决上述问题,香港科技大学以及伊利诺伊大学香槟分校的研究团队共同提出了一种新的训练策略——Layerwise Importance Sampled AdamW(LISA)。LISA策略基于对LoRA在微调任务中层级权重规范分布的观察,发现不同层的权重规范呈现出不寻常的偏斜分布。利用这一关键发现,研究者们提出了一种简单有效的训练方法,该方法在多种设置下的性能都超过了LoRA和全参数训练,同时内存成本与LoRA相当。图1为在Alpaca GPT-4数据集上,使用全参数训练(FT)、LoRA和LISA方法对LLaMA-2-7B模型进行训练时的损失变化情况。显示了LISA方法相比其他方法在训练损失上的优势。

论文链接:https://arxiv.org/abs/2403.17919

开源地址:https://github.com/OptimalScale/LMFlow

方法

为了理解LoRA如何仅用少量参数实现有效训练,研究者们对多个模型进行了实证研究,特别关注了不同层的权重规范。他们使用Alpaca-GPT4数据集进行微调,并在训练过程中详细记录了每一层ℓ在每次更新后的平均权重规范,其公式表示为:

其中表示层ℓ 的平均权重规范。

实验发现在LoRA训练中,嵌入层或语言模型(LM)头部层的权重规范显著大于中间层,有时甚至高出数百倍。然而,在全参数训练设置下,这种现象并不明显。

Figure 2 展示了GPT2和LLaMA-2-7B模型在LoRA和全参数训练期间的层级权重规范。图中x轴代表从嵌入权重到最终层的层级,y轴量化了权重规范。这一可视化揭示了一个关键趋势:嵌入层或LM头部层在LoRA中的权重规范远大于中间层。

基于上述发现,研究者们希望模拟LoRA的更新模式,通过采样不同的层进行冻结,以避免LoRA固有的低秩表示能力的限制,并模仿其快速学习过程。在全参数设置中,LoRA中权重规范较小的层也应该有较小的采样概率来解冻,以保持迭代中的预期学习率相同。这正是重要性采样的思想。

Algorithm 1 展示了LISA方法的步骤。在实践中,除了底部和顶部层外,LoRA中所有层的权重规范都较小,因此研究者们采用​=,其中γ控制优化过程中预期的解冻层数。γ作为一个补偿因子,用来桥接LoRA和全参数调优之间的差异,让LISA模拟与LoRA相似的层级更新模式。为了进一步控制实际设置中的内存消耗,研究者们每次随机采样γ层,以限制训练期间最大未冻结层数。

通过这种方法,LISA算法能够在保持内存效率的同时,提高大型语言模型微调的性能。这一创新方法为解决LoRA在大规模微调中的局限性提供了新的思路,并展示了在不同领域任务中应用的潜力。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
 

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

为了证明LISA的内存效率,研究者们进行了峰值GPU内存消耗的实验。实验设置中,他们从Alpaca数据集(Taori et al., 2023)中随机抽取提示,并限制最大输出令牌长度为1024。重点关注两个关键超参数:LoRA的秩和LISA的激活层数。在其他超参数设置中,所有模型统一使用1的mini-batch大小,并排除了其他节省GPU内存的技术,如梯度检查点(Chen et al., 2016)、卸载(Ren et al., 2021)和快速注意力(Dao et al., 2022; Dao, 2023)。

Table 1为不同模型架构和配置下的峰值GPU内存消耗。特别是,当LISA配置增强了嵌入层(E)和两个额外层(E+H+2L)时,在微调LLaMA-2-70B模型时,与LoRA方法相比,显示出了相当大的GPU内存使用减少。具体而言LISA E+H+2L配置将峰值GPU内存从LoRA Rank 128配置所需的79G降低到75G。这种效率提升不是孤立的事件;在不同模型架构上观察到系统性的内存使用减少,表明LISA激活层的方法在内存效率上具有固有优势。

Figure 3 展示了不同方法和批量大小为1的LLaMA2-7B的GPU内存消耗。注意,LISA的内存减少允许LLaMA-2-7B在单个RTX4090(24GB)GPU上进行训练,这使得即使在笔记本电脑上也能负担得起高质量的微调。特别是由于LISA不引入适配器带来的额外参数,因此其激活内存消耗比LoRA少得多。由于pytorch(Paszke et al., 2019)与deepspeed(Rasley et al., 2020)允许在反向传播前删除冗余激活,LISA的激活内存甚至略低于全参数训练。

Figure 4 展示了不同方法和批量大小为1的LLaMA-2-7B的单次迭代时间成本。LISA由于减少了内存占用,还带来了加速效果。如图4所示,与全参数训练相比,LISA提供了大约2.9倍的加速,与LoRA相比大约有1.5倍的加速,这部分是由于去除了适配器结构。值得注意的是,LoRA和LISA的内存占用减少都显著加快了前向传播的速度,强调了内存高效训练的重要性。

LISA在保持显著内存节省的同时,还能在微调设置中获得有竞争力的性能。为了证明LISA优于LoRA,研究者们在Alpaca GPT-4数据集(Taori et al., 2023)上评估了它们的性能,该数据集包含由GPT-4(OpenAI et al., 2023)生成的52k对对话。微调的有效性在多个基准上进行评估:MT-Bench(Zheng et al., 2023)包含80个高质量的多轮问题,旨在从多个方面评估LLMs;MMLU(Hendrycks et al., 2020)总共包含57个任务,14,079个问题,涵盖广泛的世界知识;AGIEval(Zhong et al., 2023)作为以人为本的通用能力基准,包含9,316个实例;WinoGrande(Sakaguchi et al., 2021)是大规模常识推理数据集,包含44,000个实例,旨在挑战模型对上下文和常识知识的了解。

Table 2 和 Table 3 展示了中等规模LLMs的详细比较。基线包括全参数训练(FT)、低秩适应(LoRA)(Hu et al., 2022)和梯度低秩投影(GaLore)(Zhao et al., 2024)。结果表明,LISA在大多数评估轨道上一致性地优于其他微调方法,表明其在多样化任务和模型架构中的鲁棒性和有效性。LISA特别适用于指令跟随任务,在与其他基线方法相比时观察到较大的差距。LISA甚至超越了全参数训练,这表明当限制未冻结层数时,存在隐式正则化效果,类似于dropout(Srivastava et al., 2014)。

持续预训练对于使模型适应新数据和领域至关重要。为了评估LISA在持续预训练场景中的有效性,研究者们在数学领域与全参数训练进行了比较。

研究者们采用数学语料库OpenWebMath(Paster et al., 2023)构建持续预训练数据集。具体来说,他们从中提取了一个包含15亿令牌的高质量子集。详细情况在附录B.2中解释。在持续预训练后,然后对GSM8K(Cobbe et al., 2021)训练集进行相同的微调程序,该训练集包含7473个实例。

Table 4 显示,LISA能够实现与全参数训练相当甚至更好的性能,同时内存消耗要少得多。具体来说,与全参数训练相比,LISA只需要一半的内存成本。这表明LISA在计算效率和模型性能之间实现了更好的平衡。根据研究者的经验,将未冻结层数减少到原始大小的一半,在持续预训练期间不会变差甚至表现更好,同时内存消耗要少得多。

为了进一步证明LISA在大规模LLMs上的可扩展性,研究者们在LLaMA-2-70B(Touvron et al., 2023b)上进行了额外的微调实验。除了前面提到的指令跟随任务外,研究者们还使用了额外的特定领域微调任务,包括数学和医学QA基准。GSM8K数据集(Cobbe et al., 2021)包含7473个训练实例和1319个测试实例,用于数学领域。对于医学领域,研究者们选择了PubMedQA数据集(Jin et al., 2019),该数据集包含211.3K个人工生成的QA训练实例和1K个测试实例。

Table 5 显示,LISA在与LoRA相比时一致性地产生更好或相当的性能。此外,LISA在指令调整任务中再次超越了全参数训练,为LISA在大规模训练场景下的可扩展性提供了有力证据。

LISA的两个关键超参数是采样层数γ和采样周期K。为了直观和实证地指导这些超参数的选择,研究者们使用TinyLlama(Zhang et al., 2024)和LLaMA-2-7B(Touvron et al., 2023b)模型,在Alpaca-GPT4数据集上进行了消融研究。γ的配置,如E+H+2L、E+H+8L,分别表示为γ = 2和γ = 8。至于采样周期K = T /n,T = 122代表实验框架内的最大训练步骤。Table 6 中的发现表明,γ和K都显著影响LISA算法的性能。具体为较高的γ值增加了可训练参数的数量,尽管内存成本更高。另一方面,最优的K值促进了更频繁的层切换,从而在一定阈值内提高了性能,超出该阈值后性能可能会恶化。通常的经验法则是:更多的采样层和更高的采样周期会带来更好的性能。

由于LISA在算法上依赖于层的采样序列,研究者们进一步研究了LISA在三个不同运行中性能的变化,每个运行都使用不同的随机种子进行层选择。研究者们采用TinyLlama、LLaMA2-7B和Mistral-7B模型与Alpaca-GPT4数据集,同时保持所有其他超参数与前面指令跟随实验中使用的一致。Table 7 显示,LISA对不同的随机种子相当有韧性,三次运行之间的性能差距在0.13以内,与超过基线方法的性能增益相比,这是一个小值。

实验结果显示,LISA在保持相似或更低的GPU内存消耗的同时,在下游微调任务中的性能超越了LoRA,甚至在某些情况下还超越了全参数训练。

这篇关于大模型微调中的内存效率问题及解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130164

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

缓存雪崩问题

缓存雪崩是缓存中大量key失效后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 解决方案: 1、使用锁进行控制 2、对同一类型信息的key设置不同的过期时间 3、缓存预热 1. 什么是缓存雪崩 缓存雪崩是指在短时间内,大量缓存数据同时失效,导致所有请求直接涌向数据库,瞬间增加数据库的负载压力,可能导致数据库性能下降甚至崩溃。这种情况往往发生在缓存中大量 k

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}