深度理解LoRA和QLoRA:大模型训练的新视角
时间:2023-10-20T23:13:46
深度理解LoRA和QLoRA:大模型训练的新视角
在大模型训练的领域中,LoRA(Large-scale Optimizer with Randomized Approximation)和QLoRA(Quantized Large-scale Optimizer with Randomized Approximation)是两种重要的优化技术。本文将通过分析大量的实验结果,深入探讨这两种技术在实际应用中的表现和影响因素。
一致性的训练结果
尽管LLM(Large Language Models)的训练过程存在固有的随机性,但在多次运行的结果中,我们发现其表现出了显著的一致性。这意味着,即使在GPU训练环境中,我们也能够得到稳定的训练结果。
QLoRA的权衡
QLoRA在实践中表现出了一种可能值得权衡的特性:它可以节省33%的内存,但代价是增加33%的运行时间。如果你的GPU内存有限,那么QLoRA可能是一个不错的选择。
优化器的选择
在微调LLM时,优化器的选择并不是主要问题。虽然单独的SGD(随机梯度下降)可能不是最优的选择,但无论你是否使用AdamW,或者是配合调度器的SGD或AdamW,结果的差异都很小。
内存需求
尽管Adam因为为每个模型参数引入了两个新参数而被标记为内存密集型优化器,但在LLM的峰值内存需求中,这并没有显著影响。这是因为大部分内存被用于大矩阵乘法,而不是存储额外的参数。
多轮训练的效果
对于静态数据集,多轮训练可能并不有利。多次迭代的结果往往会导致结果的恶化,可能是因为过拟合的问题。
LoRA的应用
如果你打算使用LoRA,确保它被应用到所有的层,而不仅仅是Key和Value矩阵,以最大化模型的性能。
LoRA参数的调整
调整LoRA的等级是非常重要的,选择合适的alpha值也同样重要。一个好的经验法则是将alpha设置为等级值的两倍。
7B模型的微调
7B模型可以在几个小时内在单个拥有14Gb RAM的GPU上高效地进行微调。
总的来说,对于静态数据集,优化LLM以在所有基准任务上表现出色是无法实现的。要解决这个问题,需要多样化的数据源,或者LoRA可能并不是最理想的工具。
以上就是对LoRA和QLoRA进行大量实验后得出的主要观察和理解。希望这些内容可以为你的模型训练提供一些有价值的参考和指导。
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
