如何設(shè)計(jì)容器來實(shí)踐AI模型的PnP
1 前言
在本專欄的前面文章《從隱空間看AIGC 的未來發(fā)展》里,曾經(jīng)提到了,今天全球AIGC 產(chǎn)業(yè)即將進(jìn)入產(chǎn)業(yè)的革命性的轉(zhuǎn)折點(diǎn),也逐漸浮現(xiàn)AI 模型容器( 集裝箱) 的身影。而AI 集裝箱將帶給碼頭( 隱空間) 一項(xiàng)美好的次序。一旦我們致力于制定AI 容器的規(guī)格,就會擁有主導(dǎo)未來AIGC 產(chǎn)業(yè)發(fā)展的話語權(quán)。
于是,在本篇文章里,將繼續(xù)以實(shí)例詳細(xì)說明AI容器的設(shè)計(jì)和實(shí)踐技術(shù)。
2 以Stable Diffusion為例
首先觀察SD (Stable Diffusion) 的基本架構(gòu),如圖1。
圖1 Stable Diffusion的基本架構(gòu)
(https://zhuanlan.zhihu.com/p/621325215)
這圖里的中間( 藍(lán)色) 部分就是隱空間(Latent space) 所在,它內(nèi)含一個UNet 模型,如圖2。
圖2 SD內(nèi)含的UNet模型
(https://zhuanlan.zhihu.com/p/621325215)
于是,得到了詳細(xì)的SD隱空間擴(kuò)散(Diffusion) 架構(gòu)圖,如圖3。
圖3 SD隱空間擴(kuò)散架構(gòu)圖
(https://ommer-lab.com/research/latent-diffusion-models/ )
這個隱空間里,最核心的是UNet 模型。它本身也是一個容器( 如同集裝箱),內(nèi)含有QKV 等小模型等。于是,就可以設(shè)計(jì)一個AI 模型容器來表示它,例如使用指令:
class UNetModel(nn.Module):
……………
……………
……………
這里的UNet 模型就如同< 信紙> 的角色。有了信紙之后,就可以來設(shè)計(jì)一項(xiàng)更大的< 信箱> 容器了,例如使用指令:
class LatentDiffusion(nn.Module):
……………
……………
于是,有了UNet 模型( 信紙),也有了Diffusion模型( 信封),也有了隱空間( 信箱)。如果拿物流貨運(yùn)來比喻,這里的UNet 模型就如同< 集裝箱> 的角色,而Diffusion 模型就如同< 輪船> 的角色,而隱空間就如同< 碼頭> 的角色。接著,就來實(shí)際觀摩一下SD 的源代碼,從Github 上可以看到SD 的源代碼。
進(jìn)入這網(wǎng)頁之后,就繼續(xù)瀏覽這些源代碼,就可以看到它定義了一個UNetModel 模型,這就是剛才所說的< 信紙> 模型。
再繼續(xù)瀏覽源代碼,也就可以看到它定義了一個LatentDiffusion模型,這就是剛才所說的< 信封> 模型。
從上述的信紙與信封的比喻,可以領(lǐng)會出來:無論信紙、信封或信箱,都是容器互相包容起來。例如,SD 的LatentDiffusion 包容了UNetModel 小模型, 而UNetModel 又包容了QKV 更小的模型,于是呈現(xiàn)出「序中有亂」的景象。也就是,容器( 如集裝箱) 的外表簡單有序,因而創(chuàng)造出井然有序。這即是通稱的:有機(jī)次序(Organic order)。
3 演練:動手設(shè)計(jì)容器
步驟1 設(shè)計(jì)小模型
首先撰寫一個能將灰階圖像彩繪( 渲染) 為彩色圖像的GAN( 生成對抗) 模型,如下代碼。
然后,收集數(shù)十張畢加索(Picasso) 的圖像來訓(xùn)練它。
步驟2設(shè)計(jì)容器模型
訓(xùn)練好了小模型,就可以繼續(xù)撰寫一個容器模型來包容它( 即剛才的GANModel 模型)。這個容器模型的代碼如下。
在這個范例里,這個容器模型包含了一個自己訓(xùn)練的GANModel小模型。此外,還包含了一個由OpenCV所提供的FSRCNN 小模型。這FSRCNN 是OpenCV 提供的預(yù)訓(xùn)練模型,其圖像放大的效果,比傳統(tǒng)做法好很多( 例如,沒有明顯的鋸齒狀邊緣)。
步驟3 運(yùn)行容器模型
于是, 這個容器模型就可以將原始圖像( 如224×224 的JPG 圖像) 透過FSRCNN 來放大3 倍,然后交由GAN 模型來自動渲染出大張的圖像( 即672×672 JPG 圖像),如圖4 所示。
圖4 讓AI自由渲染Picasso的畫作
對于藝術(shù)文創(chuàng)者而言,AI 可以激發(fā)人們更多想象空間,例如上圖里的GAN 模型是學(xué)習(xí)Picasso 畫風(fēng),而自動渲染出來的。這個模型也可以輸入八大山人的畫作,然后AI 彩繪出Picasso 的色彩風(fēng)格,成為中西合璧的創(chuàng)新作品。
4 美好效果:易于PnP
剛才所設(shè)計(jì)的容器模型可以確保內(nèi)含個小模型( 如GAN、FSRCNN 模型) 的變動自由度,來實(shí)現(xiàn)這些小模型皆能容易PnP(Plug and Play),呈現(xiàn)出流暢新陳代的美好效果。因此創(chuàng)造了完美的有機(jī)次序(Organic Order)。例如,隨時能流暢的將上述的彩繪GAN 模型汰換掉,重新設(shè)計(jì)一個新的小模型--- 彩繪UNET模型,如圖5。
圖5 讓AI自由渲染八大山人的畫作
此時,只需要更改這FSRCNN 容器模型內(nèi)部的代碼即可,并不會產(chǎn)生漣漪效應(yīng),因而降低了更換小模型的成本。
5 結(jié)語
本文展示了如何遷移第三方的預(yù)訓(xùn)練模型,復(fù)用(Reuse) 他人的智慧來設(shè)計(jì)& 開發(fā)自己的容器(Container)模型。并且展示了一項(xiàng)美好商業(yè)效益:能復(fù)用于各種不同的需求情境,并獲得小模型PnP 的效果。
(本文來源于EEPW 2023年10月期)
評論