这款“狗屁不通”文章生成器火了,效果确实比GPT 2差太远

整理 | 夕颜

出品 | AI科技大本营(ID:rgznai100)

【导读】最近,一个名字相当接地气的“狗屁不通”文章生成器(BullshitGenerator)火了,截至目前 GitHub 上 Star 数已超过 3200,还上了微博热搜。这个神器可以生成各种各样奇葩文章,比如领导专用“彩虹屁”万字长文。只有你想不到,没有这个神器写不成的文章。但是,生成的文章确实也是“狗屁不通”。这次我们就来解读一下,这个生成器是怎么运行的,以此为例,延展探讨一下文本生成未来还有哪些改进的方向。

话说,BullshitGenerator 这个项目最初起源于知乎上一位网友的提问:“学生会退会申请六千字怎么写?”,本来很简单的一个问题,但是回答中很多跑偏题的,于是本项目的贡献者之一表示看不下去了,并“随便写了个项目”:狗屁不通文章生成器,帮助这位同学写了一篇退会申请。

用 Python 生成的这篇文章长这样:

由于下拉十多下没滑到底,让人失去了截全图的耐心,文章也实在看不下去,因为它真的是一篇逻辑不通的 bullshit。

AI科技大本营(ID:rgznai100)也用这个生成器尝试了几个大家都会思考的主题,比如:

试完之后笔者发现,文章本身是没什么探讨的必要性了,不信你可以自己试试:

生成器地址:https://suulnnka.github.io/BullshitGenerator/index.html

但是关于生成器的工作原理,相信很多人是比较感兴趣的。

运行原理是什么?

据贡献者介绍,本项目最初的目的是用于中文文字 GUI 开发时测试文本渲染,用 Python 3 版本写成,目前共有 7 位贡献者。

鉴于目前 AI 用于文字生成非常流行,这个项目是否也用到了 AI 相关算法呢?答案是否定的,作者表示,BullshitGenerator 没有用到任何自然语言处理相关算法,只是简单地撸代码就可以达到效果。

那 BullshitGenerator 运行的原理是怎样的?AI科技大本营采访了CSDN博客专家@小宋是呢进行解读:

“狗屁不通生成器”是一个文本生成器,用来生成一些中文文字用于 GUI 开发时测试文本渲染。由于此项目的目的只是用于 GUI 开发时测试文本渲染,所以对文本的连贯性和含义要求不高,这也就是“狗屁不通”的含义了

从源码中可以看出,生成文本的方式就是从本地读取到的文本中按照一定规律随机读取,并且替换掉文本中“x”为指定的主题文本,并未使用深度学习方法。不难发现,生成的文本会存在句子不连贯、重复性高的特点。

是否能与 GPT 2 结合?

issue 中有人发表了对这个项目的评价:

可以看到,大家对这个项目的评价还是以正面居多。其中,有人提到了希望与 GPT 2 进行整合:

很快有人对这个想法提出疑问,比如算力的问题。那么,BullshitGenerator 与 GPT 2 整合的想法可行吗?或者是否有必要?@小宋是呢给出的看法如下:

个人觉得“狗屁不通生成器”与“GPT”结合意义不大,这两个项目的目标和特点差异很大。“狗屁不通生成器”是为了快速用来生成一些中文文字用于 GUI 开发时测试文本渲染,而“GPT”文本生成器目标是生成高质量连贯文本,“GPT”的特点是模型大速度慢质量高,并不满足“狗屁不通生成器”的设计需求。

GPT 2 是 OpenAI 推出的一个中文生成模型,由加拿大工程师 Adam King 制作的网站上,任何人都能调教简化版的 GPT-2,它能够识别从新闻、歌词、诗歌、食谱、代码的各种输入,甚至还为《复仇者联盟》写了一个细节丰富的续集,内容可读性相当高。

令人振奋的是,这个史上最强的 NLP 模型今天正式全部开源,OpenAI 正式放出了 GPT 2 的最后一部分代码。

开源地址:https://github.com/openai/gpt-2。

作为 GPT 2 分段发布中的最后一轮,此次公开的完整 GPT-2 包含 15 亿条参数,其中包含用于检测 GPT-2 模型输出的全部代码及模型权重。

当然,关于 GPT 2 的讨论仍在继续,比如它的实用性,生成假新闻被滥用引发的安全问题等,都是后续还有待改善的关键点。

此外,GPT 2 还有一个中文版本,相比之下,GPT2 与 BullshitGenerator 不同之处在于前者使用了 BERT 或 BPE 编译器,但同样不需要算法基础,只要简单 clone 运行即可,技术上的实现难度更大一些。

“GPT”是比较标准的自回归语言模型了,Transformer 出现前都是通过 RNN 的方法,之前比较火的“CharRNN”深度学习作诗与作曲都属于这个范畴。“GPT”将 Transformer 替换了 RNN,使得提取特征的能力与运算速度都得到很大提升,当然使用大规模数据训练模型也是“GPT”效果好的一个重要因素。

相较于“GPT”,“狗屁不通生成器”实现就简单很多,主要代码就几十行,基本上只用到了Python 编程技术。体现在文本的连贯性和含义上,虽然生成文本的质量不高,但它也满足了生成一些中文文字用于 GUI 开发时测试文本渲染的要求。

GPT2 中文项目:https://github.com/Morizeyao/GPT2-Chinese

文本生成的未来

GPT 2 的横空出世让大家看到了 AI 在文本生成方面的潜力。正如 Open AI 官博所说,虽然 GPT 2 还面临检测等方面的挑战,但它的潜力还很大, Open AI 表示,未来这个模型还将继续进行改进,他们期望语言模型能够在性能上有更大的提升,以此提供更高的输出质量和准确性。

BullshitGenerator 项目也公布了下一步计划:

防止文章过于内容重复

加入更多啰嗦话.

加入马三立里的内容

加入手写体直接渲染出图片的功能(仅仅用于测试本人的打印机是否工作正常, 请勿做它用).

大胆设想一下,日后类似于 BullshitGenerator 这样的文本生成器将进一步改进,那么是否在没有 AI 算法的参与下,仅凭简单的代码就能够生成高质量的文本(虽然可能性几乎为零,但如果可以实现将是颠覆性的成果)?从另一个思路来讲,以 GPT2 为代表的 NLP 模型现在已经可以生成以假乱真的文本,未来又该如何克服目前的挑战,生成更高质量的作品,同时能够保证安全?是否未来有一天,文本生成技术或许真的会取代一部分人类的工作?这些问题都值得深思。

目前研究方向:自然语言处理与自动语音识别、图像识别与自动检测、图神经网络与推荐系统。