什么是 LoRA(低秩适应)?

什么是 LoRa?

低秩自适应 (LoRA) 是一种用于使机器学习模型适应新环境的技术。它可以通过在原始模型中添加轻量级部件,而不是更改整个模型来使大型模型适应特定用途。数据科学家可以快速扩展模型的使用方式,而无需构建全新的模型。

该技术最初由 Edward Hu、Yelong Shen 及协作者发表在其论文《LoRA: Low-Rank Adaptation Of Large Language Models》1。他们在论文中表明,使用 LoRA 缩减和重新训练的模型在各种基准任务中的表现均优于基础模型。无需进行完全微调,并且使用数量显著减少的可训练模型参数,即可提高模型性能。

专家为您带来最新的 AI 趋势

获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。您会在每份时事通讯中找到一个取消订阅链接。您可以在此处管理您的订阅或取消订阅。有关更多信息,请参阅我们的 IBM 隐私声明

LoRA 的作用是什么?

大型和复杂的机器学习模型,例如用于 ChatGPT大型语言模型 (LLM) 的模型,需要花费很长时间和大量资源才能建立。它们可能有数万亿个设为特定值的参数。一旦这个过程完成,模型可能总体上功能强大且准确,但不一定针对特定任务进行了微调

要让模型在特定环境下正常工作,可能需要进行大量的重新训练,改变其所有参数。由于此类模型的参数较多,重新训练既昂贵又耗时。LoRA 提供了一种快速调整模型的方法,而无需重新训练模型。

例如,由于 GPT-3 模型的训练数据集规模庞大,对其进行完全微调需要训练 1,750 亿个参数。使用 LoRA,GPT-3 的可训练参数可以减少到大约 1,800 万个参数,从而将 GPU 内存需求减少大约三分之二。

LoRA 并不是唯一高效的微调方法。LoRa 的一种变体是量化 LoRa (QLoRA),这是一种将高精度计算技术与低精度存储空间相结合的微调技术。这有助于保持较小的模型尺寸,同时仍确保模型具有高性能和高准确性。

Mixture of Experts | 12 月 12 日,第 85 集

解码 AI:每周新闻摘要

加入我们世界级的专家小组——工程师、研究人员、产品负责人等将为您甄别 AI 领域的真知灼见,带来最新的 AI 资讯与深度解析。

LoRA 的工作原理

LoRA 不需要重新训练整个模型,而是按原样冻结模型的原始权重和参数。然后,在这个原始模型的基础上,它添加了一个名为低秩矩阵的轻量级附加组件,然后将其应用于新的输入,以获得特定于上下文的结果。低秩矩阵会对原始模型的权重进行调整,使输出结果与所需的用例相匹配。

LoRA 充分利用低秩矩阵的概念,使模型训练过程极其高效和快速。传统上,对 LLM 进行微调需要调整整个模型。LoRA 专注于修改小部分参数(低秩矩阵),以减少计算和内存开销。

该图显示了 LoRA 如何通过使用秩为 r 的较小矩阵来更新矩阵 A 和 B,以跟踪预训练权重的变化。LoRA 训练完成后,较小的权重会被合并到一个新的权重矩阵中,而无需修改预训练模型的原始权重。

显示低秩适应如何缩小模型尺寸的图片

LoRA 建立在这样的理解之上:大型模型本质上具有低维结构。通过利用称为低秩矩阵的较小矩阵,LoRA 可以有效地适应这些模型。该方法侧重于核心概念,即重大的模型变化可以用更少的参数来表示,从而提高适应过程的效率。

矩阵是机器学习和神经网络工作方式的重要组成部分。低秩矩阵比较大或较高秩矩阵更小,数值也更少。它们不会占用太多内存,并且需要更少的步骤来相加或相乘,使计算机处理速度更快。

一个高秩矩阵可以分解成两个低秩矩阵,一个 4 x 4 矩阵可以分解成一个 4 x 1 和一个 1 x 4 矩阵。

显示如何将 4×4 矩阵简化为 1×4 和 4×1 矩阵的图片

LoRA 将低秩矩阵添加到冻结的原始机器学习模型中。在微调期间,低秩矩阵通过梯度下降进行更新,而不修改基础模型的权重。这些矩阵包含在生成结果时应用于模型的新权重。乘法变化矩阵与基础模型权重相加,得到最终的微调模型。该过程以最小的计算能力和训练时间改变模型产生的输出。

就本质而言,LoRA 保持原始模型不变,为模型的每一层添加可改变的小型部分。这大大减少了模型的可训练参数和训练过程所需的 GPU 内存,这对于微调或训练大型模型而言是另一个重大挑战。

要使用 Python 和 PyTorch 实现 HuggingFace 的 LoRA 微调,开发者可以使用参数高效的微调 (PEFT) 库将 LoRA 适配器注入模型,并将它们用作更新矩阵。该库可通过 HuggingFace 或 GitHub 免费获得。该提供了为您的模型配置 LoRA 参数的方法。最常用的参数包括:

r:更新矩阵的秩,用 int 表示。低秩分解会产生更小的更新矩阵,从而减少可训练参数的数量。

target_modules:应用 LoRA 更新矩阵的模块(例如注意力模块)。

lora_alpha:LoRA 缩放系数。

LoRA 的优势

LoRA 的主要优势之一是,可以共享基础模型,并用于为新任务构建许多小型 LoRA 模块。共享模型被冻结,从而允许用户通过替换 LoRA 权重矩阵来切换任务。无需两个不同的模型,一个模型即可用于不同的任务,同时还能保持微调带来的性能提升。

LoRa 使训练更加高效,降低了硬件入门门槛,因为用户无需计算梯度或维护大多数参数的优化器状态。相反,该过程只需要优化规模小得多的低秩矩阵。

LoRA 的线性设计允许数据科学家在部署时将可训练矩阵与冻结的预训练模型权重合并,与通过构建完全微调的模型相比,不会带来推理延迟。

LoRA 可以与其他技术(例如前缀调整)结合使用,以提高模型性能,使其具有灵活性。

权衡

虽然 LoRA 可以显著减少可训练参数的数量,但也存在一些不足之处。该过程在矩阵分解期间会造成信息丢失。由于 LoRA 将全权重矩阵减少为更小的成分,因此可能会在此过程中丢失一些细节。这相当于模型过拟合。但就 LLM 而言,损失通常很小,因为深度学习模型高度过参数化,这意味着它们包含的参数多于任务所需的参数。“过参数化”意味着这些模型通常大于训练数据所需的规模。严格来说,并非所有参数都重要。参数中存在冗余性、稳健性和弹性。消除这种弹性可能会降低模型的准确性,因此可以作为 LoRA 过程的一部分来调整更新矩阵的秩。

相关解决方案
基础模型

深入了解 watsonx 组合中基础模型库,从容自信地为您的业务扩展生成式 AI。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解人工智能解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取下一步行动

深入了解 IBM watsonx 产品组合中的 IBM 基础模型库,满怀信心地为您的业务扩展生成式 AI。

了解 watsonx.ai 深入了解 IBM Granite AI 模型
脚注

1. Hu, Edward, et al, LoRA: Low-Rank Adaptation of Large Language Models, 2021