每秒最高1w+使用量,「AI繪畫」成抖音年度爆款,背後技術秘籍現已公開

允中 發自 凹非寺

「AI繪畫」是2022年抖音上最火的一款特效玩法,使用者只要輸入一張圖片,AI就會根據圖片生成一張動漫風格的圖片。

由於生成的圖片效果帶有一定的「盲盒」屬性 ,畫風精緻唯美中又帶著些許的蠢萌和無厘頭,一經上線就激發了廣大使用者的參與熱情,抖音單日投稿量最高達724w,還衍生了「如何馴服AI」、「誰來為我發聲」等討論分享。

據抖音「AI繪畫」特效主頁顯示,已經有2758.3萬使用者使用過這款特效。

作為抖音SSS級的大爆款特效,「AI繪畫」的峰值QPS(每秒請求量)也高達1.4w的驚人水平,如何保證使用者的實時體驗,對技術鏈路提出了極高的挑戰,抖音又是怎樣做到的呢?

帶著這樣的疑問,我們和「AI繪畫」背後的項目團隊——抖音特效、字節跳動智慧創作團隊聊了聊。

經過特別訓練的動漫風模型

抖音特效對AI技術有過很多應用實踐,2021年的「漫畫臉」特效也是一款上線3天千萬投稿的爆款,使用的是GAN技術。

這一次,抖音的「AI繪畫」使用了時下最火的多模態生成技術

這是由文字生成圖片/視訊/3D等跨模態的生成技術,具體地說,是通過大規模資料的訓練,僅通過文字或少量其他低成本的資訊引導,可控地生成任意場景的圖片/視訊/3D等內容,在AIGC等方向有極大的潛在應用價值。

據了解,隨著DALL·E的問世,2021年初字節跳動智慧創作團隊就開始了相關技術的跟進和規劃,今年8月底Stable Diffusion發佈後,抖音特效團隊很快啟動了「AI繪畫」這個項目。

Stable Diffusion是一個文字生成圖像的多模態生成模型,相比於GAN,Stable Diffusion的多樣性和風格化會更強,變化的形式也更豐富,同一個模型可以做很多不同的風格。同時,後者對性能和計算資源要求大幅下降,其自身開源的屬性,還可以進行各種fine tune,調用和修改。

基礎模型架構

Stable Diffusion的邏輯是,用一個圖像對應一個文字標註的形式去訓練模型,一個「文字+圖像」組成一個資料對,先對其中的圖像通過高斯分佈進行加噪,加完噪聲之後,再訓練一個網路去對它進行去噪,讓模型可以根據噪聲再還原出一個新的圖像。

為了能夠使用文字控制模型生成的內容,Stable Diffusion使用了預訓練的CLIP模型來引導生成結果。

CLIP模型使用了大量的文字和圖片對訓練,能夠衡量任意圖片和文字之間的相關性。在前向生成圖片的過程中,模型除了要去噪以外,還需要讓圖片在CLIP的文字特徵引導下去生成。這樣在不斷生成過程中,輸出結果就會越來越接近給定的文字描述。

抖音「AI繪畫」是採用圖片生成圖片的策略,首先對圖片進行加噪,然後再用訓練好的文生圖模型在文字的引導下去噪。

圖片生成圖片的邏輯過程

作為技術支持方,字節跳動智慧創作團隊在Stable Diffusion開源模型的基礎上,構建了資料量達十億規模的資料集,訓練出兩個模型,一個是通用型的模型Diffusion Model,可以生成如油畫、水墨畫風格的圖片;另外一個是動漫風格的Diffusion Model模型。

通用模型Diffusion Model生成的圖像風格
動漫風格的Diffusion Model模型生成的圖像風格

漫畫風格模型是採用「漫畫圖像+文字」的資料對進行訓練。為了讓動漫風格模型生成的效果更好更豐富,字節跳動智慧創作團隊在動漫風格模型最佳化訓練的資料集裡特別加入了賽博龐克和像素風等不同風格的資料。

抖音特效在動漫風格上有過比較豐富的探索,觀測了此前使用者對不同風格的反饋,抖音「AI繪畫」此次選用的就是精緻漫畫風的動漫風格。

在演算法側調優的同時,字節跳動智慧創作團隊為抖音特效產品側提供了文字的接口prompt,方便產品側對效果進行進一步的微調,通過輸入文字,讓生成的圖片效果更加貼近於期望中的樣子——風格化程度「不會特別萌、跟原圖有一定相似度,但又不會特別寫實」。

此外,模型還同時採用正向、負向文字引導生成的策略。除了描述生成圖像內容、風格的正向條件外,還通過負向引導詞(negative prompt)最佳化模型生成結果。通過在生成效果、生成內容等方面進行約束,可有效提升模型在圖像細節上的生成質量, 並大大降低生成圖像涵蓋暴力、色情等敏感內容的風險。

抖音「AI繪畫」還針對不同場景對風格效果進行了最佳化。

首先,基於圖像理解基礎能力,對使用者圖像進行場景分類,如人像、寵物、後置場景等,對包含人像的場景,進一步對性別、人數、年齡等屬性進行檢測。對於不同的細分場景,均有多組最佳化的風格效果作為候選。在模型選擇上,90%的人像及50%的後置場景使用漫畫模型,其他則使用包含藝術風格的通常模型。此外,部分場景還以一定概率出現彩蛋效果,如人像性別反轉等效果。

研發Diffusion Model加速演算法,節約上萬塊推理GPU消耗

相比於傳統的生成模型(GAN),擴散模型(Stable Diffusion)的模型體積和計算量更為龐大,AI繪畫需要一個耗時繁重的推理過程。

上線到抖音這樣一個億級DAU的平臺,對技術服務側而言,無論是視訊記憶體的佔用,還是從GPU的推理耗時都較高,且面臨峰值過萬的 QPS 。

如何支持巨大的調用量和複雜的推理,是很大的挑戰。

為緩解線上GPU資源消耗,字節跳動智慧創作團隊研發了Diffusion Model加速演算法、取樣步數減少演算法、高效模型圖融合技術、服務端推理部署框架等,並與NVIDIA技術團隊協同合作,最佳化高性能神經網路推理庫,對AI繪畫模型進行了多個維度上的推理最佳化。

上述一系列最佳化方案顯著降低推理耗時、視訊記憶體佔用以及加大服務端部署框架的資料吞吐,相對於基準模型QPS提升4倍以上,節約數萬塊推理GPU消耗,保障道具在抖音平臺高峰期的高效穩定運轉。

無分類器引導擴散模型最近已被證明在高解析度圖像生成方面非常有效,然而這種模型存在一個缺陷是它們在進行單步圖像生成時需要進行兩次模型推理,使得圖像生成的成本非常昂貴。

為了解決這個問題,字節跳動智慧創作團隊提出了一種針對無分類器引導擴散模型的蒸餾演算法AutoML-GFD(AutoML Guidance-Fusion Distillation),通過知識蒸餾的方式將條件引導資訊和無條件資訊進行知識融合,減少了模型在進行單步圖像生成時的推理次數和資源需求。

同時,在蒸餾過程中把negative prompt, scale guidance資訊蒸餾到模型中,在不改變模型推理輸入的情況下達到更佳的效果;在Diffusion Model的訓練和取樣過程中,利用time-aware取樣針對性地最佳化了重要時間步的效果,相對於基準模型可以進一步降低推理步數;蒸餾演算法整體壓測提升200%。

在服務端側,通過模型圖融合、 高效CUDA運算元、OFFload PreCompute、前後處理運算元融合、多執行緒併發等手段,協同字節跳動自研Lighten推理引擎和Ivory視覺服務框架,解決了多段模型Convert Failed和視訊記憶體溢出等問題,提升模型推理效率。

經過演算法加速後生成的風格化圖片效果

火山引擎機器學習平臺將推理速度提升3.47倍,抖音同款智慧繪圖產品已toB

當前,伴隨AIGC的應用日益多元和廣泛,使用者的痛點也隨之浮上水面。

以Stable Diffusion為例,一次完整的預訓練大約需要在 128 張 A100 計算卡上運行 25 天,使用者付費上百萬,高額的研發費用是使用者最大的痛點之一。

同時,AIGC 產品演進快速,對性能和資源提出更高要求。

字節跳動旗下的雲服務平臺火山引擎為此類問題提供了解決方案,推動 AIGC 產業的發展。

火山引擎機器學習平臺打造同時支持訓練加速與推理加速的自主研發高性能運算元庫,在全面提升 AI 計算性能的基礎上,不斷追求節省視訊記憶體、簡單適配,同時支持多款 GPU 卡,為客戶帶來更多低成本、便捷的部署方案。

在推理場景下,基於 Stable Diffusion 模型的端到端推理速度達到 66.14 it/s,是 PyTorch 推理速度的 3.47 倍,運行時 GPU 視訊記憶體佔用量降低 60%。

在客戶 AI 視訊創作的 AIGC 推理業務實踐中,火山引擎高性能運算元庫搭載客戶的推理模型幫助其推理性能提升一倍,GPU 資源使用量減少一半,可為客戶節省 50% 成本。

在訓練場景下,使用該高性能運算元庫可將上文 Stable Diffusion 模型在 128 張 A100 的訓練時間從 25 天減少到 15 天,訓練性能提升 40%。

同時,由於 AIGC 模型在訓練時佔用 GPU 視訊記憶體容量非常大,未經最佳化時的模型只能運行在最高端的 A100 80GB GPU 卡上。火山引擎高性能運算元庫通過大量消減中間操作,將運行時 GPU 視訊記憶體佔用量降低 50%,使得大多數模型可從 A100 遷移到成本更低的 V100 或 A30 等 GPU 卡上運行,擺脫特定計算卡的限制,而且不需要做額外的模型轉換工作。

以此,以 AIGC 場景為代表,無論是迭代速度,還是單次的訓練成本,都有了顯著的性能提升和成本節省。

另外,火山引擎還面向企業客戶推出了智慧繪圖產品,省去企業採集資料、訓練模型和最佳化性能的時間和成本,可以快速接入業務,讓企業擁有開箱即用、抖音同款的AI繪畫能力。

*本文系量子位獲授權刊載,觀點僅為作者所有。

相關文章

AIGC改變世界?拉斯維加斯給出答案

AIGC改變世界?拉斯維加斯給出答案

夢晨 發自 凹非寺 最早關注到AI繪畫是在去年6月。 當時有人突然發現,在提示詞中加上「虛幻引擎」就能讓畫質飆升,簡直像咒語一樣。 但受限於...