LoRA 与参数高效微调(PEFT):只训「薄层」也能改行为
一、背景
全参微调 7B、70B,显存和优化器状态 贵到飞起;很多场景只想让模型 学会公司话术、固定 JSON 格式、几个垂直任务——参数高效微调(PEFT) 就是答案:冻结大头权重,只训练少量附加参数。其中最出圈的是 LoRA(Low-Rank Adaptation)。
做过 私有化部署、消费级显卡跑微调 的朋友,基本都用 HuggingFace PEFT 库:LoraConfig、r=8/16、target_modules=q_proj,v_proj...。本文把 LoRA 在 干什么、秩 r 怎么理解、和全参对比 讲清楚,和 微调与对齐、量化 里的 QLoRA 一起看,拼图就完整了。
二、核心概念和核心原理(详细解答+通俗解释)
(一)核心概念(先通俗,再详细)
**1. PEFT——少动原权重,多动「外挂」**通俗解释:原矩阵 W 冻结;旁路加 ΔW,推理时有效权重是 W + ΔW(或合并进 W 部署)。详细解答:Adapter、Prefix Tuning、LoRA 都属于 PEFT 家族;LoRA 因 省显存、实现简单 最广。
2. LoRA 的核心假设——更新是低秩的通俗解释:大模型适配任务时,真正需要的权重变化 ΔW,往往落在 很低的秩 子空间里;用两个小矩阵 A、B(秩为 r),将 ΔW 近似为 B·A(与 W 形状相容)。详细解答:r 越小参数越少,但表达能力受限;r 越大越接近全参,显存涨。
3. 作用在哪些层通俗解释:常对 Attention 里的 q、k、v、o 投影 加 LoRA;有些实践也加 FFN。详细解答:
target_modules配错 = 训了白训或极慢见效。
(二)核心原理(通俗拆解,一步一步讲清楚)
第一步:前向怎么算通俗解释:
h -> W h + (B A) h,BA 远小于改整个 W。详细解答:训练只更新 A、B;推理可 合并权重 成单个线性层,无额外延迟。第二步:为什么省显存通俗解释:优化器状态 只跟 A、B 走;7B 全参 的 Adam 状态是噩梦,LoRA 轻松一截。详细解答:QLoRA = 4bit 基底 + LoRA,消费卡友好。
第三步:和全参微调的取舍通俗解释:强行为改变、大数据可能仍要全参或更大 r;轻适配 LoRA 足够。详细解答:评测 上对比 通用榜 vs 垂直任务。
三、补充进阶知识点(易懂不晦涩,适配新手进阶)
1. rank r 与 alpha通俗解释:
lora_alpha缩放 BA 幅度,常和 r 一起调;scaling = alpha/r 是常见约定。简单补充:别死记,看你所用的库默认值。2. 多 LoRA 切换通俗解释:同一基底挂多个 适配器,按任务 动态加载,像「换皮肤」。简单补充:服务端 路由到不同头 可做多租户。
3. 和之前知识点的关联(重点) 微调与对齐 总览;量化 里 QLoRA;过拟合 里小数据慎选大 r;KV Cache 与 LoRA 无直接冲突(推理合并后照常)。
四、文章知识总结
- 背景:全参贵;PEFT/LoRA 用低秩旁路适配任务。
- 核心概念:ΔW 用 B·A 低秩分解近似;冻结 W、只训 A/B;推理可 合并进 W。
- 核心原理:低秩假设;显存省在优化器与 4bit 基底(QLoRA)。
- 进阶:r/alpha;多 LoRA;与全参对比靠评测。
- 核心逻辑:小步改行为用 LoRA,重塑模型用全参或预训练。
总结:LoRA 是 LLM 工程落地的「螺丝刀」;读懂它,私有化、垂直场景的成本账才算得清。