一文读懂ChatGPT模型道理
(本文是ChatGPT道理介绍,但没有任何数学公式,可以安心食用)
插个广,我已与掘金合作,编写了一套
免费课程,欢迎阅读。
下面开始正文
前言
这两天,ChatGPT模型真可谓称得上是狂拽酷炫D炸天的存在了。一度登上了知乎热搜,这对科技类话题长短常难的存在。不光是做人工智能、机器学习的人存眷,而是大量的各行各业从业人员都来存眷这个模型,真可谓空前盛世。
我赶紧把 OpenAI 以往的 GPT-n 系列论文又翻出来,从头学习一下,当真领会大规模预训练语言模型(Large Language Model)的强大之处。
可能很多深度学习相关从业人员的感到感染和我一样,大师之前对 LLM 的感到感染依然是,预训练+finetune,措置下游任务,依然需要大量的标注数据和人工干与干与,怎么俄然间,ChatGPT 就智能到如此地步?
接下来,我简要梳理一下 OpenAI 的 GPT 大模型的成长历程。
一、还得从 Bert 说起
2018年,自然语言措置 NLP 范围也步入了 LLM 时代,谷歌出品的 Bert 模型横空出生避世,碾压了以往的所有模型,直接在各种NLP的建模任务中取得了最佳的成就。
Bert做了什么,主要用以下例子做解释。
请各位做一个完形填空: ___________和阿里、腾讯一起并成为中国互联网 BAT 三巨头。请问上述空格应该填什么?有的人回答“百度”,有的人可能感觉,“字节”也没错。但总不再可能是此外字了。
非论填什么,这里都表白,空格处填什么字,是受到上下文决定和影响的。
Bert 所作的事就是从大规模的上亿的文本预猜中,随机地扣掉一部门字,形成上面例子的完形填空题型,不竭地学习空格处到底该填写什么。所谓语言模型的训练和学习,就是从大量的数据中学习复杂的上下文联系。
二、GPT 初代
与此同时,OpenAI 早于 Bert 出品了一个初代 GPT 模型。
它们大致思想是一样的。都基于 Transformer 这种编码器,获取了文本内部的彼此联系。
Transformer布局
编解码的概念广泛应用于各个范围,在 NLP 范围,人们使用语言一般包罗三个法式:
接受听到或读到的语言 -> 大脑理解 -> 输出要说的语言。语言是一个显式存在的东西,但大脑是如何将语言进行理解、转化、存储的,则是一个目前仍未探明的东西。因此,大脑理解语言这个过程,就是大脑将语言编码成一种可理解、可存储形式的过程,这个过程就叫做语言的编码。
相应的,把大脑中想要表达的内容,使用语言表达出来,就叫做语言的解码。
在语言模型中,编码器和解码器都是由一个个的 Transformer 组件拼接在一起形成的。
Transformer编码器组成的 Encoder-decoder模型
这里不展开讲 Transformer 里的内部布局,仅仅讲一下 Bert 和 GPT的区别。
两者最主要的区别在于,Bert 仅仅使用了 encoder 也就是编码器部门进行模型训练,GPT 仅仅使用了 decoder 部门。两者各自走上了各自的道路,按照我粗浅的理解,GPT 的decoder 模型更加适应于文本生成范围。
GPT 初代其实个人认为(当然遍及也都这么认为)略逊色于 Bert,再加上宣传地不够好,影响力也就小于 Bert。
我相信很多的 NLP 从业者对 LLM 的理解也大都逗留在此。即,本质上讲,LLM 是一个非常复杂的编码器,将文本暗示成一个向量暗示,这个向量暗示有助于解决 NLP 的任务。三、GPT-2
自从 Bert 炸街后,跟风效仿的改良模型也就越来越多了,比如 albert、roberta、ERNIE,BART、XLNET、T5 等等八门五花。
最初的时候,预训练任务仅仅是一个完形填空任务就可以让语言模型有了极大进步,那么,很多人就想,给 LLM 模型出其它的语言题型,应该也会对模型训练有极大的辅佐。
想要出语言题型不是很简单么,什么句子打乱挨次再排序、选择题、判断题、改错题、把预测单字改成预测实体词汇等等,纷纷都可以制定数据集添加在模型的预训练里。很多模型也都是这么干的。
既然出题也可以,把各种NLP任务的数据集添加到预训练阶段当然也可以。那就把机器翻译、文本摘要、范围问答统统往预训练里加。
这个过程也和人脑很像,人脑长短常不变和泛化的,既可以读诗歌,也可以学数学,还可以学外语,看新闻,听音乐等等,简而言之,就是一脑多用。
我们一般的 NLP 任务,文本分类模型就只能分类,分词模型就只能分词,机器翻译也就只能完成翻译这一件事,非常不灵活。
GPT-2 主要就是在 GPT 的基础上,又添加了多个任务,扩增了数据集和模型参数,又训练了一番。效果如下:
http://pic4.zhimg.com/v2-688865d5b27323b57a32ccc7c01379a3_r.jpg
GPT-2学习效果图
既然多个任务都在同一个模型长进行学习,还存在一个问题,这一个模型能承载的并不仅仅是任务本身,“汪小菲的妈是张兰”,这条文字包含的信息量是通用的,它既可以用于翻译,也可以用于分类,判断错误等等。也就是说,信息是脱离具体 NLP 任务存在的,触类旁通,能够操作这条信息,在每一个 NLP 任务上都表示好,这个是 元学习(meta-learning)。本质上就是语言模型的一脑多用。
四、GPT-3
大模型中的大模型
首先, GPT-3 的模型所采用的数据量之大,高达上万亿,模型参数量也十分巨大,上千亿,学习之复杂,计算之繁复,不说了,看图吧。
GPT-3 里的大模型计算量是 Bert-base 的上千倍。统统这些都是在燃烧的金钱,真就是 all you need is money。如此巨大的模型造就了 GPT-3 在许多十分困难的 NLP 任务,诸如撰写人类难以判此外文章,甚至编写SQL查询语句,React或者JavaScript代码上优异的表示。
之前提到过,GPT-n 系列模型都是采用 decoder 进行训练的,它更加适合文本生成的形式。也就是,模型完全黑盒,输入是一句话,输出也是一句话。这就是对话模式。
对话
我们是如何学会中文的?从0岁开始,听、说,也就是对话。
我们是如何学外语的?看教材,听广播,背单词。唯独缺少了对话!正是因为缺少了对话这个高效的语言学习方式,所以我们的英语程度才如此难以提高。
对于语言模型,同理。对话是涵盖一切 NLP 任务的终极任务。从此 NLP不再需要模型建模这个过程。比如,传统 NLP 里还有序列标注这个任务,需要用到 CRF 这种解码过程。在对话的世界里,这些统统都是冗余的。
其实 CRF 这项技术还是蛮经典的,在深度学习这块,CRF这也才过去没几年。人工智能成长之快,sigh……
in-context learning
以往的预训练都是两段式的,即,首先用大规模的数据集对模型进行预训练,然后再操作下游任务的标注数据集进行 finetune,时至今日这也是绝大大都 NLP 模型任务的基本工作流程。
GPT-3 就开始颠覆这种认知了。它提出了一种 in-context 学习方式。这个词没法翻译成中文,下面举一个例子进行解释。
用户输入到 GPT-3:你感觉 JioNLP 是个好用的东西吗?
GPT-3输出1:我感觉很好啊。
GPT-3输出2:JioNLP是什么东西?
GPT-3输出3:你饿不饿,我给你做碗面吃……
GPT-3输出4:Do you think jionlp is a good tool?
按理来讲,针对机器翻译任务,我们当然但愿模型输出最后一句,针对对话任务,我们但愿模型输出前两句中的任何一句。此外,显然做碗面这个输出的句子显得前言不搭后语,是个低质量的对话答复。
这时就有了 in-context 学习,也就是,我们对模型进行引导,教会它该当输出什么内容。如果我们但愿它输出翻译内容,那么,应该给模型如下输入:
用户输入到 GPT-3:请把以下中文翻译成英文:你感觉 JioNLP 是个好用的东西吗?
如果想让模型回答问题:
用户输入到 GPT-3:模型模型你说说,你感觉 JioNLP 是个好用的东西吗?
OK,这样模型就可以按照用户提示的情境,进行针对性的回答了。
这里,只是奉告了模型如何做,最好能够给模型做个示范,这也蛮符合人们的日常干事习惯,老师安插了一篇作文,我们的第一反映是,先参考一篇范文找找感觉。
把上面的例子添加示范,就得到了如下的输入:
用户输入到 GPT-3:请把以下中文翻译成英文:苹果 => apple; 你感觉 JioNLP 是个好用的东西吗?=>
此中 苹果翻译成 apple,是一个示范样例,用于让模型感知该输出什么。只给提示叫做 zero-shot,给一个典型叫做 one-shot,给多个典型叫做 few-shot。
典型给几个就行了,不能再给多了!一个是,咱们没那么多标注数据,另一个是,给多了不就又成了 finetune 模式了么?
在 GPT-3 的预训练阶段,也是按照这样多个任务同时学习的。比如“做数学加法,改错,翻译”同时进行。这其实就类似前段时间斗劲火的 prompt。
这种引导学习的方式,在超大模型上展示了惊人的效果:只需要给出一个或者几个示范样例,模型就能照猫画虎地给出正确答案。注意啊,是超大模型才可以,一般几亿、十几亿参数的大模型是不行的。(我们这里没有小模型,只有大模型、超大模型、巨大模型)
http://pic4.zhimg.com/v2-7f16eb2fbc21ff3be705a148f951b0df_r.jpg
这个成果曲线图展示了用175 billion 的参数得到了优质的效果。它彷佛在嘲讽我:哎,你没钱,你就看不着这种优质的效果,你气不气?
五、ChatGPT
终于说到了主角,能看到这里的,可以存眷一下 JioNLP 公众号吗?我写的也够累的。
ChatGPT 模型上基本上和之前 GPT-3 都没有太大变化,主要变化的是训练策略变了,用上了强化学习。
强化学习
几年前,alpha GO 击败了柯洁,几乎可以说明,强化学习如果在适合的条件下,完全可以打败人类,逼近完美的极限。
强化学习非常像生物进化,模型在给定的环境中,不竭地按照环境的惩罚和奖励(reward),拟合到一个最适应环境的状态。
NLP + 强化学习
强化学习之所以能斗劲容易地应用在围棋以及其它各种棋牌游戏里,原因就是对于 alpha Go 而言,环境就是围棋,围棋棋盘就是它的整个世界。模型就是不竭按照棋盘的状态以及输赢状况调整策略,战胜了柯洁。
而几年前知乎上就有提问,NLP + 强化学习,可以做吗?怎么做呢?
底下回答一片唱衰,原因就是,NLP 所依赖的环境,是整个现实世界,整个宇宙万物,都可以被语言描述,也就都需要针对模型输出的质量进行 reward 评价,它完全无法设计反馈惩罚和奖励函数。除非人们一点点地人工反馈。
哎,OpenAI 的 ChatGPT 就把这事给干了。
不是需要人工标反馈和奖励吗?那就撒钱,找40个外包,标起来!
http://pic2.zhimg.com/v2-3290cf0fffd9dccd1056e63725bfdefd_r.jpg
这种带人工操作的 reward,被称之为 RLHF(Reinforcement Learning from Human Feedback)。
具体操作过程就是下图的样子,采用强化学习的方式来对模型进行训练。已经丢弃了传统的 LM 方式。
这里重点是第二步中,如何构建一个 reward 函数,在alpha go 里,这个reward 函数就是下完一盘围棋之后判断谁输谁赢,只需要一个法式函数即可完成。
而在ChatGPT里,具体就是让那40名外包人员不竭地从模型的输出成果中筛选,判断哪些句子是好的,哪些是低质量的,这样就可以训练得到一个 reward 模型。
通过 reward 模型来评价模型的输出成果好坏。
讲真,这个 reward 模型,《黑客帝国》的母体 matrix 既视感有木有??!!
只要把预训练模型接一根管子在 reward 模型上,预训练模型就会开始像感知真实世界那样,感知reward。
reward母体模型
这个名字是我本身起的,因为这里的reward模型实在是完美契合了《黑客帝国》中所构建的世界。本文的封面也是《黑客帝国》。
与其说 ChatGPT 在拟合现实世界,不如说它是在对 reward 母体负责。而reward 母体也是由人工一点点标注完成的。母体并不直接拟合真实世界,它只对模型是否契合真实世界做真假判断。母体对真实世界的拟合,决定了我们看到的 ChatGPT 有多优质。
我们不再需要直接拟合所谓机器翻译的文本对,也不再去需要拟合判断新闻分类的数据对,而只需要去拟合阿谁reward母体。
由此,我们就可以得到这个把全世界都震碎的高音!(误,模型)
ChatGPT 功能一览
ChatGPT 道理介绍完了,再来看看它能干啥工作?
[*]能回答知乎上的问题
http://pic4.zhimg.com/v2-70b0e2b39ee41a901befb944224110d7_r.jpg
[*]你别想耍它
[*]能回答困难的问题
http://pic2.zhimg.com/v2-0165381a897be6c3b563cad848e685b5_r.jpg
[*]能理解乱序文本
[*]会做高数
http://pic2.zhimg.com/v2-d047ec20e70a0fde9611b11e091f0359_r.jpg
[*]知道本身是法式,懂得拒绝一段恋情
[*]还能措置法式 bug
六、影响
NLP 范围的影响
个人认为,NLP 范围的一些里程碑性的技术重要性排序如下:
ChatGPT > word2vec > Bert (纯个人看法)
ChatGPT 的存眷度已经很大程度让人们感觉到,什么天猫精灵、小爱同学等等人工智障的时代似乎过去了。只要模型足够大,数据足够丰硕,reward 模型颠末了更多的人迭代和优化,完全可以缔造一个无限逼近真实世界的超级 OpenAI 大脑。
当然,ChatGPT 依然是存在回答不好的情况的,比如会反复一些词句,无法分清楚事实等等。
而且,ChatGPT 目前看,它是没有在推理阶段连接外部信息的。
模型知道本身的回答边界,知道本身只是一个没有情感的回答东西。那么,试想 OpenAI 把外部信息也导入到 ChatGPT 里,那是怎样的一副图景。
另一些影响
我看到 ChatGPT 居然可以写代码,还能帮我改代码,debug,作为法式员,我不禁深深陷入了沉思。
据说,全球最大的 debug 法式员网站 stackoverflow,已经撕破脸,下场封杀 ChatGPT 了。
http://pic4.zhimg.com/v2-870782822b58edd78e923b84b3311b83_r.jpg
当然,完全不仅仅是法式界。据说 GPT-4 正在做图文理解,那么,对于教师、大夫、咨询师、等等等等,各行各业,是不是都是一个巨大的冲击?所谓专业范围的常识门槛,也将被模型一步踏平。仅仅留下那些具有高等常识程度的专家才有真正的价值。
有人讲 google 将被替代,我认为也就还好吧,没准,财大气粗的 google 此时此刻,他们的NLP+强化学习也已经在筹备的路上了。
如果感觉写得好,就存眷一下我的公众号 JioNLP,欢迎存眷。 厉害了,感觉强人工智能智能雏形已经出来了,奇点将要来临。感觉将来人工智能可以具备科研能力。 个人认为,这类强化模型能不能具备科研能力还不好说 想请问下博主,在大数据量大规模模型的背景下,未来nlp乃至人工智能会怎么发展呢,会不会出现通过数据、参数的增加提高效果导致研究难以为继呢 自信点,有个屁科研能力 个人认为,真正具有智能的ai,必须建立在非常优秀的机器人技术基础上。然后再进行推理判断。本质上,chatgpt不具有推理能力 哈哈哈,对未来抱有期待嘛 如果能训练模型自我对话,它会不会进化出思考和推理的能力? 令人失望,我还在想除了堆算力。整了什么花活,结果从架构和算法来讲。就这? 有点儿失望,nlp的未来应该不能全靠堆算力解决
页:
[1]
2