What is LoRA?
一种参数高效微调技术,将小型可训练低秩矩阵注入冻结的预训练模型中,大幅减少适配大语言模型所需的内存和计算量。
Definition
LoRA(Low-Rank Adaptation of Large Language Models,大语言模型的低秩适配)是Hu等人在2021年提出的微调方法,完全避免修改原始模型权重。相反,它冻结预训练的权重矩阵,并在每个Transformer层的注意力投影中注入成对的小型可训练低秩分解矩阵(通常称为A和B)。在前向传播过程中,某层的输出变为原始冻结权重乘以输入加上低秩适配器贡献的总和。由于这些适配器矩阵的秩(r)远小于原始维度,可训练参数的数量减少了几个数量级——通常从数十亿减少到仅几百万。
这种方法有两个深远的实际好处。首先,它使消费级和中端GPU上的微调成为可能:全量微调需要28 GB VRAM的7B参数模型,在结合4位量化(QLoRA)时可以用低至6 GB进行LoRA微调。其次,适配器权重很小——通常10到100 MB——意味着组织可以为单个基础模型维护数十个任务特定的适配器,而不会成倍增加存储成本。
LoRA已成为开源LLM生态系统中占主导地位的微调策略。它被Hugging Face PEFT、Axolotl、LLaMA-Factory以及几乎所有主要训练框架支持。QLoRA(量化基础权重)、DoRA(分解权重更新)和rsLoRA(秩稳定缩放)等变体继续推动效率和质量的前沿。
Why It Matters
在LoRA之前,微调大语言模型意味着更新每个参数——这个过程需要多块高端GPU,并为每个任务产生一个完整大小的模型副本。这在经济和运营上对大多数组织来说是不可行的。LoRA通过将硬件需求降低4-10倍、存储需求降低100倍以上来使微调平民化。它还引入了可交换适配器的概念:单个基础模型可以通过在推理时加载不同的LoRA适配器来服务多个用例,实现多租户部署,每个客户获得个性化模型而无需复制完整权重。
How It Works
对于原始模型中维度为d × k的给定权重矩阵W,LoRA引入两个矩阵:维度为d × r的A和维度为r × k的B,其中r(秩)远小于d和k——通常为8、16或64。训练期间,W被冻结,只更新A和B。修改后的前向传播计算:output = W·x + (A·B)·x · (α/r),其中α是控制适配器影响的缩放因子。推理时,适配器贡献A·B可以合并到W中,不增加任何延迟。训练目标通常是每个注意力层中的查询和值投影矩阵(q_proj、v_proj),不过扩展到其他模块(k_proj、o_proj、gate、up、down投影)可以以最小代价提升质量。
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM
# Load base model
model = AutoModelForCausalLM.from_pretrained(
"mistralai/Mistral-7B-v0.3",
load_in_4bit=True, # QLoRA: 4-bit quantized base
)
# Configure LoRA adapter
lora_config = LoraConfig(
r=16, # Rank of the low-rank matrices
lora_alpha=32, # Scaling factor (alpha / r)
target_modules=[
"q_proj", "v_proj", # Attention projections
"k_proj", "o_proj", # Optional: more modules = better quality
],
lora_dropout=0.05, # Dropout for regularization
bias="none",
task_type="CAUSAL_LM",
)
# Apply LoRA — only adapter params are trainable
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# Output: trainable params: 13,631,488 || all params: 7,248,023,552 || 0.19%Example Use Case
一家法律科技公司需要三个任务的专业化模型:合同条款提取、监管合规问答和判例法摘要。他们在单个Llama 2 13B基座上微调了三个各50 MB的LoRA适配器,而不是微调和托管三个单独的13B参数模型(需要约78 GB存储和三个GPU分配)。推理时,根据传入请求的任务类型加载相应的适配器。额外存储总量:150 MB。GPU分配总量:一个实例服务所有三个任务。
Key Takeaways
- LoRA冻结原始模型并训练小型低秩适配器矩阵,将可训练参数减少99%以上。
- 结合量化(QLoRA),它可以在单块消费级GPU上微调7B以上的模型。
- 适配器权重通常为10-100 MB,允许每个基础模型有多个任务特定的适配器。
- 适配器可以在推理时合并到基础权重中,不增加额外延迟。
- LoRA被所有主要微调框架支持,已成为行业标准方法。
How Ertas Helps
LoRA是Ertas Studio的默认微调方法。当用户配置训练任务时,Studio自动设置LoRA(或对于较大模型使用QLoRA),提供秩、alpha和目标模块的合理默认值——同时为需要完全控制的高级用户开放这些参数。生成的适配器权重被高效存储在Ertas Hub中,可以进行版本管理、分享和堆叠。在部署时,Ertas Cloud加载一次基础模型并按请求热切换LoRA适配器,实现多租户推理而无需复制模型权重。
Related Resources
Adapter
Base Model
Epoch
Fine-Tuning
GGUF
Inference
JSONL
Learning Rate
Model Distillation
Overfitting
QLoRA
Introducing Ertas Studio: A Visual Canvas for Fine-Tuning AI Models
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
How to Fine-Tune an LLM: The Complete 2026 Guide
Fine-Tuning Llama 3: A Practical Guide for Your Use Case
Fine-Tune AI Models Without Writing Code
Fine-Tuning vs RAG: When to Use Each (and When to Combine Them)
Model Distillation with LoRA: Training Smaller Models from Frontier Outputs
Fine-Tuning Llama 3.3 and Qwen 2.5 with QLoRA: Benchmark Comparison
Hugging Face
llama.cpp
Ollama
Text Generation Web UI
Unsloth
Ertas for Healthcare
Ertas for SaaS Product Teams
Ertas for Customer Support
Ertas for Legal
Ertas for Finance
Ertas for Code Generation
Ertas for ML Engineers & Fine-Tuning Practitioners
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.