Posts
read more
一份基座,N 套人格:LoRA 热插拔的原理、接口与真实成本
一份基座,N 套人格:LoRA 热插拔的原理、接口与真实成本
如果你曾经为"想要三个不同风格/不同领域的模型"而准备下载三份模型文件,那这篇文章能帮你省下大量磁盘、显存和等待时间。
核心结论先给出:一份基座模型 + 若干个几十 MB 的 LoRA 适配器,可以在运行时自由切换甚至叠加,不重启、不重新导出、不复制大文件。 在生产环境里,这套做法已经有人把每月的 GPU 成本从约 2.4 万美元降到约 1200 美元。
一、LoRA 是什么:给大模型贴一张"专用贴纸"
微调(Fine-tuning)传统上指:拿一份预训练模型,用你自己的数据继续训练,得到一份完整的新模型文件。问题很明显——一个 8B 模型就是 16 GB,你想要三个风格,就要存三份 48 GB,跑起来还要三份显存。
LoRA(Low-Rank Adaptation,低秩适配)的做法完全不同。它发现了一个经验规律:模型从"通用"变成"某个专用领域",权重需要改变的部分其实很少。于是它不动原来的权重,而是额外学两个很小的矩阵。
用数学写出来非常简单:
原始输出: y = x · W
加上 LoRA: y = x · W + scale · x · A · B
其中 W 是原来那个巨大的权重矩阵(冻结、不动),而 A 和 B 是两个"瘦长"的小矩阵。它们的尺寸是刻意设计成很窄的——中间那个很窄的维度就是 rank(秩),通常取 16 到 64。
它为什么能这么小?举个例子:一个 8B 模型在 rank 16 下的可训练参数约 1500 万,而模型本身有 80 亿冻结参数——你只训练了不到 0.2% 的参数,最终产物就是几千万个数字,落到磁盘上大约 40 MB(rank 16)。