LoRA基本原理

LoRA 原理

  1. 假设LLM在下游任务上微调得到的增量参数矩阵是低秩的 即使存在冗余参数的高维矩阵,但实际有效矩阵是更低纬度的。
  2. 冻结预训练好的模型权重参数,在冻结原模型参数的情况下,通过往模型中加入额外的网络层并只训练这些新增的网络层参数。

LoRA 计算流程

  1. 在原始预训练模型参数旁边增加一个旁路 W ,做一个降维再升纬的操作。来模拟内在秩。
  2. 用随机高斯分布初始化A 用0矩阵初始化B,保证训练的开始此旁路矩阵依然是0矩阵。
  3. 模型的输入输出纬度不变,输出时将BA与预训练模型的参数叠加。
  4. 训练的时候固定预训练的参数,只训练降维矩阵A与升维矩阵B。

LoRA 微调的优点

  1. 降低了显存要求,提升了训练速度,从而降低了微调的硬件门槛。
  2. 在模型部署推理时,可以使用slora这样的推理技术 共享预训练模型参数 通过替换不同的LoRA模块可以切换不同的LoRA微调模型,从而显著降低多个LoRA模型的推理成本。

LoRA 训练工具

  1. 零代码
  2. 低代码
  3. 代码级别 (基于PEFT训练 huggingface)

LoRA 超参数调优

  1. lora_rank:
    LoRA的秩r的大小。需要根据应用场景调整lora_rank的大小,lora_rank越大,微调数据对模型起到的作用越大,lora_rank越小,微调数据对模型起到的作用越小。一般取值8/32/128等。

LoRA 使用的经验

  1. 全量参数微调效果一般都优于LoRA微调 所以初次试验先用全量参数微调进行效果认证。效果若满足,后续迭代训练再尝试用LoRA降低成本。
  2. 基础模型表现不好,LoRA大概率不好,比如LLaMA2-7B不建议用LoRA微调数学推理等任务。
  3. LoRA记忆能力不如全量参数微调,全量参数微调可以记住答案。
posted @ 2025-06-30 00:22  贺艳峰  阅读(258)  评论(0)    收藏  举报