“一鍵”模型遷移,效能翻倍,多語言AltDiffusion推理速度超快

語言: CN / TW / HK

 

為了推進 AIGC 行業的降本增效,同時也回應使用者的熱情要求,OneFlow 正在將業內備受歡迎的相關 Diffusion 模型的加速“一網打盡”。

 

此前,OneFlow 首度 將 Stable Diffusion 模型加速至“一秒出圖”時代 ,極大提升了文生圖的速度,在 AIGC 領域引發巨大反響,並得到了 Stability.ai 官方的支援。

 

不過,由於目前大部分團隊主要是基於翻譯 API + 英文 Stable Diffusion 模型進行開發,所以在使用中文獨特的敘事和表達時,英文版模型就很難給出正確匹配的圖片內容,這對部分國內使用者來說不太方便。

 

為此,國內的 IDEA 研究院出品了中文版 太乙Stable Diffusion ,春節前,OneFlow 對此進行了支援,使其推 理速度翻倍。

 

另外,智源研究院出品了首個支援 9 種語言的 AltDiffusion。近期OneFlow 團隊為其適配了 OneFlow 後端,大大提升了推理效能,也可以做到一秒出圖。

 

歡迎Star、執行 OneFlow 版 AltDiffusion:

 

http://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion#without-docker

 

通過搭建多語言文圖表徵模型 AltCLIP,智源研究院的研究者先推出了 中英雙語影象生成模型  AltDiffusi on 支援精細長中文 Prompts 高階創作,為中文世界帶來專業級 AI 文圖創作的強勁動力。

 

在此基礎上, 研究者很快又 推出了多語言升級版 AltDiffusion-m9 ,其成為 首個支援 9 種語言(英文、中文、日語、法語、韓語、西班牙語、俄語、義大利語、阿拉伯語)的文圖生成模型。該研究的主要貢獻是搭建了一個多語言文圖生成模型的基石,使得更多使用不同語言的創作者可以通過 AltDiffusion 模型進行創作。

 

AltDiffusion 在多語言對齊方面表現非常出色,是目前市面上開源的最強多語言版本,保留了原版 Stable Diffusion的大部分能力,並且在某些例子上的表現比原版模型更出色


比如當用戶給定不同語言的提示語(prompt),模型即可展現語言背後所反映的不同文化影象面貌,如直接生成不同人種的人物形象或不同的地域風物特徵。

 

 

 

後文將展示 OneFlow 版 AltDiffusion 的效能表現以及生成圖片,不少開發者好奇 OneFlow 使用了哪些優化“祕笈”,也將進行簡要解讀。

 

1

對比 PyTorch,OneFlow 將“AltDiffusion”推理速度提升 1 倍以上

 

下面的圖表分別展示了在 A100 (PCIe 40GB / SXM 80GB),V100 ( SXM2 32GB ), RTX 3090,RTX 3080 Ti,RTX 2080和 T4 不同型別的 GPU 硬體上分別使用 PyTorch, 和 OneFlow 對 AltDiffusion 進行推理的效能表現。

 

 

 

可以看到,對於 A100 顯示卡,無論是 PCIe 40GB 的配置還是 SXM 80GB 的配置, OneFlow 的效能相比 PyTorch 能提升 1 倍以上,推理速度達到了 51it/s 以上,生成一張圖片所需要的時間在 1 秒以內。

 

其他硬體效能資料:

 

 

 

 

 

 

綜上,在各種硬體的對比中,對比 PyTorch, OneFlow 平均能將 AltDiffusion 的推理效能提升 1 倍左右。

 

2

生成圖片展示

 

滔滔江水, 連綿不絕, 唯美, 插畫

 

長城, 清晨, 朦朧, 唯美, 插畫

 

夢迴江南,中國古代小鎮,唯美,插畫

 

中國的未來城市, 科幻,插畫

 

古代建築, 白雪紛飛

 

巴黎鐵塔下情侶

 

黑暗精靈公主,非常詳細,幻想,非常詳細,數字繪畫,概念藝術,敏銳的焦點,插圖

 

金髮天使戴著兔耳朵髮圈,非常詳細,幻想,非常詳細,數字繪畫,概念藝術,敏銳的焦點,插圖

 

用照相機拍照的可愛女孩,非常詳細,幻想,非常詳細,數字繪畫,概念藝術,敏銳的焦點,插圖

注:上述圖片均基於 OneFlow 版AltDiffusion 生成

 

3

無縫相容 PyTorch 生態

 

想體驗 OneFlow 版的 AltDiffusion? 只需要修改兩行程式碼:

 

 

之所以能這麼輕鬆遷移模型,是因為 OneFlow Stable Diffusion 有兩個出色的特性:

 

1. OneFlowAltDiffusionPipeline .from_pretrained   能夠直接使用 PyTorch 權重;

2. OneFlow 本身的 API 和 PyTorch 對齊,因此  import oneflow as torch  之後, torch.autocast torch.float16  等表示式完全不需要修改。

 

上述特性使得 OneFlow 相容了 PyTorch 的生態,這不僅在 OneFlow 對 AltDiffusion 的遷移中發揮了作用,也大大加速了 OneFlow 使用者遷移其它許多模型,比如在和 torchvision 對標的 flowvision 中,許多模型只需通過在 torchvision 模型檔案中加入 import oneflow as torch 即可得到。

 

此外,OneFlow 還提供全域性 “mock torch” 功能,在命令列執行 eval $(oneflow-mock-torch)  就可以讓接下來執行的所有 Python 腳本里的  import torch  都自動指向 oneflow。

 

4

動靜一體的程式設計體驗

 

深度學習演算法原型開發階段需要快速修改和除錯,動態圖執行(Eager mode, define by run)最優。但在部署階段,模型已經固定下來,計算效率變得更重要,靜態圖執行(Lazy mode,define and run)可以藉助編 譯器做靜態優化來獲得更好的效能。因此, 推理階段主要使用靜態圖模式。

 

最近,PyTorch 升級到2.0引入了  compile()   這個API,可以把一個模型或一個Module從動態圖執行變成靜態圖執行。 OneFlow裡也有一個類似的機制,不過介面名是  nn.Graph() ,它可以把傳入Module轉成靜態圖執行模式。

 

不僅如此,OneFlow的nn.Graph模式基於MLIR實現了一系列計算圖的圖層優化 ,譬如記憶體佈局、運算元融合等。

 

這不僅使得計算圖表示的深度學習模型可以在各種硬體上達到最高效能,更重要的是,使得深度學習框架匯入的計算圖更方便地在不同硬體之間實現遷移,有助於克服國產硬體軟體生態薄弱的問題。


未來,我們將釋出更多內容來揭示OneFlow深度學習編譯器的設計和實現。

 

歡迎Star、執行 OneFlow 版 AltDiffusion:

 

http://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion#without-docker

 

OneFlow 地址:

 

http://github.com/Oneflow-Inc/oneflow/

 

其他人都在看

歡迎Star、試用OneFlow最新版本:http://github.com/Oneflow-Inc/oneflow/


 

本文分享自微信公眾號 - OneFlow(OneFlowTechnology)。
如有侵權,請聯絡 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。