AI 模型与平台

LoRa、QLoRA 和 QA-LoRA:通过低秩矩阵分解实现大型语言模型的高效适应性

mm
LoRA : Low-Rank Adaptation of Large Language Models

大型语言模型(LLM)已经在理解和生成类似人类的文本方面取得了卓越的成就。LLM 的强大能力可以归因于其庞大的规模,通常具有数十亿个参数。然而,这种规模也带来了挑战,尤其是在模型适应特定任务或领域时。传统的管理 LLM 的方法,例如对所有参数进行微调,会带来巨大的计算和财务负担,从而成为其在现实应用中广泛采用的重大障碍。

在之前的一篇文章中,我们探讨了如何对大型语言模型(LLM)进行微调,以使其适应特定的需求。我们研究了各种微调方法,例如基于指令的微调、单任务微调和参数高效微调(PEFT),每种方法都有其独特的优化 LLM 的方法。Transformer 架构是 LLM 的骨干,我们讨论了处理大量参数在微调过程中的计算和内存需求带来的挑战。

参数在 LLM 中

https://huggingface.co/blog/hf-bitsandbytes-integration

上图代表了各种大型语言模型按参数数量排序。值得注意的是:PaLMBLOOM 等。

截至今年,已经出现了更大模型的发展。然而,在标准系统上对如此巨大的开源模型进行调优是不可行的,没有专门的优化技术。

微软在这篇论文中引入了低秩适应(LoRA),旨在缓解这些挑战,并使 LLM 更加易用和可适应。

LoRA 的核心在于其对模型适应的方法,不需要深入到整个模型的重新训练。与传统的微调不同,LoRA 采用了更智能的方法。它冻结了预训练的模型权重,并在 Transformer 架构的每个层中引入了可训练的低秩分解矩阵。这种方法大大减少了可训练参数的数量,确保了更高效的适应过程。

LLM 调优策略的演变

回顾 LLM 调优的历程,我们可以识别出多种策略。最初,人们关注的是对预训练模型进行微调,这种策略需要对模型参数进行全面修改,以适应特定的任务。然而,随着模型的大小和复杂性的增长,这种方法的计算需求也随之增长。

接着,子集微调成为了一种更为克制的方法,只有模型参数的子集被微调,从而在一定程度上减少了计算负担。尽管它有其优点,但子集微调仍然无法跟上 LLM 大小增长的速度。

随着实践者探索更高效的途径,完整微调出现了一种严格但有回报的方法。

LoRA 介绍

矩阵的秩给出了其列创建的维度的数量,取决于其独特的行或列的数量。

  • 满秩矩阵:其秩与行或列的较小数相匹配。
  • 低秩矩阵:其秩显著小于行和列的数量,捕获的特征更少。

现在,大型模型掌握了对其领域的广泛理解,例如语言模型中的语言。但是,微调它们以适应特定任务通常只需要突出这些理解的一小部分。这就是 LoRA 发挥作用的地方。它表明,展示这些权重调整的矩阵可以是一个低秩矩阵,从而捕获更少的特征。

LoRA 通过将更新矩阵分解为两个较小的秩矩阵来巧妙地限制更新矩阵的秩。因此,LoRA 不是改变整个权重矩阵,而是改变其中的一部分,使微调任务更加高效。

将 LoRA 应用于 Transformer

LoRA 通过关注特定的权重矩阵来最小化神经网络中的训练负担。在 Transformer 架构下,某些权重矩阵与自注意力机制相关,具体来说是 Wq、Wk、Wv 和 Wo,以及多层感知器(MLP)模块中的另外两个。

Transformer 架构

Transformer 架构

 

Transformer 注意力头

Transformer 注意力头

LoRA 背后的数学解释

让我们分解 LoRA 背后的数学:

  1. 预训练权重矩阵
    • 它从预训练权重矩阵 开始,维度为 。这意味着矩阵有 行和 列。
  2. 低秩分解
    • 不是直接更新整个矩阵 ,这种方法提出了低秩分解的方法。
    • 更新 可以表示为两个矩阵的乘积:
      • 的维度为
      • 的维度为
    • 关键点在于秩 远小于 ,从而实现更高效的表示。
  3. 训练
    • 在训练过程中, 保持不变。这被称为“冻结”权重。
    • 另一方面, 是可训练的参数。这意味着,在训练过程中,矩阵 进行调整,以提高模型的性能。
  4. 乘法和加法
    • 两个矩阵 和更新 (即 的乘积) 都乘以相同的输入(表示为 ).
    • 这些乘法的结果然后被加在一起。
    • 这个过程可以用以下等式来总结: 这里, 表示应用更新后的输入 的最终输出。

简而言之,这种方法允许以更高效的方式更新大型权重矩阵,通过使用低秩分解来表示更新,这在计算效率和内存使用方面是有益的。

LoRA 动画

LoRA

初始化和缩放:

在训练模型时,参数的初始化方式会显著影响学习过程的效率和有效性。在 LoRA 的上下文中,使用 更新权重矩阵:

  1. 矩阵 的初始化
    • 矩阵 :该矩阵使用随机高斯值进行初始化,也称为正态分布。使用高斯初始化的理由是为了打破对称性:相同层中的不同神经元将学习不同的特征,因为它们具有不同的初始权重。
    • 矩阵 :该矩阵使用零进行初始化。通过这样做,更新 在训练开始时为零。这确保模型的行为不会在开始时发生突然的变化,允许模型在 在训练过程中学习适当的值时逐渐适应。
  2. 的输出缩放
    • 在计算更新 后,其输出由一个因子 缩放,其中 是一个常数。通过缩放,更新的幅度得到了控制。
    • 缩放尤其重要,当秩 发生变化时。例如,如果您决定增加秩以获得更高的准确性(以计算成本为代价),则缩放确保您不需要调整许多其他超参数。它为模型提供了一定的稳定性。

LoRA 的实际影响

LoRA 已经展示了其在高效地将 LLM 微调为特定艺术风格方面的潜力。这种潜力由来自 AI 社区的人们所体现,这些人将模型适应于模仿 Greg Rutkowski 的艺术风格。

如论文中以 GPT-3 175B 为例所强调的那样。拥有 175B 参数的单独微调模型的个体实例的成本非常高。但是,使用 LoRA,训练参数的数量减少了 10,000 倍,GPU 内存使用量也减少到三分之一。

LoRa 对 GPT-3 微调的影响

LoRa 对 GPT-3 微调的影响

LoRA 方法不仅代表了使 LLM 更加易用的一大步,也凸显了弥合理论进步与实际应用之间差距的潜力。通过减轻计算障碍,促进更高效的模型适应过程,LoRA 有望在 LLM 在现实场景中的更广泛采用和部署中发挥关键作用。

QLoRA(量化)

虽然 LoRA 在减少存储需求方面是一个游戏规则的改变者,但它仍然需要大量的 GPU 来加载模型进行训练。这就是 QLoRA 或量化 LoRA 的用武之地,它结合了 LoRA 和量化技术,提出了一种更智能的方法。

量化

量化

通常,权重参数以 32 位格式(FP32)存储,这意味着矩阵中的每个元素占用 32 位空间。想象一下,如果我们可以将相同的信息压缩到仅 8 位甚至 4 位。这就是 QLoRA 的核心思想。量化是指将连续的无限值映射到一个较小的离散有限值集。在 LLM 的背景下,它指的是将模型的权重从更高精度的数据类型转换为较低精度的数据类型。

LLM 中的量化

LLM 中的量化

以下是 QLoRA 的简化解释:

  1. 初始量化:首先,将大型语言模型(LLM)量化为 4 位,显著减少了内存占用。
  2. LoRA 训练:然后,在标准 32 位精度(FP32)下进行 LoRA 训练。

现在,您可能会想知道为什么在量化为 4 位之后,需要将模型权重恢复到 32 位。这是因为为了在 FP32 中有效地训练 LoRA 适配器,模型权重也需要恢复到 FP32。这种来回切换是以一种智能的、分步骤的方式进行的,以避免让 GPU 内存不堪重负。

LoRA 在 Hugging Face 的参数高效微调(PEFT)库中找到其实际应用,简化了其使用。对于那些想要使用 QLoRA 的人来说,它可以通过 bitsandbytes 和 PEFT 库的组合来访问。另外,HuggingFace 的 Transformer 强化学习(TRL)库提供了对 LoRA 的内置支持,促进了有监督的微调。这些三个库共同提供了微调选定预训练模型的必备工具包,使得在给定特定属性指令时能够生成令人信服和连贯的产品描述。

QLoRA 后,权重需要恢复到高精度格式,这可能会导致准确性损失,并缺乏加速过程的优化。

一种提议的解决方案是将权重矩阵分成较小的段,并对每个段分别应用量化和低秩适应。一个名为 QA-LoRA 的新方法,试图结合量化和低秩适应的优势,同时保持过程的高效性和模型的有效性,以适应所需的任务。

结论

在本文中,我们讨论了大型语言模型的挑战,这些挑战由其巨大的参数规模引起。我们深入探讨了传统的微调实践及其相关的计算和财务需求。LoRA 的核心在于其能够在不需要重新训练整个模型的情况下修改预训练模型,从而减少可训练的参数,使适应过程更加划算。

我们还简要介绍了量化 LoRA(QLoRA),它是 LoRA 和量化的结合,减少了模型的内存占用,同时保留了训练所需的精度。凭借这些先进的技术,实践者现在拥有了一个强大的库,促进了 LLM 在现实场景中的更广泛采用和部署。

矩阵

矩阵

这些策略旨在平衡使 LLM 适应特定任务的需求和确保微调和部署过程在计算和存储资源方面不会过于繁重的需求之间。

我已经沉浸在了令人着迷的机器学习和深度学习世界中五年了。我的热情和专业知识让我为超过50个不同的软件工程项目做出了贡献,特别关注AI/ML。我的持续的好奇心也让我对自然语言处理产生了兴趣,这是一个我渴望进一步探索的领域。