一文读懂ChatGPT模型原理

alt

本文是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结构
Transformer结构

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

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

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

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

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

Transformer编码器组成的 Encoder-decoder模型
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 的基础上,又添加了多个任务,扩增了数据集和模型参数,又训练了一番。效果如下:

GPT-2学习效果图
GPT-2学习效果图

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

四、GPT-3

大模型中的大模型

首先, GPT-3 的模型所采用的数据量之大,高达上万亿,模型参数量也十分巨大,学习之复杂,计算之繁复不说了,看图吧。

alt

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。

alt

不能再给多了!一个是,咱们没那么多标注数据,另一个是,给多了不就又成了 finetune 模式了么?

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

alt

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

alt

这个结果曲线图展示了用175 billion 的参数得到了优质的效果。彷佛在嘲讽我:哎,你没钱,你就看不着这种优质的效果,你气不气?

alt

五、ChatGPT

终于说到了主角,能看到这里的,可以关注一下 JioNLP 公众号吗?我写的也够累的。

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

强化学习

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

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

NLP + 强化学习

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

而几年前知乎上就有提问,NLP + 强化学习,可以做吗?怎么做呢?

alt

底下回答一片唱衰,原因就是因为,NLP 所依赖的环境,是整个现实世界,完全无法设计反馈惩罚和奖励函数。除非人们一点点地人工反馈。

哎,OpenAI 的 ChatGPT 就把这事给干了。

不是需要人工标反馈和奖励吗?那就撒钱,找40个外包,标起来!

alt

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

具体操作过程就是下图的样子,采用强化学习的方式来对模型进行训练。已经抛弃了传统的 LM 方式。

alt

这里重点是第二步中,如何构建一个 reward 函数,具体就是让那40名外包人员不断地从模型的输出结果中筛选,哪些是好的,哪些是低质量的,这样就可以训练得到一个 reward 模型。

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

讲真,这个 reward 模型,《黑客帝国》的母体 matrix 既视感有木有??!!

alt

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

由此,我们就可以得到这个把全世界都震碎的高音!(误,模型)

ChatGPT 功能一览

ChatGPT 原理介绍完了,再来看看它能干啥工作?

  • 能回答知乎上的问题 alt

  • 你别想耍它 alt

  • 能回答困难的问题 alt

  • 能理解乱序文本 alt

  • 会做高数 alt

  • 知道自己是程序,不会做你女票 alt

  • 还能处理程序 bug

alt

六、影响

NLP 领域的影响

个人认为,NLP 领域的一些里程碑性的技术重要性排序如下:

ChatGPT > word2vec > Bert (纯个人看法)

ChatGPT 的关注度已经很大程度让人们感觉到,什么天猫精灵、小爱同学等等人工智障的时代似乎过去了。只要模型足够大,数据足够丰富,reward 模型经过了更多的人迭代和优化,完全可以创造一个无限逼近真实世界的超级 OpenAI 大脑。

当然,ChatGPT 依然是存在回答不好的情况的,比如会重复一些词句,无法分清楚事实等等。

而且,ChatGPT 目前看,它是没有在推理阶段连接外部信息的。

alt

模型知道自己的回答边界,知道自己只是一个没有情感的回答工具。那么,试想 OpenAI 把外部信息也导入到 ChatGPT 里,那是怎样的一副图景。

alt

另一些影响

我看到 ChatGPT 居然可以写代码,还能帮我改代码,debug,作为程序员,我不禁深深陷入了沉思

alt

据说,debug 程序员网站 stackoverflow,已经下场封杀 ChatGPT 了。

alt

当然,完全不仅仅是程序界。据说 GPT-4 正在做图文理解,那么,对于教师、医生、咨询师、等等等等,各行各业,是不是都是一个巨大的冲击?所谓专业领域的知识门槛,也将被模型一步踏平。

有人讲 google 将被替代,我认为也就还好吧,没准 google 此时此刻,NLP+强化学习也已经在路上了。

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/256.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatGPT原理详解

InstructGPT原文:https://arxiv.org/pdf/2203.02155.pdf chatCPT试用连接:https://chat.openai.com/auth/login 自从chatGPT问世以来,它一路爆火,目前注册用户已达1亿。它的出圈让各大公司纷纷布局AIGC,有不少人预言&…

中文版ChatGPT:智能中文聊天机器人

2017年,AlphaGo在与世界冠军柯洁的人机大战中获胜,引发了人们对人工智能的激烈讨论。 如果说,对于AlphaGo,人们更多是围观者的角色,而最新的人工智能爆款程序ChatGPT,更多人已经参与其中,上线短…

ChatGPT中文版推导流体力学公式【AI实用技巧】

我们在学习数理科目的时候经常会学到苦涩难明的公式。在以前,只能向师长或救助。有了ChatGPT后,它可以把推导过程讲得明明白白。你不来试一下吗? ChatGPT中文站https://ai-cn.co 提问:Spalart Allmaras 模型的推导过程

文心一言:中国版“ChatGPT”介绍与测评

👨‍💻作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等资料&#xff0…

【VSCode中ChatGPT中文版插件和Chat Moss合并了】

VSCode中ChatGPT中文版插件和Chat Moss合并了 今天在学习Anylogic的时候发现了一些问题,然后习惯性的去VSCode上用ChatGPT中文版去查找解决问题,然后发现更新后的ChatGPT中文版插件界面换了。 需要重新注册Chatmoss才能使用,而且对字数也进行…

chatGPT中文版设定冷知识

ChatGPT是一个基于自然语言处理技术的聊天机器人,能够根据输入文本进行智能回复。对于中文版的ChatGPT设定,以下是一些重要步骤: 选择中文预训练模型 在开始使用ChatGPT中文版之前,你需要选择适合中文场景的预训练模型。目前市面…

ChatGPT中文版正式上线,掀起人工智能语言生成新热潮

近日,全球最先进的人工智能语言生成模型ChatGPT在中国推出了中文版,引起了广泛关注。这一消息不仅给自然语言处理领域带来了新的机遇,也为文学创作、科技服务等领域提供了更加灵活和高效的解决方案。 据悉,ChatGPT中文版基于开源…

ChatGPT中文版杀疯了,已登录AI模型市场

ChatGPT是一个由Open AI 刚刚推出的AI对话模型。它区别于其他聊天机器人的能力在于,除了具体的知识性问题,还可以回答开放式问题,并以对话方式与你交互。 比如,你可以和它聊聊人生哲学,探讨一下生命的意义&#xff0c…

训练个中文版ChatGPT没那么难:不用A100,开源Alpaca-LoRA+RTX 4090就能搞定

©作者 | 机器之心编辑部 来源 | 机器之心 Alpaca-LoRA 将微调类 ChatGPT 模型的算力需求降到了消费级,训练个自己的中文对话模型真就没那么难了。 2023 年,聊天机器人领域似乎只剩下两个阵营:「OpenAI 的 ChatGPT」和「其他」。 ChatGPT…

体验chatGPT编写代码

今天注册了openAI账号,并且体验了以下chatGPT。体验过程中,我明显感觉到chatGPT不是所谓的“人工智障”,比起原来简单的问答机器人有了巨大的进步。 我主要体验的是chatGPT自动编写代码的功能。 下面两段是由chatGPT生成的代码: 提…

用ChatGPT快速制作PPT

如果你想制作一份漂亮的PPT却不知道从何下手,不要担心,ChatGPT来帮你了!ChatGPT是一种自然语言生成和理解模型,不仅可以和你聊天,还可以帮你设计和撰写一份出色的PPT。本篇文章将带你快速掌握使用ChatGPT制作PPT的技巧…

在线使用AI合集

POE 前言 目前有关注的小伙伴应该会发现,ChatGPT注册功能已经关闭。那些还没有注册的小伙伴岂不是不能使用ChatGPT,今天为大家推荐的就是Poe | AI机器人集合 Sage、Claude、ChatGPT、Dragonfly。Poe链接 使用poe.com/ChatGPT 注册也非常简单&#xff…

ChatGPT机会与变现大全

这是一篇教你如何利用ChatGPT变现的文章,从商业的视角看ChatGpt这个产品。 虽然我们都听过chatGPT,网络上也铺天盖地的文章介绍这个产品有多牛,甚至是一些有点关联的产品都跑过来陈热度给自家产品打广告。但是,这些我们都不关心&a…

初遇 chatGPT

背景 今天终于有时间尝试一下心心念的 chatGPT。注册了一下,然后尝试问了一些问题。不刁钻,结果确实令人惊艳。17年我在做自然语言处理学习的时候,还是 Tensorflow 1.0 的时代。当时还在用 LSTM 解决词意联系的问题。当然 GPT 的幕后逻辑不得…

Python 使用 ChatGPT

Python 使用 ChatGPT 前面我们已经介绍过 ChatGPT 的注册了,现在我们看一下如何通过Python 使用ChatGPT 由于ChatGPT 注册相关的文章被平台限制了,所以有注册相关的问题可以私聊 API key 的获取 到这里我们已经完成ChatGPT 的注册了,如果我们需要在代码里使用ChatGPT ,那…

chatgpt插件

chatgpt插件安装 安装步骤 安装步骤 1)打开微软的edge浏览器 2)找到相应浏览器扩展 3)获取扩展 4)搜索wetab(初始没安装的话,主页中最热门的第一个应该就是) 5)添加好后选择启用 6)打开新的…

5天注册破百万,一文详解爆火 ChatGPT 到底是个啥

作者:qizailiu,腾讯 IEG 应用研究员 导读 OpenAI 近期发布聊天机器人模型 ChatGPT,迅速出圈全网。它以对话方式进行交互。以更贴近人的对话方式与使用者互动,可以回答问题、承认错误、挑战不正确的前提、拒绝不适当的请求。高质…

火遍全网的chatGPT

最近网上非常火爆的CHATGPT,它是OpenAI开发的一款开源的自然语言处理 (NLP) 模型,用于实现对话生成和语言模型预测。CHATGPT 模型基于 GPT-3 (Generative Pretrained Transformer 3) 模型构建,拥有语言理解和文本生成能力。CHATGPT 模型可以用…

注册ChatGPT时提示Oops! The email you provided is not supported

问题描述 今天本想出一个ChatGPT的注册与使用的教程,结果上来吃了个闭门羹。之前我通过微软账号登录验证是没有问题的,但这次想使用另一个微软账号,结果提示Oops! The email you provided is not supported(您提供的电子邮件不支…

ChatGPT准备工作_step1_注册邮箱

如何注册Outlook邮箱 访问Outlook网站:在您的网络浏览器中打开 Outlook的官方网站。 点击"创建账户":在Outlook网站的主页上,点击"创建账户"选项,开始注册过程。 填写个人信息:在注册表格中填…