一文读懂chatGPT模型原理(无公式)

article/2024/12/23 0:40:47

每天给你送来NLP技术干货!


来自:JioNLP

点击这里进群—>加入NLP交流群


64837cc49ca5c12f34190d8f522518e1.png

本文是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 这种编码器,获取了文本内部的相互联系。

e9ddcc7600fb3323bc0aaf1aea31c108.png
Transformer结构

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

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

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

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

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

90780898fc344932b69a7dcb5ebde1be.png
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 的基础上,又添加了多个任务,扩增了数据集和模型参数,又训练了一番。

5d22b15c78cefe8e5f4fac6faa050bdc.png
GPT-2学习效果图

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

四、GPT-3

大模型中的大模型

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

cb159966fd173b7cac6b5b649a25c04c.png

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。

2e2f29a74da256598056fd489fb56161.png

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

40f5e9540115a7e6d4544c28d8f676f1.png

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

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

f6348732f675fc0a1e56bb18b8e025a3.png

这个表格彷佛在嘲讽我:哎,你没钱,你就看不着这种优质的效果,你气不气?

f8723eaf46dab24a94df07279e70dd45.png

五、chatGPT

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

charGPT 模型上基本上和之前都没有太大变化,主要变化的是训练策略变了。

强化学习

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

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

f2d7f91138c252546fd27788c079e66d.png

NLP + 强化学习

强化学习之所以能比较容易地应用在围棋以及其它各种棋牌游戏里,原因就是因为对莫 alpha Go 而言,环境就是围棋,围棋棋盘就是它的整个世界。

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

c6125d057c39479641eed9c616daec28.png

底下回答一片唱衰,原因就是因为,NLP 所依赖的环境,是整个现实世界,整个世界的复杂度,远远不是一个19乘19的棋盘可以比拟的。无法设计反馈惩罚和奖励函数,即 reward 函数。除非人们一点点地人工反馈。

哎,open-ai 的 chatGPT 就把这事给干了。

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

637368b2097785588c3ec989233544e0.png

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

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

5339e8ee09eceefda532e237b52ad653.png

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

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

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

d4f88265274fe16487e78e6d49b62b76.png

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

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

chatGPT 功能一览

  • 能回答知乎上的问题640191fa2e4e52af31b0f60a0aa9bb66.png

  • 你别想耍它9f8acd2aec05ea06a6799782e81914fc.png

  • 能回答困难的问题26d87eb8b63f73f3bd8778e99b203ec0.png

  • 能理解乱序文本62829d8b36a1108b63c2612b5aa4270c.png

  • 会做高数84067c3ab730d5d37aa8e0bcd7c79b15.jpeg

  • 知道自己是程序,不会做你女票ca12e8b725fcf130ec6d645fc2dc4ec6.png

  • 还能处理程序 bug

cbeb7476ce36139ab409c61c15a2c9df.jpeg

六、影响

NLP 领域的影响

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

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

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

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

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

ed9bcf4920f1d533c6e7dbd921fb7d3d.png

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

58cccd2c611bf44574bf79a598b6d39c.png

另一些影响

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

886d233a16a64007e5eaa477a7fb15e4.png

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

9aaaf4f23a59a85581ee0e97ae25ce67.png

当然,完全不仅仅是程序界。据说 GPT-4 正在做图文理解,那么,对于教师、医生、咨询师、等等等等,各行各业,是不是都是一个巨大的冲击?所谓专业领域的知识门槛,也将被模型一步踏平。到时候,可能人类真的要靠边站了,除了某些高精尖的行业精英

有人讲 google 将被替代,我认为也就还好吧,依照google那财大气粗的样子,没准 google 此时此刻,NLP+强化学习也已经在路上了。


📝论文解读投稿,让你的文章被更多不同背景、不同方向的人看到,不被石沉大海,或许还能增加不少引用的呦~ 投稿加下面微信备注“投稿”即可。

最近文章

COLING'22 | SelfMix:针对带噪数据集的半监督学习方法

ACMMM 2022 | 首个针对跨语言跨模态检索的噪声鲁棒研究工作

ACM MM 2022 Oral  | PRVR: 新的文本到视频跨模态检索子任务

统计机器学习方法 for NLP:基于CRF的词性标注

统计机器学习方法 for NLP:基于HMM的词性标注


点击这里进群—>加入NLP交流群


http://chatgpt.dhexx.cn/article/6pvD1aZm.shtml

相关文章

chatgpt的历史问答记录消失的解决之道

刚刚使用发现我的历史会话记录都没有了,我旁边的一个朋友也没有了。 网上查了一下,很多网友,居然也没有历史记录了。 这是故意而为之,还是误操作删除记录,更有可能是不是装了插件引起的。无意当中发现了一个方法&…

ChatGPT报错解决

背景:登录后无法正常交流,报错内容为: Something went wrong. If this issue persists please contact us through our help center at help.openai.com 如图所示: 解决方法: 1. 不关闭代理的情况下Log out再Log in&a…

chatGPT Access denied访问被拒绝(已解决)

这个网站可以直接进入ai聊天,但是功能只有语言模块,我试用了一下作为文字训练可以使用。ChatGPT Online - AI Chat GPThttps://chatgpt.org/chat 然后是网站尚Access denied 解决办法 首先要使用海外的原生IP进行全局代理,不要使用各大云平…

突破ChatGPT4.0文件无法上传的局限,提升学习效率

大家好!作为一名大学生,我最近在学习过程中遇到了一个非常棘手的问题,但是我终于找到了一个非常有效的解决方法,我想和大家分享一下。如果你也在使用ChatGPT时遇到了无法读取PDF和图片文件的困扰,那么这篇文章将会对你…

这20种职业ChatGPT无法取代!

李开发在《AI未来进行式》一书中分析了AI存在明显不足的三大短板,即便到了2042年,AI可能仍然无法完全掌握这些能力。 第一、创造力。AI不具备进行创造、构思以及战略性规划的能力。尽管AI非常擅长针对单一领域的任务进行优化,使目标函数达到最…

聊聊ChatGPT无法取代的7个工作

ChatGPT——全世界都在谈论的非常流行的人工智能工具。自从 2022 年 11 月 30 日推出以来,ChatGPT 就被证明是执行复杂任务并简化它们的一体式工具。无论是通过 UPenn 的沃顿商学院 MBA 考试,撰写常春藤盟校入学论文,还是完成简单的任务&…

OpenAI 宣布部分解除 ChatGPT 无法联网限制,引入插件策略,会带来什么变化?

OpenAI 发布 ChatGPT Plugins (ChatGPT 插件集) 昨天凌晨,OpenAI 发布 ChatGPT Plugins (ChatGPT 插件集),它能将 ChatGPT 连接到第三方应用程序) 这是 AI 的 App Store 时刻,AI 经历了「iPhone」时刻后,如今也有了应用商店。 这…

我破除了 ChatGPT 无法联网的魔咒!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 前阵子我写过一篇文章,介绍了几种无需安装 ChatGPT Plugin,即可让其轻松破除无法联网的魔咒。 最近看到不少同学对此感兴趣,因此我把这几个方案汇总完善…

解决ChatGPT 总是打不开,显示不可用,网站崩溃,聊几句话就报错,plus会员无法升级始终不成功的问题

为什么你的chat gpt总是打不开,显示不可用,网站崩溃,聊几句话就报错,plus会员无法升级始终不成功? 首先第一个问题open ai服务不可用 那么这个问题很显然,你所在的位置不提供chat gpT的服务,解…

ChatGpt结合Google文档完成自动化写作流程--1

GPT机器人可以通过API连接谷歌文档,让我们进行文字创作和编辑。可以通过它,提供写作思路,创建标题,起草文章介绍和大纲,编写段落,最后总结全文。同时,在一篇文章里,还能帮我们插入图…

每日一个 ChatGPT 使用小技巧系列之1 - 给出提纲,让 ChatGPT 帮你写作

我以前写过一篇文章,介绍了我日常工作和学习中使用 ChatGPT 的一些技巧: 与其整天担心 AI 会取代程序员,不如先让 AI 帮助自己变得更强大 为代码生成对应的单元测试代码 利用 ChatGPT 帮助自己研读经典框架的源代码 代码重构和性能优化 阅读…

使用ChatGPT最新版实现批量写作,打造丰富多彩的聚合文章

随着人工智能的迅猛发展,ChatGPT最新版作为一种自然语言处理模型,可以为我们提供强大的文本生成能力。在这篇文章中,我们将探讨如何利用ChatGPT最新版来实现批量写作,从而打造丰富多彩的聚合文章。 一、ChatGPT最新版简介 Chat…

玩转ChatGPT:论文辅助写作(附Claude测评)

一、写在前面 嘿!嘿!嘿!大家好,今天我们来聊一下使用GPT们进行论文辅助写作。不过,我要先交代一下,GPT的使用门槛比较高,不少童鞋都用不上。所以,我极力推荐一个平替产品——Claude…

ChatGPT写程序如何?

前言 ChatGPT最近挺火的,据说还能写程序,感到有些惊讶。于是在使用ChatGPT有一周左右后,分享一下用它写程序的效果如何。 1、对于矩阵,把减法操作转换加法? 感觉不错的,能清晰介绍原理,然后写示…

ChatGPT初学者写作教程

ChatGPT初学者写作教程 ChatGPT Quickstart for the ChatGPT Curious 和 Beginners – 了解这个 OpenAI 聊天机器人革命,即 ChatGPT! 课程英文名:ChatGPT for Beginners - Get Up & Running with ChatGPT Now 此视频教程共8.0小时&#x…

想用ChatGPT写作?或许没你想的那么神奇...

ChatGPT让AI进化到了新高度,它不但懂你还能够回答问题。这与传统中的网络检索、语义识别不太一样。核心是基于自然语言处理(NLP)的聊天机器人技术。 说简单点,就是可以直接打字和机器人聊天,并且得到你想要的答案。 网…

ChatGPT如何写作-chatGpt自动写文章

ChatGPT如何写作 使用 ChatGPT 进行写作一般可以遵循以下步骤: 定义写作主题和目的。确定写作主题和目的,包括要解决的问题、目标读者群体以及需要涵盖的主要内容。 收集文献和资料。收集与主题相关的文献和资料,可以从互联网、书籍、报刊杂…

ChatGPT 提示词设置

提示词 Prompt(提示词):当我们询问GPT时,发送的消息就是Prompt。 通过给出合适的Prompt,可以让GPT了解我们的想法,在根据我们的想法做出更加合适的判断,帮助我们完成任务,提高效率。…

【ChatGPT进阶】如何使用ChatGPT写小说?

ChatGPT文本处理能力是毋庸置疑的,可以使用上下文相关的文本来进行自动推理和生成。 它可以用来帮助写以更快的速度完成文章。 它可以参考上下文,以提供有用的洞察力和见解。 它可以大大提高写文章的效率。 它可以从上下文中提取关键信息,…