什么是 AI 中的 LoRA?

LoRA 代表 Low-Rank Adaptation。这是一种参数高效微调方法:保持预训练模型原始权重冻结,并为选定层学习小得多的低秩矩阵。学习得到的更新可以保存为适配器,日后应用到兼容基础模型。

两个小型低秩矩阵引导一个大得多的冻结神经网络权重结构。
大型预训练矩阵保持冻结;可训练路径通过小得多的秩对其更新进行分解。

本页讨论 AI 模型适配。小写“a”的 LoRa 也指一种远距离无线技术,与语言或图像生成模型的 LoRA 适配器无关。

核心思想,不被代数迷雾遮挡

传统完整微调可以更新模型中的许多或全部参数。LoRA 假设针对特定任务的有效变化通常可以用少得多的自由度表示。它不会学习完整更新矩阵,而是把更新表示为两个秩为 r 的较窄矩阵之积。

有效权重由冻结基础权重与经过缩放的低秩更新组合而成:

W′ = W + (B × A) · scale

如果所选秩远小于原始维度,矩阵 AB 的可训练参数会远少于完整更新。这会减少训练内存并产生紧凑适配器工件。基础模型仍承担大部分工作。

LoRA 模型、LoRA 适配器和 LoRA 权重

这些短语常被宽泛使用,因此最好加以区分:

下载的LoRA 文件通常不包含完整基础模型。这就是 UI 会要求你选择检查点,再应用一个或多个 LoRAs 的原因。

LoRA 可以学习什么?

在语言模型中,适配器可以针对领域、任务或指令风格专门化行为。在扩散模型中,LoRAs 常用于视觉风格、角色、主体、产品、概念或较小行为调整。目标模块、秩、数据集和训练过程决定适配器能表达什么。

LoRA 不保证质量或保真度。紧凑适配器可能过拟合、与基础模型冲突、在不同强度下产生不可预测响应,或依赖触发令牌和预处理选择。应把模型卡和训练上下文视为运营元数据,而非装饰。

推理时如何使用适配器

兼容框架加载基础模型、读取适配器配置并将其张量应用到目标模块。部分运行时让更新保持独立,以便启用、加权或卸载;另一些可以把更新融合到用于部署的派生副本。

融合并不等于让原始适配器自包含。如果希望调节强度、组合适配器或复现输出文件,请保留未融合适配器、精确基础模型和方案。检查点与 LoRA 指南说明这些恢复区别。

LoRA、QLoRA 与完整微调

LoRA 描述低秩更新。QLoRA 将 LoRA 训练与量化冻结基础模型及其他内存节省技术结合。最终交付物仍可能是适配器,因此仅凭文件名未必能看出其训练方式。方法级对比见LoRA 与 QLoRA

完整微调会更新模型更多部分,可以提供不同容量和运营取舍,但会产生更大状态和更高资源需求。正确选择取决于任务、硬件、评估和部署,而不是假定某种方法总是更“专业”。

LoRA 模型库为何仍会变大

一个适配器相对于基础模型很紧凑,但模型库会因变体、秩、轮次、强度、重复下载和多个兼容基础模型系列而增长。基础检查点、VAEs、编码器、预览和训练输出常远大于任何单个适配器。因此,装满小文件的文件夹可能依赖规模大得多的模型资产。

使用一个基础模型配多个适配器指南和在不改变权重的情况下释放 LoRA 磁盘空间的实用工作流程。目标是可恢复的连贯系列,而不是不惜代价获得最小目录。

LoRA 应与什么一起归档?

至少保留适配器权重、配置和精确基础模型标识符。如果基础模型私有、在本地修改过或可能消失,也请保留该精确基础模型。为实现可复现性,请保留相关触发令牌、训练配置、数据集引用、许可或使用条款和校验和。

Tensor Archive 会保留选定的本地张量系列并验证精确还原。它不会重建缺失基础模型、编造适配器元数据,也不会证明两个名称相似的架构兼容。

来源

将适配器与其精确基础模型一起保留。免费下载 ↓