最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

《LORA模型訓(xùn)練超入門級(jí)教程》--人人都可以當(dāng)煉金術(shù)士

2023-03-12 19:18 作者:包子SAMA_  | 我要投稿


前言:

本教使用ChatGPT進(jìn)行輔助編寫,部分觀點(diǎn)根據(jù)ChatGPT提供的解釋進(jìn)行歸納總結(jié),如有描述不恰當(dāng)?shù)牡胤秸?qǐng)合理指出,我會(huì)回去教訓(xùn)那小子的。

部分觀點(diǎn)參考了UP主[秋葉aaaki][青龍圣者][Mr_日天]

注:

以下內(nèi)容是通過(guò)本人自身理解并總結(jié)編寫出的,同時(shí)也是初步接觸訓(xùn)練模型,因?yàn)楸救藦氖旅佬g(shù)行業(yè)主要還是會(huì)以美術(shù)視角出發(fā)來(lái)進(jìn)行講解,目的就是可以讓搞不懂代碼指令的小伙伴更容易上手Lora模型訓(xùn)練。

如有問(wèn)題歡迎大家在評(píng)論下方一起討論,知識(shí)探索的進(jìn)步腳步終將永不停止。

開始前請(qǐng)先下載以下內(nèi)容:

訓(xùn)練這里推薦秋葉大佬的訓(xùn)練腳本一鍵包:傳送門

還需要安裝批量打標(biāo)簽軟件:BooruDataset

鏈接:https://pan.baidu.com/s/16uFpMjWVLGRQDx-yUrhdiA?pwd=udbc?

提取碼:udbc?



正文:

為什么要訓(xùn)練Lora模型?

Lora模型作為一種微調(diào)模型具備的優(yōu)點(diǎn)如下:

  1. 節(jié)省訓(xùn)練時(shí)間:LORA模型的低層模型已經(jīng)在大規(guī)模的基準(zhǔn)數(shù)據(jù)集上訓(xùn)練過(guò)了,因此可以利用這些已經(jīng)學(xué)到的特征來(lái)加速新的訓(xùn)練過(guò)程。

  2. 提高準(zhǔn)確性:使用LORA模型微調(diào),可以在保持低層模型的特征提取能力的同時(shí),針對(duì)具體任務(wù)進(jìn)行優(yōu)化,從而提高模型在特定任務(wù)上的準(zhǔn)確性。

  3. 更小的數(shù)據(jù)集:訓(xùn)練LORA模型的訓(xùn)練素材不需要特別多,只用少量的即可訓(xùn)練出效果不錯(cuò)的模型。

  4. 可遷移性:可遷移性意味著可以在不同任務(wù)之間共享底層模型,從而減少重復(fù)訓(xùn)練,提高工作效率,使其能夠更快速地從一個(gè)任務(wù)轉(zhuǎn)移到另一個(gè)任務(wù)。

Lora模型訓(xùn)練流程:

lora模型訓(xùn)練節(jié)點(diǎn)圖

01.訓(xùn)練環(huán)境搭建

Python安裝:


1.安裝python勾選Add PATH,
再點(diǎn)Install Now
2.安裝完畢后出現(xiàn)框內(nèi)提示就點(diǎn)擊,
沒(méi)有就不管。

Windows PowerShell設(shè)置:

1.右鍵Windows菜單圖標(biāo)打開Windows PowerShell.

2.復(fù)制Set-ExecutionPolicy -ExecutionPolicy RemoteSigned進(jìn)去回車?

3.出現(xiàn)下面選擇欄按A回車


02.訓(xùn)練模型相關(guān)知識(shí)點(diǎn)

*這一節(jié)只需要對(duì)訓(xùn)練模型的概念進(jìn)行一個(gè)簡(jiǎn)單的了解即可后面會(huì)講操作方法

在模型訓(xùn)練中需要關(guān)注的幾個(gè)方面:

1.全面充分的采集訓(xùn)練素材:列如在角色訓(xùn)練素材中,應(yīng)該有各種角度、表情、光線等情況下的素材,這樣才能確保模型具有較好的泛化性。

2.圖像預(yù)處理:對(duì)訓(xùn)練素材進(jìn)行分辨率調(diào)整、裁切操作,并對(duì)訓(xùn)練集進(jìn)行打標(biāo)簽處理。

3.參數(shù)調(diào)優(yōu):盡可能把訓(xùn)練時(shí)長(zhǎng)控制在半小時(shí)左右,通過(guò)調(diào)整等參數(shù)控制訓(xùn)練時(shí)長(zhǎng)。

4.觀察學(xué)習(xí)曲線:通過(guò)觀察學(xué)習(xí)曲線來(lái)對(duì)訓(xùn)練素材、訓(xùn)練參數(shù)進(jìn)行調(diào)整。

5.過(guò)擬合&欠擬合處理:測(cè)試訓(xùn)練好的模型觀察過(guò)擬合和欠擬合的問(wèn)題,再進(jìn)一步通過(guò)調(diào)整訓(xùn)練素材和正則化等手段來(lái)優(yōu)化。

(綜上所述,模型訓(xùn)練中需要關(guān)注的幾個(gè)重點(diǎn),需要結(jié)合具體的任務(wù)需求和數(shù)據(jù)特點(diǎn)來(lái)進(jìn)行調(diào)整和優(yōu)化,以達(dá)到最優(yōu)的訓(xùn)練效果。)


接下來(lái)需要簡(jiǎn)單了解一下訓(xùn)練模型中的幾個(gè)概念名詞:

1.過(guò)擬合&欠擬合? 2.泛化性? 3.正則化

過(guò)擬合&欠擬合:

過(guò)擬合&欠擬合情況下的效果

在這個(gè)問(wèn)題上ChatGPT從美術(shù)角度給出的解釋:

ChatGPT給出的解釋

總結(jié)下來(lái)就是:過(guò)擬合和欠擬合都是不好的現(xiàn)象,

我們需要加以控制,讓模型最終得到我們想要的效果。

解決方法:在模型訓(xùn)練中需要不斷對(duì)訓(xùn)練集、正則化、訓(xùn)練參數(shù)、進(jìn)行調(diào)整,(過(guò)擬合可以嘗試減少訓(xùn)練集的素材量,欠擬合就增加訓(xùn)練集的素材量。)


泛化性:

ChatGPT從美術(shù)角度給出的解釋:

ChatGPT給出的解釋

總結(jié):泛化性不好的模型很難適應(yīng)其他風(fēng)格和多樣性的創(chuàng)作力??梢酝ㄟ^(guò)跑lora模型生圖測(cè)試來(lái)判斷泛化性是否良好。

解決辦法:跟解決過(guò)擬合欠擬合問(wèn)題一樣,從訓(xùn)練集、正則化、訓(xùn)練參數(shù)、進(jìn)行調(diào)整。


正則化:

ChatGPT從美術(shù)角度給出的解釋:

ChatGPT給出的解釋?

總結(jié):正則化是解決過(guò)擬合和欠擬合的情況,并提高泛化性的手段。

相當(dāng)于給模型加一些規(guī)則和約束,限制要優(yōu)化的參數(shù)有效防止過(guò)擬合,同時(shí)也可以讓模型更好適應(yīng)不同情況的表現(xiàn),提高泛化性。




03.訓(xùn)練模型相關(guān)知識(shí)點(diǎn)

訓(xùn)練素材處理:

訓(xùn)練素材收集

如果是角色訓(xùn)練集控制在20-50張圖左右,太多會(huì)導(dǎo)致過(guò)擬合

如果是角色盡可能收集到頭像,正視圖,側(cè)視圖,背面等多角度的無(wú)背景素材,增加不同畫風(fēng)的素材可以提高模型應(yīng)對(duì)不同風(fēng)格的手段,畫風(fēng)訓(xùn)練可以提高到更多。

*素材可以少,但是質(zhì)量一定要高。


自動(dòng)摳圖網(wǎng)站

*角色背景最好是白底網(wǎng)站上面可以選擇換背景顏色

推薦一個(gè)自動(dòng)扣圖的網(wǎng)站:https://pickwant.com/home


圖片批量裁切:

圖片批量裁切網(wǎng)站

https://www.birme.net/

之后利用工具網(wǎng)站把所有圖片批量進(jìn)行統(tǒng)一分辨率裁切

分辨率需要是64的倍數(shù)

分辨率預(yù)先處理好基本可以直接扔進(jìn)AI進(jìn)行訓(xùn)練不用再做分割處理了

(尺寸越大越吃顯存,可能會(huì)出現(xiàn)報(bào)錯(cuò)學(xué)習(xí)卡死等問(wèn)題)


圖像預(yù)處理:

Stable Diffusion的訓(xùn)練模塊

把訓(xùn)練素材文件路徑扔到Stable Diffusion的訓(xùn)練模塊下圖像預(yù)處理功能,進(jìn)行生成tags標(biāo)簽。


打標(biāo)簽:

進(jìn)入批量打標(biāo)簽軟件點(diǎn)擊上方File的Load folder后選擇處理好的訓(xùn)練集路徑。

批量打標(biāo)簽軟件BooruDataset基本操作:

1.點(diǎn)擊上方的File--Load folde載入訓(xùn)練素材路徑

2.左邊一欄是單張編輯右邊一欄是批量編輯

3 .+是增加標(biāo)簽? x是刪除標(biāo)簽? ?是保存

4.最后修改完標(biāo)簽點(diǎn)擊File—Save all changes保存全部標(biāo)簽


關(guān)于打標(biāo)簽詳細(xì)解釋:

1.整合概念標(biāo)簽,列如你要訓(xùn)練這個(gè)角色,添加他的名稱后,

需要?jiǎng)h除紅框內(nèi)描述此概念的部分特征標(biāo)簽,

意思是將它們都融入到你的lora這個(gè)概念本身,提高lora模型調(diào)用效率,更精準(zhǔn)的復(fù)原角色的發(fā)型發(fā)色瞳色等生理特征,同時(shí)也減少調(diào)用詞條的數(shù)量。


*(1).刪除的tag會(huì)被固化在模型當(dāng)中,

(2).但是這樣做法還為了防止將基礎(chǔ)模型中的同樣tag引導(dǎo)到你的lora上,從而導(dǎo)致過(guò)擬合。

(3).盡可能添加一個(gè)不存在的標(biāo)簽用于調(diào)度你訓(xùn)練的lora模型

(4).如果是角色建議只刪除生理特征標(biāo)簽,保留著裝配飾裝備等。


2.如果從泛化性角度出發(fā),可以保留角色特征標(biāo)簽

*但是會(huì)導(dǎo)致調(diào)用困難,需要輸入大量的tag用于調(diào)用。

根據(jù)目前總結(jié)下來(lái)的倆種打標(biāo)簽的方法:

1. 保留全部標(biāo)簽:

優(yōu)勢(shì):效率快省時(shí)省力的訓(xùn)練出模型,擬合度提高,且過(guò)擬合出現(xiàn)的情況是最低的。

缺陷:風(fēng)格會(huì)變化過(guò)大,tag調(diào)用比較困難,訓(xùn)練時(shí)需要把epoch提高時(shí)間成本會(huì)被拉長(zhǎng)。

2.剔除部分特征標(biāo)簽:

優(yōu)勢(shì):整合成少量的觸發(fā)詞tag后,調(diào)用方便,更精準(zhǔn)還原角色特征。

缺陷:容易導(dǎo)致過(guò)擬合,泛化性也會(huì)降低,如果標(biāo)簽刪太多會(huì)導(dǎo)致生成的畫面非常固化。


訓(xùn)練文件夾結(jié)構(gòu)規(guī)范:

注:這里把概念名稱轉(zhuǎn)換成角色名稱方便理解,具體概念名稱按照需求進(jìn)行填寫,*文件夾命名不能用中文。

(文件夾結(jié)構(gòu)示意圖)

1.首先在腳本的LoraTraining目錄下新建訓(xùn)練文件夾命名為train

2.如果需要訓(xùn)練多個(gè)概念(例如:角色除了本體之外,還要加一個(gè)穿著泳裝訓(xùn)練素材),

這時(shí)候就在(input_角色名稱)下面再新建一個(gè)文件夾,命名寫(訓(xùn)練次數(shù)_角色名稱_泳裝)進(jìn)行文件夾區(qū)分。

正則化文件夾

(正則化文件夾結(jié)構(gòu)示意圖)


正則化素材示意:

正則化在深度學(xué)習(xí)中指的是:給模型加一些規(guī)則和約束,限制要優(yōu)化的參數(shù)有效防止過(guò)擬合。

【假設(shè)我在訓(xùn)練集里面放入了一個(gè)泳裝角色的訓(xùn)練素材,那么為了防止過(guò)擬合的問(wèn)題,在正則化文件夾內(nèi)放入一些同樣類型的圖片素材】

正則化素材注意不要過(guò)多,不然機(jī)器會(huì)過(guò)多的學(xué)習(xí)到里面的素材導(dǎo)致跟訓(xùn)練目標(biāo)角色不一致,

可以用SD進(jìn)行快速生成。

*簡(jiǎn)單來(lái)說(shuō)就是讓AI稍微克制一下學(xué)習(xí)的程度,防止發(fā)生過(guò)擬合。

在我的理解看來(lái)正則化手段是目前控制過(guò)擬合問(wèn)題,最容易理解的一個(gè)操作的方法。


04.開始訓(xùn)練

訓(xùn)練腳本講解:

*我這邊之指出的都是常用參數(shù),沒(méi)有提到的可以不用做修改(如果自己能理解知道怎么去調(diào)整也可以,我這里只針對(duì)初級(jí)快速上手進(jìn)行快速講解。)

設(shè)置訓(xùn)練素材路徑參數(shù)

訓(xùn)練素材路徑設(shè)置參數(shù):

pretrained_model:底模型路徑,底模型一般選擇SD 1.5,底模型不能選擇過(guò)大的完整模型,選擇小模型否則內(nèi)存會(huì)爆。

train_data_dir:訓(xùn)練素材路徑

reg_data_dir:正則化素材路徑,沒(méi)有則不用填。

訓(xùn)練參數(shù)

訓(xùn)練參數(shù):

resolution:圖片分辨率,寬,高。支持非正方形,但必須是 64 倍數(shù)。


batch_size:指的是在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,一次性送入模型的樣本數(shù)。

(通俗地說(shuō),就像做菜時(shí)一次性放入多少食材一樣,batch_size決定了一次送入多少樣本來(lái)訓(xùn)練模型。較大的batch_size可以加速訓(xùn)練,但會(huì)占用更多的內(nèi)存資源)


max_train_epoches:最大訓(xùn)練的epoch數(shù),即模型會(huì)在整個(gè)訓(xùn)練數(shù)據(jù)集上循環(huán)訓(xùn)練這么多次。

(假設(shè)最大訓(xùn)練epoch為10,即訓(xùn)練過(guò)程中將會(huì)進(jìn)行10次完整的訓(xùn)練集循環(huán)。這個(gè)參數(shù)可以根據(jù)實(shí)際情況進(jìn)行調(diào)整,以達(dá)到更好的模型效果)


network_dim:常用 4~128,不是越大越好,這個(gè)參數(shù)如果是訓(xùn)練畫風(fēng)的話可以給高一些,訓(xùn)練角色物件等不需要調(diào)整。


學(xué)習(xí)率(learning rate)

是訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)一個(gè)很重要的超參數(shù),控制著權(quán)重的更新速度。這個(gè)參數(shù)越大,權(quán)重更新的幅度就越大;反之,越小更新的幅度越小。因此,設(shè)置一個(gè)合適的學(xué)習(xí)率可以使得訓(xùn)練過(guò)程更加穩(wěn)定、收斂速度更快。

ChatGPT從美術(shù)角度給出的解釋:

ChatGPT給出的解釋

學(xué)習(xí)率參數(shù):

學(xué)習(xí)率參數(shù)

lr: 學(xué)習(xí)率,用來(lái)控制模型每次更新參數(shù)時(shí)的步長(zhǎng)大小。

unet_lr: 基本跟lr數(shù)值一樣即可。

text_encoder_lr: 文本編碼器的學(xué)習(xí)率。需要通過(guò)實(shí)踐具體情況來(lái)測(cè)試更改

lr_scheduler: 學(xué)習(xí)率調(diào)度策略,用來(lái)控制模型學(xué)習(xí)率的變化方式。這里提供了五種可選的調(diào)度策略,分別是:“l(fā)inear”,“cosine”,“cosine_with_restarts”,“polynomial”,“constant”,“constant_with_warmup”。基本只用“constant_with_warmup”

lr_warmup_steps: 熱身步數(shù),僅在學(xué)習(xí)率調(diào)度策略為“constant_with_warmup”時(shí)需要設(shè)置,用來(lái)控制模型在訓(xùn)練前逐漸增加學(xué)習(xí)率的步數(shù)。一般不動(dòng)

lr_restart_cycles: 余弦退火重啟次數(shù),僅在學(xué)習(xí)率調(diào)度策略為"cosine_with_restarts"時(shí)需要設(shè)置,用來(lái)控制余弦退火的重啟次數(shù)。一般不動(dòng)

(舉個(gè)例子,如果將學(xué)習(xí)率調(diào)度策略設(shè)置為“cosine_with_restarts”,那么模型的學(xué)習(xí)率會(huì)按照余弦函數(shù)的形式進(jìn)行變化,每當(dāng)達(dá)到一個(gè)重啟周期時(shí),學(xué)習(xí)率會(huì)重新回到初始值,然后再按照余弦函數(shù)進(jìn)行變化。重啟周期的次數(shù)就是lr_restart_cycles。)

*學(xué)習(xí)率這塊如果不理解可以不做修改


輸出設(shè)置和優(yōu)化器設(shè)置:

輸出參數(shù)

output_name:模型保存名稱

save_model_as:模型保存格式(一般不動(dòng))

優(yōu)化器設(shè)置

優(yōu)化器設(shè)置:

use_8bit_adam:開啟是1,禁用改為0.

use_lion:開啟是1,禁用改為0.(目前效果最好的一個(gè)優(yōu)化器,但如果有正則化素材建議不開。)


開始煉丹

最后在腳本根目錄下右鍵選擇train.ps1文件—點(diǎn)擊PowerShell即可開始跑訓(xùn)練。


05.模型測(cè)試

最后從煉丹爐內(nèi)取最小值的模型為最佳,沒(méi)有效果再選取最終生成的版本。

在Output文件夾下取出模型

Xyz圖表測(cè)試

Xyz圖表測(cè)試
Xyz圖表參數(shù)欄

打開美術(shù)風(fēng)格,選擇腳本XYZ圖表,

1.x軸類型選擇[可附加網(wǎng)絡(luò)]權(quán)重1? x軸值:寫你想測(cè)試的Lora權(quán)重即可。

2.Y軸類型選擇[可附加網(wǎng)絡(luò)]模型1? Y軸值:填你你想測(cè)試的Lora模型名稱。

3.Z軸類型選不選都可以。



總結(jié):

到這里就結(jié)束了~

最后感謝大家觀看本次教程,理論都是基礎(chǔ)實(shí)際效果還是需要實(shí)踐驗(yàn)證。

第一次寫教程(其實(shí)更偏學(xué)習(xí)過(guò)程中的總結(jié)),寫的如果不好請(qǐng)親噴,如有更好的見(jiàn)解歡迎在評(píng)論區(qū)討論,我也還在摸索階段也想更深入的學(xué)習(xí)訓(xùn)練模型知識(shí)。

《LORA模型訓(xùn)練超入門級(jí)教程》--人人都可以當(dāng)煉金術(shù)士的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
常山县| 高碑店市| 宁强县| 灵武市| 武威市| 温州市| 刚察县| 星子县| 长白| 汝南县| 根河市| 德化县| 垦利县| 黑水县| 昭苏县| 江阴市| 象山县| 梓潼县| 平武县| 措美县| 蒙山县| 海林市| 苏州市| 家居| 颍上县| 南平市| 金阳县| 巢湖市| 利辛县| 海丰县| 张家口市| 蒙阴县| 新闻| 海南省| 柳州市| 曲松县| 靖安县| 东乡县| 蒙城县| 洪江市| 黑龙江省|