当前位置: 首页 > article >正文

【极速版 -- 大模型入门到进阶】LORA:大模型轻量级微调

文章目录


论文指路:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

🌊 有没有低成本的方法微调大模型?

  • 2021年微软提出 LORA :LOW-RANK ADAPTATION 低秩适配
    • 【什么是秩?】一个矩阵的秩是指矩阵中线性独立的行或列的最大数目;也就是说 一个矩阵的秩越大,它包含的有效信息就越多

🌊 LoRA 的核心思想

  • LoRA通过优化在适应过程中 FC 层权重变化 ( Δ w ∈ R m × n \Delta w \in \mathbb{R}^{m\times n} ΔwRm×n) 的秩分解矩阵 ( A ∈ R m × r × B ∈ R r × n A \in \mathbb{R}^{m\times r} \times B\in \mathbb{R}^{r\times n} ARm×r×BRr×n),来间接调整神经网络中部分层的权重 ( w w w) 。不修改预先训练好的权重,而是通过引入一个低秩的矩阵来实现对这些层的适应调整
    • r < < min ⁡ ( m , n ) r << \min(m,n) r<<min(m,n)
  • 用更小的参数空间存储 模型参数变化量 Δ w \Delta w Δw
    • Δ w \Delta w Δw: 模型参数变化量,也就是对原参数 w w w 变化 Δ w \Delta w Δw 可以适配新任务。LoRA 用 A 和 B 计算获得模型参数变化量 Δ w \Delta w Δw,叠加到原参数 w w w

🌊 LoRA 的初始化和 r r r 的值设定

  • 用随机高斯分布初始化 A A A ,用 0 矩阵初始化 B B B, 保证训练的开始此旁路矩阵依然是 0 矩阵
  • 对于一般的任务, r = 1 , 2 , 4 , . . . r = 1,2,4, ... r=1,2,4,... 就足够了。而一些领域差距比较大的任务可能需要更大的 r r r

🌊 LoRA 实战:LoraConfig参数详解

目前 LORA 已经被 HuggingFace 集成在了 PEFT(Parameter-Efficient Fine-Tuning) 代码库里
所以,使用也非常简单

from peft import get_peft_config, get_peft_model, LoraConfig, TaskType

# preModel = ....from_pretrained(".. bert-base-uncased ..")  # 加载你的预训练模型

peft_config = LoraConfig(
    r=4,  # LoRA 维数
    lora_alpha=8,  # ΔW 按 α / r 缩放
	target_modules=["", "", ...],  # 对哪些模块进行微调
    lora_dropout=0.1  # 默认值为 0
)
model = get_peft_model(preModel, peft_config)  # 预训练模型 -> 加好了 LoRA 之后的模型

参考资料: 【LoRA&CN全解析】, 【知乎高赞-大模型轻量级微调】


http://www.kler.cn/a/613027.html

相关文章:

  • 智能网联交通加速落地,光路科技TSN技术助推车路云一体化发展
  • 跟着尚硅谷学vue-day1
  • LeetCode 1492 n的第K个因子
  • 浅谈工商企业用电管理的分布式储能设计
  • window系统下安装elk
  • unity一个图片的物体,会有透明的效果
  • 【机器学习】从回声定位到优化引擎:蝙蝠算法在SVR超参数优化中的应用
  • Golang 的 GMP 调度机制常见问题及解答
  • Mininet--log.py-全局函数作用
  • Box86源码剖析(三)
  • JSP笔记
  • python多态、静态方法和类方法
  • 高速电路中的存储器应用与设计三
  • Vala 编程语言教程-继承
  • C 语言文件读写操作详解
  • Java Synchronized底层原理:Monitor机制、锁膨胀、自旋优化与偏向锁细节解密
  • 电气技术:未来自动化的心脏
  • RAG生成中的多文档动态融合及去重加权策略探讨
  • springboot 四层架构之间的关系整理笔记二
  • 【CSS3】02-选择器 + CSS特性 + 背景属性 + 显示模式