主要观点总结
本文主要介绍了大模型在单卡训练或推理时的显存占用情况,围绕数据精度、全参训练和推理的显存分析、Lora和Qlora的显存分析进行了详细阐述。通过具体的例子和计算,解释了显存的主要占用部分和计算方法,以及如何通过优化数据精度、使用混合精度训练、Lora和Qlora等方法来减少显存占用。
关键观点总结
关键观点1: 数据精度对显存的影响
数据精度决定了数据存储的方式,不同的精度类型会影响显存的占用。通过了解数据精度的计算方式,可以更好地理解显存的占用情况。
关键观点2: 全参训练和推理的显存分析
在训练和推理过程中,显存主要被用在模型权重、梯度、优化器和激活值等四个模块上。了解这些模块的显存占用情况,可以帮助我们更好地优化模型。
关键观点3: Lora方法的显存分析
Lora是一种在大模型微调中广泛应用的参数效率优化方法。通过了解Lora方法的显存占用情况,可以更好地理解其在实际应用中的效果。
关键观点4: Qlora方法的显存分析
Qlora是进一步压缩模型精度并结合Lora训练的方法。通过对Qlora的显存进行分析,可以更好地理解其在提高模型效率方面的作用。
文章预览
转载自 | 知乎 作者 | 然荻 1.告诉你一个模型的参数量,你要怎么估算出训练和推理时的显存占用? 2.Lora相比于全参训练节省的显存是哪一部分?Qlora相比Lora呢? 3.混合精度训练的具体流程是怎么样的? 这是我曾在面试中被问到的问题,为了巩固相关的知识,打算系统的写一篇文章,帮助自己复习备战秋招的同时,希望也能帮到各位小伙伴。这篇文章将围绕大模型在单卡训练或推理时的显存占用进行系统学习分析,其中有的知识点可能不会涉及太过深入点到为止(因为我也不会),但尽量保证整个读下来逻辑通畅,通俗易懂(只有小白最懂小白!)。 1.数据精度 想要计算显存,从“原子”层面来看,就需要知道我们的使用数据的精度,因为精度代表了数据存储的方式,决定了一个数据占多少bit。我们都知道: 1 byte = 8 bits 1 KB = 1,024 bytes 1 MB = 1,0
………………………………