大型语言模型(LLMs)微调(Fine-tuning)优化研究! |
文章目录
- 一. 摘要
- 二. 大模型优化技术概述
- 2.1 梯度检查点(Gradient Checkpointing)
- 2.2 低秩适应
- 2.3 DeepSpeed
- 2.4 Flash Attention
- 三. GPU内存需求的理论分析
- 3.1. 模型状态内存(Model states memory) - 模型参数、梯度、优化器状态
- 3.2. 激活内存(Activation memory)
- 补充材料:ZeRO各阶段介绍和区别
- 四. 实验
- 4.1. 实验设置
- 4.2. Fine-tuning Large Models
- 二. 参考文献
- 大型语言模型微调优化研究:https://arxiv.org/abs/2406.02290
一. 摘要
- 微调大语言模型是用户用于特定应用的常见选择。然而,微调这些模型是一项艰巨的任务,因为用户必须考虑 资源预算、运行时间、模型大小和上下文长度 等多个因素。一个主要的挑战是微调对内存需求很高,限制了所需硬件内存和可以处理的训练数据上下文长度。在这项工作中,我们对各种微调优化方案进行了详细研究并分享了结果。特别是,我们评估了 梯度检查点(Gradient Checkpointing)、低秩适配(Low Rank Adaptation)、DeepSpeed的零冗余优化器(ZeRO Redundancy Optimizer)和闪存注意力(Flash Attention)。我们重点关注内存和运行时间,考察了不同优化组合在微调阶段对GPU内存使用和执行时间的影响,并提供了优化的最佳默认建议&#