标签:计算机科学,机器学习,模型训练,LoRA,QLoRA 时间:2023-10-20T23:13:46
在大模型训练的领域中,LoRA(Large-scale Optimizer with Randomized Approximation)和QLoRA(Quantized Large-scale Optimizer with Randomized Approximation)是两种重要的优化技术。本文将通过分析大量的实验结果,深入探讨这两种技术在实际应用中的表现和影响因素。
尽管LLM(Large Language Models)的训练过程存在固有的随机性,但在多次运行的结果中,我们发现其表现出了显著的一致性。这意味着,即使在GPU训练环境中,我们也能够得到稳定的训练结果。
QLoRA在实践中表现出了一种可能值得权衡的特性:它可以节省33%的内存,但代价是增加33%的运行时间。如果你的GPU内存有限,那么QLoRA可能是一个不错的选择。
在微调LLM时,优化器的选择并不是主要问题。虽然单独的SGD(随机梯度下降)可能不是最优的选择,但无论你是否使用AdamW,或者是配合调度器的SGD或AdamW,结果的差异都很小。
尽管Adam因为为每个模型参数引入了两个新参数而被标记为内存密集型优化器,但在LLM的峰值内存需求中,这并没有显著影响。这是因为大部分内存被用于大矩阵乘法,而不是存储额外的参数。
对于静态数据集,多轮训练可能并不有利。多次迭代的结果往往会导致结果的恶化,可能是因为过拟合的问题。
如果你打算使用LoRA,确保它被应用到所有的层,而不仅仅是Key和Value矩阵,以最大化模型的性能。
调整LoRA的等级是非常重要的,选择合适的alpha值也同样重要。一个好的经验法则是将alpha设置为等级值的两倍。
7B模型可以在几个小时内在单个拥有14Gb RAM的GPU上高效地进行微调。
总的来说,对于静态数据集,优化LLM以在所有基准任务上表现出色是无法实现的。要解决这个问题,需要多样化的数据源,或者LoRA可能并不是最理想的工具。
以上就是对LoRA和QLoRA进行大量实验后得出的主要观察和理解。希望这些内容可以为你的模型训练提供一些有价值的参考和指导。
7种交叉验证(Cross-validation)技术简介(附代码示例)
目前正在举办的机器学习相关的比赛
2021年适合初学者的10个最佳机器学习在线课程
最流行的用于预测的机器学习算法简介及其优缺点说明
隐马尔科夫模型及其在NLP中的应用指南
关于机器学习理论和实践的信息图
工业蒸汽量预测-特征工程
亚马逊最新发布Feature Store简介
Scikit-Learn最新更新简介
100天搞定机器学习(100-Days-Of-ML)(一)数据预处理
如何训练你自己的大语言模型?——来自Replit一线工程师的亲身经验
Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)
回归模型中的交互项简介(Interactions in Regression)
贝塔分布(Beta Distribution)简介及其应用
矩母函数简介(Moment-generating function)
使用R语言进行K-means聚类并分析结果
普通最小二乘法(Ordinary Least Squares,OLS)的详细推导过程
H5文件简介和使用
深度学习技巧之Early Stopping(早停法)
手把手教你本地部署清华大学的ChatGLM-6B模型——Windows+6GB显卡本地部署
Wishart分布简介