减少内存消耗、降低大模型训练成本,ACL杰出论文作者揭秘CAME优化器

简介: 减少内存消耗、降低大模型训练成本,ACL杰出论文作者揭秘CAME优化器

在语言模型的训练中,优化器往往占据了大量的内存使用。然而,随着大语言模型参数量的不断增加,随之而来的是训练时的内存消耗更为严峻。

目前,自适应梯度优化算法,如 Adam 和 LAMB,在大规模语言模型的训练中表现出出色的训练性能。然而,传统优化算法对自适应的需求需要保存每个参数梯度的二阶矩估计,从而导致额外的内存开销。

为了解决这个问题,研究者们提出了一些内存高效的优化器(例如 Adafactor),以大幅减少额外内存的使用,但已有的内存节约优化器通常会牺牲部分训练性能。

在本研究中,来自新加坡国立大学、华为诺亚方舟实验室的研究者首先设计了一种置信度引导策略来降低现有内存节约优化器的训练不稳定性。基于这一策略,他们进一步提出了 CAME 优化器,旨在同时实现两个目标:传统自适应方法的快速收敛和内存高效方法的低内存使用。

大量实验证明了 CAME 在 BERT、GPT-2 等语言模型训练任务中的训练稳定性和出色性能。值得注意的是,在批量大小为 32k 的大批量 BERT 预训练场景下,与 Adam 优化器相比,该研究提出的 CAME 优化器实现了更快的收敛速度和更高的收敛精度,这是对现有内存节约优化器的重要扩展。

为了让大家更好的了解这一研究,机器之心最新一期线上分享邀请到了论文第一作者罗旸,通过本次分享,大家可以更深入的了解这一项研究。



分享主题:CAME 优化器分享:置信度引导的内存节约优化算法

嘉宾简介:罗旸为新加坡国立大学在读硕士生,导师为尤洋教授,HPC-AI 实验室成员。本科毕业于武汉大学,研究兴趣包含机器学习以及高性能计算,当前研究重点为大模型训练的稳定性以及高效训练。

分享摘要:本次分享将首先对大规模语言模型优化算法的相关工作进行概述,随后重点阐述提出的置信度引导策略如何有效解决已有的内存节约优化器中存在的训练不稳定问题,进一步详细介绍基于此策略提出的 CAME 优化器。

相关链接

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

相关文章
|
3月前
|
程序员 编译器 C++
【C++核心】C++内存分区模型分析
这篇文章详细解释了C++程序执行时内存的四个区域:代码区、全局区、栈区和堆区,以及如何在这些区域中分配和释放内存。
58 2
|
8天前
|
人工智能 物联网 C语言
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。
34 5
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
|
1月前
|
机器学习/深度学习 算法 开发者
探索深度学习中的优化器选择对模型性能的影响
在深度学习领域,优化器的选择对于模型训练的效果具有决定性作用。本文通过对比分析不同优化器的工作原理及其在实际应用中的表现,探讨了如何根据具体任务选择合适的优化器以提高模型性能。文章首先概述了几种常见的优化算法,包括梯度下降法、随机梯度下降法(SGD)、动量法、AdaGrad、RMSProp和Adam等;然后,通过实验验证了这些优化器在不同数据集上训练神经网络时的效率与准确性差异;最后,提出了一些基于经验的规则帮助开发者更好地做出选择。
|
1月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
2月前
|
机器学习/深度学习 算法 物联网
大模型进阶微调篇(一):以定制化3B模型为例,各种微调方法对比-选LoRA还是PPO,所需显存内存资源为多少?
本文介绍了两种大模型微调方法——LoRA(低秩适应)和PPO(近端策略优化)。LoRA通过引入低秩矩阵微调部分权重,适合资源受限环境,具有资源节省和训练速度快的优势,适用于监督学习和简单交互场景。PPO基于策略优化,适合需要用户交互反馈的场景,能够适应复杂反馈并动态调整策略,适用于强化学习和复杂用户交互。文章还对比了两者的资源消耗和适用数据规模,帮助读者根据具体需求选择最合适的微调策略。
395 5
|
3月前
|
XML IDE 前端开发
IDEA忽略node_modules减少内存消耗,提升索引速度
在后端开发中,IDEA 在运行前端代码时,频繁扫描 `node_modules` 文件夹会导致高内存消耗和慢索引速度,甚至可能会导致软件卡死。为了改善这一问题,可以按照以下步骤将 `node_modules` 文件夹设为忽略:通过状态菜单右键排除该文件夹、在设置选项中将其加入忽略列表,并且手动修改项目的 `.iml` 文件以添加排除配置。这些操作可以有效提高IDE的运行性能、减少内存占用并简化项目结构,但需要注意的是,排除后将无法对该文件夹进行索引,操作文件时需谨慎。
177 4
IDEA忽略node_modules减少内存消耗,提升索引速度
|
6月前
|
NoSQL Java Redis
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
87 0
|
2月前
|
JavaScript 前端开发 安全
如何避免闭包带来的内存消耗呢
【10月更文挑战第12天】如何避免闭包带来的内存消耗呢
36 0
|
4月前
|
存储 机器学习/深度学习 算法
Adam-mini:内存占用减半,性能更优的深度学习优化器
论文提出一种新的优化器Adam-mini,在不牺牲性能的情况下减少Adam优化器的内存占用。
193 10
Adam-mini:内存占用减半,性能更优的深度学习优化器
|
4月前
|
机器学习/深度学习 数据采集 PyTorch
构建高效 PyTorch 模型:内存管理和优化技巧
【8月更文第27天】PyTorch 是一个强大的深度学习框架,被广泛用于构建复杂的神经网络模型。然而,在处理大规模数据集或使用高性能 GPU 进行训练时,有效的内存管理对于提升模型训练效率至关重要。本文将探讨如何在 PyTorch 中有效地管理内存,并提供一些优化技巧及代码示例。
271 1