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

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

【AI繪畫】LoRA訓(xùn)練全參數(shù)講解

2023-02-24 14:25 作者:冬歸初雪  | 我要投稿



事先聲明,本人雖然是人工智能專業(yè)出身,但是對于有些概念內(nèi)容多有遺忘,因此部分內(nèi)容來源于互聯(lián)網(wǎng)與chatGPT的解釋,如有謬誤敬請指正。

啟動補(bǔ)丁包后,會進(jìn)入一段loading,等待時間一般較久,它在搜尋你的電腦里是否安裝了Lion優(yōu)化器,如果未安裝,則彈出提示框,關(guān)閉后再等待一段時間,彈出網(wǎng)絡(luò)連接錯誤或者直接進(jìn)行下一步。如果彈出安裝未完成,則在后續(xù)步驟中不要使用Lion優(yōu)化器。

你需要載入保存好的預(yù)設(shè)嗎?

該步驟允許你調(diào)用在電腦中已經(jīng)保存過的json文件,如果你第一次運(yùn)行,請選擇否。

選擇你的基礎(chǔ)模型

選擇你的底模型。

選擇你的圖像路徑

注意,這里選擇的圖像路徑必須是,X_tag 的父文件夾,例如images/7_tags 則選擇images。

選擇你的輸出路徑

你輸出的lora文件保存在哪里。

你想保存配置的json預(yù)設(shè)嗎?

保存為json文件,下次可以直接選擇,減少一些參數(shù)的選擇。

你想啟用低RAM模式嗎?

如果你是一臺正常的電腦,就不要開啟這個。低RAM模式只針對非常差的顯卡讓它可以進(jìn)行訓(xùn)練,但是訓(xùn)練出來的東西質(zhì)量也很差。

你想要哪個優(yōu)化器?

以下是chatgpt的解釋:

“AdamW是Adam優(yōu)化器的一種變體,它將權(quán)重衰減正則化技術(shù)融入到優(yōu)化過程中。權(quán)重衰減是一種常用的正則化技術(shù),它懲罰大的權(quán)重值,從而避免過擬合。

8bit-Adam是一種針對深度神經(jīng)網(wǎng)絡(luò)的低精度優(yōu)化器。它使用8位整數(shù)表示權(quán)重和梯度,從而減少了存儲和計算的開銷,加快了模型的訓(xùn)練和推理速度。

LION是一種新型的優(yōu)化算法,它基于生物學(xué)中的遺傳進(jìn)化和個體競爭的原理。LION優(yōu)化器通過對群體中的個體進(jìn)行競爭和演化,來逐步優(yōu)化模型的性能。相比傳統(tǒng)的優(yōu)化算法,LION具有更好的收斂性和魯棒性。”

講人話就是:

AdamW、8bit-Adam、LION這三個東西都是在機(jī)器學(xué)習(xí)領(lǐng)域中用來幫助優(yōu)化模型的算法。

AdamW是一種對Adam優(yōu)化器的改進(jìn),它可以防止模型過度擬合,從而提高模型的泛化能力(比如二次元往賽博coser上的遷移)。

8bit-Adam是一種用于深度學(xué)習(xí)的優(yōu)化算法,它可以在不影響模型精度的情況下,大幅減少存儲和計算資源的使用,從而讓模型訓(xùn)練和推理的速度更快。

LION則是一種基于生物學(xué)原理的優(yōu)化算法,通過競爭和演化的方式來優(yōu)化模型,可以讓模型更快地收斂并且更加穩(wěn)定。相比其他優(yōu)化算法,LION更加先進(jìn),但是也更加復(fù)雜。一般情況效果會更好。

你是在一個基于SD2的模型上訓(xùn)練嗎?

底模的下載地址一般會給出它的基底模型。比如

c站介紹內(nèi)容



就說明了該模型的Base Model是SD 1.5,那么就選擇否。

你是在訓(xùn)練一個三次元模型嗎?

用于控制clip_skip參數(shù),這是一個訓(xùn)練層數(shù)的定義。一般情況下,真實模型的clip_skip都使用1,而動漫都使用2,當(dāng)你選擇是的時候這個值被更改為1。而否則改為2。

你想使用正則化圖像嗎?

這是一個很復(fù)雜的東西,之后我們會有教程來講這個。如果要使用它,也是將父文件夾載入。以下摘自lora guide并進(jìn)行了翻譯。

“regularization_images" 文件夾可以為空,存在正則化圖像是可選的。 理論上,正則化圖像有助于提高訓(xùn)練準(zhǔn)確性。 正則化圖像使您可以將正在訓(xùn)練的對象(概念)與圖像的畫風(fēng)“分離”。在訓(xùn)練期間,網(wǎng)絡(luò)將“并行”訓(xùn)練(實際上是順序訓(xùn)練,在智能場景中存在正則化圖像時,訓(xùn)練時間應(yīng)該加倍)如何使概念不應(yīng)該看起來像。這樣的 LoRA 網(wǎng)絡(luò)的模型之間的可轉(zhuǎn)移性會變得更好(同樣是理論上)。 如果您不確定是否應(yīng)該使用正則化圖像,請不要使用它們,除非您知道自己在做什么。

例如,如果您正在訓(xùn)練一個人的臉(男性),而每個描述文件中都有“Photo of [name]“的tag,那么最好打開 WebUI 并使用“Photo of man”的提示生成圖像。需要生成多少張?至少要與示例中男性臉部圖像的數(shù)量相同。生成更多圖像會更好。

準(zhǔn)備好帶有200張圖片的文件夾,其中包括1girl、1boy、photo of woman,photo of man這些tag生成的照片,這樣的效果會更好。

你想從一個你保存過的lora繼續(xù)進(jìn)行訓(xùn)練嗎?

這是一個斷點續(xù)傳功能,如果你對你已經(jīng)訓(xùn)練好的loRA不滿意,你可以在已經(jīng)保存好的loRA上繼續(xù)加數(shù)據(jù)訓(xùn)練。

你想翻轉(zhuǎn)你所有的圖像嗎?

翻轉(zhuǎn)圖像是一種簡單的數(shù)據(jù)增強(qiáng)技術(shù),可以幫助模型更好地學(xué)習(xí)不同角度的特征,在翻轉(zhuǎn)圖像時,可以沿著水平軸或垂直軸翻轉(zhuǎn)圖像(在這里是鏡像),然后復(fù)制一份,加到數(shù)據(jù)集里。如果你的人物左右對稱可以使用,如果不是左右對稱會毀了數(shù)據(jù)。

一次性處理的圖像數(shù)量(batch_size)

chatgpt:“ batch_size是機(jī)器學(xué)習(xí)中常用的一個參數(shù),它表示每個訓(xùn)練步驟中用來訓(xùn)練模型的樣本數(shù)量。在訓(xùn)練模型時,通常會將訓(xùn)練數(shù)據(jù)集分成多個batch,每個batch包含了batch_size個樣本。模型的訓(xùn)練過程會對每個batch中的樣本進(jìn)行一次前向傳播和反向傳播,并根據(jù)這些樣本的梯度更新模型參數(shù)。因此,batch_size的大小會影響模型的訓(xùn)練速度和準(zhǔn)確性。”

較大的batch_size可以加快訓(xùn)練速度,但可能導(dǎo)致內(nèi)存或顯存不足的問題;較小的batch_size可以增加模型的泛化能力,但可能增加訓(xùn)練過程中的抖動和噪聲。

已經(jīng)給出了一個參考參數(shù),12g顯存,在512分辨率下,可以最多處理6張圖像。

你想要多少epoch?

epoch是機(jī)器學(xué)習(xí)中的一個重要概念,它表示對整個數(shù)據(jù)集進(jìn)行一次完整的訓(xùn)練。舉個例子,如果一個訓(xùn)練數(shù)據(jù)集中有1000個樣本,batch_size設(shè)置為100,那么一個epoch就需要進(jìn)行10個batch的訓(xùn)練,對每個batch進(jìn)行前向傳播和反向傳播,并更新模型參數(shù)。通常情況下,epoch的數(shù)量越多,模型的訓(xùn)練效果越好,但過多的epoch可能會導(dǎo)致模型過擬合訓(xùn)練數(shù)據(jù),泛化能力下降。

你想用什么DIM值?

DIM是特征的數(shù)量,也就是輸入數(shù)據(jù)的維度。在機(jī)器學(xué)習(xí)中,每個樣本由多個特征組成,而這些特征就對應(yīng)了輸入數(shù)據(jù)的維度。這個值嚴(yán)重影響lora的質(zhì)量,太低模型不像,太高容易過擬合。經(jīng)過多方調(diào)試,128被認(rèn)為是一個最為推薦的數(shù)值。它也直接影響輸出的模型大小。

你想設(shè)置多少alpha?

chatgpt:“在機(jī)器學(xué)習(xí)中,alpha通常指正則化中的超參數(shù),用于控制模型復(fù)雜度和泛化能力之間的權(quán)衡。正則化是一種常用的防止過擬合的技術(shù),它通過對模型參數(shù)進(jìn)行懲罰,以減少模型的復(fù)雜度和提高泛化能力。

alpha的大小可以根據(jù)數(shù)據(jù)集和模型的復(fù)雜度來確定,通常情況下,alpha越大,模型的正則化程度就越高,復(fù)雜度越小,泛化能力越強(qiáng)。反之,alpha越小,模型的正則化程度就越低,復(fù)雜度越高,泛化能力越弱。”

經(jīng)過實驗調(diào)試,這個值為0.25-0.5 dim最佳。

請設(shè)置分辨率

大多數(shù)模型的分辨率都是正方形,因此只用提供一個數(shù)據(jù)。注意,你提供的數(shù)據(jù)需要為64的倍數(shù)。

請設(shè)置學(xué)習(xí)率

學(xué)習(xí)率是指控制模型在每次迭代中更新權(quán)重的步長。學(xué)習(xí)率的大小對模型的訓(xùn)練和性能都有重要影響。如果學(xué)習(xí)率設(shè)置得太小,模型收斂速度會很慢,訓(xùn)練時間會變長;如果學(xué)習(xí)率設(shè)置得太大,模型可能會在訓(xùn)練過程中出現(xiàn)震蕩,甚至無法收斂。默認(rèn)1e-4是調(diào)試過的數(shù)值。

當(dāng)然,我們也可以用學(xué)習(xí)率調(diào)度器動態(tài)調(diào)整,后面會提到。

text_encoder_lr和unet_lr

text_encoder_lr和unet_lr分別是用于文本編碼器和unet(指圖像編碼器和解碼器的組合)的學(xué)習(xí)率,它們會覆蓋基本的學(xué)習(xí)率設(shè)置。

unet_lr:3e-4? text_encoder_lr:1e-4是一個調(diào)試過的數(shù)值。設(shè)置不同的學(xué)習(xí)率,以更好地控制每個組件的權(quán)重更新速度,從而提高模型的性能和效率。

你要使用哪個學(xué)習(xí)率調(diào)度器?

學(xué)習(xí)率調(diào)度器是一種用于動態(tài)調(diào)整學(xué)習(xí)率的技術(shù),它可以在訓(xùn)練過程中根據(jù)模型的表現(xiàn)自動調(diào)整學(xué)習(xí)率,以提高模型的訓(xùn)練效果和泛化能力。

Cosine:余弦退火。使用余弦函數(shù)來調(diào)整學(xué)習(xí)率,使其在訓(xùn)練過程中逐漸降低。

lr%20%3D%20eta_%7Bmin%7D%20%2B%200.5%20*%20(base_%7Blr%7D%20-%20eta_%7Bmin%7D)%20*%20(1%20%2B%20cos(iter%20%2F%20T_%7Bmax%7D%20*%20pi))%0A

其中,base_lr?表示初始學(xué)習(xí)率,T_max?表示一個周期的迭代次數(shù),eta_min?表示最小學(xué)習(xí)率。

cosine_with_restarts:余弦退火重啟。在consine的基礎(chǔ)上每過幾個周期將進(jìn)行一次重啟,該值在選擇后可以設(shè)定。

lr%20%3D%20eta_%7Bmin%7D%20%2B%200.5%20*%20(base_%7Blr%7D%20-%20eta_%7Bmin%7D)%20*%20(1%20%2B%20cos(iter%20%2F%20T_%7Bi%7D%20*%20pi))%0A

其中,T_i?表示第 i?個周期的迭代次數(shù),T_0?表示第一個周期的迭代次數(shù),T_mult?表示每個周期的迭代次數(shù)相對于前一個周期的倍數(shù)

Polynomial:使用多項式函數(shù)來調(diào)整學(xué)習(xí)率。

lr%20%3D%20base_lr%20*%20(1%20-%20iter%20%2F%20max_%7Biter%7D)%20**%20power%0A

其中,power?表示多項式的冪次,max_iter?表示總的迭代次數(shù)

constant and constant_with_warmup:恒定和恒定預(yù)熱。恒定代表學(xué)習(xí)率不變,恒定熱身代表在開始會增大一點,然后退回原學(xué)習(xí)率不變。warmup的概念后面也會再講。

linear:線性。學(xué)習(xí)率線性下降。

一般選用cosine即可。(吐槽一下我是真不會用B站的這個公式塊,我好菜)

每隔幾個epoch保存你的輸出嗎?

最好的loRA不一定是在最后,可能會過擬合,所以可以設(shè)定一個值,每過3個epoch或者2個epoch保存一次,導(dǎo)入到stable_diffusion-webui中做對比。

你需要洗牌描述(shuffle_captions)嗎?

chatgpt:“是一個用于控制是否打亂文本(caption)數(shù)據(jù)的開關(guān)參數(shù)。如果將該參數(shù)設(shè)置為True,則在訓(xùn)練前,文本數(shù)據(jù)中的每個caption都會被隨機(jī)打亂順序。這種操作通常用于增強(qiáng)模型對于不同文本順序的魯棒性,從而提高模型的泛化能力。

具體來說,打亂文本數(shù)據(jù)的操作是對于每個caption隨機(jī)選擇一個其他的caption,然后將它們交換位置,這樣就完成了一次打亂操作。打亂操作可以多次進(jìn)行,從而更大程度地增加數(shù)據(jù)的隨機(jī)性”

常常用于SD模型。在訓(xùn)練真人模型的時候與二次元模型不同,它的構(gòu)成是caption + tag的形式。

用中文表達(dá)為 “一個人在喝牛奶(caption),人,牛奶,牧場...”

洗牌文本可以在多種相似的圖像中使用。如果差異較大,就不要使用了。

你需要在描述前加上特殊標(biāo)記嗎?

這個功能是讓AI更好的知道“這是一段描述而不是一個tag”,如果你的描述都比較短,推薦開啟。設(shè)置為1就可以了。

你需要設(shè)置學(xué)習(xí)率預(yù)熱比例(warm up ratio)嗎?

這是為了在訓(xùn)練開始時避免模型權(quán)重更新過于劇烈而采用的策略。學(xué)習(xí)率預(yù)熱比例越高,就會有更多的迭代次數(shù)用于學(xué)習(xí)率的逐漸增加,以幫助模型更好地收斂。通常,學(xué)習(xí)率預(yù)熱比例設(shè)置為訓(xùn)練迭代總數(shù)的一小部分,比如1/10或1/20。如果你的總步數(shù)為1000,在接下來的設(shè)置里請改為50-100。步數(shù)的計算方式為:

?

如果實在不會計算,可以先跑一次看看steps,然后再回來設(shè)置。

你是否要改變輸出checkpoint的名稱?

不修改的話,輸出默認(rèn)名為“epoch_次數(shù)”和"last"。盡量修改一下。

你需要在元數(shù)據(jù)中添加描述嗎?

只是加個注釋而已,不重要。

你需要僅訓(xùn)練unet和text_encoder嗎?

除非你有改代碼和預(yù)先訓(xùn)練的需求,否則選否就好了。

你想保存一個txt文件來輸出你所有使用的Tag嗎?

它將在輸出文件夾按照你的選擇,字母順序或者是頻率順序輸出你所有在訓(xùn)練時打上的tag的txt文件方便你生成圖的時候拿出來用。

例如:


?

你想使用caption dropout嗎?

“caption dropout”是一種用于訓(xùn)練圖像文本的技術(shù)。在訓(xùn)練過程中,隨機(jī)刪除一定比例的文本描述,或者不使用描述,以防止模型過分依賴于描述信息,提高其泛化能力。如果你訓(xùn)練的真人模型,并有描述的話,可以使用。之后會提示你是否要在整個文件上使用,百分比是多少。

你想要在整個epoch上不進(jìn)行描述嗎?

設(shè)置的話,每隔幾個epoch會將整個epoch里的描述都刪了進(jìn)行訓(xùn)練,并重新生成描述進(jìn)行對比,以提高泛化能力。

Tag dropout/ignore

與描述類似,只是換了個對象。Tag忽略是按比例來算的,因為tag數(shù)量比較多。

你想使用noise offset嗎?

添加的噪聲偏移量。如果你的圖像普遍偏暗,亮,或者忽暗忽亮,模糊不穩(wěn)定。那訓(xùn)練出來的圖像也會不穩(wěn)定,可以加入一定的noise offset來進(jìn)行均衡。一般設(shè)為0.1。

你需要放大圖像嗎?

如果你的圖像都進(jìn)行過壓縮,或者比例低于512很多,可以開啟。

你想進(jìn)行另外一個訓(xùn)練嗎?

將另外一個訓(xùn)練加入隊列,在本訓(xùn)練結(jié)束后繼續(xù)訓(xùn)練。

?


【AI繪畫】LoRA訓(xùn)練全參數(shù)講解的評論 (共 條)

分享到微博請遵守國家法律
章丘市| 柳林县| 胶南市| 房山区| 扎鲁特旗| 玉门市| 定远县| 盐津县| 呼伦贝尔市| 江油市| 交口县| 阳泉市| 塘沽区| 朝阳市| 吉首市| 绥芬河市| 盐城市| 靖安县| 海原县| 宁强县| 彭阳县| 永济市| 尉氏县| 桦南县| 中牟县| 云霄县| 县级市| 重庆市| 图片| 彰化市| 灵台县| 诸暨市| 孝昌县| 泊头市| 弥勒县| 通许县| 楚雄市| 鞍山市| 五华县| 沧源| 大姚县|