ChatGPT⼊门到精通(3):ChatGPT 原理

OpenAI在2022年11⽉份发布ChatGPT,强⼤的⽂字对话、创意写作能⼒,全球掀起了⼀
波AI浪潮。本⽂对ChatGPT的技术原理、厉害之处、可能的落地⽅向等⽅⾯进⾏了全⾯
的解析,看完后会对ChatGPT有更深⼊的了解。

⼀、前⾔

2022年11⽉30⽇,ChatGPT发布,5天内涌⼊100W⽤户。
他拥有持续的上下⽂对话能⼒,同时⽀持⽂章写作、诗词⽣成、代码⽣成等能⼒。
如果⽤旧技术去理解他,我们通常会认为他的背后是由复合Agent组合起来⽀撑的。
复合Agent是什么意思呢?即有若⼲个术业有专攻的Agent:有⼀个负责聊天对话的,⼀
个负责诗词⽣成的,⼀个负责代码⽣成的, ⼀个负责写营销⽂案的等等等等。
每个Agent只擅⻓做⾃⼰的那部分事情,⽽在⽤户使⽤的过程中,系统会先判定⽤户的意
图是什么,应该是哪个Agent,然后再将⽤户的命令分发给对应的agent去解决并提供答
案。
因此看起来是很厉害的机器⼈,背后其实是若⼲个术业有专攻的机器⼈。事实上Siri、⼩
爱、⼩度,⼩冰甚⾄包括各个平台的客服机器⼈都是这种模式。这样当你要上线⼀个新能
⼒(例如写古诗),你只需要新增训练⼀个Agent,然后将这个Agent接⼊到总控的分类
意图器下就⾏。
这也是当前时代的⼀个缩影,不管外⾏⼈如何看待你从事的⾏业,不管媒体是如何⼀次次
⼈云亦云地说警惕AI取代⼈类,你⼀直都知道,你在做的只是训练出⼀个术业有专攻的机
器⼈⽽已,离真正的⼈⼯智能⼗万⼋千⾥。
但ChatGPT的能⼒不再是这种模式了,他所采⽤的模式是⼤语⾔模型+Prompting。所有
的能⼒通过⼀个模型实现,背后只有⼀个什么都会的机器⼈(即⼤语⾔模型),并⽀持⽤
户借助⽂字下达命令(即Prompting,提⽰/指⽰)。
虽然这种能⼒的表现还不算完美,但是他开启了⼀条⼀种通向“通⽤型⼈⼯智能”的道路,
曾经科幻故事⾥的Jarvis,moss好像真的有了那么⼀点可能。⽽这才是7年前,我踏⼊这
个⾏业所憧憬的东⻄啊。
可能你对我的震撼有点⽆法理解,我接下来会讲明⽩他的技术原理,带你慢慢感知这项技
术的厉害之处。

⼆、ChatGPT原理

⾸先,我们要弄明⽩,NLP任务(⾃然语⾔处理,AI的⼀个技术领域,即⽂本类的AI任
务)的核⼼逻辑是⼀个“猜概率”的游戏。
⽐如说,“我今天被我⽼板___”,经过⼤量的数据训练后,AI预测空格出会出现的最⾼概
率的词是“CPU了”,那么CPU就会被填到这个空格中,从⽽答案产⽣——“我今天被我⽼
板CPU了”。
虽然⾮常不可思议,但事实就是这样,现阶段所有的NLP任务,都不意味着机器真正理解
这个世界,他只是在玩⽂字游戏,进⾏⼀次⼜⼀次的概率解谜,本质上和我们玩报纸上的
填字游戏是⼀个逻辑。只是我们靠知识和智慧,AI靠概率计算。
⽽在⽬前的“猜概率”游戏环境下,基于⼤型语⾔模型(LLM,Large Language Model)演
进出了最主流的两个⽅向,即Bert和GPT。
其中BERT是之前最流⾏的⽅向,⼏乎统治了所有NLP领域,并在⾃然语⾔理解类任务中
发挥出⾊(例如⽂本分类,情感倾向判断等)。
⽽GPT⽅向则较为薄弱,最知名的玩家就是OpenAI了,事实上在GPT3.0发布前,GPT⽅
向⼀直是弱于BERT的(GPT3.0是ChatGPT背后模型GPT3.5的前⾝)。
接下来我们详细说说BERT和GPT两者之间的差别。
BERT:双向 预训练语⾔模型+fine-tuning(微调)
GPT:⾃回归 预训练语⾔模型+Prompting(指⽰/提⽰)
每个字都认识,连到⼀起就不认识了是吗哈哈。没关系,接下来我们把这些术语逐个拆解
⼀遍就懂了。
1、什么是“预训练模型”?
我们通常认知⾥的AI,是针对具体任务进⾏训练。例如⼀个能分辨猫品种的Agent,需要
你提供A-缅因猫,B-豹猫这样的数据集给他,让它学习不同品种之间的特征差异,从⽽学
会分辨猫品种这项能⼒。
但⼤语⾔模型不是这样运作的,他是通过⼀个⼤⼀统模型先来认识这个世界。再带着对这
个世界的认知对具体领域进⾏降维打击。
在这⾥让我们先从从NLP领域的中间任务说起。像中⽂分词,词性标注,NER,句法分
析等NLP任务。他们本⾝⽆法直接应⽤,不产⽣⽤户价值,但这些任务⼜是NLP所依赖
的,所以称之为中间任务。
在以前,这些中间任务都是NLP领域必不可少的。但是随着⼤型语⾔模型的出现,这些中
间任务事实上已经逐步消亡。⽽⼤型语⾔模型其实就是标题中的“语⾔预训练模型”。
他的实现⽅式是将海量的⽂本语料,直接喂给模型进⾏学习,在这其中模型对词性、句法
的学习⾃然⽽然会沉淀在模型的参数当中。我们看到媒体对ChatGPT铺天盖地的宣传⾥
总是离不开这样⼀句话——在拥有3000亿单词的语料基础上预训练出的拥有1750亿参数
的模型。
这⾥⾯3000亿单词就是训练数据。⽽1750亿参数就是沉淀下来的AI对这个世界的理解,
其中⼀部分沉淀了Agent(代理、中间⼈)对各类语法、句法的学习(例如应该是两个馒
头,⽽不是⼆个馒头,这也是中间任务为什么消亡的原因)。⽽另外⼀部分参数参数则储
存了AI对于事实的认知(例如美国总统是拜登)。
也就是经过预训练出⼀个这样的⼤语⾔模型后,AI理解了⼈类对语⾔的使⽤技巧(句法、
语法、词性等),也理解了各种事实知识,甚⾄还懂得了代码编程,并最终在这样的⼀个
⼤语⾔模型的基础上,直接降维作⽤于垂直领域的应⽤(例如闲聊对话,代码⽣成,⽂章
⽣成等)。
⽽BERT和GPT两者都是基于⼤语⾔模型的,他们在这⼀点上是相同的。他们的不同在于
双向/⾃回归,fine-tuning/Prompting这两个维度,我们接下来会重点弄明⽩这四个术语。
2、猜字谜的两种⽅式,BERT、GPT
BERT 和 GPT 都是基于 Transformer ⽹络架构和预训练语⾔模型的思想⽽提出的。
它们都可以在不同语⾔任务上达到最先进的⽔平。BERT 和 GPT 展⽰了预训练语⾔模型
对于⾃然语⾔理解和⽣成任务的巨⼤潜⼒,在诸多任务中取得了突破性进展。
BERT,全称为 Bidirectional Encoder Representations from Transformers,是由 Google
AI Language 团队在 2018 年提出的预训练语⾔模型。它主要⽤于⾃然语⾔理解,具体应
⽤如下:问答系统、句⼦相似度⽐较、⽂本分类、情感分析、命名实体识别等。BERT 的
训练过程分为预训练和微调两部分。预训练是 BERT 模型的基础部分,它包括使⽤⼤量
的⽂本来训练语⾔模型。微调过程是在预训练模型的基础上,使⽤更⼩的标记数据来调整
模型参数。
BERT是“双向”预训练法,是指这个模型在“猜概率的时候”,他是两个⽅向的信息利⽤起
来同时猜测。例如“我__20号回家”,他在预测的时候,是同时利⽤“我”+“20号回家”两端的
信息来预测空格中的词可能为“打算”。有点像我们做英⽂的完形填空,通常都是结合空格
两端的信息来猜测空格内应该是哪个单词。
GPT(Generative Pre-trained Transformer)则是由 OpenAI 研究团队在 2018 年提出的
⼀种语⾔模型。它能够完成各种⾃然语⾔处理任务,在⽂本⽣成⽅⾯表现尤为优秀,可以
⽣成各种类型的⽂本,如⽂章、诗歌、对话等。其主要具体应⽤如下:⽂本⽣成、⽂本⾃
动完成、语⾔翻译、对话⽣成、摘要⽣成等。
⽽GPT使⽤的是“⾃回归”预训练法,就是猜概率的时候从左往右做预测,不会利⽤⽂本中
右侧的内容,和BERT相反。这就有点像我们写作⽂的时候,我们肯定是⼀边写⼀边想。
BERT 和 GPT 的主要区别在于它们所采⽤的预训练⽅法不同。BERT 是使⽤双向的预训
练⽅法,即同时预测⽂本中的上下⽂信息,⽽ GPT 是使⽤单向的⾃回归预训练⽅法,即
从前到后⽣成下⼀个单词或句⼦。这意味着 BERT 可以更好地处理需要理解整个句⼦或
段落的任务,⽽ GPT 则更适合⽣成下⼀个单词或句⼦,两者基本理念的区别导致BERT
在之前更擅⻓⾃然语⾔理解类任务,⽽GPT更擅⻓⾃然语⾔⽣成类任务(例如聊天、写
作⽂)。——注意,我说的是之前,后⾯的章节我会介绍现在的情况发⽣了什么变化。
BERT和GPT各⾃优缺点:
BERT优点:性能优越,⼴泛应⽤于NLP下游任务。缺点:⽆法直接⽣成⻓⽂本。
GPT优点:语⾔⽣成和理解能⼒强,可⽣成⻓连贯⽂本。缺点:性能不及BERT,表现不太稳
定。
BER Trepresents语义信息更加丰富,是⽬前最优秀的语⾔表⽰模型。但⽣成能⼒受限。
GPT⽣成效果更⾃然,语义和语法更加连贯,但对语义理解仍略显不⾜,对 DOMAIN 敏感度
⾼。
BERT和GPT各有优缺点,实际应⽤中通常会根据具体任务选择使⽤BERT还是GPT,亦或是
将⼆者结合,发挥各⾃的优势,达到最佳效果。

3、微调 vs 提⽰(咒语)

假设现在预训练好的⼤模型要针对具体领域⼯作了,他被安排成为⼀名鉴⻩师,要分辨⽂
章到底有没有在搞⻩⾊。那么BERT和GPT的区别在哪⾥呢?
BERT:fine-tuning(微调)。微调是指模型要做某个专业领域任务时,需要收集相关的
专业领域数据,做模型的⼩幅调整,更新相关参数。
例如,我收集⼀⼤堆标注数据,A-是⻩⾊,B-没有搞⻩⾊,然后喂给模型进⾏训练,调整
他的参数。经过⼀段时间的针对性学习后,模型对于分辨你们是否搞⻩⾊的能⼒更出⾊
了。这就是fine-tuning,⼆次学习微调。
GPT:Prompting。prompt是指当模型要做某个专业领域的任务时,我提供给他⼀些⽰
例、或者引导。但不⽤更新模型参数,AI只是看看。
例如,我提供给AI模型10张⻩⾊图⽚,告诉他这些是搞⻩⾊的。模型看⼀下,效果就提
升了。⼤家可能会说,这不就是fine-tuning吗?不是⼀样要额外给⼀些标注数据吗?
两者最⼤的区别就是:这种模式下,模型的参数不会做任何变化升级,这些数据就好像仅
仅是给AI看了⼀眼——嘿,兄弟,参考下这个,但是别往⼼⾥去。
不可思议吧,但他成功了!⽽更令⼈疯狂的是,到⽬前为⽌,关于prompt明明没有对参
数产⽣任何影响,但确实⼜明显提升了任务的效果,还是⼀个未解之谜。暂时⽽⾔⼤家就
像程序员对待bug⼀样——I don’t know why , but it work lol.
这种Prompt其实就是ICT(in-Context Learning),或者你也可以称为Few shot
Promot,⽤⼤⽩话说就是“给你⼀点⼩提⽰”。
同时还有另外⼀种Promot,称之为Zero shot Promot。ChatGPT就是Zero shot promot模
式,⽬前⼀般称之为instruct了。
这种模式下⽤户直接⽤⼈类的语⾔下达命令,例如“给我写⾸诗”,“给我做个请教条”,但
是你可以在命令的过程中⽤⼀些⼈类语⾔增强AI的效果,例如“在输出答案之前,你先每
⼀步都想⼀想”。就只是增加这样⼀句话,AI的答案效果就会明显提升。
你可能会问这是什么魔法咒语?!
有⼀个⽐较靠谱的猜测是这句话可能让AI回想起了学习的资料中那些推理知识好像前⾯都
会有这句话。
然后这⼀切莫名激活起了他死去的记忆,不⾃觉开始仿造那些严密的推理过程中⼀步步推
导。⽽这些推导会将⼀个复杂问题分解成若⼲⼦问题,AI因为对这些⼦问题的推导,从⽽
导致最终答案效果提升。
综上对⽐下来,你会发现好像GPT这种模式⽐起BERT模式更符合我们对⼈⼯智能的想
象:通过海量的知识成⻓起来,然后经过稍微引导(Prompt),他就能具备不同领域的
强⼤能⼒。

最后总结⼀下,ChatGPT背后的GPT模型是什么?

在⼀个超⼤语料基础上预训练出的⼤语⾔模型(LLM),采⽤从左到右进⾏填字概率预
测的⾃回归语⾔模型,并基于prompting(提⽰)来适应不同领域的任务。
如果只基于上⾯的描述,你可能⼤概弄懂了他背后的原理,但是对于为什么他这么⽜逼,
你仍然⽆法理解。没关系,我们接着进⼊第4节

猜你喜欢

转载自blog.csdn.net/weixin_38083655/article/details/132561578