sdaswdfewr
導讀
宣物莫大於言,存形莫善於畫。
–【晉】陸機
多模態數據(文本、圖像、聲音)是人類認識、理解和表達世間萬物的重要載體。近年來,多模態數據的爆炸性增長促進了內容互聯網的繁榮,也帶來了大量多模態內容理解和生成的需求。與常見的跨模態理解任務不同,文到圖的生成任務是流行的跨模態生成任務,旨在生成與給定文本對應的圖像。這一文圖生成的任務,極大地釋放了AI的想像力,也激發了人類的創意。典型的模型例如OpenAI開發的DALL-E和DALL-E2。近期,業界也訓練出了更大、更新的文圖生成模型,例如Google提出的Parti和Imagen。
然而,上述模型一般不能用於處理中文的需求,而且上述模型的參數量龐大,很難被開源社區的廣大用戶直接用來Fine-tune和推理。本次,EasyNLP開源框架再次迎來大升級,集成了先進的文圖生成架構Transformer+VQGAN,同時,向開源社區免費開放不同參數量的中文文圖生成模型的Checkpoint,以及相應Fine-tune和推理接口。用戶可以在我們開放的Checkpoint基礎上進行少量領域相關的微調,在不消耗大量計算資源的情況下,就能一鍵進行各種藝術創作。
EasyNLP是阿里雲機器學習PAI 團隊基於 PyTorch 開發的易用且豐富的中文NLP算法框架,並且提供了從訓練到部署的一站式 NLP 開發體驗。EasyNLP 提供了簡潔的接口供用戶開發 NLP 模型,包括NLP應用 AppZoo 、預訓練模型 ModelZoo、數據倉庫DataHub等特性。由於跨模態理解和生成需求的不斷增加,EasyNLP也支持各種跨模態模型,特別是中文領域的跨模態模型,推向開源社區。例如,在先前的工作中,EasyNLP已經對中文圖文檢索CLIP模型進行了支持(看這裡)。我們希望能夠服務更多的 NLP 和多模態算法開發者和研究者,也希望和社區一起推動 NLP /多模態技術的發展和模型落地。本文簡要介紹文圖生成的技術,以及如何在EasyNLP框架中如何輕鬆實現文圖生成,帶你秒變藝術家。本文開頭的展示圖片即為我們模型創作的作品。
文圖生成模型簡述
下面以幾個經典的基於Transformer的工作為例,簡單介紹文圖生成模型的技術。DALL-E由OpenAI提出,採取兩階段的方法生成圖像。在第一階段,訓練一個dVAE(discrete variational autoencoder)的模型將256×256的RGB圖片轉化為32×32的image token,這一步驟將圖片進行信息壓縮和離散化,方便進行文本到圖像的生成。第二階段,DALL-E訓練一個自回歸的Transformer模型,將文本輸入轉化為上述1024個image token。
由清華大學等單位提出的CogView模型對上述兩階段文圖生成的過程進行了進一步的優化。在下圖中,CogView採用了sentence piece作為text tokenizer使得輸入文本的空間表達更加豐富,並且在模型的Fine-tune過程中採用了多種技術,例如圖像的超分、風格遷移等。
ERNIE-ViLG模型考慮進一步考慮了Transformer模型學習知識的可遷移性,同時學習了從文本生成圖像和從圖像生成文本這兩種任務。其架構圖如下所示:
隨着文圖生成技術的不斷發展,新的模型和技術不斷湧現。舉例來說,OFA將多種跨模態的生成任務統一在同一個模型架構中。DALL-E 2同樣由OpenAI提出,是DALL-E模型的升級版,考慮了層次化的圖像生成技術,模型利用CLIP encoder作為編碼器,更好地融入了CLIP預訓練的跨模態表徵。Google進一步提出了Diffusion Model的架構,能有效生成高清大圖,如下所示:
在本文中,我們不再對這些細節進行贅述。感興趣的讀者可以進一步查閱參考文獻。
EasyNLP文圖生成模型
由於前述模型的規模往往在數十億、百億參數級別,龐大的模型雖然能生成質量較大的圖片,然後對計算資源和預訓練數據的要求使得這些模型很難在開源社區廣泛應用,尤其在需要面向垂直領域的情況下。在本節中,我們詳細介紹EasyNLP提供的中文文圖生成模型,它在較小參數量的情況下,依然具有良好的文圖生成效果。
模型架構
模型框架圖如下圖所示: