「AI繪畫(huà)」是2022年抖音上最火的一款特效玩法,用戶只要輸入一張圖片,AI就會(huì)根據(jù)圖片生成一張動(dòng)漫風(fēng)格的圖片。
由于生成的圖片效果帶有一定的“盲盒”屬性 ,畫(huà)風(fēng)精致唯美中又帶著些許的蠢萌和無(wú)厘頭,一經(jīng)上線就激發(fā)了廣大用戶的參與熱情,抖音單日投稿量最高達(dá)724w,還衍生了“如何馴服AI”、“誰(shuí)來(lái)為我發(fā)聲”等討論分享。
據(jù)抖音「AI繪畫(huà)」特效主頁(yè)顯示,已經(jīng)有2758.3萬(wàn)用戶使用過(guò)這款特效。
作為抖音SSS級(jí)的大爆款特效,「AI繪畫(huà)」的峰值QPS(每秒請(qǐng)求量)也高達(dá)1.4w的驚人水平,如何保證用戶的實(shí)時(shí)體驗(yàn),對(duì)技術(shù)鏈路提出了極高的挑戰(zhàn),抖音又是怎樣做到的呢?
帶著這樣的疑問(wèn),我們和「AI繪畫(huà)」背后的項(xiàng)目團(tuán)隊(duì)——抖音特效、字節(jié)跳動(dòng)智能創(chuàng)作團(tuán)隊(duì)聊了聊。
抖音特效對(duì)AI技術(shù)有過(guò)很多應(yīng)用實(shí)踐,2021年的「漫畫(huà)臉」特效也是一款上線3天千萬(wàn)投稿的爆款,使用的是GAN技術(shù)。
這一次,抖音的「AI繪畫(huà)」使用了時(shí)下最火的多模態(tài)生成技術(shù)。
這是由文本生成圖片/視頻/3D等跨模態(tài)的生成技術(shù),具體地說(shuō),是通過(guò)大規(guī)模數(shù)據(jù)的訓(xùn)練,僅通過(guò)文字或少量其他低成本的信息引導(dǎo),可控地生成任意場(chǎng)景的圖片/視頻/3D等內(nèi)容,在AIGC等方向有極大的潛在應(yīng)用價(jià)值。
據(jù)了解,隨著DALL·E的問(wèn)世,2021年初字節(jié)跳動(dòng)智能創(chuàng)作團(tuán)隊(duì)就開(kāi)始了相關(guān)技術(shù)的跟進(jìn)和規(guī)劃,今年8月底Stable Diffusion發(fā)布后,抖音特效團(tuán)隊(duì)很快啟動(dòng)了「AI繪畫(huà)」這個(gè)項(xiàng)目。
Stable Diffusion是一個(gè)文本生成圖像的多模態(tài)生成模型,相比于GAN,Stable Diffusion的多樣性和風(fēng)格化會(huì)更強(qiáng),變化的形式也更豐富,同一個(gè)模型可以做很多不同的風(fēng)格。同時(shí),后者對(duì)性能和計(jì)算資源要求大幅下降,其自身開(kāi)源的屬性,還可以進(jìn)行各種fine tune,調(diào)用和修改。
Stable Diffusion的邏輯是,用一個(gè)圖像對(duì)應(yīng)一個(gè)文本標(biāo)注的形式去訓(xùn)練模型,一個(gè)“文本+圖像”組成一個(gè)數(shù)據(jù)對(duì),先對(duì)其中的圖像通過(guò)高斯分布進(jìn)行加噪,加完噪聲之后,再訓(xùn)練一個(gè)網(wǎng)絡(luò)去對(duì)它進(jìn)行去噪,讓模型可以根據(jù)噪聲再還原出一個(gè)新的圖像。
為了能夠使用文字控制模型生成的內(nèi)容,Stable Diffusion使用了預(yù)訓(xùn)練的CLIP模型來(lái)引導(dǎo)生成結(jié)果。
CLIP模型使用了大量的文字和圖片對(duì)訓(xùn)練,能夠衡量任意圖片和文本之間的相關(guān)性。在前向生成圖片的過(guò)程中,模型除了要去噪以外,還需要讓圖片在CLIP的文本特征引導(dǎo)下去生成。這樣在不斷生成過(guò)程中,輸出結(jié)果就會(huì)越來(lái)越接近給定的文字描述。
抖音「AI繪畫(huà)」是采用圖片生成圖片的策略,首先對(duì)圖片進(jìn)行加噪,然后再用訓(xùn)練好的文生圖模型在文本的引導(dǎo)下去噪。
作為技術(shù)支持方,字節(jié)跳動(dòng)智能創(chuàng)作團(tuán)隊(duì)在Stable Diffusion開(kāi)源模型的基礎(chǔ)上,構(gòu)建了數(shù)據(jù)量達(dá)十億規(guī)模的數(shù)據(jù)集,訓(xùn)練出兩個(gè)模型,一個(gè)是通用型的模型Diffusion Model,可以生成如油畫(huà)、水墨畫(huà)風(fēng)格的圖片;另外一個(gè)是動(dòng)漫風(fēng)格的Diffusion Model模型。
漫畫(huà)風(fēng)格模型是采用“漫畫(huà)圖像+文本”的數(shù)據(jù)對(duì)進(jìn)行訓(xùn)練。為了讓動(dòng)漫風(fēng)格模型生成的效果更好更豐富,字節(jié)跳動(dòng)智能創(chuàng)作團(tuán)隊(duì)在動(dòng)漫風(fēng)格模型優(yōu)化訓(xùn)練的數(shù)據(jù)集里特別加入了賽博朋克和像素風(fēng)等不同風(fēng)格的數(shù)據(jù)。
抖音特效在動(dòng)漫風(fēng)格上有過(guò)比較豐富的探索,觀測(cè)了此前用戶對(duì)不同風(fēng)格的反饋,抖音「AI繪畫(huà)」此次選用的就是精致漫畫(huà)風(fēng)的動(dòng)漫風(fēng)格。
在算法側(cè)調(diào)優(yōu)的同時(shí),字節(jié)跳動(dòng)智能創(chuàng)作團(tuán)隊(duì)為抖音特效產(chǎn)品側(cè)提供了文本的接口prompt,方便產(chǎn)品側(cè)對(duì)效果進(jìn)行進(jìn)一步的微調(diào),通過(guò)輸入文字,讓生成的圖片效果更加貼近于期望中的樣子——風(fēng)格化程度“不會(huì)特別萌、跟原圖有一定相似度,但又不會(huì)特別寫(xiě)實(shí)”。
此外,模型還同時(shí)采用正向、負(fù)向文本引導(dǎo)生成的策略。除了描述生成圖像內(nèi)容、風(fēng)格的正向條件外,還通過(guò)負(fù)向引導(dǎo)詞(negative prompt)優(yōu)化模型生成結(jié)果。通過(guò)在生成效果、生成內(nèi)容等方面進(jìn)行約束,可有效提升模型在圖像細(xì)節(jié)上的生成質(zhì)量, 并大大降低生成圖像涵蓋暴力、色情等敏感內(nèi)容的風(fēng)險(xiǎn)。
抖音「AI繪畫(huà)」還針對(duì)不同場(chǎng)景對(duì)風(fēng)格效果進(jìn)行了優(yōu)化。
首先,基于圖像理解基礎(chǔ)能力,對(duì)用戶圖像進(jìn)行場(chǎng)景分類,如人像、寵物、后置場(chǎng)景等,對(duì)包含人像的場(chǎng)景,進(jìn)一步對(duì)性別、人數(shù)、年齡等屬性進(jìn)行檢測(cè)。對(duì)于不同的細(xì)分場(chǎng)景,均有多組優(yōu)化的風(fēng)格效果作為候選。在模型選擇上,90%的人像及50%的后置場(chǎng)景使用漫畫(huà)模型,其他則使用包含藝術(shù)風(fēng)格的通常模型。此外,部分場(chǎng)景還以一定概率出現(xiàn)彩蛋效果,如人像性別反轉(zhuǎn)等效果。
相比于傳統(tǒng)的生成模型(GAN),擴(kuò)散模型(Stable Diffusion)的模型體積和計(jì)算量更為龐大,AI繪畫(huà)需要一個(gè)耗時(shí)繁重的推理過(guò)程。
上線到抖音這樣一個(gè)億級(jí)DAU的平臺(tái),對(duì)技術(shù)服務(wù)側(cè)而言,無(wú)論是顯存的占用,還是從GPU的推理耗時(shí)都較高,且面臨峰值過(guò)萬(wàn)的 QPS 。
如何支持巨大的調(diào)用量和復(fù)雜的推理,是很大的挑戰(zhàn)。
為緩解線上GPU資源消耗,字節(jié)跳動(dòng)智能創(chuàng)作團(tuán)隊(duì)研發(fā)了Diffusion Model加速算法、采樣步數(shù)減少算法、高效模型圖融合技術(shù)、服務(wù)端推理部署框架等,并與NVIDIA技術(shù)團(tuán)隊(duì)協(xié)同合作,優(yōu)化高性能神經(jīng)網(wǎng)絡(luò)推理庫(kù),對(duì)AI繪畫(huà)模型進(jìn)行了多個(gè)維度上的推理優(yōu)化。
上述一系列優(yōu)化方案顯著降低推理耗時(shí)、顯存占用以及加大服務(wù)端部署框架的數(shù)據(jù)吞吐,相對(duì)于基準(zhǔn)模型QPS提升4倍以上,節(jié)約數(shù)萬(wàn)塊推理GPU消耗,保障道具在抖音平臺(tái)高峰期的高效穩(wěn)定運(yùn)轉(zhuǎn)。
無(wú)分類器引導(dǎo)擴(kuò)散模型最近已被證明在高分辨率圖像生成方面非常有效,然而這種模型存在一個(gè)缺陷是它們?cè)谶M(jìn)行單步圖像生成時(shí)需要進(jìn)行兩次模型推理,使得圖像生成的成本非常昂貴。
為了解決這個(gè)問(wèn)題,字節(jié)跳動(dòng)智能創(chuàng)作團(tuán)隊(duì)提出了一種針對(duì)無(wú)分類器引導(dǎo)擴(kuò)散模型的蒸餾算法AutoML-GFD(AutoML Guidance-Fusion Distillation),通過(guò)知識(shí)蒸餾的方式將條件引導(dǎo)信息和無(wú)條件信息進(jìn)行知識(shí)融合,減少了模型在進(jìn)行單步圖像生成時(shí)的推理次數(shù)和資源需求。
同時(shí),在蒸餾過(guò)程中把negative prompt, scale guidance信息蒸餾到模型中,在不改變模型推理輸入的情況下達(dá)到更佳的效果;在Diffusion Model的訓(xùn)練和采樣過(guò)程中,利用time-aware采樣針對(duì)性地優(yōu)化了重要時(shí)間步的效果,相對(duì)于基準(zhǔn)模型可以進(jìn)一步降低推理步數(shù);蒸餾算法整體壓測(cè)提升200%。
在服務(wù)端側(cè),通過(guò)模型圖融合、 高效CUDA算子、OFFload PreCompute、前后處理算子融合、多線程并發(fā)等手段,協(xié)同字節(jié)跳動(dòng)自研Lighten推理引擎和Ivory視覺(jué)服務(wù)框架,解決了多段模型Convert Failed和顯存溢出等問(wèn)題,提升模型推理效率。
當(dāng)前,伴隨AIGC的應(yīng)用日益多元和廣泛,用戶的痛點(diǎn)也隨之浮上水面。
以Stable Diffusion為例,一次完整的預(yù)訓(xùn)練大約需要在 128 張 A100 計(jì)算卡上運(yùn)行 25 天,用戶付費(fèi)上百萬(wàn),高額的研發(fā)費(fèi)用是用戶最大的痛點(diǎn)之一。
同時(shí),AIGC 產(chǎn)品演進(jìn)快速,對(duì)性能和資源提出更高要求。
字節(jié)跳動(dòng)旗下的云服務(wù)平臺(tái)火山引擎為此類問(wèn)題提供了解決方案,推動(dòng) AIGC 產(chǎn)業(yè)的發(fā)展。
火山引擎機(jī)器學(xué)習(xí)平臺(tái)打造同時(shí)支持訓(xùn)練加速與推理加速的自主研發(fā)高性能算子庫(kù),在全面提升 AI 計(jì)算性能的基礎(chǔ)上,不斷追求節(jié)省顯存、簡(jiǎn)單適配,同時(shí)支持多款 GPU 卡,為客戶帶來(lái)更多低成本、便捷的部署方案。
在推理場(chǎng)景下,基于 Stable Diffusion 模型的端到端推理速度達(dá)到 66.14 it/s,是 PyTorch 推理速度的 3.47 倍,運(yùn)行時(shí) GPU 顯存占用量降低 60%。
在客戶 AI 視頻創(chuàng)作的 AIGC 推理業(yè)務(wù)實(shí)踐中,火山引擎高性能算子庫(kù)搭載客戶的推理模型幫助其推理性能提升一倍,GPU 資源使用量減少一半,可為客戶節(jié)省 50% 成本。
在訓(xùn)練場(chǎng)景下,使用該高性能算子庫(kù)可將上文 Stable Diffusion 模型在 128 張 A100 的訓(xùn)練時(shí)間從 25 天減少到 15 天,訓(xùn)練性能提升 40%。
同時(shí),由于 AIGC 模型在訓(xùn)練時(shí)占用 GPU 顯存容量非常大,未經(jīng)優(yōu)化時(shí)的模型只能運(yùn)行在最高端的 A100 80GB GPU 卡上。火山引擎高性能算子庫(kù)通過(guò)大量消減中間操作,將運(yùn)行時(shí) GPU 顯存占用量降低 50%,使得大多數(shù)模型可從 A100 遷移到成本更低的 V100 或 A30 等 GPU 卡上運(yùn)行,擺脫特定計(jì)算卡的限制,而且不需要做額外的模型轉(zhuǎn)換工作。
以此,以 AIGC 場(chǎng)景為代表,無(wú)論是迭代速度,還是單次的訓(xùn)練成本,都有了顯著的性能提升和成本節(jié)省。
另外,火山引擎還面向企業(yè)客戶推出了智能繪圖產(chǎn)品,省去企業(yè)采集數(shù)據(jù)、訓(xùn)練模型和優(yōu)化性能的時(shí)間和成本,可以快速接入業(yè)務(wù),讓企業(yè)擁有開(kāi)箱即用、抖音同款的AI繪畫(huà)能力。
— 完 —
分享
收藏
點(diǎn)贊
在看