作者deepdish (Keep The Faith)
看板AI_Art
標題[情報] 12秒內AI在手機上完成作畫!谷歌提出擴
時間Thu Apr 27 17:25:30 2023
https://www.51cto.com/article/753228.html
作者:量子位 2023-04-27 13:06:46 人工智能
谷歌的研究員們帶來了這篇新成果,名字就叫Speed is all you need:
通過GPU優化加速大規模擴散模型在設備上的推理速度。
只需12秒,只憑手機自己的算力,就能拿Stable Diffusion生成一張圖像。
而且是完成了20次迭代的那種。
圖片
https://i.imgur.com/pkArN13.png
要知道,現在的擴散模型基本都超過了10億參數,想要快速生成一張圖片,
要么基於雲計算,要么就是要本地硬件夠強大了。
而隨著大模型應用逐漸普及開來,在個人電腦、手機上跑大模型很可能是未來的新趨勢。
由此,谷歌的研究員們帶來了這篇新成果,名字就叫Speed is all you need:
通過GPU優化加速大規模擴散模型在設備上的推理速度。
圖片
https://i.imgur.com/4vHmOVD.png
三步走優化加速
該方法是針對Stable Diffusion來做的優化,但同時也能適應其他擴散模型。
面向的任務是從文本生成圖像。
具體優化可以分成三個部分:
設計專門的內核
提升Attention模型效率
Winograd卷積加速
首先來看專門設計的內核,它包括了組歸一化和GELU激活函數。
組歸一化是在整個UNet體系結構中實現,
這種歸一化的工作原理是將特徵映射的通道劃分為更小的組,並對每個組獨立歸一,
使組歸一化較少依賴於批大小,並且能適應更大範圍的批處理大小和網絡架構。
研究人員以GPU著色器(shader)的形式設計了一個獨特的核,
能在沒有任何中間張量的情況下,在單個GPU命令中執行所有內核。
GELU激活函數中,包含大量的數值計算,如懲罰、高斯誤差函數等。
通過一個專用著色器來整合這些數值計算以及伴隨的分割和乘法操作,
使得這些計算能放在一個簡單的draw call裡。
Draw call是CPU調用圖像編程接口,命令GPU進行渲染的操作。
接下來,到了提升Attention模型效率方面,論文介紹了兩種優化方法。
其一是部分融合softmax函數。
為了避免在大矩陣A上執行整個softmax計算,
該研究設計了一個GPU著色器來計算L和S向量以減少計算,
最終得到一個大小為N×2的張量。
然後將softmax計算和矩陣V的矩陣乘法融合。
這種方法大幅減少了中間程序的內存佔用張量和總體延遲。
圖片
https://i.imgur.com/ZDsFsIC.png
需要強調的是從A到L、S的計算映射的並行是有限的,
因為結果張量中的元素比輸入張量A中的元素數量要少得多。
為了增加並行、進一步降低延遲,該研究將A中的元素組成block,
將歸約操作(reduction operations)切分為多個部分進行。
然後在每個block上執行計算,然後將其簡化為最終結果。
利用精心設計的線程和內存緩存管理,可以在多個部分實現使用單個GPU命令降低延遲。
另一種優化方法是FlashAttention。
這是去年火起來的IO感知精確注意力算法,具體有兩種加速技術:
按塊遞增計算即平鋪、並在後向傳遞中重新計算注意力,
將所有註意力操作融合到CUDA內核中。
相較於標準Attention,這種方法能減少HBM(高帶寬內存)訪問,提高整體效率。
不過FlashAttention內核的緩存器密集度非常高(register-intensive),
所以該團隊是有選擇性地使用這一優化方法。
他們在註意力矩陣d=40的Adreno GPU和Apple GPU上使用FlashAttention,
其他情況下使用部分融合softmax函數。
第三部分是Winograd卷積加速。
它的原理簡單來說就是使用更多的加法計算來減少乘法計算,從而降低計算量。
但弊端也很明顯,將會帶來更多的顯存消耗和數值錯誤,尤其是在tile比較大的情況時。
Stable Diffusion的主幹非常依賴3×3卷積層,尤其是在圖像解碼器方面,
這裡90%的層都是由3×3卷積層構成的。
研究人員分析後發現,在使用4×4大小的tile時,
是模型計算效率和顯存利用率的最佳平衡點。
圖片
https://i.imgur.com/wANqphp.png
實驗結果
為了評估提升效果,研究人員先在手機上進行了基準測試。
圖片
https://i.imgur.com/uc9BH79.png
結果表明,兩部手機在使用了加速算法後,生成圖片的速度都明顯提升。
其中三星S23 Ultra的延遲降低了52.2%,iPhone 14 Pro Max上的延遲降低了32.9%。
在三星S23 Ultra上端到端從文本生成一張512×512像素的圖片,
迭代20次,耗時在12秒以內。
論文地址:
https://arxiv.org/abs/2304.11267
責任編輯:武曉燕
來源: 量子位
---------------------------------------------------------------------
心得:其實一開始是在 reddit 看到的,
https://tinyurl.com/4me2b5de
就順手 google 一下看有沒有中文的翻譯消息,只用 google 翻譯轉繁體
太技術的部分其實也是看不懂,
還有其他消息來源
https://tinyurl.com/mrpkcejc
https://twitter.com/_akhaliq/status/1650663797906972674
https://scrapbox.io/work4ai/Speed_Is_All_You_Need
其實都大同小異,
對輕量級使用者應該算好消息吧,
就不用買貴貴顯卡,
旗艦級手機上 12 秒就可以生成圖片,
而且明明蘋果哀鳳 14 pro 只有 6G 記憶體吧?
中低階手機就不知道慢多少?再等之後看有沒有其他技術人員測試
不過手機當然是實用多囉,
且每個人都有的。
--
Q 人類基本需求2.0 ◢◣ █ 自我實現 創意.問題解決.真偽.自發性
S ◢██◣ █ 尊重需求 自尊.自信.成就感
W ◢████◣ █ 社交需求
E ◢██████◣ █ 安全需求
E ◢████████◣ █ 生存需求 空氣.水.食物.住所
T ▄▄▄▄▄▄▄▄▄▄▄▄ █ WiFi█ 電池
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.24.125 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AI_Art/M.1682587538.A.15C.html
※ 編輯: deepdish (118.167.24.125 臺灣), 04/27/2023 17:52:31
1F:推 greg90326: 推 04/27 20:16
2F:推 cloki: 推 最近就在為筆電GPU不夠在煩... 04/27 21:19
3F:推 aigame: 微軟最近發表的我覺得就很好用了 04/28 01:09
5F:→ aigame: 他是用DALL-E算的我覺得滿好用 04/28 01:11
6F:推 Vulpix: 寫字很不錯,不過只能從64*64 upscale就註定畫不了太大的 05/05 12:26
7F:→ Vulpix: 畫面。但是用來做有字的物件很方便。 05/05 12:26