摘要:我們提供了一鍵運(yùn)行的notebook AI作畫 Dreambooth 生成自定義主體,可以在ModelArts平臺上調(diào)試開發(fā)自己的文生圖模型。
本文分享自華為云社區(qū)《DreamBooth+LoRA微調(diào)生成主體》,作者: 杜甫蓋房子 。
DreamBooth+LoRA微調(diào)生成主體
文生圖風(fēng)靡一時,但預(yù)訓(xùn)練的文生圖模型無法控制生成特定的主體。DreamBooth提供了一種方法,只需要特定主體的幾張圖就可以微調(diào)文生圖模型,生成包含特定主體的圖片。例如,提供如下主體圖片,給定主體名稱為biu model:
微調(diào)文生圖模型后,使用"biu model in the garden"作為prompt推理,將生成包含該主體的圖片:
(資料圖片)
我們提供了一鍵運(yùn)行的notebookAI作畫 Dreambooth 生成自定義主體,可以在ModelArts平臺上調(diào)試開發(fā)自己的文生圖模型。此外,我們還提供了零代碼運(yùn)行的WorkflowDreamBooth自定義生成主體,可以通過簡單的可視化配置完成模型訓(xùn)練、AI應(yīng)用打包、在線推理服務(wù)部署等全流程,無需任何開發(fā)即可玩轉(zhuǎn)個性化文生圖模型微調(diào)。
DreamBooth
DreamBooth是一種生成個性化文生圖模型的方法,用戶可以給定3~5張某個主體的圖像及該主體的名稱,微調(diào)文生圖模型(本案例使用的是Stable Diffusion v1-4),微調(diào)后的模型可以使用主體名稱作為prompt,生成對應(yīng)主體的圖像,如圖:
圖源:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
DreamBooth想要將定義的主體名稱與特定主體綁定,同時保留主體對應(yīng)類別的細(xì)節(jié)特征。因此,在構(gòu)建主體名稱時可以加入大類別名,如主體是一只可愛的小貓,則主體名稱可以定義為"a [V] cat",其中大類名"cat"可以保留大類特征,[V]作為稀有標(biāo)識符,可以避免主體受通用詞組先驗(yàn)知識的影響。
為了減少微調(diào)導(dǎo)致的語義漂移,以及保持?jǐn)U散模型生成內(nèi)容的多樣性,DreamBooth引入了prior preservation loss,利用大類的先驗(yàn)知識生成與訓(xùn)練主體相同大類的不同實(shí)例對模型進(jìn)行監(jiān)督:
圖源:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
LoRA
Low-Rank Adaptation of Large Language Models (LoRA) 是一種訓(xùn)練方法,可以在消耗較少內(nèi)存的同時加速大模型的訓(xùn)練。大模型通常具有很多參數(shù),直接微調(diào)大模型將是一個緩慢而昂貴的過程。在Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning中提出一個洞見:預(yù)訓(xùn)練語言模型微調(diào)后,權(quán)重矩陣中表征特征的部分其實(shí)是很低秩的。作者受此啟發(fā),認(rèn)為模型微調(diào)時,更新的權(quán)重表征特征的部分應(yīng)該也是低秩的,即在模型微調(diào)時,權(quán)重可以表示為:W=W0+ΔWW=W0?+ΔW,其中,W0W0?為不更新的預(yù)訓(xùn)練權(quán)重矩陣,ΔWΔW為實(shí)際更新的、可以進(jìn)行低秩分解的權(quán)重矩陣,如圖,藍(lán)色部分為不更新的預(yù)訓(xùn)練權(quán)重,橙色部分為分解為兩個低秩矩陣的微調(diào)權(quán)重:
圖源:LoRA: Low-Rank Adaptation of Large Language Models
LoRA有幾個顯而易見的優(yōu)勢:
- 預(yù)訓(xùn)練權(quán)重保持不變,因此模型不容易發(fā)生災(zāi)難性的遺忘;
- 秩分解矩陣的參數(shù)明顯少于原始模型,微調(diào)部分的權(quán)重更小,易于移植;
- 預(yù)訓(xùn)練模型可以共享,不同的任務(wù)只需要提供很小的LoRA模塊,可以高效的切換任務(wù),顯著降低存儲需求;
- 微調(diào)成本大幅降;
- 在推理時可以將橙色部分與藍(lán)色部分合并,不會引入額外的推理時延。
案例
我們提供了兩種形式的案例:一鍵運(yùn)行的notebookAI作畫 Dreambooth 生成自定義主體和零代碼運(yùn)行的WorkflowDreamBooth自定義生成主體。
notebook使用上靈活程度更高,適合有一定代碼能力的朋友玩一下。Workflow封裝程度更高,提供了詳細(xì)的使用文檔,同時包含了AI應(yīng)用等節(jié)點(diǎn),不需要寫任何代碼也可以生成自己的模型并在線測試。
點(diǎn)擊關(guān)注,第一時間了解華為云新鮮技術(shù)~