加州大學(xué)伯克利分校、東洋大學(xué)、東京工業(yè)大學(xué)、麻省理工學(xué)院和筑波大學(xué)等研究人員,聯(lián)合開源了一款創(chuàng)新性實時交互圖像生成框架——Stream Diffusion。
Stream Diffusion的技術(shù)創(chuàng)新點在于,將傳統(tǒng)的順序去噪變成流批處理去噪,消除了漫長的等待、交互生成方式,實現(xiàn)了流暢且吞吐量超高的圖像生成方法。
同時引入了“殘差無分類器指導(dǎo)”方法,進(jìn)一步提升了流批處理的效率和圖像質(zhì)量。
根據(jù)Stream Diffusion在Github上的項目提交歷史記錄顯示,僅用了8天的時間就收到6100顆星成為霸榜開源產(chǎn)品,其性能和歡迎程度可見一斑。允許開發(fā)者商用。
開源地址:https://github.com/cumulo-autumn/StreamDiffusion
論文地址:https://arxiv.org/abs/2312.12491
Demo展示:https://github.com/cumulo-autumn/StreamDiffusion/blob/main/assets/demo_03.gif
目前,擴(kuò)散模型在圖像生成方面獲得了廣泛應(yīng)用并成功實現(xiàn)商業(yè)化落地,例如,該領(lǐng)域的標(biāo)桿產(chǎn)品Midjourney。
但在實時交互方面表現(xiàn)不佳需要漫長的等待,尤其是涉及連續(xù)輸入的場景中尤為明顯。
為了解決這些難題,研究人員設(shè)計了一種新穎的輸出、輸入方法,就是將原始的順序去噪轉(zhuǎn)化為批處理去噪過程。
簡單來說,Stream Diffusion相當(dāng)于大模型領(lǐng)域的機(jī)械化流水作業(yè),將單一、繁瑣的去噪、推理流程改成批量處理。
流批式去噪方法
流批式去噪是Stream Diffusion的核心功能之一,也是實現(xiàn)實時交互的關(guān)鍵所在。
傳統(tǒng)的交互式擴(kuò)散模型都是順序執(zhí)行:一次輸入一張圖片,走完全部的去噪步驟后,再輸出一張結(jié)果圖像。然后不斷重復(fù)這個過程,生成完成更多的圖像處理。
這樣就造成一個很大的問題速度和質(zhì)量難以同時得到保證。為了生成高質(zhì)量的圖像,需要設(shè)置較多的去噪步驟,導(dǎo)致生成圖像的效率較慢,無法做到“魚與熊掌”兼得。
流批式去噪的核心思想是:當(dāng)輸入第一張圖像開始去噪步時,不必等待它完成,就可以接收第二張圖像,以實現(xiàn)批量方式處理。
這樣,U-Net只需要不斷調(diào)用,處理一個批量的特征,就可以高效實現(xiàn)圖像生成流水線的批量推進(jìn)。
此外,流批式去噪方法的好處在于,每次調(diào)用U-Net就可以使多個圖像同時推進(jìn)一步,而U-Net的批量運算非常適合GPU并行計算,所以整體運算效率非常高。
最終可以在保證質(zhì)量的同時,顯著縮短單張圖像的生成時間。
殘差無分類器指導(dǎo)
為了強(qiáng)化提示條件對結(jié)果的影響,擴(kuò)散模型通常使用一種叫“無分類器指導(dǎo)”的策略。
在傳統(tǒng)方法中,計算負(fù)條件向量時需要對每個輸入潛向量配對負(fù)條件嵌入,每次推理都要調(diào)用U-Net算力消耗巨大。
為了解決這個問題,研究人員提出了“殘差無分類器指導(dǎo)”方法。其核心方法是,假定存在一個“虛擬殘差噪聲”向量,用來逼近負(fù)條件向量。
首先計算“正條件”向量,再用正條件向量反推這個虛擬負(fù)條件向量。這樣就避免了每次都要額外調(diào)用U-Net來計算真實的負(fù)條件向量,從而大幅減少了算力。
簡單來說,就是用原始的輸入圖像編碼作為負(fù)樣本,無需調(diào)用U-Net就可以計算。稍微復(fù)雜一點的“一次負(fù)條件”,是在第一步使用U-Net計算一次負(fù)向量,然后重復(fù)使用這個向量近似后面的所有負(fù)向量。
流水線作業(yè)
該模塊的功能是使整個系統(tǒng)的瓶頸不再是數(shù)據(jù)格式的轉(zhuǎn)換,而是基于模型本身的推理時間。
通常,輸入的圖片需要縮放、轉(zhuǎn)換格式等預(yù)處理才能成為模型可用的張量;輸出的張量也需要后處理恢復(fù)為圖片格式,整個流程消耗大量時間和算力。
流水線作業(yè)將預(yù)/后處理與模型推理完全分離開來,置于不同的線程中并行執(zhí)行。輸入圖像經(jīng)過預(yù)處理進(jìn)入輸入隊列緩存;
輸出張量從輸出隊列發(fā)出,再后處理為圖片。這樣兩者就可以不互相等待,從而優(yōu)化了整體流程速度。
此外,該方法還起到平滑數(shù)據(jù)流的作用。當(dāng)輸入源故障或通信錯誤導(dǎo)致暫時沒法傳入新圖像時,隊列可以繼續(xù)提供之前緩存的圖像,保證模型的流暢運行。
隨機(jī)相似度過濾
該模塊的功能是顯著減少GPU算力消耗。當(dāng)輸入的圖片連續(xù)相同或高度相似時,反復(fù)推理是沒有任何意義的。
所以,相似度過濾模塊計算輸入圖片與歷史參考幀的相似度。如果高于設(shè)定閾值,則以一定概率跳過后續(xù)的模型推理;
如果低于閾值,則正常進(jìn)行模型推理并更新參考幀。這種概率采樣機(jī)制使得過濾策略可以平滑自然地對系統(tǒng)進(jìn)行節(jié)流,降低平均GPU使用率。
在靜態(tài)輸入下過濾效果明顯,動態(tài)變化大時自動降低過濾率,系統(tǒng)可以自適應(yīng)場景動態(tài)性。
這樣,復(fù)雜度動態(tài)變化的連續(xù)流輸入下也可以自動調(diào)節(jié)系統(tǒng)推理負(fù)載,節(jié)約GPU算力消耗。
實驗數(shù)據(jù)
為了測試Stream Diffusion的性能,研究人員在RTX3060、RTX4090上進(jìn)行了測試。
效率方面,實現(xiàn)了超過91 FPS的生成幀率,是當(dāng)前最先進(jìn)的AutoPipeline的近60倍,并極大減少去噪步驟。
功耗方面,靜態(tài)輸入下,RTX3060和RTX4090的平均功率分別降低了2.39倍和1.99倍。
本文素材來源Stream Diffusion論文,如有侵權(quán)請聯(lián)系刪除
未經(jīng)允許不得轉(zhuǎn)載:RPA中國 | RPA全球生態(tài) | 數(shù)字化勞動力 | RPA新聞 | 推動中國RPA生態(tài)發(fā)展 | 流 > 8天狂收6100顆星,可商用!東京工業(yè)、麻省理工等開源Stream Diffusion
熱門信息
閱讀 (14728)
1 2023第三屆中國RPA+AI開發(fā)者大賽圓滿收官&獲獎名單公示閱讀 (13753)
2 《Market Insight:中國RPA市場發(fā)展洞察(2022)》報告正式發(fā)布 | RPA中國閱讀 (13055)
3 「RPA中國杯 · 第五屆RPA極客挑戰(zhàn)賽」成功舉辦及獲獎名單公示閱讀 (12964)
4 與科技共贏,與產(chǎn)業(yè)共進(jìn),第四屆ISIG中國產(chǎn)業(yè)智能大會成功召開閱讀 (11567)
5 《2022年中國流程挖掘行業(yè)研究報告》正式發(fā)布 | RPA中國