分享好友 最新动态首页 最新动态分类 切换频道
Adam-mini:内存占用减半,性能更优的深度学习优化器
2024-12-27 03:03

Adam(W)目前为训练LLM的主流优化器,但其内存开销较大,这是因为Adam优化器需要存储一阶动量m和二阶动量v,总内存占用至少是模型大小的两倍,这对现有的高端显卡也是一种负担。论文提出一种新的优化器Adam-mini,在不牺牲性能的情况下减少Adam优化器的内存占用。

Adam-mini

Adam-mini通过减少学习率资源来降低内存占用的具体方法如下:

  1. 参数分块:Adam-mini首先将模型参数按照Hessian矩阵的结构划分为多个块。Hessian矩阵通常具有近似块对角结构,每个块代表一组参数。论文提出的分块策略基于Hessian结构,将每个块内的参数视为一个整体进行处理。
  2. 块内平均学习率:对于每个参数块,Adam-mini不再为每个参数单独分配学习率,而是为整个块分配一个平均的学习率。具体方法是计算块内所有参数的梯度平方的平均值,然后基于这个平均值来计算该块的学习率。这一过程显著减少了所需的学习率数量。
  3. 内存节省:由于Adam-mini使用的学习率数量大大减少,所需的二阶动量(即Adam中的v参数)的存储也相应减少。论文中的实验表明,这种方法可以减少45%到50%的内存占用。
  4. 具体算法
  • 在初始化时,将模型参数分块。
  • 对于每个参数块,计算块内梯度平方的平均值,并更新块的学习率。
  • 使用更新后的学习率进行参数更新。

这种方法不仅减少了内存占用,还通过减少GPU和CPU之间的通信开销,提高了训练效率。例如,在Llama2-7B模型的预训练中,Adam-mini在两块A800-80GB GPU上实现了比AdamW高49.6%的吞吐量,并节省了33%的训练时间。

算法示例

# Adam-mini 的伪代码
def adam_mini(params, grads, lr, beta1, beta2, epsilon, weight_decay):
# 初始化动量和二阶动量
m = {}
v = {}
for param in params:
m[param] = np.zeros_like(param)
v[param] = np.zeros_like(param)
# 参数分块
param_blocks = partition_parameters(params)
for block in param_blocks:
# 获取当前块的梯度
grad_block = [grads[param] for param in block]
# 更新动量
m_block = (1 - beta1) * grad_block + beta1 * m_block
m_block_hat = m_block / (1 - beta1**t)
# 更新二阶动量(平均值)
v_block = (1 - beta2) * np.mean([g**2 for g in grad_block]) + beta2 * v_block
v_block_hat = v_block / (1 - beta2**t)
# 更新参数
for param in block:
param_update = lr * m_block_hat / (np.sqrt(v_block_hat) + epsilon)
params[param] -= param_update + weight_decay * params[param]
return params

通过这种方法,Adam-mini成功地减少了学习率资源的使用,从而大幅降低了内存占用,并在多种任务中表现出色。

性能表现

1、内存和吞吐量性能

Adam-mini在预训练Llama2-7B模型时的性能:

  • 内存占用:Adam-mini显著降低了内存占用。例如,在Llama2-7B预训练时,Adam-mini减少了45%到50%的内存消耗。
  • 吞吐量:由于内存减少,Adam-mini能够支持更大的每GPU批次大小,从而提高了吞吐量。在两块A800-80GB GPU上,Adam-mini实现了比AdamW高49.6%的吞吐量,节省了33%的训练时间。

2、预训练性能

  • TinyLlama-1B:图7(a)显示了TinyLlama-1B的验证损失曲线。Adam-mini的表现与AdamW相当,但内存占用更低。
  • GPT2系列:图8展示了GPT2不同规模模型的训练曲线,包括GPT2-125M、GPT2-330M、GPT2-770M和GPT2-1.5B。Adam-mini在所有这些模型上的表现均与AdamW相当,而Adafactor、CAME等方法在这些任务中的表现较差。

通过这些实验结果,论文证明了Adam-mini不仅在内存占用和计算效率上优于传统的AdamW,还能在不同任务中保持或提升模型性能。这些结果表明,Adam-mini是一个有效且高效的优化器,适用于大规模模型的训练和微调。

非LLM任务的表现

Adam-mini在多种非LLM任务中均表现出色,能够在减少内存占用的同时,保持或提升模型性能。这些结果证明了Adam-mini在图像识别、扩散模型训练和图卷积网络等任务中的广泛适用性和有效性。

图像分类:在ImageNet上训练ResNet18,Adam-mini的测试精度与AdamW相当。

扩散模型训练:在CelebA数据集上训练扩散模型,Adam-mini的训练损失低于AdamW。

图神经网络:在OGB-arxiv数据集上训练Graph Convolution Network (GCN)和Graph Attention Network (GAT),Adam-mini的验证精度优于或相当于AdamW。

总结

Adam-mini基于Hessian矩阵的结构,将模型参数划分为多个块,每个块使用单一的平均学习率,从而大幅减少了需要存储的学习率数量。在非LLM任务中的实验结果进一步验证了Adam-mini的广泛适用性。Adam-mini不仅在内存占用和计算效率方面具有优势,还能在多种任务中保持或提升模型性能,是一个有效且高效的优化器。

最新文章
经济学院2024年硕士研究生复试录取工作方案
为做好我院2024年硕士研究生招生复试录取工作,保证硕士研究生招生质量,根据教育部、山东省教育厅及学校相关文件规定,结合我院实际,制定本工作方案。一、组织领导学院成立由院长任组长的研究生招生复试工作领导小组,负责学院各学科(
用AI一键更换商品背景,电商图像处理最佳助手!
在电商运营中,商品图的质量往往直接影响到转化率和销量。在这个瞬息万变的市场环境里,如何能让你的商品图脱颖而出?今天,我们就来聊聊商品图背景更换的最新AI工具,帮助你轻松提升商品展示效果,让你的电商生意更加红火! 商品图换背景
网站搜索排名(2022年全球及中国搜索引擎排行榜)
2022年全球靠前搜索引擎排行榜中,谷歌、必应、雅虎、百度、Yandex、DuckDuckGo、Ask、Naver、AOL、Seznam占据前十位,谷歌谷歌市场份额超90%稳占全球市场靠前的市场份额,大家熟悉的国内搜索引擎以1.2%的占有率位居第四名。2022年在全球搜
植物大战僵尸代码大全2024最新-2024游戏代码编程复制粘贴
在《植物大战僵尸2024》这款游戏中,经常会有各种代码出现,这些代码能够帮助玩家在游戏中达成一定的数值目标。如果你想要快速改变游戏的数值,那么这些代码的用处可是非常大的。接下来,小编将会将2024年最新可用的代码分享在下方,希望大
爱站网关键词工具
爱站网关键词工具是一款用于网站SEO优化的工具,它可以帮助用户快速找到适合自己网站的关键词,提高网站的搜索排名和流量。该工具提供了丰富的关键词数据和竞争情况分析,帮助用户制定出更加精准的SEO策略。使用该工具可以有效地提高网站的
网盘外链优化:提升网站流量与排名
网站外链建设规划目标:* 提高网站在搜索引擎中的排名* 增加网站流量* 建立权威性和可信度策略:1. 寻找高质量外链:* 优先与权威、相关、流量高的网站合作* 关注相关行业的目录、博客和论坛2. 根据内容进行外链建设:* 创建有价值、引人入
昌黎县团林乡党委原书记张东风(副处级)涉嫌严重违纪违法接受纪律审查和监察调查
中央纪委国家监委网站 薛鹏近日,第二届中国国际供应链促进博览会在北京举办,智能汽车链展区吸引大量观众驻足观看。在该展区,吉利、宁德时代、比亚迪、小米等一批知名企业进行新产品、新技术的首发首展首秀,全方位展示从核心原材料到关
手机得选最好的!这几款配置颜值俱佳 可以放心入
  【CNMO科技导购】现在挑选一款既能满足当前需求又具备未来潜力的手机,真得好好动动脑筋。毕竟,现在的手机已经不只是打电话的工具了,它更像是我们生活、工作和学习中的全能伙伴。  说到选手机,有个关键点不能忽视——要看得远一点
全球首发:网站安全新动向,站长防DDoS攻击应对策略
2025AI感悟图像,仅供参考  随着互联网的不断发展,网络安全问题也日益凸显。其中,DDoS(分布式拒绝服务)攻击作为一种常见的网络攻击方式,已经对许多网站的正常运营造成了严重的影响。那么,面对这一全球网站安全的新趋势,站长们应该如
苹果 6手机屏幕花掉了是怎么回事?
1、 有时候触屏失灵是因为屏幕上面灰尘过大引起的。找一块擦眼镜片的擦布清除苹果手机屏幕。2、有时候在涂抹护手霜后,立即使用触摸屏这样也可能导致屏幕失灵或双手弄湿时,所以在使用手机的时候尽量保持擦干双手。3、如果买的是很垃圾的塑
相关文章
推荐文章
发表评论
0评