深度学习算法真的能理解人类语言吗?自然语言生成程序OpenAI GPT-2的上手体验
# 太长不读
深度学习算法研发公司OpenAI在去年初公布了可直接读写自然语言的深度学习程序GPT-2。OpenAI在GitHub上公布了完整的GPT-2供所有人下载尝试。经过亲自尝试,我发现GPT-2确实表现惊人,但它理解自然语言的逻辑与人类的理解方式有着本质的不同。想要下载亲自尝试的话可尝试我写的GPT-2获取安装与使用教程。
#1
如果你看过2013年的人工智能科幻电影《她》,你一定记得那个斯嘉丽配音,知性又体贴的人工智能女友萨曼莎。电影初期有个桥段,男主角面对十多篇需要校对的稿件十分头疼,于是他带上无线耳机寻求萨曼莎的帮助。稿件交给萨曼莎后,她二话不说一下子就完成了所有校对,不仅做的快还做的非常好。
但毕竟《她》是个科幻电影,完美的人工智能女友萨曼莎也还没有出现(
😒)。在现实世界中,如何让计算机直接处理人类的自然语言一直是一个很难的挑战。剧情中萨曼莎所完成的文章校对工作,不仅需要用到对自然语言的理解能力,还需要知道如何使用最佳的措辞。而对于传统的程序来讲,要处理模棱两可的人类语言简直是不可能完成的任务。而美国的深度学习研发公司OpenAI在去年二月份时发布的GPT-2成了新的希望。未来的“萨曼莎”也许不能安抚你破碎的心,但她很快就能帮你写文章了。
OpenAI在2019年初公布了他们最新的深度学习研究成果——GPT-2。根据OpenAI公布的论文,GPT-2可以直接处理自然语言,做阅读理解题,缩写长篇文章等任务都已经做到了人类的平均水平。除了理解自然语言,GPT-2也能自己写文章,而写出的下文已经达到了以假乱真的程度。
下面这篇题为“科学家发现了独角兽”的假新闻报道是GPT-2的杰作之一(中文为谷歌翻译):
#2
去年GPT-2刚公布的时候,我就听说了这篇新闻报道。整篇报道读起来完全不像是机器写的,如果不是新闻标题说明了这是算法生成,我肯定不会怀疑这文章不是人写的。但我当时看过新闻后,扭头就没再研究它。
碰巧的是,这个月月初我在看一个UCL和DeepMind合办的深度学习公开课,其中有一课就提到了GPT-2,于是我就顺手搜索了一下。我读了OpenAI在公布GPT-2时发布的Blog,发现OpenAI早在去年11月份就在GitHub上上传了完整的GPT-2模型和用于生成文章的程序。
然后我就立刻打开了YouTube,输入关键字GPT-2 tutorial,回车搜索!果不其然油管上早就有不少如何安装使用GPT-2的教程了。虽然这些教程说的也不是很清楚,但是我一边翻看多个教程,一边参考GPT-2的开发者文档,花了一下午时间终于安装好了GPT-2。
亲自上手调试GPT-2真的是有特别有意思的一件事。OpenAI提供了两种使用GPT-2的方式,一种是无条件生成文章,内容完全随机,写什么全凭GPT-2心情。另一种是有条件生成,就是说GPT-2会以你的输入为前提,写出相应的下文。
前一种没太大意思,毕竟你没法掌控它的输出,我基本没怎么玩。但后一种方法,打开了无限种试验的可能。输入的内容没有限制,这就很有意思了,我试验了不少输入,下面是一些比较有意思的发现。
GPT-2“不懂”中文,但多少知道几句话
既然什么都能输入,那我肯定要试试中文输入了。不出所料,美国生的GPT-2不怎么懂汉语,写出来的东西完全是在胡言乱语。这也不难理解,训练GPT-2所用的数据库是以英文为基础的,中文并不在GPT-2的训练数据中。
但有意思的是,如果你仔细看你就会发现,汉字词的出现并非像乱码一样是完全随机的。虽然整体来看上文不接下文,但字里行间都是正常的词语,说明它不是完全随机的。我查阅了GPT-2的论文,其中提到训练用的数据库,是通过网络爬虫搜集来的四千五百万网页链接组成的,这其中可能包含了一小小部分的中文内容。说明GPT-2并非不能在汉语环境应用,目前只是缺乏足够的训练而已。
GPT-2“知道”新闻要有来源链接才可信
七月初的时候爆出一个疼讯大老爷硬刚国民女神老干妈的瓜,大家在网上玩梗玩的不亦乐乎,我就以此为背景,编了一个很扯的假新闻,题为《特大新闻:老干妈核爆疼讯总部》,输入进GPT-2看它能写出什么花样来。
GPT-2生成出的文章并没有什么逻辑,毕竟GPT-2可能也不太了解谁是老干妈谁是疼讯。但让我震惊的是,在文章的最后,它竟然给出了新闻的来源网页链接!What?!难道GPT-2会查网页写参考吗?!我立刻点开了其中一个链接,果然是404,这些链接是GPT-2参照URL的普遍格式生成的假链接。
要知道GPT-2是通过“非监督学习(Unsupervised Learning)”训练出来的,也就是说没人告诉过GPT-2网页链接的格式是什么,一般链接会在什么类型的文章中出现,所有的这些完全是GPT-2通过“翻阅”45,000,000个网页内容学习总结出的规律。太让人惊讶了。
GPT-2有总结规律的能力,但却无法理解规律
好吧,我承认这是有些为难GPT-2了。人看懂这句话并不是什么难事,虽然第一眼没法理解,但我们很快就能发现其中的规律——每个字母间都有一个空格。了解了规律后,我们很快就能读懂这句话。但我把这句话输入到GPT-2里后,我好像把它玩坏了。
首先,GPT-2立刻总结出了输入文字的规律——每个字母间有空格,所以它的所有输出几乎都是按照这个规律写的,每个字母间都加了空格。但是就内容而言,GPT-2已经不知道该怎么写了,尽管它总结出了规律,但它读不懂这一整句话。虽然生成的文字间可以看出几个单词,但完全组不成一句话。说明它只看出了规律,但却不理解。
UCL和DeepMind合办的公开课中就提到过GPT-2的工作原理。本质上说,GPT-2写东西,并不是像人一样脑子里抱着一个想法,然后把它写出来。GPT-2写东西,实际上是在不断地猜下一个词的概率。它其实不知道自己在写什么,它只知道下一个词这么写最符合它从数据库中学习到的规律。
GPT-2的理解是线性的,而人的理解是立体的。每个字母间插入的空格,打乱了GPT-2的理解能力。但人却能通过总结规律的方式,轻松的理解内容。说明GPT-2和人类处理文字的方式——或者说目的——有着本质的不同,就很有意思。
#3
在合理的使用下,GPT-2的出现绝对打开了无数种可能性的大门。从有建设性意义的角度讲,GPT-2(或者类似于GPT-2的深度学习程序)已经得到了善用。
比方说,当你使用谷歌搜索搜索一个问题的时候,谷歌会理解你的问题,并且总结出你可能需要的答案。这项工作就不止是关键词检索可以做到的了,谷歌搜索不仅要读懂你的问题,并且读懂你可能需要的答案,把你需要的部分总结并展示给你。这是传统程序想都不敢想的任务。
但从恶意利用的角度讲,虽然在完全认真的情况下,我们依稀可以识别出计算机生成的痕迹,但GPT-2所带来的可能性,是可以以极低的运算量大批量生成近乎逼真的文章,而人又不可能时刻保持百分之百的集中。当网络上充斥着无数机器生成的文章,谁又能一直保持警惕判断一个微博、一个评论、一个回复是不是真人写的呢?
#4
你觉得在你的工作领域,GPT-2可以得到什么样的应用?又或许,你的工作会不会最终完全被GPT-2所取代?欢迎留言讨论。如果你想亲自上手尝试一下GPT-2,可以在公众号内尝试我写的GPT-2获取下载与使用教程。
#了解更多
为什么说GPT-2强,它强在哪里?带来的潜在危险又有哪些?——Computerphile(YouTube)
- https://www.youtube.com/watch?v=89A4jGvaaKk
- https://www.youtube.com/watch?v=p-6F4rhRYLQ
- https://www.youtube.com/watch?v=AJxLtdur5fc
来自OpenAI开发者的想法,GPT-2 Blogs —— OpenAI
- https://openai.com/blog/better-language-models/
- https://openai.com/blog/gpt-2-6-month-follow-up/
- https://www.openai.com/blog/gpt-2-1-5b-release/
GPT-3,GPT-2的能力远非极限
- https://www.reddit.com/r/MachineLearning/comments/hvssqn/d_gpt3_demos/
- https://github.com/elyase/awesome-gpt3
- https://github.com/openai/gpt-3/tree/master
- https://openai.com/blog/openai-api/
原文在7月26号发布于我的微信公众号TIANCI SAYS,欢迎关注!
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!