實測騰訊AI文生圖王者榮耀畫風一鍵直出,小程式就能玩


原文來源:量子位元

圖片來源:由無界AI生成

鵝廠大模型,又有新玩法

發布不到兩個月,騰訊混元大模型就速通了一個新版本,除了語言模型升級以外,還悄悄上線了AIGC最火熱🔥的功能——

文生圖。

和語言模型一樣,文生圖同樣可以透過微信小程式直接體驗。

不過與Midjourney獨立出圖不同,混元的文生圖和對話功能“互不耽誤”,可以邊聊邊畫,與DALL·E 3體驗相似。

之前已經申請測試通過的,可以立刻衝了~

還在排隊中的也別急,我們已經快速實測了一波熱圖,這就先放出來給大夥兒看看。

混元文生圖上手實測

根據騰訊介紹,混元大模型文生圖最大的優點在三處:真實感、中文理解、風格多元。

接下來就挨個試試它做到了什麼程度。

先來畫人,復刻一波之前爆火過的Midjourney「寫實90年代北京情侶」看看。

請輸出一張攝影風格的照片,在20世紀90年代的北京,一個男性和一個女性,面帶微笑,坐在屋頂,穿著夾克和牛仔褲,有很多的建築物,真實感

可以看出,寫實風格的人像還是很拿手的,人物姿態合理,畫亞洲人臉與國外AI相也比較自然。

注意這裡有個小技巧,想要寫實風格的話最好用「生成一張…」來觸發,如果用「畫一張…」大機率會得到插畫風格。

寫實風格的人像可以,再看看畫風景如何。

除了一般的風景描述,混元大模型支援指定一個真實存在的景點,例如「桂林山水」或「長城」。

畢竟是AI生成,跟真實景觀不會完全一樣,但感覺還是到位了。

接下來要上難度了,把這兩個場景「組合」起來:

生成一張桂林山水,但是岸上有長城,攝影風格,真實感,高度細節。

這麼離譜的需求都畫出來了,甚至水面還有水波,看來不是簡單重現訓練數據,而是對概念有一些自己的理解。

那麼更複雜的概念如何呢?

曾經,AI因不理解中文菜名鬧過一波笑話。

經過這半年的發展,「紅燒獅子頭」裡不會出現獅子的頭,「夫妻肺片」裡也不會變成恐怖片了,甚至看著還挺香。

要說比菜名更有挑戰性的,就到了古詩詞,正好寫實風格也看膩了也可以換換口味。

產生一張圖片:孤舟蓑笠翁,獨釣寒江雪,水墨畫風格。

總得來說還不錯,美中不足之處在於一張圖沒有“舟”,還有一張舟上坐了兩個“翁”,就沒有孤獨的意境了。

看來詩詞這種過於凝練的還是有難度。

But,別忘了混元助理同時擁有聊天對話能力,也支援多輪對話。

借助強大的語言模型部分,我們也找出解決方案。

接下來只要用「這些要求」、「上述要求」來指涉上面的回答,就可以讓兩個功能連起來了。

再畫就會更穩定,增加了雪花飄落的細節。

記住這個小技巧,接下來還會用到。

其實在騰訊混元助手中,專門準備了這樣一個存為指令的功能。

存好後就可以從對話框右邊的魔法棒圖示處快速呼叫了,只需要更改要描述的內容。

還可以方便一鍵分享到微信,4張圖一次分享讓好友幫忙選,不用來回截圖了。

直接打開分享鏈接,就可以放大查看四張圖,還可以開始新對話

了解混元大模型的中文理解能力,再來試試最後一個特點風格多樣性。

既然是騰訊出品,遊戲插畫肯定少不了,像是正火的賽博龐克風。

有點感覺了,但總覺得差點意思。

可以用上面的技巧來,連動語言模型來明確賽博龐克風格的特徵。

再手動加億點點料,就更對味了。

不同遊戲的畫風差距極大,測試下來混元助手確實能hold住不少,從3D到2D甚至像素都沒問題。

即使是同一話題和風格限定,也能展現出不同的畫風,Furry控狂喜(doge)

其實騰訊透露,內部多個場景已經用上了混元大模型文生圖能力。

雖然還不知道具體怎麼使用,但我們測試了一下用《王者榮耀》來當風格限定詞,混元也能理解。

除了遊戲之外還有廣告場景,前面提到的混元大模型文生圖真實感的優點也能發揮出來。

也別忘了騰訊還有一大塊內容業務,來個奇幻小說插圖也沒問題。

這樣的文生圖效果,背後究竟是透過什麼原理實現的?

在此之前,業界其實已經有不少文生圖的開源模型。

騰訊是基於其中某種方案打造,還是重新進行的自研?

帶著種種問題,我們和騰訊混元大模型文生圖技術負責人蘆清林聊了聊,了解了一下背後的技術細節。

模型全自研,用20億+圖文對煉成

“從演算法、數據系統到工程平台,都是從0到1自研。”

蘆清林表示,這也算是騰訊混元大模型文生圖功能的優勢,這樣從生成自由度到資料安全性,就都能完全把控,也讓生成的影像「更符合使用者需求」。

首先是在算法這一塊。

目前文生圖模型普遍存在三個困難,語意理解差、構圖不合理、畫面細節無質感。

語意理解差,就是模型聽不懂人話,尤其是中英文夾雜的人話。

目前業界普遍採用的是開源的CLIP演算法,然而它一來沒有建模中文語言,輸入中文只能靠翻譯,會出現紅燒獅子頭真的生成獅子的問題(doge);另一個是訓練時圖文對齊能力不行。

構圖不合理,指的是生成的人體結構、畫面結構有問題,直接「生異形」。

如果直接基於業界已有的開源擴散模型產生影像,就容易出現這個問題,像是出現「三隻手」或各種奇怪的畫面結構。

畫面細節無質感,就是生成影像清晰度差。目前不少資料集影像解析度和品質不高,容易導致訓練出來的開源模型品質也不高。

為了解決這三個困難點,騰訊混元團隊在演算法階段,特意用了三類模型組合來「逐一擊破」。

語意理解上,騰訊自研了跨模態預訓練大模型,不僅讓它同時學會建模中英文,而且強化文本和圖像細粒度特徵的聯繫,簡單來說就是中文、英文、圖像三者的“跨模態對齊」。

生成構圖上,騰訊自研了一種擴散模型和Transformer混合的架構,尤其是將Transformer當前大火的旋轉位置編碼研究給用上了。

旋轉位置編碼通常被用來增加大模型的上下文長度,不過在這裡被騰訊巧妙地用於刻畫人體結構,讓模型既能掌握全局資訊(人體骨架)又能理解局部資訊(臉部細節)。

最後是在畫面細節上,騰訊自研了超解析度模型,同時也結合了多種演算法,針對影像不同的細節進行最佳化,讓最後產生的影像進一步「耐看」。

這樣做出來的模型架構,不僅能產生品質更高的圖片(解析度1024×1024),而且只需要微調架構,就能變成圖生圖、甚至是文生視訊模型。

接下來,就是關鍵的數據部分了。

對於文生圖而言,產生影像的質量,很大程度上取決於資料的質量,OpenAI在DALL·E 3論文中,通篇都在強調資料對於指令跟隨的重要性。

騰訊也非常重視資料對模型的重要性,也同樣自研了三方面的技術。

在資料品質上,由於網路上扒下來的資料集,往往存在文字描述簡潔、和產生內容不完全匹配的問題,因此團隊透過改善圖-文對資料中心化的「文」部分,也就是細化中文的文字描述,來提升圖文資料的相關性;

在資料效果上,團隊針對訓練資料進行了「金銀銅」分層分級,等級越高,代表資料清洗程度越精細。

其中,20+億未清洗的“青銅數據”,用來對所有模型進行“粗加工”,也就是預訓練;

6億+“白銀數據”,用來對生成模型進一步加工,提升生成品質;

1.12億+精心清洗的“黃金資料”,則用來對模型進行“精加工”,也就是精調突擊訓練,確保訓練出來的模型品質更優秀。

在資料效率上,為了加快訓練速度,尤其是針對使用者回饋對模型進行最佳化的速度,騰訊也建立了資料飛輪,自動化建構訓練資料並加快模型迭代,讓模型產生準確率進一步提升。

根據蘆清林透露,數據飛輪這個技術,也正是解決數據長尾場景難題的關鍵。

由於我們的生活中總是出現一些潮流新詞,例如“玲娜貝兒”等,這種名詞往往在數據中心化不常見,而用戶又會在輸入時使用,因此往往需要第一時間更新進訓練資料中。

有了資料飛輪,就能將這個流程效率進一步提升,避免模型在見識新詞後,依舊長時間無法產生對應的影像。

最後,有了演算法和數據,還得有個工程平台,把它們組合起來快速訓練。

為此,騰訊自研了Angel機器學習平台,包括訓練架構AngelPTM和推理架構AngelHCF。

訓練上,大模型最重要的就是並行能力。為此,騰訊基於4D並行+ZeROCache機制,實現了千億參數混元大模型的快速訓練。

直覺來看,AngelPTM訓練框架相比業界主流架構DeepSpeed-Chat速度提升了1倍以上。

推理上,AngelHCF則實現了支援多種平行能力、支援服務部署及管理、以及自研模式無損量化三大功能,相比業界主流架構提升了1.3倍以上。

值得一提的是,在Angel機器學習框架與平台的支援下,騰訊混元的語言模型也進行了一輪升級,尤其是程式碼能力有不小的提升。

我們也簡單測了​​測騰訊混元大模型更新後的程式碼能力。

先試試寫程式碼,以幫老師寫一個「隨機點名程式」為例(手動狗頭)。

混元大模型很快就產生了一段註解的完整程式碼:

import random

# 假設班上有50個學生,這裡是他們的學號
student_ids = [‘001’, ‘002’, ‘003’, ‘004’, ‘005’, ‘006’, ‘007’, ‘008’, ‘009’, ‘010’,
               ‘011’, ‘012’, ‘013’, ‘014’, ‘015’, ‘016’, ‘017’, ‘018’, ‘019’, ‘020’,
               ‘021’, ‘022’, ‘023’, ‘024’, ‘025’, ‘026’, ‘027’, ‘028’, ‘029’, ‘030’,
               ‘031’, ‘032’, ‘033’, ‘034’, ‘035’, ‘036’, ‘037’, ‘038’, ‘039’, ‘040’,
               ‘041’, ‘042’, ‘043’, ‘044’, ‘045’, ‘046’, ‘047’, ‘048’, ‘049’, ‘050’]

# 使用random.choice()函數從學生學號清單中隨機選擇一個學生
random_student_id = random.choice(student_ids)

# 列印隨機選取的學生學號
print(「隨機抽取的學生學號是:」, random_student_id)

實測可以絲滑運行,每次都能抽到不同的幸(dao)運(mei)兒(dan)起來回答問題:

然後我們也發現,混元大模型竟然還能幫忙查程式碼bug,屬實是程式設計師省心利器了。

當然,無論是文生圖或程式碼能力,現在都已經可以在騰訊混元助手中體驗。

資訊來源:由0x資訊編譯自8BTC。版權所有,未經許可,不得轉載

Total
0
Shares
Related Posts