国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

云廠商布局AIGC,火山引擎如何做到訓練提升40%、推理提升3.47倍?

甲子光年
+ 關注
2022-12-19 14:43
520次閱讀

云廠商布局AIGC,火山引擎如何做到訓練提升40%、推理提升3.47倍?

云廠商布局AIGC,火山引擎如何做到訓練提升40%、推理提升3.47倍?

為AIGC客戶降本增效。

作者 | 趙健

AIGC是當前AI領域最熱門的話題之一。

尤其是伴隨著Stable Diffusion、Midjourney、NovelAI、DALL-E等為代表的文本生成圖像的跨模態應用涌現,AIGC更是火爆出圈。

最常見的AIGC應用莫過于AI繪畫了。抖音在11月底上線了AI繪畫特效,根據照片生成二次元頭像,目前已經有近2600萬人使用。

抖音AI繪畫特效背后的技術支撐,來自于字節跳動的云服務平臺火山引擎,抖音AI繪畫的上線也意味著火山引擎正式進入AIGC領域,為抖音以及全行業提供底層的技術支撐、工程優化等能力。

AIGC由人工智能生成聲音、圖像、視頻等內容,被認為是繼PGC(專業生產內容)、UGC(用戶生產內容)之后,新一代的內容生產方式。

但AIGC的大規模普及,仍然尚需時日,還需要克服高昂的成本等問題。

火山引擎的機器學習平臺,正是為了解決這些問題,以此來推動AIGC產業的發展?!讣鬃庸饽辍共稍L了火山引擎機器學習平臺相關負責人,來探究火山引擎對AIGC的投入與創新。

火山引擎相對PyTorch原生基線訓練提升40%、推理提升3.47倍。對此,火山引擎是如何做到的?

1.降低AIGC成本,需要云的助力 云廠商布局AIGC,火山引擎如何做到訓練提升40%、推理提升3.47倍?

AIGC火了之后,也催生了新興的AI獨角獸,最具代表性的就是主打AI文字生成的Jasper.ai,以及主打AI生成繪畫的Stability AI。

科技巨頭也不甘落后,紛紛推出各自的AI工具,比如英偉達推出了全新的Magic3D,能夠基于文本描述自動生成3D模型;Meta推出了高性能推理引擎AITemplate,大幅簡化多GPU后端部署。

今年7月Stability AI這家公司將其AI文本-圖像生成模型Stable Diffusion開源,后續開發者只需要在此開源模型的基礎上做一定的調整開發工作,就可以得到屬于自己的AI繪畫創作。

但是,AIGC仍然存在一定的門檻,尤其是對于國內的開發者來說。

現有Diffusion模型主要使用英文數據進行訓練。由于中英文在文化和表達上的的差異性,如果直接將英文數據翻譯成中文進行模型訓練,產出的模型通常無法建模中文特有的現象。此外,通用的Stable Diffusion模型由于數據源的限制,很難用于生成特定領域、特定場景下的高清圖片。

同時,高昂的成本也一定程度上限制了AIGC產業的大規模普及。

以Stable Diffusion為例,最初版本的Stable Diffusion動用了256塊英偉達A100 GPU,花費了15 萬小時的總訓練時長,僅這一項成本就是60萬美元。即使是Fine Tune(微調),也需要消耗幾天時間。換算成錢來看,一次完整的預訓練可能需要上百萬的成本,Fine Tune階段也需要二十多萬/次。目前AIGC市場火爆,各種畫風和產品形態頻頻出現且快速演進,這樣的預訓練和Fine Tune的次數肯定不會少。

對于創業公司來說,開發這樣體量的大模型困難重重,不僅僅是寫一套算法那么簡單,還包括數據準備、模型開發、訓練調優、模型部署等多個環節,甚至在模型的訓練與模型的推理階段還需使用不同的芯片,每一個環節工作量都不小。

其次,在模型推理方面,隨著AIGC火爆全網,各個產品的QPS(Queries Per Second,每秒查詢率)壓力都非常大,原先預計的幾百上千資源,可能需要短時間擴容至上千甚至是萬規模,才能保證前端的服務質量。而目前的開源加速方案,僅適用于標準的Stable Diffusion加速,需要用戶有較強的工程適配能力。

火山引擎就觀察到,火山上的很多用戶,由于自己的模型有些許改動、且時間有限,都是用原始框架直接部署。

因此,不少AI初創公司選擇把模型開發這項“AI煉丹”的工作通過云來完成,以期相對低成本、又能無限算力的方式獲取云端資源。

Stability AI選擇了AWS的云服務,目前擁有一個在 AWS 中運行的由 4000 多個英偉達A100 GPU 組成的集群,用于訓練包括 Stable Diffusion在內的 AI 系統。在今年的亞馬遜re:Invent大會上宣布雙方達成戰略合作。

云廠商基本也是基于這個邏輯布局AIGC,即為AIGC產業提供基礎設施。

作為最年輕的一朵云,火山引擎在AIGC領域的表現卻一點也不像個新手,其模型推理速度達到了66it/s,是目前已公開的模型優化速度最快的平臺。

云廠商布局AIGC,火山引擎如何做到訓練提升40%、推理提升3.47倍?

火山引擎憑什么做到?

2.火山引擎,極致優化 云廠商布局AIGC,火山引擎如何做到訓練提升40%、推理提升3.47倍?

火山引擎在性能、顯存消耗以及接入方式這3個方面,都做到了極致。

首先,是訓練和推理的GPU性能。火山引擎計算加速團隊對Stable Diffusion的整個模型做了詳盡的分析,然后按照如下思路逐步優化訓練和推理的性能。

第一步,確定Kernel Fusion優化范圍。

眾所周知,Kernel Fusion是GPU優化最常用有效的技巧,通過將多個連續的或者可以并行執行的操作,融合為盡可能少的GPU kernels,可以大量減少重復的顯存讀寫、降低Kernel launch的開銷,從而實現更優的性能。

然而,由于Kernel Fusion后的算子粒度往往較原始實現大很多,有時候大量的Kernel Fusion會極大地限制優化適用的靈活性。

對此,火山引擎優化團隊充分考慮模型內在的計算邏輯、不同GPU硬件的硬件參數及特性、以及現有的GPU基礎庫提供的基礎能力,通過設計多個層級不同粒度的優化算子,同時兼顧優化性能以及模型未來迭代的發展趨勢。

比如,通過擴展Cutlass,火山引擎在卷積操作前后可以額外添加豐富靈活的前后處理,比如add bias或者residual等,這就打破了以往以卷積為界限的Kernel Fusion斷點,在Stable Diffusion這樣卷積操作很重且Tensor很大的網絡中就可以取得很好的性能收益。再比如,依托Flash-Attention算法,火山引擎可以突破片上shared memory的限制,將整個Attention操作融合為一個操作。

經過Kernel Fusion后,Stable Diffusion v1 訓練和推理的CUDA Kernels數量相比原始的PyTorch實現,分別減少了50%和60%。

第二步,并行算法重設計。

對于每個算子,均會從問題的本質出發,并結合現有的GPU硬件參數,設計更優的并行算法實現。

比如,LayerNorm是深度學習里非常典型常用的一個操作,其反向操作均涉及到大量的按列求和操作,PyTorch使用比較基礎的實現來組裝,而火山引擎通過更好的并行算法實現,僅用2個kernel就完成了全部的反向操作。再比如,GroupNorm是StableDiffusion中耗時較高的一個操作,其性能非常受Tensor Layout排布的影響。火山引擎對兩種Layout下的GroupNorm操作,做了不同的并行算法設計,最終該操作前后向分別加速50%和30%。

第三步,SOL評估。對每個操作,都會仔細評估其需要的最少數據讀寫、以及浮點操作數量。過程中會借助一系列Profiling工具,深入SASS Code層,爭取每個CUDA Kernel都能達到SOL的80-90%的水平。

其次,降低顯存消耗。

性能優化的過程中,通過大量的Kernel Fusion,就可以大幅減少中間Tensor的讀寫。除此之外,火山引擎進一步,在訓練優化過程中,將部分輕量級操作以re-compute的方式來進行反向推導,可以進一步減少顯存消耗。最終,可以使單張上可以同時計算更大的batch_size,進一步提高整體吞吐。

最后,火山引擎在接入方式上也做了極致簡化。

因為火山引擎提供的加速算子,同時支持高效訓練和推理,從而真正實現了訓推一體,因此可以從模型訓練到推理部署做到無縫銜接。接入方式上提供由Pytorch Custom op搭建出的相同模型結構,完全兼容原始Stable Diffusion模型的Pipeline, 接入方便且無需改動框架。

在推理部署時,高性能算子庫可以支持不同GPU硬件,包括英偉達V100、A100、A10、A30等不同系列的GPU卡,而且不需要做額外的模型轉換工作。

未經優化時,絕大多數模型只能在最高端的A100 80GB訓練卡上跑起來。而火山引擎提供的訓練加速,能夠擺脫特定計算卡的限制,讓客戶在更廣泛的范圍內尋找適合自己需求的解決方案。

火山引擎目前提供40%的訓練加速,這樣在同類型的云產品上訓練,無論是迭代速度,還是單次的訓練成本,都有了明顯的提升和節省。

3.經過抖音內部實踐的考驗 云廠商布局AIGC,火山引擎如何做到訓練提升40%、推理提升3.47倍?

今年7月,Stable Diffusion的V1版本開源時,火山引擎已經做了初步的嘗試。11月25日Stable Diffusion的V2版本發布,火山引擎在此基礎上又花了不到2周的時間,做了基礎工程的優化。這是抖音AI繪畫特效上線的技術準備工作。

除了做好技術的基本功,還需要有一個好的練兵場。對于火山引擎而言,抖音就在字節跳動內部為火山引擎提供了一個絕佳的內部實踐。

火山引擎機器學習總監吳迪告訴「甲子光年」:“要把包含了AIGC以及機器翻譯、人機交互、語音識別等多媒體模型的訓練和推理做好,是有一定門檻的,需要長時間的技術和經驗積累。而抖音的產品形態中包含了豐富的多模態內容,抖音的高標準要求和多樣化的產品形態在不停地打磨火山引擎機器學習平臺的工程團隊。在這樣嚴苛的長期錘煉下, 火山機器學習團隊有信心,把最有競爭力的機器學習優化能力帶給客戶。幫助客戶用更低的成本去敏捷迭代。”

在內部與抖音的合作過程中,火山引擎的機器學習平臺團隊主要做工程優化方面的工作。有時候如果僅僅依靠工程團隊仍然沒有辦法滿足上線需求,就會與算法團隊一起做更透徹的優化,比如進一步的量化,或者是對模型進行一些蒸餾、裁剪等。

抖音對于火山引擎所提出的訴求,往往也代表了所有市場用戶的基本訴求,首當其沖的就是“降低成本”。

作為一款國民級短視頻應用,抖音所持有的機器總量很大,因此即使是細微的性能節省,都將帶來巨大的資金回報。因此,當火山引擎的AIGC模型,優化速度提升40%,硬件成本降低百分之二三十,訓練成本降低80%,相比目前最快的TensorRT部署方案,推理還快10%,將會帶來巨大的成本優勢。

除了更省錢之外,還必須要穩定,不能出錯。

近期OpenAI推出的聊天機器人模型chatGPT,就因為太過火爆而一度服務器崩潰。作為一款現象級產品,這并沒有影響到用戶對chatGPT的熱情,但用戶體驗總歸不夠友好,同樣的事情如果發生在抖音,可能就是一次產品事故。

為了避免這種情況發生,火山引擎必須做到足夠的穩定性,能夠抗住激增流量的壓力。為此,火山引擎不僅要做模型的優化,還要在服務框架層面做一些穩定性的優化。

第三是要保證充足的資源供應。

火山引擎管理了大量計算資源,來支撐字節跳動的整體業務。但這些卡片不會是永遠忙碌的,一定有的處在業務峰值,有的處于相對閑置的狀態。此時,就需要有一個自動化的資源調動系統,能夠“集中力量干大事”。比如,當AIGC的應用在短時間內需要大量資源的時候,火山引擎可以在小時級或者分鐘級的時間內,從其他相對閑置的場景資源去調取,形成一種靈活、彈性的資源供應。

最后就是滿足差異化的場景。

AIGC的火爆也帶火了機器學習在多媒體方面的應用。其實在抖音內部,多媒體的機器學習應用早就層出不窮了,火山引擎的模型優化要去理解每一幀圖片、每一個視頻、文字與語音之間的關聯等等,其豐富程度通常遠大于市面上常見的一些形態。

同時,因為抖音也有強大的算法團隊,意味著模型的變化幅度與速度都是非??斓?,這也是市場的的一些優化方案僅僅支持好一些基礎版本的模型就可以,而火山引擎一定要考慮算法整體設計方案的靈活性,滿足“變來變去”的需求。

如今,抖音的AI繪畫特效已經有接近2600萬人使用。

AIGC目前仍然處在大規模爆發的前夜,而諸如AI繪畫這樣的早期應用,正是打開AIGC市場的一把鑰匙。而隨著火山引擎這樣的云平臺不斷把降本、增效這件事做到極致,AIGC產業大規模爆發的那一刻,有望在不久的將來快速實現。

END.

親愛的朋友們,不知不覺2022即將過去,感謝大家又一年的陪伴,在2022的最后幾周,我們邀請所有的朋友們來分享你在2022難忘的回憶,我們將挑選其中的一些故事放入甲子光年2022年終回顧文章中,掃碼下方二維碼,分享屬于你的2022故事吧!

本文來自微信公眾號“甲子光年”(ID:jazzyear),作者:趙健,36氪經授權發布。

0
相關話題
AIGC賽道追蹤
相關文章
最新文章
查看更多
關注 36氪企服點評 公眾號
打開微信掃一掃
為您推送企服點評最新內容
消息通知
咨詢入駐
商務合作