百度文心大模型不好用,可能是你打开方式不正确

语言: 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


本文正在参加「金石计划」