LoRA大模型微调的利器

news/2024/9/21 0:34:52/文章来源:https://www.cnblogs.com/flydean/p/18395814

LoRA模型是小型的Stable Diffusion模型,它们对checkpoint模型进行微小的调整。它们的体积通常是检查点模型的10到100分之一。因为体积小,效果好,所以lora模型的使用程度比较高。

这是一篇面向从未使用过LoRA模型的初学者的教程。你将了解LoRA模型是什么,在哪里找到它们,以及如何在AUTOMATIC1111 GUI中使用它们。然后,你将在文章末尾找到一些LoRA模型的演示。

LoRA模型是什么?

LoRA(Low-Rank Adaptation)是一种微调Stable Diffusion模型的训练技术。

虽然我们已经有像Dreambooth和文本反转这样的训练技术。那么LoRA有什么用呢?

LoRA实际上可以看做是Dreambooth和文本反转embeddings的折中方案。Dreambooth功能虽然强大,但模型文件会比较大(2-7 GB)。文本反转非常小(约100 KB),但能做的事情比较少。

LoRA介于两者之间。它的文件大小更容易管理(2-200 MB),并且训练能力相当不错。

因为checkpoint比较大,所以硬盘空间存储会是一个问题。而LoRA是解决存储问题的优秀方案。

像文本反转一样,你不能单独使用LoRA模型。它必须与模型检查点文件一起使用。LoRA通过对配套的模型文件进行小的修改来改变风格。

LoRA是定制AI艺术模型的绝佳方式,而不会占用太多本地存储空间。

LoRA如何工作?

LoRA对Stable Diffusion模型中最关键的部分进行小的修改:交叉注意力层。研究人员发现,微调这部分模型就足以实现良好的训练。交叉注意力层是下面Stable Diffusion模型架构中的黄色部分。

交叉注意力层

交叉注意力层的权重以矩阵的形式排列。矩阵只是按列和行排列的一堆数字,就像Excel电子表格上一样。LoRA模型通过将自己的权重加到这些矩阵上来微调模型。

如果LoRA模型需要存储相同数量的权重,它们的文件怎么会更小呢?LoRA的技巧是将矩阵分解成两个更小的(低秩)矩阵。通过这样做,它可以存储更少的数字。让我们通过以下示例来说明。

假设模型有一个100行100列的矩阵。那是10000个数字(100x 100)需要存储在模型文件中。LoRA将矩阵分解成一个1000x2矩阵和一个2x100矩阵。那只有400个数字(100 x 2 + 2 x 100,如果矩阵够更大的话,LoRA模型会减少的更多。这就是为什么LoRA文件要小得多的原因。

image-20240703105705024

在这个例子中,矩阵的是2。它比原始尺寸低得多,所以它们被称为低秩矩阵。秩可以低至1。

这种操作必定会带来数据上的缺失,但是在交叉注意力层来说,这些损失是无伤大雅的。所以Lora这种做法是可行的。

在哪里找到LoRA模型?

Civitai

image-20240703110017448

寻找LoRA的首选地点是Civitai。该网站托管了大量LoRA模型的集合。应用LORA过滤器以仅查看LoRA模型。不过里面的大多数模型都是:女性肖像,动漫,现实主义插图风格等。

Hugging Face

image-20240703110326192

Hugging Face是另一个LoRA库的好来源。你会发现更多种类的LoRA模型。但那里的LoRA模型可能没有C站多,并且也不太直观。因为没有图片预览。

如何使用LoRA?

这里,我将介绍如何在AUTOMATIC1111 Stable Diffusion GUI中使用LoRA模型。

AUTOMATIC1111原生支持LoRA。你不需要安装任何扩展。

第1步:安装LoRA模型

要在AUTOMATIC1111 webui中安装LoRA模型,请将模型文件放入以下文件夹。

stable-diffusion-webui/models/Lora

第2步:在提示中使用LoRA

要在AUTOMATIC1111 Stable Diffusion WebUI中添加带权重的LoRA,请在提示或否定提示中使用以下语法:

<lora: name: weight>

name是LoRA模型的名称。它可以与文件名不同。weight是应用于LoRA模型的权重。默认值为1。将其设置为0将禁用模型。

那么怎么知道lora的名字是什么呢?

其实我们并不需要手动输入lora的名字,我们只需要点击下面的lora标签:

image-20240703111227834

你应该看到一个已安装的LoRA模型列表。单击你想要使用的模型。

LoRA短语将被插入到提示中。

就是这样!

使用LoRA的注意事项

你可以调整乘数以增强或调整效果。将乘数设置为0将禁用LoRA模型。你可以在0和1之间调整风格效果。

一些LoRA模型是使用Dreambooth训练的。你需要包括一个触发关键词才能使用LoRA模型。你可以在模型页面上找到触发关键词。

类似于嵌入,你可以同时使用多个LoRA模型。你也可以将它们与嵌入一起使用。

在AUTOMATIC1111中,LoRA短语不是提示的一部分。在应用LoRA模型后,它将被删除。这意味着你不能使用像[keyword1:keyword2: 0.8]这样的提示语法来使用他们。

实用的LoRA模型

这里介绍一些在实际应用中比较实用的Lora。

add_detail

image-20240703112744179

谁不想要AI图像中更多的细节?细节调整器允许你增加或减少图像中的细节。现在,你可以调整你想要的细节量。

使用正LoRA权重来增加细节,使用负权重来减少细节。

add_saturation

这个lora可以给图片添加一些饱和度,效果如下:

image-20240703113008727

add_brightness

这个lora可以用来控制图片的亮度:

image-20240703134833039

总结

LoRA模型是checkpoint模型的小型修改器。你可以通过在提示中包含一个短语轻松地在AUTOMATIC1111中使用它们。

我将在以后的文章中告诉你如何自己来训练一个LoRA模型。

点我查看更多精彩内容:www.flydean.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/791969.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux服务器之TOP命令详解

在做性能调优的过程中,我们经常需要用到top命令来查看服务器实时的资源占用情况,通过top命令,我们可以查看到服务器的各项性能指标以及各个进行的资源使用情况。 命令格式:top [参数]命令参数:-b 批处理-c 显示完整的治命令-I 忽略失效过程-s 保密模式-S 累积模式-i<时…

护网漏洞复现(一)

金程云OA UploadFile存在任意文件上传漏洞 描述:金程云OA UploadFile存在任意文件上传漏洞,未经身份验证的攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。 fofa语法:body="images/yipeoplehover.png" POC: POST …

LLM大模型基础知识学习总结

在这个已经被大模型包围的时代,不了解一点大模型的基础知识和相关概念,可能出去聊天都接不上话。刚好近期我也一直在用GPT和GitHub Copilot,也刚好对这些基础知识很感兴趣,于是学习了一下,做了如下的整理总结,分享与你!大家好,我是Edison。 在这个已经被大模型包围的时…

借助表格技术提升智能审计云平台应用体验

背景说明: 2009年,立信加入全球第五大国际会计网络——BDO国际。BDO 全球各地成员所均使用统一的审计方式,在完全遵守国际审计准则的原则同时,也会应不同地区要求提供附加指引,确保在全球提供一致的服务水平。如今,立信的审计过程及档案记录均已实现电子化。然而,审计工…

芯片电源入口VCC串联的小电阻

芯片电源入口VCC串联的小电阻 我们经常会看到,在一些芯片的电源入口处不是直接接入直流电源,而是在VCC入口串联一个几十欧姆的小电阻,这个电阻有什么作用呢? 示意图如下具体分析: 1.假设没有这个电阻R1,当芯片击穿后,芯片内部的VCC引脚跟GND短路,VCC引脚又直接跟电源15V…

高端制造业供应商伙伴管理的痛点是什么?怎么解决?

高端制造业供应商伙伴管理一般都会选择使用供应商管理系统(SRM, Supplier Relationship Management)来改善企业与供应链上游供应商的关系,提高采购效率,降低采购成本,并增强供应链的透明度和合规性。而SRM系统在一定程度上可以满足供应商伙伴管理的基础诉求,如供应商信息…

备受500强企业青睐的安全数据交换系统,到底有什么优势?

网络隔离成为常见的安全手段 网络隔离技术已成为许多企业进行网络安全建设的重要手段之一,党政单位、金融机构、半导体企业、以及能源电力、医疗、生物制药等等行业及领域的企业都会选择方式不一的网络隔离技术来保护自己的网络安全,规避互联网中的网络侵害。 网络隔离为企业…

DAG 求u到v路径数

DAG 求u到v的路径数先拓扑排序求出每个点的顺序,再对每个起点 \(s\) 做 dp,遍历拓扑序的点,对 \(s\) 能到达的点做 dp 统计路径数,如果终点 \(t\) 拓扑序在 \(s\) 之前就说明没有路径。 #include<bits/stdc++.h> using namespace std; #define ll long long #define …

晶振并联的1M电阻

晶振并联的1M电阻 与晶振并联的1M电阻是什么用?为何有的有用,有的没有用?应该如何选择? 在实际的产品设计时,针对晶振部分的电路,你会发现会有下面2种电路,图1电路中,没有1M的电阻;图2电路中,晶振会并联一个1M的电阻。晶振电路的相关问题1M电阻具体是什么作用呢?为什…

利用分布式锁在ASP.NET Core中实现防抖

前言 在 Web 应用开发过程中,防抖(Debounce) 是确保同一操作在短时间内不会被重复触发的一种有效手段。常见的场景包括防止用户在短时间内重复提交表单,或者避免多次点击按钮导致后台服务执行多次相同的操作。无论在单机环境中,还是在分布式系统中都有一些场景需要使用它。…

智慧水利河湖AI智能视频分析识别系统

智慧水利河湖AI智能视频分析识别系统运用视频结构型技术性,根据图像处理与分析,创建图像与图像叙述两者之间的投射关联,掌握视频图像中的內容,运用于水利管理方法情景。智慧水利河湖AI智能视频分析识别系统运用视频智能搜索分析,根据对非结构性原创设计视频数据信息的智能…

视频监控系统智能识别分析

视频监控系统智能识别分析可以合理处理因为监控点太多,工作人员没办法监控考虑到全部监控情景。传统监控是“处于被动监控”通常只有在“事件”发生后根据启用视频回看查找线索。视频监控系统智能识别分析主要特点是应用机器视觉,在几乎不用人工干涉的情形下,根据海康或者大…