这个月,OpenAI 公布已久的 GPT-2 终于是在放出了两个能够供研究人员研究的模型,两个模型的大小不同,一个是小型模型,一个是中型模型,其中中型模型包含 3.45 亿参数。
GPT-2 是 OpenAI 最新研究出来的一个在自然语言处理领域迄今为止规模最大的一个通用语言模型,其完整版的参数能达到 15 亿之多。
迄今为止,OpenAI 都不准备公开 GPT-2 的完整版模型,因为他们担心这个强力的 AI 会对整个社会产生极大的危害。
那么问题来了,这个 GPT-2 到底是什么东西,能够让它的开发者都感到害怕呢?人类是不是已经打开了人工智能这个潘多拉魔盒?
GPT-2 这个通用语言模型的主要用于预测文本,即运行在这一模型上的 AI 会基于一些现有的文本去猜想它后面会是什么。
这个 AI 的工作有一些像我们大脑组织语言功能,我们人类在组织语言的时候,往往是基于某一个题目、某一个事件、某一个想法、某一个上文、某一个外界刺激等对语言组织,对于 AI,或者对于 GPT-2 这个模型来说,这些就是所谓的「输入」。
之后我们的大脑会在非常快的时间里基于记忆和掌握的语言处理能力生成一个句子,其中「记忆」为我们组织语言提供素材,而「语言处理能力」则能保证生成出来的句子是合乎规则的。
对于 GPT-2 这个模型来说,OpenAI 使用了海量的文本对它进行训练,在反复的训练中,AI 会对它学习过的文本产生一定程度的「记忆」,最终这些「记忆」会被一并保存在模型文件中。
在组织语言的过程中,AI 会依据输入的不同基于计算进入神经网络内不同的节点,进而得到不同的输出。
在这个过程中,当神经网络的某一个节点被激活时,其相关的「记忆」也会被激活。这个「记忆」实际上是神经网络中节点与节点之间的连接的权值,也就是上文中我们提到的「参数」。
这样的「参数」越多,意味着 AI 将拥有越多的记忆,它能理解、记住的东西也就越多。
然而,对于 GPT-2 这样的模型来说,光有「记忆」是不够的,要想让 AI 具有组织语言的能力,它还需要拥有「语言组织能力」。
这个能力同样也同样是由训练获得的,在训练的过程中,AI 的「记忆」不单单记忆下了那些文本表达的内容,也同步记忆下了文本的规则、特征。
在我们的语言学中,这些规则、特征被归纳总结成了各种语法、文法,在 AI 领域内,这就是所谓的「抽取特征」。AI 能够自主学习到它能够理解的「语法」,但是这个「语法」和我们平时说的语法有很大的区别,因为 AI 根本就不知道什么主谓宾,它抽取出的特征是基于数学的、融合到整个神经网络模型中的东西。
只要研究人员的训练方式是正确的、他们的训练方式能够引导 AI 从文本中抽取到正确的特征、学习到正确的规律,那么这个 AI 在经过长时间、大规模的训练后就能够拥有处理语言、组织语言的能力。
GPT-2 正是研究人员通过新的训练方式,在扩大训练规模后得到的产物。
上述笔者的描述还是比较表面、笼统的,用人工智能来进行自然语言处理(NLP)是一件非常复杂的事情,为了找到这个「正确的训练方式」,研究人员需要付出大量的努力,同时由于整个神经网络规模十分庞大,它也需要巨大的算力作为支撑。
GPT-2 的本质不是一个人工智能,它只是一个静态的、可复制的「AI 的记忆」,但只要我们激活了它,它就是一个具有一定自然语言处理能力的 AI。
在 OpenAI 放出模型之后,有开发者基于这个模型开发了一个网站,在这个网站上,我们可以亲身体会在 GPT-2 上运行的 AI 有多么强力。
这个网站的地址是:
talktotransformer.com
需要注意的是,国内该网站虽然可以正常访问,但想要使用它仍然需要科学上网。这主要是因为 AI 是比较吃算力的东西,网站的开发者应该是使用了 Google 的服务器作为计算资源。
Talk to Transformer 允许你输入任意长度的某一段文本的开头,然后 AI 会基于 GPT-2 的中型模型自动为你续写。
举个例子,比如我们在文本框内填入
「Today is a sunny day, I went to the park with my father」
点击「Complete Text」,AI 就会自动开始在这句话的基础上进行续写。
AI 直接在我们给出的这一句话的基础上续写了一大段话,这段话放在国内的高中可以算是一篇优秀的作文,这一段短文本身也是一个小故事。
由于这个网站有限制,所以 AI 并不会无限对这段话进行续写,但是如果你将 GPT-2 模型加载到本地,用 Tensorflow 调用它运行,你可以对这一句开头进行无限的续写,想让 AI 写多少,AI 就能写多少。
至于 AI 为什么能够无限续写,其实道理很简单,AI 能够给自己反馈新的输入,从而源源不断地产生连续的文本。产生文本这件事并不难,难就难在这一段文本前后都是有关联的,它内在是有逻辑和要表达的内容在里面的,这是 GPT-2 最惊人的一个地方。
接下来我们来测试一下其他的东西,首先我们测试一下 OpenAI 吹嘘过的编新闻。
我们都知道,特朗普非常喜欢抨击 CNN 的「Fake news」,这里我们用「Trump said」作为开头,让 AI 续写一段话:
非常让人惊讶的是,它能够做到,而且它知道我们这里的「Trump」指的究竟是谁。它续写出来的这段话可能是学习到的某个真新闻的某一段,也可能是它胡编的一个假新闻。
但是这些都不重要,重要的是它知道我们输入的「Trump」指的是「Donald Trump」,可能是在训练的文本中 AI 认为这个词和他之间是有强烈关联的,所以 AI 在看到 Trump 后会和我们一样联想到同一个人。
除此之外,它还知道非常非常多的东西,例如科技圈的内容,这里我们输入这样一个开头:
「Oneplus has released their new phone yesterday」
很神奇的是,GPT-2 知道我们输入的「Oneplus」指代的是一加这个手机品牌,它甚至凭空捏造了一个不存在的一加手机出来,还有一个有模有样的参数表。
虽然这些参数都很乱,有的根本就不存在,有的可能是 AI 出现了 Bug 输出了错误内容,但这至少能说明 GPT-2 学习过这一部分的内容,所以它才能够输出这些东西。
OpenAI 在训练的过程中使用的训练文本应该是海量的、十分多样化的,这使得 GPT-2 能够达到很强的「通用性」。
如果你有兴趣,你可以自行前往这个网站来测试它,除了上述笔者测试的内容,它还懂很多其他的内容,包括代码、社会问题、剧本、小说、一些专业领域问题等等,它的表现绝对能够把你震撼到。
原先笔者还不太相信 AI 能够很快发展到会威胁到人类、威胁到社会的程度,但是现在来看,笔者还是太年轻了一些,在体验过 GPT-2 之后,笔者也开始担忧未来 AI 这个领域会往什么方向走了,我们人类又是否能够把控住 AI 的发展。