什么是LoRA?一文读懂低秩适应的概念、原理、优缺点和主要应用

发布于 2023-05-07 · 低秩适应(Low-Rank Adaptation, LoRA)技术允许更快、更有效地将大型语言模型适应特定的任务或领域。本文将概述LoRA是什么、主要组成、工作原理、优点和局限性...

这几年自然语言处理(NLP)能进步得这么快,很大程度靠的是越来越强的语言模型,OpenAI 的 GPT 系列就是典型。可这类模型训练起来是真贵:算力吃紧,数据、能耗、时间一样都省不了。于是研究者一直在找更聪明的路子——不重新训练整个模型,也能把预训练模型微调得适合特定任务或领域。

低秩适应(Low-Rank Adaptation,LoRA)就是其中一种,它能让大语言模型更快、更省力地适配目标任务或领域。下面我们就来讲讲 LoRA 是什么、由哪些部分组成、怎么工作、有什么优缺点,以及能用在哪些地方。

LoRA低秩适应

到底什么是 LoRA

LoRA 全称 Low-Rank Adaptation,中文一般译作“低秩自适应”,说的是这么一类技术:用低维结构去近似大模型的高维结构,从而把复杂度压下来。放到语言模型的语境里,就是给原始模型做一个更小、更好管理的替身,让它照样能把特定任务或领域干得漂亮。

背后的想法很简单:对很多任务来说,大模型的高维结构里掺着冗余甚至无关的信息。把这部分水分挤掉,就能得到一个更精简的模型——性能基本没丢,训练和部署却省资源得多。

LoRA 由哪几部分组成

LoRA 是一项专门给预训练语言模型“换轻量装备”的技术:在原有权重矩阵上附加一个低秩矩阵,让模型在学习任务相关信息时更省力、更高效,从而顺利适配新的任务或领域。

拆开来看,LoRA 主要包含这几个部分:

  • 预训练语言模型:GPT、BERT 这类在大量任务和领域上训过的大模型,通用知识都装在这里面。
  • 低秩适应层:加在预训练权重矩阵上的低秩矩阵,微调时专门更新它,用来学习特定任务的信息。
  • 微调过程:不断调整低秩自适应层,让模型在目标任务或领域上的损失降到最低。

一句话概括 LoRA 的思路:预训练模型的一般知识照单全收,学新任务或新领域时,只高效补上必需的那部分特定信息。

LoRA 是怎么工作的

LoRA 的适配靠往权重矩阵里引入低秩矩阵来完成。这个低秩层先随机初始化,再在微调过程中逐步更新。整个流程的关键步骤是:

  • 初始化:拿一个预训练好的语言模型作底子,在其权重矩阵上挂一个低秩适应层,也就是一个随机初始化的低秩矩阵。
  • 微调:在新任务或新领域上训练,只更新低秩适应层,预训练权重原封不动。这样模型不动一般知识,就能把任务信息学到手。
  • 预测:用调整好的模型,去处理目标任务或领域里没见过的新数据。

因为适应过程全压在低秩矩阵上,LoRA 的微调效率高得多——和全量微调相比,计算和内存开销都省了不少。

LoRA 的优点和局限

LoRA 的优点

  • 高效:只需更新低秩适应层而非整个模型,微调大型语言模型自然更快、更省力。
  • 省资源:微调复杂度降下来了,算力、能源和时间都能省下一截。
  • 灵活:GPT、BERT 等各类大规模语言模型都能套,换任务、换领域也容易接入。
  • 性能:复杂度虽然砍了,效果却能和全量微调掰掰手腕,很多应用里完全可以拿它当替代方案。

LoRA 的局限性

  • 近似误差:用低秩矩阵去近似原本的高维结构,难免引入一些误差,个别任务上的表现可能受影响。
  • 任务上限:LoRA 在不少任务上都能打,但并非处处最优——需要细粒度理解、或数据分布和预训练相差很远的任务与领域,它可能不如全量微调。
  • 规模压力:复杂度是降了,可模型特别大、要适配的任务或领域特别多时,资源开销依然不小。

LoRA 能用在哪里

LoRA 的用武之地集中在“大模型要省着劲儿做适配”的场合,举几个典型:

  • 领域适配:把预训练模型调到医疗、法律这类专门领域,让领域任务做得更准。
  • 任务适配:面向具体任务做微调,比如情感分析、机器翻译、问答。
  • 迁移学习:把模型在一个任务上学到的知识,用到另一个相关但不完全相同的任务上。
  • 多任务学习:让一个模型同时兼顾多个任务,计算资源用得更充分。

想让大语言模型低成本地适应各种任务和领域,LoRA 是一条被验证有效的捷径:更快、更省,效果也不差。可以预见,随着 NLP 社区继续推着大模型往前走,LoRA 这类技术会让模型离普通开发者和真实场景越来越近。

0

相关文章

0 条评论

后参与评论

暂无评论,来抢沙发。