【大语言模型】ACL2024论文-01 Quantized Side Tuning: Fast and Memory-Efficient Tuning of Quantized Large Language

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
简介: 本文介绍了Quantized Side Tuning(QST)方法,旨在解决大型语言模型(LLMs)微调过程中的内存效率和速度问题。QST通过将模型权重量化为4位,并引入一个与LLM分离的侧网络,显著减少了内存占用并加快了微调速度,同时保持了与现有技术相当的性能。实验表明,QST可以将总内存占用减少高达2.3倍,并将微调速度提高高达3倍。

【大语言模型】ACL2024论文-01 Quantized Side Tuning: Fast and Memory-Efficient Tuning of Quantized Large Language


概览

本文介绍了一种名为Quantized Side Tuning(QST)的新方法,旨在解决大型语言模型(LLMs)在微调过程中的内存效率和速度问题。QST通过一个双阶段过程实现:首先,将LLM的模型权重量化为4位,以减少模型权重的内存占用;其次,引入一个与LLM分离的侧网络,该网络利用LLM的隐藏状态来进行特定任务的预测。这种方法显著减少了LLM微调过程中的内存占用,并加快了微调过程,同时保持了与现有技术相当的性能。实验表明,QST可以将总内存占用减少高达2.3倍,并将微调过程的速度提高高达3倍。

研究背景与技术背景

大型语言模型(LLMs)在多种下游任务中表现出色,但其微调过程需要显著的内存资源。现有的微调方法主要关注参数效率,即只更新一小部分可训练参数,或者尝试减少训练阶段的内存占用。然而,这些方法在减少内存占用方面仍有局限,尤其是在模型权重、优化器状态和中间激活这三个主要来源上。随着模型规模的增加,这些挑战变得更加严峻,限制了LLMs在实际应用中的部署。

技术挑战

LLMs的微调面临的主要技术挑战包括:

  1. 内存占用:模型权重、优化器状态和中间激活的内存占用随着模型规模的增加而显著增长。
  2. 训练效率:在保持模型性能的同时,减少训练时间和资源消耗。
  3. 参数效率:在不显著增加模型参数的情况下,实现有效的微调。

这些挑战限制了LLMs在资源受限的环境中的应用,尤其是在需要快速部署和响应的场景中。

如何破局

QST通过以下方法解决了上述挑战:

  1. 4位量化:将模型权重从16位量化到4位,显著减少了模型权重的内存占用。
  2. 侧网络:引入一个与LLM分离的侧网络,避免了通过LLM进行反向传播,从而减少了中间激活的内存需求。
  3. 低秩适配器和无梯度下采样模块:使用这些技术显著减少了可训练参数,进一步减少了优化器状态的内存占用。

这些方法共同作用,使得QST在减少内存占用和提高微调速度方面取得了显著的效果。

技术应用

QST的实验设置包括在不同的LLMs(如OPT和LLaMA 2)上进行评估,这些模型的参数量从13亿到700亿不等。实验在多个基准测试上进行,包括GLUE和MMLU,涵盖了自然语言理解和生成任务。QST在这些任务上展示了其在减少内存占用和提高微调速度方面的优势,同时保持了与全参数微调相当的性能。

QST的潜在应用包括但不限于:

  • 资源受限的环境:在移动设备或边缘计算环境中部署LLMs。
  • 快速原型设计和测试:在开发新应用时快速迭代和测试不同的模型配置。
  • 大规模部署:在需要处理大量并发请求的在线服务中使用LLMs。

主要相关工作与参考文献

QST的相关工作涵盖了参数效率微调和内存效率训练的多个方面。一些关键的参考文献包括:

  • 参数效率微调:如LoRA、Adapter等方法,通过引入新的任务特定参数或更新模型中一小部分参数来实现微调。
  • 内存效率训练:如可逆神经网络和梯度检查点等技术,通过减少中间激活的存储需求来降低内存占用。
  • 网络压缩:如网络剪枝和蒸馏,通过减少模型大小来提高训练和推理的计算效率。

这些工作为QST的发展提供了理论基础和技术背景,QST在此基础上通过创新的方法进一步推动了LLMs的微调效率和内存占用的优化。


后记

如果觉得我的博客对您有用,欢迎 打赏 支持!三连击 (点赞、收藏、关注和评论) 不迷路,我将持续为您带来计算机人工智能前沿技术(尤其是AI相关的大语言模型,深度学习和计算机视觉相关方向)最新学术论文及工程实践方面的内容分享,助力您更快更准更系统地了解 AI前沿技术

相关文章
|
存储 消息中间件 缓存
RocketMQ 5.0 分级存储背后技术优化包含那几个方面
RocketMQ 5.0 分级存储背后的技术优化是一个综合性的系统工程,需要考虑多个方面,包括存储介质的选择、数据读写策略的设计、数据压缩和解压缩技术的引入、自动的数据分级和迁移机制的实现,以及高可用性和容错性的保证等。这些技术优化的目的是为了实现存储成本和性能的最优平衡,提高系统的可靠性和可用性,满足大规模数据处理的需求。
369 1
|
弹性计算 Linux Windows
【阿里云幻兽帕鲁】搭建 密码 存档 使用 费用 常见问题合集
幻兽帕鲁作为一款爆火的游戏,在进行多人游戏时,需要搭建服务器。本文章汇总了在阿里云上搭建幻兽帕鲁服务器时可能会遇到部署问题、配置选择问题、运行问题等,以便用户快速参考和解决搭建和运行中的挑战。
16039 0
|
2月前
|
机器学习/深度学习 数据采集 算法
大模型微调技术综述与详细案例解读
本文是一篇理论与实践结合的综述文章,综合性全面介绍大模型微调技术。本文先介绍大模型训练的两类场景:预训练和后训练,了解业界常见的模型训练方法。在后训练介绍内容中,引出模型微调(模型微调是属于后训练的一种)。然后,通过介绍业界常见的模型微调方法,以及通过模型微调实操案例的参数优化、微调过程介绍、微调日志解读,让读者对模型微调有更加直观的了解。最后,我们详细探讨数据并行训练DDP与模型并行训练MP两类模型并行训练技术,讨论在实际项目中如何选择两类并行训练技术。
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习实践篇 第五章:模型保存与加载
简要介绍pytorch中模型的保存与加载。
554 0
|
机器学习/深度学习 运维 监控
深度学习之视频内容理解
基于深度学习的视频内容理解(Video Content Understanding, VCU)是一项关键技术,旨在通过神经网络模型自动分析、解读和提取视频中的语义信息。
859 10
|
Unix Linux Shell
Linux下vi与vim命令使用与区别
Linux下vi与vim命令使用与区别
385 0
|
存储 安全 生物认证
身份验证的三种类型详解
【8月更文挑战第31天】
1868 1
|
NoSQL 前端开发 程序员
【震撼揭秘!】程序员绝不会告诉你的秘密:掌握汇编语言调试,轻松从软件故障中全身而退——透视代码底层,成为Bug猎人!
【8月更文挑战第31天】《调试的艺术:如何利用汇编语言追踪和解决软件问题》探讨了使用汇编语言进行高效调试的方法。无论是初学者还是资深开发者,面对棘手的 bug 时,高级语言的信息往往不足。文章通过具体示例展示如何通过汇编代码定位问题,如 C 语言中数组求和函数的崩溃问题。借助 `gcc -S` 生成的汇编代码和 GDB 调试器,可以深入理解程序行为,从而更准确地解决问题。掌握这一技能,将使你在复杂问题面前更加从容。
226 2
|
数据采集 数据安全/隐私保护
数据治理创新路:建设数据集市,强化数据报送一致性新实践
企业可以通过组织培训课程、提供操作手册等方式,提高数据报送人员的业务水平和数据意识,减少人为因素导致的数据不一致问题。
|
数据库
解决numpy.core._exceptions.UFuncTypeError: ufunc ‘add‘ did not contain a loop with signature matching
解决numpy.core._exceptions.UFuncTypeError: ufunc ‘add‘ did not contain a loop with signature matching
1609 0
解决numpy.core._exceptions.UFuncTypeError: ufunc ‘add‘ did not contain a loop with signature matching
下一篇
oss云网关配置