為了推進(jìn) AIGC 行業(yè)的降本增效,同時(shí)也回應(yīng)用戶的熱情要求,OneFlow 正在將業(yè)內(nèi)備受歡迎的相關(guān) Diffusion 模型的加速“一網(wǎng)打盡”。
此前,OneFlow 首度將 Stable Diffusion 模型加速至“一秒出圖”時(shí)代,極大提升了文生圖的速度,在 AIGC 領(lǐng)域引發(fā)巨大反響,并得到了 Stability.ai 官方的支持。
(資料圖)
不過,由于目前大部分團(tuán)隊(duì)主要是基于翻譯 API + 英文 Stable Diffusion 模型進(jìn)行開發(fā),所以在使用中文獨(dú)特的敘事和表達(dá)時(shí),英文版模型就很難給出正確匹配的圖片內(nèi)容,這對(duì)部分國(guó)內(nèi)用戶來說不太方便。
為此,國(guó)內(nèi)的 IDEA 研究院出品了中文版太乙Stable Diffusion,春節(jié)前,OneFlow 對(duì)此進(jìn)行了支持,使其推理速度翻倍。
另外,智源研究院出品了首個(gè)支持 9 種語言的?AltDiffusion。近期,OneFlow 團(tuán)隊(duì)為其適配了 OneFlow 后端,大大提升了推理性能,也可以做到一秒出圖。
歡迎Star、運(yùn)行 OneFlow 版 AltDiffusion:
https://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion#without-docker
通過搭建多語言文圖表征模型 AltCLIP,智源研究院的研究者先推出了中英雙語圖像生成模型?AltDiffusion,支持精細(xì)長(zhǎng)中文 Prompts 高級(jí)創(chuàng)作,為中文世界帶來專業(yè)級(jí) AI 文圖創(chuàng)作的強(qiáng)勁動(dòng)力。
在此基礎(chǔ)上,研究者很快又推出了多語言升級(jí)版AltDiffusion-m9,其成為首個(gè)支持 9 種語言(英文、中文、日語、法語、韓語、西班牙語、俄語、意大利語、阿拉伯語)的文圖生成模型。該研究的主要貢獻(xiàn)是搭建了一個(gè)多語言文圖生成模型的基石,使得更多使用不同語言的創(chuàng)作者可以通過 AltDiffusion 模型進(jìn)行創(chuàng)作。
AltDiffusion 在多語言對(duì)齊方面表現(xiàn)非常出色,是目前市面上開源的最強(qiáng)多語言版本,保留了原版 Stable Diffusion的大部分能力,并且在某些例子上的表現(xiàn)比原版模型更出色。
比如當(dāng)用戶給定不同語言的提示語(prompt),模型即可展現(xiàn)語言背后所反映的不同文化圖像面貌,如直接生成不同人種的人物形象或不同的地域風(fēng)物特征。
后文將展示 OneFlow 版?AltDiffusion 的性能表現(xiàn)以及生成圖片,不少開發(fā)者好奇 OneFlow 使用了哪些優(yōu)化“秘笈”,也將進(jìn)行簡(jiǎn)要解讀。
1
對(duì)比 PyTorch,OneFlow 將“AltDiffusion”推理速度提升 1 倍以上
下面的圖表分別展示了在 A100 (PCIe 40GB / SXM 80GB),V100 ( SXM2 32GB ), RTX 3090,RTX 3080 Ti,RTX 2080和 T4 不同類型的 GPU 硬件上分別使用 PyTorch, 和 OneFlow 對(duì) AltDiffusion 進(jìn)行推理的性能表現(xiàn)。
可以看到,對(duì)于 A100 顯卡,無論是 PCIe 40GB 的配置還是 SXM 80GB 的配置,OneFlow 的性能相比 PyTorch 能提升 1 倍以上,推理速度達(dá)到了 51it/s 以上,生成一張圖片所需要的時(shí)間在 1 秒以內(nèi)。
其他硬件性能數(shù)據(jù):
綜上,在各種硬件的對(duì)比中,對(duì)比 PyTorch, OneFlow 平均能將 AltDiffusion 的推理性能提升 1 倍左右。
2
生成圖片展示
滔滔江水, 連綿不絕, 唯美, 插畫
長(zhǎng)城, 清晨, 朦朧, 唯美, 插畫
夢(mèng)回江南,中國(guó)古代小鎮(zhèn),唯美,插畫
中國(guó)的未來城市, 科幻,插畫
古代建筑, 白雪紛飛
巴黎鐵塔下情侶
黑暗精靈公主,非常詳細(xì),幻想,非常詳細(xì),數(shù)字繪畫,概念藝術(shù),敏銳的焦點(diǎn),插圖
金發(fā)天使戴著兔耳朵發(fā)圈,非常詳細(xì),幻想,非常詳細(xì),數(shù)字繪畫,概念藝術(shù),敏銳的焦點(diǎn),插圖
用照相機(jī)拍照的可愛女孩,非常詳細(xì),幻想,非常詳細(xì),數(shù)字繪畫,概念藝術(shù),敏銳的焦點(diǎn),插圖
注:上述圖片均基于 OneFlow 版AltDiffusion 生成
3
無縫兼容 PyTorch 生態(tài)
想體驗(yàn) OneFlow 版的 AltDiffusion?只需要修改兩行代碼:
之所以能這么輕松遷移模型,是因?yàn)?OneFlow Stable Diffusion 有兩個(gè)出色的特性:
1. OneFlowAltDiffusionPipeline.from_pretrained?能夠直接使用 PyTorch 權(quán)重;
2. OneFlow 本身的 API 和 PyTorch 對(duì)齊,因此?import oneflow as torch?之后,torch.autocast、torch.float16?等表達(dá)式完全不需要修改。
上述特性使得 OneFlow 兼容了 PyTorch 的生態(tài),這不僅在 OneFlow 對(duì) AltDiffusion 的遷移中發(fā)揮了作用,也大大加速了 OneFlow 用戶遷移其它許多模型,比如在和 torchvision 對(duì)標(biāo)的 flowvision 中,許多模型只需通過在 torchvision 模型文件中加入import oneflow as torch即可得到。
此外,OneFlow 還提供全局 “mock torch” 功能,在命令行運(yùn)行eval $(oneflow-mock-torch)?就可以讓接下來運(yùn)行的所有 Python 腳本里的?import torch?都自動(dòng)指向 oneflow。
4
動(dòng)靜一體的編程體驗(yàn)
深度學(xué)習(xí)算法原型開發(fā)階段需要快速修改和調(diào)試,動(dòng)態(tài)圖執(zhí)行(Eager mode, define by run)最優(yōu)。但在部署階段,模型已經(jīng)固定下來,計(jì)算效率變得更重要,靜態(tài)圖執(zhí)行(Lazy mode,define and run)可以借助編譯器做靜態(tài)優(yōu)化來獲得更好的性能。因此,推理階段主要使用靜態(tài)圖模式。
最近,PyTorch 升級(jí)到2.0引入了?compile()?這個(gè)API,可以把一個(gè)模型或一個(gè)Module從動(dòng)態(tài)圖執(zhí)行變成靜態(tài)圖執(zhí)行。OneFlow里也有一個(gè)類似的機(jī)制,不過接口名是?nn.Graph(),它可以把傳入Module轉(zhuǎn)成靜態(tài)圖執(zhí)行模式。
不僅如此,OneFlow的nn.Graph模式基于MLIR實(shí)現(xiàn)了一系列計(jì)算圖的圖層優(yōu)化,譬如內(nèi)存布局、算子融合等。
這不僅使得計(jì)算圖表示的深度學(xué)習(xí)模型可以在各種硬件上達(dá)到最高性能,更重要的是,使得深度學(xué)習(xí)框架導(dǎo)入的計(jì)算圖更方便地在不同硬件之間實(shí)現(xiàn)遷移,有助于克服國(guó)產(chǎn)硬件軟件生態(tài)薄弱的問題。
未來,我們將發(fā)布更多內(nèi)容來揭示OneFlow深度學(xué)習(xí)編譯器的設(shè)計(jì)和實(shí)現(xiàn)。
歡迎Star、運(yùn)行 OneFlow 版 AltDiffusion:
https://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion#without-docker
OneFlow 地址:
https://github.com/Oneflow-Inc/oneflow/
其他人都在看
OneFlow v0.9.0正式發(fā)布
OpenAI掌門人Sam Altman的成功學(xué)
李白:你的模型權(quán)重很不錯(cuò),可惜被我沒收了
比快更快,開源Stable Diffusion刷新作圖速度
OneEmbedding:單卡訓(xùn)練TB級(jí)推薦模型不是夢(mèng)
GLM訓(xùn)練加速:性能最高提升3倍,顯存節(jié)省1/3
“零”代碼改動(dòng),靜態(tài)編譯讓太乙Stable Diffusion推理速度翻倍
關(guān)鍵詞: