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

Lora算法原理及应用

参考文章
LORA论文

核心原理

LoRA(Low-Rank Adaptation)本质上是对特征矩阵进行低秩分解的一种近似数值分解技术,可以大幅降低特征矩阵的参数量,但是会伴随着一定的有损压缩。从传统深度学习时代走来的读者,可以发现其实LoRA本质上是基于Stable Diffusion的一种轻量化技术。

在AI绘画领域,我们可以使用SD模型+LoRA模型的组合微调训练方式,只训练参数量很小的LoRA模型,就能在一些细分任务中取得不错的效果。

LoRA模型的训练逻辑是首先冻结SD模型的权重,然后在SD模型的U-Net结构中注入LoRA权重,主要作用于CrossAttention部分,并只对这部分的参数进行微调训练。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
上图是LoRA模型训练的示意图。通常来说,对于矩阵A,我们使用随机高斯分布初始化,并对矩阵B使用全0初始化,使得在训练初始状态下这两个矩阵相乘的结果为0。这样能够保证在训练初始阶段时,SD模型的权重完全生效。

lora有效的原因:
像SD、LLM等大模型往往具有较低的内在维度,这意味着大模型的权重矩阵往往是低秩的。换句话说,并非大模型所有的参数都是必需的!我们可以将这些权重矩阵分解为低秩矩阵,并通过训练这部分权重来实现比较好的性能,换个更通俗地表达:“不是大模型全参微调训练不起,而是LoRA模型更有性价比!”

Lora的用法

调整LoRA模型使用时的权重
在这里插入图片描述
多个LoRA模型同时作用
在这里插入图片描述

DreamBooth+LoRA
DreamBooth技术的特点:

  • 使用稀有描述词将特定主题注入SD系列模型和LoRA系列模型中。 为了防止模型过拟合,使用class-specific prior preservation loss来正则化模型的训练过程。
  • DreamBooth技术能够在保持模型泛化能力的基础上,让模型学习到特定主题的特征。
  • 如果我们不启用正则集数据和class-specific prior preservation
    loss,这时训练过程将和fine-tune微调训练一致。

Textual Inversion
在这里插入图片描述
如上图所示,我们输入的Text Prompt会先经过Tokenizer转换成Tokens,再经过Text Encoder输出embeddings特征,通过Attention机制注入到SD系列模型中,Textual Inversion技术就是作用于上图的Text Prompt过程中。
Textual Inversion技术的核心思路是基于3~5张特定概念(物体或者风格)的示例图像来训练一个特定的Text Embeddings模型,从而将特定概念编码到Text Embedding空间中。Text Embedding空间中的词向量是有足够的表达能力恢复出图像特征,同时Textual Inversion技术不需要对SD系列模型中的U-Net部分进行微调训练(SD模型参数冻结),只需要训练一个新的token embedding就足够了,所以使用Textual Inversion技术不会儿干扰SD模型本身已有的先验知识。


http://www.mrgr.cn/news/57578.html

相关文章:

  • 若依前后分离版集成积木报表
  • 通过conda install -c nvidia cuda=“11.3.0“ 安装低版本的cuda,但是却安装了高版本的12.4.0
  • 鲸鱼优化算法(Whale Optimization Algorithm, WOA)原理与MATLAB例程
  • 力扣71~75题
  • java_顺序查找
  • Android中的MVP模式
  • qt QLineEdit详解
  • 大模型微调实战:基于 LLaMAFactory 通过 LoRA 微调修改模型自我认知
  • 分组密码填充模式
  • 自闭症学校:儿童成长的崭新希望
  • Spring Boot:植物健康监测的智能管家
  • 请列举四种「等比例自适应矩形」实现方案?
  • API接口在各个领域的发挥着什么样的作用呢
  • 1024程序员日|向改变世界的程序员 致敬!
  • 字符串-04-字符串加解密
  • 最新整理:自动化测试常见面试题
  • fmql之Linux中I2C总线框架
  • 开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用
  • 基于RabbitMQ,Redis,Redisson,RocketMQ四种技术实现订单延时关闭功能及其相关优缺点介绍(以12306为主题)
  • Stability.AI 发布 SD3.5 模型,能否逆袭击败 FLUX?如何在ComfyUI中的使用SD3.5?
  • 使用gpt2-medium基座说明模型微调
  • anolis os 8.8 修改kube-proxy的模式为ipvs-kubeadm部署
  • arcgis pro 3.3.1安装教程
  • 重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer
  • 代码随想录算法训练营第二十五天 | 491.递增子序列 46.全排列 47.全排列Ⅱ
  • LeetCode练习-删除链表的第n个结节