最近的 GPT-3 火的有些出圈,不仅仅 AI界 的大神们在讨论分享,各种吃瓜小编也是争相报道:
那么,你的看法呢?人工智能真的又迎来了超级飞跃?又或都是噱头,不用理会?又或在「相信」与「怀疑」的路口犹豫不决,完全做不出判断。这可能都是因为:
对 GPT-3 相关的技术原理的陌生!
来吧,将它拉下神坛。
一、体验:GPT-3 的本质是文本生成
GPT = Generative Pre-training Transformer 3,即第三代的 Transformer 预训练生成模型,通俗讲,我们就可以理解为「文本生成」。
AI的文本生成可以达到怎样的真实效果呢?我们可以通过体验 「AI Dungeon」 游戏来感知一二。「AI Dungeon」 是基于 GPT-2 的一款英文生成游戏。
你可以亲自试玩,也可以跟随小编的步伐快速体验
(下面是游戏流程)
至此,相信大家对 「文本生成」有了初步的理解,但是…… GPT 为何 称之为 GPT?让我们从「T」讲起。
二、「T」难道是「变形金刚」?
前文我们已经提到,GPT的 T 是 Transformer,你想到了什么?大黄蜂么?不,这里的 Transformer 是 一种神经网络的层结构(或说操作),我们一步一步来理解它!
2.1 组词造句
我们小学的时候就学习过组词造句,那么,如果让你 以“我”开头组词,下一个字你会组什么呢?
那么我们可能想到 “我爱”,“我吃”,“我擦”……因为日常生活中,“我”经常和这些子连在一起;而“我三”呢?相比之下,很少有人会这么组词。那么,其实在我们的脑海中,“我”后面跟“爱”,“吃”,“擦”的概率是大于“三”的。这便是文本生成的第一层思想
分析 字/词 之间的相关性
但是,如果只能选一个字来组词,又该如何选择呢?这时候我们就要关心组词造句的上下文了。比如:
小强和小红紧紧相拥,小红趴在小强的耳边说:我( ? )
问号处的字?相信更多的人会选择填写“爱”了。所以,机器的文本生成就是这样,它首先根据大量的文本信息学习了词与词之间的关联性,然后结合上文去推测一段句子之后最可能出现的词。一个词一个词循环调用模型生成,就完成了上面 AI dungeon 的游戏效果。
你是否会好奇:机器通过怎样使用前文信息的呢?这样,我们就要解读一些稍微深层的东西。
2.2 从 RNN 到 Transformer
1) RNN
我们从RNN聊起,RNN,即Recurrent Neural Network,循环神经网络。
如图,中间一行的每个 虚线方块 即代表循环神经网络的一个节点,我们将单字依次输入虚线方块 进行计算,注意哦,方块的输入有两个(橙色箭头),一个是来自文本数据(如“小”,“红”)的输入,一个是来自上一次运算的一个输出(右向的箭头)。所以,循环神经网络可以一定程度上记忆前文的信息,即输入“我”的时候,我们期望网络是基于“小红趴在小强的耳边说:我” 来给出下一个字的推理,而不是单单用“我”组词。
但是,期望仅仅是期望,RNN对前文的记忆能力根本没那么强……
2)LSTM
于是有大神将 RNN 进化成为了 LSTM,Long Short-Term Memory,长短记忆神经网络。容易理解地,LSTM只是替换了上图中的 虚线方框 内的操作方式
无须刻意去理解它,就效果比较来说,如果 RNN 的相当于用 “:我” 来造句的话,那么 LSTM 可能达到用 “的耳边说:我” 来造句的效果。总体来说,LSTM记忆了更长的有效上文信息,但可能还是不够理想。
3)Attention
所以,有人提出了 Attention 机制,这人一定是个狠人(灰常暴力)!
如果通过循环神经网络的方式无法难以有效解决上文的记忆问题……我们干脆不通过「传声筒」的方式循环传递记忆,而是每次预测生成新字的时候,将上文所有的字都输入!比如图中的蓝色部分,我们预测 “爱” 的时候,是基于 “小红趴在小强的耳边说:我” 来预测的。
Attention 一般约定一个大小(64,128,512等),比如一个大小为 64 的 Attention 就可以理解为能接受最多 63 个字的上文信息来预测第 64 个字。
4)Transformer
实际的神经网络当中,我们往往是将多个 Attention 组合在一起,并将它称为Transformer 操作。
三、回归 GPT-3 的理解
当我们了解了Transformer的概念,就很容易从结构层面去理解什么是GPT了。GPT,就是先以多个Transformer操作为主要操作构成一个神经网络结构,然后再将它预训练成模型。
3.1 再谈G & P
而G(Generative)意味这类模型(或网络结构)是以执行生成任务为目标的;
P(Pre-training)意味着预训练。什么是预训练呢?比如我们一般是在学习了 语文、数学 这些 基础课 后,在进行 计算机、建筑学、经济学 这些 专业课 的学习。预训练模型就相当于一个学习了基础课但还没有学习专业课的学生。顺带一提,GPT 是由OpenAI(马斯克赞助的一个非盈利性人工智能组织)推出的。
3.2 理解无须苛刻
实际生活中,我们对概念的认知和使用往往并不苛刻。比如我们会问 “你用的网络结构是GPT么?”(此时 GPT 代指了一种网络结构),“我们的武侠小说生成的GPT效果如何?”(此时GPT很可能是一个经过 fine-tune (基于预训练模型调优的) 的模型)。交流的第一目标是有效,对不!
3.3 132
最后就是 GPT-3 的 3,本质上是 3th Generation,即第三代。那么不同代的 GPT 间的差异如何呢?——「规模」,比如第一代 GPT 的总参数约为 1亿,第二代最高可达 15亿,而第三代,众所周知的,1750亿!
基于参数量的推测,GPT-3 的模型大小可能达到 约700GB,其训练时间估计要355个GPU年,花费训练成本预计 460万美元。数据可能不完全准确,但至少可以让我们对相关的数据量级有一个基本的认知。
四、未来与我们?
试想一下,如果将文本生成技术有效地利用到当今的网络游戏中,我们与每个NPC的对话就可能真的像和真人对话一样了:NPC的答复不再是预设好的对话模板,而是真正灵活到让我们意想不到的针对性反馈。
同时,如果这种生成思路有效地应用于游戏人物的除了语言之外的点,比如……「行为」,那展现在我们眼前的,或许已不能用游戏来定义,它将成为一个鲜活的世界!……
而人类,会是上帝构造的一个个GPT么?
-往期回顾-
将AI拉下神坛(五):拎不清反向传播、梯度下降?原来底层数学原理高中就学过!
将AI拉下神坛(四):越挫越勇,在对抗中创造!你可以轻松地认知GAN的存在。
将AI拉下神坛(三):从OCR的应用过程到模型推理抽象
将AI拉下神坛(二):重复的学习居然真的有效!来来,先将课文抄写100遍!
将AI拉下神坛(一):黑白纸片摆出的神经网络