24GB单卡全量微调Llama 3-8B,仅需添加一行代码
自ChatGPT问世以来,大型语言模型在各个领域引起了广泛兴趣,并催生了基于语言模型的应用,包括但不限于自动文本生成、信息检索、智能助理、聊天机器人以及智能教育系统等。这些应用的表现和效果往往取决于模型本身的对话能力、逻辑推理能力以及上下文理解能力等核心特征。在实际应用中,为了满足不同领域对模型能力的个性化需求,研究人员通常会基于预训练的大型语言模型进行微调,以适应特定任务的要求。
然而,微调具有一定规模的语言模型需要大量的计算资源,其中显存容量往往成为主要限制因素。主流的优化算法如Adam在训练过程中需要存储模型参数、梯度信息以及优化器状态。举例来说,当训练一个拥有70亿个参数的模型时,以上参数将占用超过120GB的显卡内存。然而,主流消费级显卡如RTX 3090/4090仅有24GB的显存,而AI训练专用显卡A100的显存也仅有80GB。因此,训练规模较大的模型不可避免地对计算资源提出了巨大需求,而且由于需要多块显卡并行训练,也带来了工程实现上的诸多挑战。
在本研究中,来自香港中文大学(深圳)的研究者通过将传统的块坐标下降算法与大模型优化结合,提出BAdam算法,将内存开销大幅降至原来的约六分之一,实现了在一张24GB显存的RTX 3090上全参数微调Llama 2-7b和Llama 3-8b模型。从优化角度来看,BAdam的损失函数收敛速率快于LoRA,且单次迭代所需时间约为LoRA的一半。从下游任务表现来看,由BAdam训练得到的Llama 2-7b, Llama 3-8b模型,在MT bench score上均领先同等参数量下的LoRA算法,并大幅领先基于SGD更新的LOMO算法。此外,在SUPERGLUE的基准测试中,由BAdam训练的RoBERTa-large模型在下游任务性能上与使用Adam进行全参数微调的模型相当,显著优于LoRA 。
为了更好的帮助大家了解这项研究,机器之心最新一期线上分享邀请到论文作者、香港中文大学(深圳)数据科学学院在读博士生罗琪竣,为大家解读他们的这项工作 。
分享主题:24GB单卡高效训练Llama 3-8B,仅需添加一行代码
嘉宾介绍:罗琪竣为香港中文大学(深圳)数据科学学院在读博士生,导师为李肖教授。本科毕业于香港中文大学(深圳)计算机专业,研究兴趣包含机器学习、优化理论,目前的研究重点为大语言模型的优化和泛化。
论文链接:https://arxiv.org/abs/2404.02827
代码链接:https://github.com/Ledzy/BAdam
直播间:关注机器之心机动组视频号,立即预约直播。
点击阅读原文,直达机动组官网,查看往期回顾。
微信扫码关注该文公众号作者