「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 繪畫能力。
* 本文系量子位獲授權刊載,觀點僅為作者所有。
— 完 —
量子位 QbitAI
վ ' ᴗ ' ի 追蹤 AI 技術和産品新動态
一鍵三連「分享」、「點贊」和「在看」
科技前沿進展日日相見 ~