人工智能三大支柱,即算力、算法、數據,都離不開算力支撐。
最近,AI繪畫大(da)熱,我(wo)們(men)所說(shuo)的“AI繪畫”的概念(nian),指的是基于深度學習模型來進項(xiang)自動作圖的計算(suan)機程序。
2012年,Google兩位大(da)名鼎(ding)鼎(ding)的AI大(da)神使用(yong)1.6萬個CPU訓練(lian)了(le)(le)(le)一(yi)個當時(shi)世(shi)界(jie)上最大(da)的深度學習網絡, 用(yong)來指導計算機畫(hua)出(chu)貓臉(lian)圖片. 當時(shi)他們使用(yong)了(le)(le)(le)1000萬個貓臉(lian)圖片, 1.6萬個CPU整整訓練(lian)了(le)(le)(le)3天, 最終(zhong)生成到了(le)(le)(le)一(yi)個非(fei)常模(mo)糊的貓臉(lian)。

是(shi)不是(shi)感覺有點(dian)不可思議,2012年大規模(mo)計算機(ji)集群已(yi)經處于(yu)很現代(dai)水平了,可是(shi)結果(guo)確如此模(mo)糊。
大家或許有個基本概念, 深度學習模型的(de)(de)訓練簡單說來就是利(li)用外(wai)部大量(liang)標(biao)注好的(de)(de)訓練數(shu)據(ju)輸入, 根(gen)據(ju)輸入和所對應的(de)(de)預期輸出, 反復調整模型內部參數(shu)加(jia)以匹(pi)配的(de)(de)過程。
那么讓AI學會繪畫的過(guo)程(cheng), 就是構建已(yi)有畫作的訓練數據, 輸入AI模型(xing)進(jin)行參數迭代(dai)調整(zheng)的過(guo)程(cheng)。
一幅畫帶有多少信息呢? 首先就是長x寬個RGB像素點.再是繪畫中每一筆的位置、形狀、顏色等多個方面的參數, 這里涉及到的參數組合是非常龐大的. 而深度模型訓練的計算復雜度隨著參數輸入組合的增長而急劇增長。AI訓練所需要的時間,取決于背后的GPU性能。
北鯤云怎么幫你畫畫?
以Disco Diffusion為例,基于(yu)CLIP-Guided Diffusion網絡(luo),這(zhe)是輸(shu)(shu)入以下文字(zi)輸(shu)(shu)出一張的圖片(pian),其實還(huan)可以選(xuan)不同的畫家風格。這(zhe)個可以自(zi)己(ji)探索(suo)~
artstation,GregRutkowski,sea,dikel,ship,industrialization,cloud,time,future,afternoon

接下來就一起看看怎么在北鯤云超算平臺上實現AI繪畫。
北鯤云超算平臺可以提供高性價比的一站式AI計算服務,根據平時的操作習慣,可以直接通過命令行提交作業。平臺同時還有大量可供調用的GPU資源,例如32G顯存的V100、40G和80G顯存的A100。

啟(qi)動(dong)一個(ge)T4的Jupyter Notebook Desktop,連接后(hou)Notebook會自動(dong)打開。


連接(jie)后先打開終(zhong)端,將(jiang)Notebook(Disco_Diffusion.ipynb)復制到本(ben)地
git clone //github.com/alembics/disco-diffusion.git
由于項(xiang)目要用pytorch,涉及(ji)到很多(duo)庫(ku)的安裝,最好(hao)使用Anaconda。Anaconda已經在平臺上預裝好(hao)了,可(ke)以通過以下(xia)命令進行加載
module add Anaconda3
source activate
我們可(ke)以創建(jian)一個獨(du)立(li)的環境用來diffusion,版(ban)本選3.9即可(ke),并將該環境加到(dao)ipykernel中。
conda create-n diffusion python=3.9
conda activate
conda install-c anaconda ipykernel
python-m ipykernel install--user--name=diffusion這時(shi)候即可打開Disco_Diffusion.ipynb,并(bing)選擇diffusion作為kernel。

運行Notebook,分為四步:環境搭建、模型設置、生成文字設置、生成圖片。

第一個單元本地的GPU。

第二個單元(yuan)會提示沒(mei)有檢測到colab,模型會選擇本地的(de)models文件夾。

第三個單元檢(jian)測一些必須的依賴包,沒裝成的直接conda安裝即(ji)可(ke)。由于這一步會文件,請耐(nai)心等待。

以下(xia)列出本(ben)例中安裝的package和命令:
condainstall-cpytorchpytorchtorchvisiontorchaudiocudatoolkit=10.2condainstall-cconda-forgeopencvtimmlpipsftfyeinopsomegaconfpandas
后面三(san)個單元定(ding)義了一些方(fang)法和模型,可以(yi)直接運行。

這(zhe)里要注意(yi)默(mo)認用的是(shi)512*512的模型會比較吃顯卡(ka),前(qian)面可(ke)以(yi)調成256*256的。

然后就(jiu)是模型(xing)設置,這里batch_name是文件夾名(ming),里面的圖片也會根(gen)據這個(ge)命名(ming)。

width_height是期望的(de)最(zui)終圖(tu)像大小,應該設置(zhi)為(wei)64px的(de)倍數,并且在默認的(de)CLIP模型設置(zhi)上至少設置(zhi)為(wei)512px。如(ru)果忘記使用64px的(de)倍數,DD會(hui)調整圖(tu)像尺寸。
steps是迭代步數(shu),越(yue)高細(xi)節越(yue)多。
然后Animation Settings和 Extra Settings,這兩個可(ke)以先不動(dong)。

最關鍵(jian)的短(duan)語設置部(bu)分,text_prompts就是(shi)(shi)短(duan)語,0:是(shi)(shi)第一(yi)幀,如果(guo)是(shi)(shi)動畫可(ke)以設置從(cong)哪一(yi)幀開始變風(feng)格,單個(ge)圖片(pian)就設置一(yi)句就行。
image_prompts是(shi)基(ji)于哪張圖(tu)片(pian)進(jin)行生成,這個也很有意思可以自己(ji)選圖(tu)片(pian)實(shi)驗。
怎(zen)么(me)設(she)置(zhi)好的(de)確(que)是門藝術,不(bu)過大概有場景(jing)描述就可以生成,有喜歡的(de)藝術家也(ye)可以加上,還有時間,地(di)點也(ye)可以。
官方的例子描述是:"A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation.”
就是說:“greg rutkowski和thomas kinkade在Trending on artstation上繪制(zhi)的(de)一(yi)幅美麗的(de)燈塔畫,它的(de)光芒(mang)照耀著一(yi)片喧囂的(de)血海。”
這里引入了(le)兩位藝(yi)術家,想查看其(qi)他藝(yi)術家可以看下方表格,兩千多(duo)位藝(yi)術家可以選擇:
我們在此用(yong)的關鍵(jian)詞是:high,peormance,computing,cloud,scientist,drug,time,future,cyberpunk


然后就是(shi)(shi)激(ji)動人(ren)心的生成了, n_batches是(shi)(shi)要生成的圖片(pian)個(ge)數,默認是(shi)(shi)50會比較久,可以先設置1個(ge)測一下速度。點擊運行后,圖片(pian)就開始生成,并會一點一點變清晰。

此時(shi)可以在(zai)終端里通過nvidia-smi查看GPU的(de)使用率。

等計算完成后,可以到北鯤云控制臺首頁—文件傳輸里(li)下載生(sheng)成(cheng)好的圖片。

清華(hua)大學某(mou)課題(ti)(ti)組(zu)正面臨管理(li)難、科(ke)研效(xiao)率慢等問題(ti)(ti),在多方對(dui)比后選擇了北鯤云AI計算云平臺。
據小鯤得知,以下幾點是北鯤云打動課(ke)題組的關鍵點:
1. 滿足每個賬號有云主機多卡多節點并行
2. 已預裝多種環境及數據集,可直接在平臺上使用
3. 支持圖形化界面操作
除(chu)此之外,北鯤云(yun)(yun)豐(feng)富的資源、一致(zhi)(zhi)的使用(yong)體驗及極(ji)致(zhi)(zhi)的數據安全保障措施都獲(huo)得了老師的好評。基(ji)于北鯤云(yun)(yun)超算(suan)平(ping)(ping)臺(tai)(tai)開發(fa)的北鯤云(yun)(yun)AI計算(suan)平(ping)(ping)臺(tai)(tai)幫助用(yong)戶無憂上云(yun)(yun),大大提升計算(suan)效(xiao)率。歡迎有相(xiang)關需求的同(tong)學來找平(ping)(ping)臺(tai)(tai)客服(fu)咨(zi)詢。