浅谈chatGPT

Bert 模型

2018年,自然语言处理 NLP 领域也步入了 LLM 时代,谷歌出品的 Bert 模型横空出世,碾压了以往的所有模型,直接在各种NLP的建模任务中取得了最佳的成绩。

Bert做了什么,主要用以下例子做解释。

请各位做一个填空题: ___________和阿里、腾讯一起并称为中国互联网 BAT 三巨头。

请问上述空格应该填什么?有的人回答“百度”,有的人可能觉得,“字节”也没错。但总不再可能是别的字了。

不论填什么,这里都表明,空格处填什么字,是受到上下文决定和影响的

Bert 所做的事就是从大规模的上亿的文本预料中,随机地扣掉一部分字,形成上面例子的完形填空题型,不断地学习空格处到底该填写什么。所谓语言模型的训练和学习,就是从大量的数据中学习复杂的上下文联系。

二、初代GPT

与此同时,OpenAI 早于 Bert 出品了一个初代 GPT 模型。

它们大致思想是一样的。都基于 Transformer 这种编码器,获取了文本内部的相互联系。

编解码的概念广泛应用于各个领域,在 NLP 领域,人们使用语言一般包括三个步骤:

接受听到或读到的语言 -> 大脑理解 -> 输出要说的语言。

语言是一个显式存在的东西,但大脑是如何将语言进行理解、转化、存储的,则是一个目前仍未探明的东西。因此,大脑理解语言这个过程,就是大脑将语言编码成一种可理解、可存储形式的过程,这个过程就叫做语言的编码。

相应的,把大脑中想要表达的内容,使用语言表达出来,就叫做语言的解码。

在语言模型中,编码器和解码器都是由一个个的 Transformer 组件拼接在一起形成的。

讲一下 Bert 和 GPT 的区别。

两者最主要的区别在于,Bert 仅仅使用了 encoder 也就是编码器部分进行模型训练,GPT 仅仅使用了 decoder 部分。两者各自走上了各自的道路,根据我粗浅的理解,GPT 的decoder 模型更加适应于文本生成领域。

GPT 初代其实个人认为(当然普遍也都这么认为)略逊色于 Bert,再加上宣传地不够好,影响力也就小于 Bert。

三、GPT-2

自从 Bert 炸街后,跟风效仿的改进模型也就越来越多了,比如 albert、roberta、ERNIE,BART、XLNET、T5 等等五花八门。

最初的时候,预训练任务仅仅是一个完形填空任务就可以让语言模型有了极大进步,那么,很多人就想,给 LLM 模型出其它的语言题型,应该也会对模型训练有极大的帮助。

想要出语言题型不是很简单么,什么句子打乱顺序再排序、选择题、判断题、改错题、把预测单字改成预测实体词汇等等,纷纷都可以制定数据集添加在模型的预训练里。很多模型也都是这么干的。

既然出题也可以,把各种NLP任务的数据集添加到预训练阶段当然也可以。那就把机器翻译、文本摘要、领域问答统统往预训练里加。

这个过程也和人脑很像,人脑是非常稳定和泛化的,既可以读诗歌,也可以学数学,还可以学外语,看新闻,听音乐等等,简而言之,就是一脑多用。

我们一般的 NLP 任务,文本分类模型就只能分类,分词模型就只能分词,机器翻译也就只能完成翻译这一件事,非常不灵活。

GPT-2 主要就是在 GPT 的基础上,添加了多个任务,扩增了数据集和模型参数,又训练了一番。

既然多个任务都在同一个模型上进行学习,还存在一个问题,这一个模型能承载的并不仅仅是任务本身,“汪小菲的妈是张兰”,这条文字包含的信息量是通用的,它既可以用于翻译,也可以用于分类,判断错误等等。也就是说,信息是脱离具体 NLP 任务存在的,举一反三,能够利用这条信息,在每一个 NLP 任务上都表现好,这个是 元学习(meta-learning)。本质上就是语言模型的一脑多用。

四、GPT-3

大模型中的大模型

首先, GPT-3 的模型所采用的数据量之大,高达上万亿,模型参数量也十分巨大,上千亿,学习之复杂,计算之繁复,很难用语言描述。

GPT-3 里的大模型计算量是 Bert-base 的上千倍。统统这些都是在燃烧的金钱,真就是 all you need is money。如此巨大的模型造就了 GPT-3 在许多十分困难的 NLP 任务,诸如撰写人类难以判别的文章,甚至编写SQL查询语句,React或者JavaScript代码上优异的表现。

对话

我们是如何学会中文的?从0岁开始,听、说,也就是对话。

我们是如何学外语的?看教材,听广播,背单词。唯独缺少了对话!正是因为缺少了对话这个高效的语言学习方式,所以我们的英语水平才如此难以提高。

对于语言模型,同理。对话是涵盖一切 NLP 任务的终极任务。从此 NLP不再需要模型建模这个过程。比如,传统 NLP 里还有序列标注这个任务,需要用到 CRF 这种解码过程。在对话的世界里,这些统统都是冗余的。

其实 CRF 这项技术还是蛮经典的,在深度学习这块,CRF这也才过去没几年。人工智能发展之快,sigh……


in-context learning

以往的预训练都是两段式的,即,首先用大规模的数据集对模型进行预训练,然后再利用下游任务的标注数据集进行 finetune,时至今日这也是绝大多数 NLP 模型任务的基本工作流程。

GPT-3 就开始颠覆这种认知了。它提出了一种 in-context 学习方式。这个词没法翻译成中文。。。

按理来讲,针对机器翻译任务,我们当然希望模型输出最后一句,针对对话任务,我们希望模型输出前两句中的任何一句。

这时就有了 in-context 学习,也就是,我们对模型进行引导,教会它应当输出什么内容。

这里,只是告知了模型如何做,最好能够给模型做个示范,这也蛮符合人们的日常做事习惯,老师布置了一篇作文,我们的第一反应是,先参考一篇范文找找感觉。

在 GPT-3 的预训练阶段,也是按照这样多个任务同时学习的。比如“做数学加法,改错,翻译”同时进行。这其实就类似前段时间比较火的 prompt。

这种引导学习的方式,在超大模型上展示了惊人的效果:只需要给出一个或者几个示范样例,模型就能照猫画虎地给出正确答案。注意啊,是超大模型才可以,一般几亿、十几亿参数的大模型是不行的。

五、ChatGPT

ChatGPT 模型上基本上和之前 GPT-3 都没有太大变化,主要变化的是训练策略变了,用上了强化学习。


强化学习

几年前,alpha GO 击败了柯洁,几乎可以说明,强化学习如果在适合的条件下,完全可以打败人类,逼近完美的极限。


强化学习非常像生物进化,模型在给定的环境中,不断地根据环境的惩罚和奖励(reward),拟合到一个最适应环境的状态。


NLP + 强化学习

强化学习之所以能比较容易地应用在围棋以及其它各种棋牌游戏里,原因就是对于 alpha Go 而言,环境就是围棋,围棋棋盘就是它的整个世界。模型就是不断根据棋盘的状态以及输赢状况调整策略,战胜了柯洁。


NLP 所依赖的环境,是整个现实世界,整个宇宙万物,都可以被语言描述,也就都需要针对模型输出的质量进行 reward 评价,它完全无法设计反馈惩罚和奖励函数。除非人们一点点地人工反馈。

这种带人工操作的 reward,被称之为 RLHF(Reinforcement Learning from Human Feedback)

这里重点是第二步中,如何构建一个 reward 函数,在alpha go 里,这个reward 函数就是下完一盘围棋之后判断谁输谁赢,只需要一个程序函数即可完成。

而在ChatGPT里,具体就是让那40名外包人员不断地从模型的输出结果中筛选,判断哪些句子是好的,哪些是低质量的,这样就可以训练得到一个 reward 模型。

通过 reward 模型来评价模型的输出结果好坏。

只要把预训练模型接一根管子在 reward 模型上,预训练模型就会开始像感知真实世界那样,感知reward。

展开阅读全文

页面更新:2024-03-08

标签:机器翻译   编码器   围棋   函数   模型   过程   领域   语言   环境   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top