目錄
DDPM是什麼?
「進階版」DDPM模型MindDiffusion
One More Thing
參考連結(可滑動查看):
首頁 科技週邊 人工智慧 單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

Apr 12, 2023 pm 06:16 PM
軟體 ai 繪圖

最近爆火的AI繪圖,相信大家並不陌生了。

從AI繪圖軟體生成的作品打敗一眾人類藝術家,拿下數位藝術類冠軍,到如今DALL.E、Imagen、novelai等國內外平台遍地開花。

也許你也曾點開過相關網站,試著讓AI描繪你腦海中的風景,又或者上傳了一張自己帥氣/美美的照片,然後對著最後生成的糙漢哭笑不得。

那麼,在你感受AI繪圖魅力的同時,有沒有想過(不你肯定想過),它背後的奧妙究竟是什麼?

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

△美國科羅拉多州技術博覽會中獲得數位藝術類冠軍的作品-《太空歌劇院》

一切,都要從一個名為DDPM的模型說起…

DDPM是什麼?

DDPM模型,全名為Denoising Diffusion Probabilistic Model,可以說是現階段diffusion模型的開山鼻祖。

不同於前輩GAN、VAE和flow等模型,diffusion模型的整體思路是透過一種偏向於最佳化的方式,逐步從一個純噪音的圖片中產生影像。

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

△現在已有生成影像模型的對比

有的小夥伴可能會問了,什麼是純雜訊圖片?

很簡單,老式電視機沒訊號時,伴隨著「刺啦刺啦」噪音出現的雪花圖片,就屬於純噪音圖片。

而DDPM在生成階段所做的事情,就是把這些個「雪花」一點點移除,直到清晰的影像露出它的廬山真面目,我們把這個階段稱之為「去雜訊」。

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

△純噪音圖片:老電視的雪花螢幕

透過描述,大家可以感受到,去噪其實是個相當複雜的過程。

沒有一定的去噪規律,可能你忙活了好半天,到最後還是對著奇形怪狀的圖片欲哭無淚。

當然,不同類型的圖片也會有不同的去噪規律,至於怎麼讓機器學會這種規律,有人靈機一動,想到了一種絕妙的方法:

既然去噪規律不好學,那我為什麼不先通過加噪的方式,先把一張圖片變成純噪音圖像,再把整個過程反著來一遍呢?

這便奠定了diffusion模型整個訓練-推理的流程:先在前向過程(forward process)通過逐步加噪,將圖片轉換為一個近似可用高斯分佈的純噪聲圖像;

緊接著在反向過程(reverse process)中逐步去噪,生成圖像;

最後以增大原始圖像和生成圖像的相似度作為目標,優化模型,直至達到理想效果。

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

△DDPM的訓練-推理流程

到這裡,不知道大家的接受度怎樣?如果感覺沒問題,輕輕鬆鬆的話,準備好,我要開始上大招(深入理論)啦。

1.1.1 前向過程(forward process)

前向過程又稱為擴散過程(diffusion process),整體是一個參數化的馬可夫鏈(Markov chain)。從初始資料分佈x0~q(x)出發,每步在資料分佈中加入高斯噪音,持續T次。其中從第t-1步xt-1到第t步xt的過程可以用高斯分佈表示為:

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

透過適當的設置,隨著t不斷增加,原始資料x0會逐漸失去他的特徵。我們可以理解為,在進行了無限次的加噪步驟後,最終的數據xT會變成沒有任何特徵,完全是隨機噪音的圖片,也就是我們最開始說的「雪花屏」。

在這個過程中,每一步的變化是可以透過設定超參βt來控制,在我們知曉最開始的圖片是什麼的前提下,前向加噪的整個過程可以說是已知且可控的,我們完全能知道每個步驟的生成資料是什麼樣子。

但問題在於,每次的計算都需要從起始點出發,結合每一步的過程,慢慢推導到你想要的某步資料xt,過於麻煩。好在因為高斯分佈的一些特性,我們可以一步到位,直接從x0得到xt。

注意,這裡的

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用為組合係數,本質上是超參的βt表達式。

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

1.1.2 反向過程(reverse process)

和前向過程同理,反向過程也是馬爾可夫鏈(Markov chain),只不過這裡用到的參數不同,至於具體參數是什麼,這個就是我們需要機器來學習的部分啦。

在了解機器如何學習前,我們先思考,基於某一個原始資料x0,從第t步xt,精準反推回第t-1步xt-1的過程應該是怎樣的?

答案是,這個仍可以用高斯分佈表示:

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

#注意這裡必須要考慮x0,意思是反向過程最後產生圖像還是要與原始數據有關。輸入貓的圖片,模型產生的圖像應該是貓,輸入狗的圖片,生成的圖像也應該和狗相關。若是移除掉x0,會導致無論輸入哪種類型的圖片訓練,最後diffusion產生的影像都一樣,「貓狗不分」。

經過一連串的推導,我們發現,反向過程中的參數

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

#和

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

,竟然還是可以用x0,xt,以及參數βt,單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用表示出來的,是不是很神奇~

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

當然,機器事先並不知道這個真實的反推過程,它能做到的,只是用一個大概近似的估計分佈去模擬,表示為p0(xt-1|xt)。

1.1.3 最佳化目標

在最開始我們提到,需要透過增加原始資料和反向過程最終產生資料的相似度來最佳化模型。在機器學習中,我們計算該相似度參考的是交叉熵(cross entropy)。

關於交叉熵,學術上給出的定義是「用於度量兩個機率分佈間的差異性資訊」。換句話說,交叉熵越小,模型產生的圖片就越和原始圖片接近。但是,在大多數情況下,交叉熵是很難或無法透過計算得出的,所以我們一般會透過最佳化一個更簡單的表達式,達到相同的效果。

Diffusion模型借鏡了VAE模型的最佳化思路,將variational lower bound(VLB,又稱為ELBO)取代cross entropy來作為最大最佳化目標。透過無數步驟的分解,我們最終得到:

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

看到這麼複雜的公式,好多小夥伴肯定頭都大了。但不慌,這裡需要關注的,只是中間的Lt-1罷了,它表示的是xt和xt-1之間估計分佈p0(xt-1|xt)和真實分佈q(xt-1|xt,x0 )的差距。差距越小,模型最後產生圖片的效果越好。

1.1.4 上程式碼

在了解DDPM背後的原理,接下來就讓我們看看DDPM模型究竟是如何實現…

才怪啦。相信看到這裡的你,肯定也不想遭受成百上千行符碼的洗禮。

好在MindSpore已經為大家提供了開發完備的DDPM模型,訓練推理兩手抓,操作簡單,單卡即可運行,想要體驗效果的小伙伴,只需要先

pip install denoising-diffusion-mindspore
登入後複製

然後,參考如下程式碼配置參數:

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

#

對重要的參數進行一些解析:

GaussianDiffusion

  • image_size: 圖片大小
  • timesteps: 加雜訊步數
  • sampling_timesteps : 取樣步數,為提升推理效能,需小於加噪步數

Trainer

  • folder_or_dataset: 對應圖片中的path, 可以是已下載資料集的路徑(str),也可以是已做好資料處理的VisionBaseDataset, GeneratorDataset 或MindDataset
  • train_batch_size:batch大小
  • train_lr: 學習速率
  • train_num_steps: 訓練步數

「進階版」DDPM模型MindDiffusion

DDPM只是Diffusion這個故事的開頭。目前,已有無數的研究人員被背後瑰麗的世界所吸引,紛紛投身其中。

在不斷優化模型的同時,他們也逐漸發展了Diffusion在各領域的應用。

其中,包括了電腦視覺領域的圖像優化、inpainting、3D視覺、自然語言處理中的text-to-speech、AI for Science領域的分子構像生成、材料設計等。

更有來自史丹佛大學電腦科學系的博士生Eric Zelikman大開腦洞,嘗試將DALLE-2與最近另一個大火的對話模型ChatGPT相結合,製作出了溫馨的繪本故事。

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

△DALLE-2 ChatGPT合力完成的,關於一個名叫「羅比」的小機器人的故事

不過最廣為大眾所知的,應該還是它在文生圖(text-to-image)的應用。輸入幾個關鍵字或一段簡短的描述,模型可以為你產生相對應的圖畫。

例如,輸入“城市夜景 賽博朋克 格雷格·路特科夫斯基”,最後生成的便是一張色彩鮮明,頗具未來科幻風格的作品。

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

再比如,輸入“莫奈撐陽傘的女人月亮夢幻”,生成的便是一張極具有朦朧感的女人畫像,色彩搭配的風格有木有讓你想起莫內的《睡蓮》?

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

想要寫實風格的風景照作為螢幕保護?沒問題!

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

△鄉村 田野 屏保

想要二次元濃度多一點的?也可以!

單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用

△來自深淵風景繪畫寫實風格

#以上這些圖片,均是由MindDiffusion平台的下的悟空畫畫製作而成的哦,悟空畫畫是基於擴散模型的中文文生圖大模型,由華為諾亞團隊攜手中軟分散式平行實驗室,昇騰運算產品部門共同開發。

模型基於Wukong dataset訓練,並使用昇思框架(MindSpore) 昇騰(Ascend)軟硬體解決方案實現。

躍躍欲試的小夥伴先別著急,為了讓大家擁有更好的體驗,更多自行開發的空間,我們打算讓MindDiffusion中的模型同樣也具備可訓練、可推理的特性,預計在明年就要和大家見面啦,敬請期待。

歡迎大家頭腦風暴,生成各種別具風格的作品哦~

(據去內部打探情報的同事說,有人已經開始嘗試「張飛繡花」、「劉華強砍瓜」、「古希臘神大戰哥吉拉」了。ummmm,怎麼辦,突然就很期待成品了呢(ಡωಡ))

One More Thing

#最後的最後,在Diffusion爆火的如今,有人也曾發出過疑問,為什麼它可以做到如此的大紅大紫,甚至風頭開始超過GAN網路?

Diffusion的優勢突出,劣勢也很明顯;它的許多領域仍是空白,它的前方還是一片未知。

為什麼卻有那麼多的人在孜孜不倦地對它進行研究呢?

興許,馬毅教授的一番話,可以提供我們一種解答。

但diffusion process的有效性、以及很快取代GAN也充分說明了一個簡單道理:

幾行簡單正確的數學推導,可以比近十年的大規模調試超參調試網路結構有效得多。

或許,這就是Diffusion模型的魅力吧。

參考連結(可滑動查看):

[1]https://medium.com/mlearning-ai/ai-art-wins-fine-arts-competition-and-sparks-controversy- 882f9b4df98c

[2]Jonathan Ho、Ajay Jain 和Pieter Abbeel。去噪擴散機率模型。 arXiv:2006.11239, 2020.

[3]楊凌,張志龍,洪申達,徐潤生,趙越,邵迎霞,張文濤,楊明軒,崔斌。擴散模型:方法和應用的全面調查。 arXiv 預印本arXiv:2209.00796, 2022.

[4]https://lilianweng.github.io/posts/2021-07-11-diffusion-models

[5]https: / /github.com/lvyufeng/denoising-diffusion-mindspore

[6]https://zhuanlan.zhihu.com/p/525106459

[7]https://zhuanlan. zhihu .com/p/500532271

[8]https://www.zhihu.com/question/536012286

[9]https://mp.weixin.qq.com/ s /XTNk1saGcgPO-PxzkrBnIg

[10]https://m.weibo.cn/3235040884/4804448864177745

以上是單卡就能運行AI畫畫模型,小白也能看懂的教學來了,還有100萬卡時免費NPU算力可用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
C  中的chrono庫如何使用? C 中的chrono庫如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

怎樣在C  中處理高DPI顯示? 怎樣在C 中處理高DPI顯示? Apr 28, 2025 pm 09:57 PM

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C  中的實時操作系統編程是什麼? C 中的實時操作系統編程是什麼? Apr 28, 2025 pm 10:15 PM

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

怎樣在C  中測量線程性能? 怎樣在C 中測量線程性能? Apr 28, 2025 pm 10:21 PM

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 Apr 30, 2025 pm 07:24 PM

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

deepseek官網是如何實現鼠標滾動事件穿透效果的? deepseek官網是如何實現鼠標滾動事件穿透效果的? Apr 30, 2025 pm 03:21 PM

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

See all articles