百度文心大模型不好用,可能是你開啟方式不正確

語言: CN / TW / HK

theme: fancy

image.png

大眾向科普文章,誰都能看懂。


群友AI作畫失敗了

今天百度文心一言大模型釋出會,我看到摸魚群裡 文心模型被群嘲了

image.png

大圖慎點,確實有點嚇人。

image.png

群裡大家用的都是這個:基於ERNIE-ViLG的文心一格

然後大家都在說百度這個好垃圾,還是國外的模型好,還放了一下國外模型生成的妹子:

image.png

其實可能不是模型垃圾,是沒找到正確的開啟方式

我生成的

我生成的是下圖這樣的,我覺得不陰間,並且 還挺好看的

WeChat Screenshot_20230316202725.png

WeChat Screenshot_20230316202735.png

WeChat Screenshot_20230316202744.png

先不要急著說為什麼你不生成真人,拿二次元出來算什麼。

為什麼拿二次元圖作對比,我後邊會解釋。

使用預設風格,雖說沒多可愛,但是也沒那麼陰間吧……

image.png

1.png

國外模型真就比文心好?

先來通俗地說兩個概念:

模型

給我們生成影象的就是模型,我們給模型輸入文字,模型給我們生成圖片。

模型只是一堆程式碼寫好的,像一個什麼也不會的小朋友,我們需要去模型怎麼生成東西。

  • 如果我們給模型一堆美少女,模型就能畫出來一堆美少女,畫不出男的。

  • 如果我們給模型一堆風景,那模型就能畫風景,畫不出來人。

檢查點

你訓練好的模型,學到了對應的知識,我們把這個知識稱為cheakpoint,也就是檢查點

比如一個小孩子不會說話:

  • 你教他英語,他以後就會說英語,那我們可以認為這個孩子的checkpoint是英語。

  • 你教他漢語,他以後就是說漢語的,那我們可以說這個孩子的checkpoint是漢語。

checkpoint在這裡代指我們教給他的東西。

對比

國外現在我們接觸到的是基於Stable Diffusion的。

百度的文心一格是基於ERNIE-VilG的。

為什麼國外模型效果好?

國外模型效果好,是因為國外發展早,生態好,因為國外模型的cheakpoint多啊。你使用不同的Checkpoint就能生成不同型別的圖片了。

下圖是國外社群中Stable Diffusion的Checkpoint的冰山一角:

image.png

那百度呢?百度現在展示的是自己訓練的checkpoint,怎麼可能和人家那麼多比啊。

俗話說雙拳難敵四手,俗話說三個臭皮匠頂個諸葛亮……所以你拿人家專門微調好的checkpoint和百度去比,就相當於讓一個母語是英語的人一個學了幾天英語的中國人比英語水平。

當然你讓國外模型的一個Checkpoint去生成它不擅長的東西,它出來的結果也很陰間。

效果對比

先說畫妹子

prompt: ((masterpiece,best quality)),1girl, long hair, black hair, long black dress, pigtails, outdoor, red bows, loafer

文字提示: 女,黑頭髮,雙馬尾,黑裙子,學生,小皮鞋,黑眼睛,長裙,細節,高清,學生

國外

先展示一下我用國外模型畫的二次元人物。這三個checkpoint都是專門生成二次元人物的。

CheakPoint File:meinamix_meinaV8

CheakPoint File:mixProV3_v3

CheakPoint File:pastelMixStylizedAnime_pastelMixPrunedFP16

再來看一下百度

我感覺百度的生成效果已經蠻好的了,畢竟上邊三個模型,人家是在專門資料集上訓練好的專門用於畫二次元妹子的checkpoint,百度作為一個比較通用的模型,能做到這樣真的OK了。

WeChat Screenshot_20230316202712.png

不是我尬吹,你直接用Stable Diffusion的原始模型,效果還不如文心一格呢……不信你看:

image.png

所以百度真的不拉胯的……

再來看一下風景

文字提示:雪山,河流,麋鹿,森林,風景,寫實,照片,細節,高清

prompt:((masterpiece,best quality)),a high-quality, detailed, and professional image,snowy mountains, rivers, elk, deer, reindeer, forests, scenery,realistic,photos,details,high-definition

因為識別不出elk 麋鹿,所以我還多加了幾個buff:鹿deer,馴鹿reindeer

我讓一個國外二次元模型畫

我的麋鹿呢?那是什麼牛馬?

WeChat Image_20230316192042.png

文心一格基礎模型生成好歹有個麋鹿樣子的,至少稱得上差強人意:

image.png

但是直接使用Stable Diffusion當前最高版本的基礎模型,效果真的沒那麼牛。

你看到的優秀照片都是選到了很厲害的checkpoint生成出來的成功樣例罷了,倖存者偏差。

image.png

然後我換了幾個CheckPoint:

checkpoint1:根本找不到麋鹿,訓練時候應該就沒告訴它麋鹿怎麼畫。

image.png

checkpoint2:有麋鹿了,還有兩隻,不過一隻沒有頭。

image.png

checkpoint3:終於有麋鹿了,雖然也是不盡人意,但是這個checkpoint本來畫風就比較奇幻,所以我覺得這個麋鹿還OK的。

image.png

那我怎麼生成好看的圖?

你可能還想說:你是狗託吧,為啥模型在你手裡輸出的就是正常圖片,在我手裡就不正常?

看一下群友的:

image.png

看一下我的:

WeChat Screenshot_20230316202838.png

我的老婆是一位身材窈窕的美女可不可以改成老婆,身材好,漂亮呢?然後順帶加上高清,細節修飾詞。

高清,細節不加也行的,文心一格畫質還挺好,加上這倆純屬我使用stable diffusion後遺症

功能給你了,你好好用啊!好好寫寫文字提示(prompt),好好選風格,生成出來的東西絕對不會陰間的。

如果你覺得沒有說服力,那我拿國外模型給你展示一下:

同一個cheakpoint出來效果完全不同的兩個圖,而他們的區別僅在於我用的prompt不一樣

在第二個圖中我在文字提示中寫了高畫質高質量等詞語。

image.png

image.png

這就好比:

你:安安你快誇我。

我:6

你:安安你快誇我,字多一點。

我:牛逼

你:安安你快誇我,字多一點,再多點。

我:牛哇牛哇

你:安安你快誇我,字多一點,再多點,最好能像動漫裡軟萌的妹子那樣。

我:哇,歐尼醬好棒呀!今天也有好好工作呢!

文字提示越精準,模型生成圖片的質量就越好。所以想要正常圖片你就好好寫文字提示。

當然還有其他因素,比如取樣步數、負提示等等,但是百度這裡沒設定,也沒法對比,就不說了。


為什麼你不用真人模型舉例子

因為我還沒摸索到怎麼生成好看的真人。

比如我造周淑怡:

image.png

有點像,但是也一般,看起來比較假。

但是你們看看人家造的周姐:

高清,還很像! 是模型不行嗎?不是的,別人能造出來就證明不是模型的問題,是我的問題,是我還沒摸索到怎麼生成好看的周姐

image.png

因為我造真人也不好看,我要是拿真人照片舉例子,就會顯得國外模型也很拉胯,所以我選二次元圖舉例子。

不信你看我拿外國模型生成的雙馬尾妹子,也是有點恐怖……

image.png


為什麼要寫這個文章?

國內本來就不如國外生態好,其實模型本身效果還OK了,但是一些使用者開啟方式不正確,導致模型被群嘲。

其實沒掌握使用技巧的話,試用國外模型也不見得會有多好的結果。

文心大模型也好,還是別的模型也好,背後是工作人員的嘔心瀝血。文心確實不夠完美,但是也不能因為錯誤的使用方法或怎麼一味地去否認它。

刷朋友圈看到一個評論,我感覺特別好:

image.png

“見慣了大場面的Robin今天似乎有些緊張。但不得不說,文心一言或許確實不夠完美,但能夠在這種環境下把他推出來,值得一些掌聲了。”

作為最底層的NLP人,我向百度致敬,致敬他們的勇氣,致敬他們的努力和付出。


其他

  1. 文心大模型

  2. ERNIE-ViLG


本文正在參加「金石計劃」