偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Stable Diffusion如何在企業(yè)中落地

原創(chuàng) 精選
開發(fā) 項目管理
很多時候非技術(shù)人員或初學(xué)者在用Stable Diffusion或者在網(wǎng)上拿過來的做訓(xùn)練的時候,他們最大的問題是不知道用多大的數(shù)據(jù)集,即便知道了用多大的訓(xùn)練集,也不知道再訓(xùn)練多少步,而知道該訓(xùn)練多少步后,又不知道該訓(xùn)練到什么時候停止。

嘉賓 | 黃鴻波

整理 | 徐杰承

本文整理自西山居人工智能技術(shù)專家黃鴻波在WOT2023大會上的主題分享,更多精彩內(nèi)容及現(xiàn)場PPT,請關(guān)注51CTO技術(shù)棧公眾號,發(fā)消息【W(wǎng)OT2023PPT】即可直接領(lǐng)取。

圖片圖片

本次分享主要圍繞Stable Diffusion的技術(shù)原理和落地來展開。第一部分為Stable Diffusion的工作原理。第二部分是Stable Diffusion做穩(wěn)定的訓(xùn)練的主要方法。第三部分則是如何在企業(yè)或團隊里將Stable Diffusion落地。

1、Stable Diffusion的工作原理

Stable Diffusion實際上是擴散模型,在Latent的模型里專用于做文圖生成的任務(wù),是基于LDM來構(gòu)建的。LDM是通過在一個潛在的表示空間中去迭代“去噪”,對數(shù)據(jù)進行降噪和還原來進行編解碼。最后在GPU上進行圖片生成,降低落地門檻,帶來文生圖的體驗。

其實文生圖技術(shù)早在幾年前就已經(jīng)有了,但那時候文生圖還是一個拼算力的東西,需要大量的算力,一般使用4卡或8卡的P100組合進行訓(xùn)練,需要單獨訓(xùn)練文本的部分、單獨訓(xùn)練圖像部分。

那時還會用到一些模型生成網(wǎng)絡(luò),加上文本的生成,生成一張圖需要20秒、30秒甚至一分鐘,并且無法保證圖片質(zhì)量。另外一點,生成內(nèi)容效果比較單一,彼時的技術(shù)只能生成例如一只貓、一只狗等圖像,無法理解太過復(fù)雜的語義。

而Stable Diffusion的出現(xiàn)或者說LDM的出現(xiàn),解決了之前文生圖方向的一些缺點。Stable Diffusion準(zhǔn)確來說是基于Latent Diffusion Models的整體架構(gòu),也就是LDM的架構(gòu)來完成的。

圖片圖片

其中主要分為三大部分。第一是Pixel部分的內(nèi)容,編解碼器,把圖像進行編碼,其次經(jīng)過Latent Space,進行Diffusion傳播,進行去噪,然后進行編輯,再進行解噪。

整體來說,Stable Diffusion在訓(xùn)練的過程中是通過文本和圖像進行匹配,然后進入VAE和U-Net中進行訓(xùn)練,訓(xùn)練后就可以理解文本和圖像的匹配的關(guān)系。之后再去加入新的文本,讓其進行擴散學(xué)習(xí),通過噪音的疊加部分,最后在潛在空間上進行多次迭代,回到原始圖像。

圖片圖片

U-Net是從噪聲中生成圖像主要的模塊,其原理是通過預(yù)測,在過程中反復(fù)調(diào)用U-Net模塊,將U-Net輸出噪聲的Slice從原有噪聲中進行去除,得到一個去除后的結(jié)果。所以它一共分成三部分,像ResnetBlock、Transformer結(jié)構(gòu)、上采樣和下采樣的內(nèi)容,加在一起就是U-Net的結(jié)構(gòu)。

Diffusion的過程,其實就是擴散的原理,將一個圖像通過各種各樣的迭代噪聲,產(chǎn)生最后的噪聲。下面通過噪聲,通過U-Net再還原成圖像,其實就是一個Forward的正常擴散和逆向擴散的過程。

圖片圖片

正向擴散是逐步對圖像加入高斯噪聲,然后通過噪聲的迭代逐步增加,使得在每一步的過程中,高斯程度越來越高,就會產(chǎn)生一系列的噪聲圖像,最后得到的就是x-T。x-T會經(jīng)過U-Net的模型在x-T中進行Denoising的解碼的工作,將所生成的噪聲模型進行反向解碼得到清晰的圖。

與正向不同,逆向擴散不能進行反轉(zhuǎn)噪聲,直接進行噪聲反轉(zhuǎn),是沒有辦法計算的。因為高斯程度增長是一個不可逆的過程,所以需要在Diffusion中訓(xùn)練神經(jīng)網(wǎng)絡(luò),來近似進行q的還原,通過不斷迭代,使其形成一個服從正態(tài)分布的整體的形象,從而定義反轉(zhuǎn)。所以其逆向和正向的處理過程在這里是不同的。

2、如何利用Stable Diffusion訓(xùn)練出穩(wěn)定效果

對于媒體、游戲領(lǐng)域的公司來說,美術(shù)的要求會比較嚴(yán)格。例如一款游戲分國內(nèi)版、美版、日版,雖然從用戶角度來看,角色設(shè)計大同小異,但實際上美版和日版的美術(shù)設(shè)計可能會更符合美國或日本的審美,國內(nèi)則又是另一種審美,美術(shù)的實際細節(jié)并不一樣。

除此之外,國內(nèi)的許多武俠游戲,在大眾看來,角色都是穿著長袍、漢服或唐裝,外形看起來都一樣。但深度玩家會知道游戲存在著什么樣的特性,看到游戲的畫風(fēng),就能憑經(jīng)驗知道是哪一款游戲。文生圖最大的矛盾,其實就在這里,程序員和美術(shù)的關(guān)注點是不同的。

想要解決這個矛盾,讓文生圖能夠生成符合美術(shù)要求的圖像,首先要了解什么是DreamBooth。DreamBooth是一個特征詞+類別標(biāo)簽。在做DreamBooth的訓(xùn)練或Stable Diffusion訓(xùn)練時,一般的訓(xùn)練方式都是基于SD1.5、SD1.4或2.0來進行的。

圖片圖片

但在原始模型中可能已經(jīng)存在了一些形象的概念,再專門訓(xùn)練某形象,需要讓模型知道這個形象要用符號代替。訓(xùn)練完成后,當(dāng)輸入特定符號,就會出現(xiàn)特定的形象,這是DreamBooth的優(yōu)勢,但同樣也是弊端。

例如使用Hugging Face時,訓(xùn)練DreamBooth會讓你提供Prompt,以輸入“a abc dog”為例,增加類別為“a dog”,“abc”則是特定符號,加上類別的好處在于它既學(xué)會了特定符號特征,又同時不會忘記類別特征。它的目的在于讓模型既學(xué)會新的知識,又不會去忘掉舊的內(nèi)容。如果不加類別,新的知識學(xué)到了,但迭代的次增多,舊的知識可能反而會被忘記。

圖片圖片

LoRA則是一個比較常用的凍結(jié)式的微調(diào)模型。例如在原始的擴散模型中,通過輸入,經(jīng)過各種各樣的模塊到輸出。這種模型的問題在于每次訓(xùn)練時,都要從頭到尾去訓(xùn)練,相當(dāng)于訓(xùn)練整個Stable Diffusion,這需要的顯存會比較高、對算力的要求比較高、對于數(shù)據(jù)集也會有比較高的要求。

微軟提出的LoRA方式,作用是把模型的大部分進行凍結(jié),模型結(jié)構(gòu)不變,在結(jié)構(gòu)之上再加兩個LoRA層,只有這兩個LoRA層參與微調(diào),實際上相當(dāng)于整個模型不需要訓(xùn)練,只需要訓(xùn)練這兩個LoRA層。它的參數(shù)量相比于訓(xùn)練整個模型要小得多。

在LoRA層加上所需要的各種特征、細節(jié),從而進行訓(xùn)練,這也就是為什么在LoRA放上幾個圖,加一個prompt,就能生成相關(guān)的內(nèi)容。LoRA的原理就是這樣,在一個大模型的基礎(chǔ)上將其凍結(jié),只把數(shù)據(jù)集和prompt對應(yīng)到兩個LoRA層之中,它就能夠得到我們想要的結(jié)果。

圖片圖片

但是這種結(jié)果其實也有一些弊端,它可能只適合簡單風(fēng)格的訓(xùn)練,或者單一的針對于某一個點的訓(xùn)練,超出這個點,可能就需要再用另外一種方法或者疊加LoRA。

所以很多做Stable Diffusion的人,會在網(wǎng)上找base模型,再去下載一堆LoRA,有微調(diào)眼睛的、微調(diào)鼻子的、微調(diào)手指的,把這些LoRA都疊加進去再進行圖像生成,效果就會很好。所以LoRA的優(yōu)勢就在于訓(xùn)練成本低,可以針對某一方面單獨進行訓(xùn)練。

3、Stable Diffusion在企業(yè)中落地

但是在落地方面,如果LoRA和DreamBooth的效果都不能滿足企業(yè)需求,就需要Text-to-Image訓(xùn)練了。Text-to-Image訓(xùn)練也可以不是從頭到尾訓(xùn)練,如果基于一個已經(jīng)訓(xùn)練好的大模型,再對其進行Finetune,其實就是Text-to-Image。但這對于算力的要求比較高,要想較好的訓(xùn)練效果,建議用40G以上的顯存。

Text-to-Image的處理分三部分,第一部分是數(shù)據(jù)集處理;第二部分是底模選擇;第三部分則是各種各樣的參數(shù),對整個模型、整體效果的影響。

首先數(shù)據(jù)集的處理,在圖片處理時,可以用AI模型將圖片背景全都去掉了,并且貼一個白背景。去掉之后,就變成一個四通道,四通道訓(xùn)練并不好做,加上白背景,就變成一個三通道,再把大小處理成512×512。

圖片圖片

圖像到文字可以根據(jù)圖像一句一句挑描述,這樣是最精準(zhǔn)的。還有一種方法則是通過webUI的方式,webUI里一般都有clip等方式,可以生成描述,它生成的針對每一個文件是一個txt的文本,再把文本做一定的數(shù)據(jù)處理。生成之后可以直接使用描述,基本上不需要做太大的改變,除非需要增加一些比較特殊的詞,比如增加一些項目的名字或者特定的一些內(nèi)容的名字。

模型的選型方面,推薦用Hugging Face網(wǎng)站,其中有很多Stable Diffusion,有base模型,1.5、2.0、2.1、1.4都有,還有一些專用模型,可以根據(jù)需要搜索,把它作為base model進行訓(xùn)練。C站更多的是比較適用于webUI。

圖片圖片

最后關(guān)于模型訓(xùn)練過程的一些心得和需要避開的坑。當(dāng)有時模型跑不起來的時候,可以看它提供的一些用低模型的低顯存的方法,但是這里有一個坑,就是低顯存的方法在Text-to-Image中沒有,而在隔離的DreamBooth里說了,可以把里面的兩行配置粘過來,會發(fā)現(xiàn)它是能用的。

此外關(guān)于調(diào)參,經(jīng)常有一些非算法的同學(xué)問我,說這里面的學(xué)習(xí)率、這里面的loss到底是什么,怎么樣才算把模型訓(xùn)練好?我會建議他去看loss,看它的變化曲線,它最后是否收斂。

很多時候非技術(shù)人員或初學(xué)者在用Stable Diffusion或者在網(wǎng)上拿過來的做訓(xùn)練的時候,他們最大的問題是不知道用多大的數(shù)據(jù)集,即便知道了用多大的訓(xùn)練集,也不知道再訓(xùn)練多少步,而知道該訓(xùn)練多少步后,又不知道該訓(xùn)練到什么時候停止。

這里可以提供一個參考,在做Stable Diffusion的大模型的訓(xùn)練的時候,最需要注意一點是,根據(jù)數(shù)據(jù)集的大小,根據(jù)圖片的尺寸,最大的訓(xùn)練步數(shù)需要進行相應(yīng)的調(diào)整。當(dāng)然,數(shù)據(jù)集的描述也需要進行調(diào)整,最終才能夠訓(xùn)練出比較好的效果。

嘉賓介紹:

黃鴻波,珠海金山網(wǎng)絡(luò)游戲科技有限公司(西山居)AI技術(shù)專家,高級算法工程師,谷歌機器學(xué)習(xí)方向開發(fā)者專家,擁有多年軟件開發(fā)經(jīng)驗,著有《TensorFlow進階指南 基礎(chǔ)、算法與應(yīng)用》一書。曾在格力電器股份有限公司大數(shù)據(jù)中心擔(dān)任人工智能領(lǐng)域?qū)<?,且在多家公司?dān)任過高級工程師,技術(shù)經(jīng)理,技術(shù)總監(jiān)等職務(wù)。

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2017-04-24 11:40:26

大數(shù)據(jù)制造企業(yè)

2024-01-31 16:36:53

2023-02-10 21:12:41

GPUmacOSStable

2014-06-06 09:52:42

大數(shù)據(jù)

2015-09-01 13:58:25

大數(shù)據(jù)企業(yè)

2015-03-12 09:42:27

2015-03-12 10:38:49

2022-06-02 08:30:55

項目React重構(gòu)

2023-01-10 16:08:04

人工智能擴散模型

2024-09-14 14:09:40

2023-05-26 15:53:48

MidjourneyAI圖像

2023-11-22 11:22:57

AI模型

2024-12-06 10:21:04

2024-06-13 17:45:16

2022-06-02 11:11:43

AI深度學(xué)習(xí)

2023-05-24 08:52:12

2017-06-13 10:15:50

人工智能深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2021-09-09 08:02:46

項目Bundleless架構(gòu)

2023-03-06 12:35:45

AI大腦畫面圖像

2022-10-20 16:04:26

模型質(zhì)量
點贊
收藏

51CTO技術(shù)棧公眾號