通俗直观介绍ChatGPT背后的大语言模型理论知识

什么是自编码器(autoencoder,encoder-decodermodel)?通俗地说,用拍摄设备,录制视频,录制成了mp4文件,就是采集并且encode;你的手机视频播放器播放这个视频,就是decode视频并且播放。做encode-decode的模型,就是编码-解码模型。很明显,编码模型和解码模型是两个模型,但是,他们是配对使用的。你不能编码出一个.avi文件,然后用只支持.mp4的解码器去解码。

在深度学习领域里,下面这个就是最简单的编码-解码模型示意图。f函数是编码器,把输入x变成某个叫做h的东西,g是解码函数,把编码出来的东西,解码成输出r。

那么,最简单的编码器,就是什么都不干:f(x)=x,h=x,r=g(f(x))=h。输入‘TomchaseJerry’,输出就是‘TomchaseJerry’。显然,这样的字编码器不需要训练,并且,也没有任何用处。

如果,输入‘TomchaseJerry’,输出是‘汤姆追逐杰瑞’,那么这个自编码器就完成了机器翻译的任务。我们人类可以做翻译,实际流程上,也跟这个差不多。那么,我们人类是怎么做到的呢?我们并不是以‘做翻译’为唯一的目标去学习语言的,我们会学习‘单词’、‘语法’、‘语言所表达的常识’这些语言之下最基础的‘特征’的‘表示’。当我们学会了被表达的事物和它在不同语言中的表示之后,我们就能做翻译这件事情了。我们仔细审视一下这个过程,我们至少做了两件事情:

1)学会被各种语言所表示的‘东西’,这里我们称之为世界知识(worldknowledge),它包括事实性知识(factualknowledge)和常识(commonsense)。其中包括,学会至少两门语言里表达世界知识的单词和语法。

2)学会按别人的要求去执行翻译这个任务。

那么,这两件事情的第一件,就是GPT的第二个单词,Pre-train(预训练)。我们就是要去学到‘TomchaseJerry’这句话和其他无数句话在被拆解成世界性知识之后的‘表示’。

Transformer就是一个专门用于自然语言处理的编码-解码器架构。编码器-解码器可以有很多不同的架构细节,就能得到不同的自编码架构,Transformer是此刻看起来效果最好的,能很好地学到自然语言背后的特征,并且有足够大的模型容量。所谓模型容量,是指,有一些模型参数过多,就反而学不到特征,或者无法训练了,无法用于表示特别复杂的东西。

GPT全称GenerativePre-trainedTransformer,前面讲了编解码,算是讲了一点点Transformer,也讲了预训练、Pre-trained。那么,Generative从何讲起?

我接着说人话。前面讲到了,编码器-解码器是两个不同的模型,就像你看视频,你的手机上并不需要视频录制、编辑软件,只需要一个解码-播放器一样。训练两个模型太麻烦,我们希望就围绕一个模型做研究,做训练。我们能不能不做编码,就围绕解码模型来达到一些目的呢?答案当然是可以的。

打个不严谨的比方。我现在想找人帮我画一幅肖像画。其实我并不懂怎么画画。于是,我请人给我画。我并不能从画工技艺、艺术审美方面去评判他画得好不好。但是,我是有能力去判断我请的人画出来的画是不是令我满意的。此时,我就是一个decode-only的模型。你会说,“你这个decode-only的模型必须要有一个懂encode的画师才能工作啊“。是的,我不懂画画。确实需要一个画师。

但是,你记得吗,OpenAI训练GPT3的模型,就是给它海量的数据,让它去训练。那么,画师不教导我绘画技巧,只是不停的给我画肖像,并且,给我看肖像是否满意,我指出哪些地方不满意,他做出修改。这个事情干了一千万次,我是不是至少能学到‘当给我一幅没画好的我的肖像画,我知道应该怎么接着画下一笔‘?我不是从拆解好的理论体系里去学习的,我并不能叫出各种会画技法的名字,但是,我就是会做上面这件事情了。

相当于,我听到“GPT是一个预训练模”,我就知道下一个字一定是“型”字一样。而因为我只擅长接着前面做好的事情完成接下来的事情,所以,我会‘生成’这个工作方式,同时,我也只会‘生成’这个工作方式。这就是Generative的意思。

总结一下,Generative是被训练出来的模型的工作的方式,Transformer是这个模型的架构,Pre-trained是形容Transformer的,就是说训练这个模型,预训练是不可或缺的核心步骤。

有一个很重要的点,被训练完成的我,是如何知道没画完的肖像画的下一笔是应该怎么画的?就相当于你听到“今天天气很”之后,你是怎么知道下一个词是什么的?显然,你是靠猜测的。什么东西来支撑你的猜测?是你被训练了一百万次的经验。这些经验构成了什么?这些经验被你潜意识地总结成了一些规律。有一些规律确定性很高,有一些规律确定性很低。“今天天气很”后面接的字,确定性很低,“GPT是一个预训练模”后面接的字确定性很高。

那么,你实际上就是学到了一个概率模型,这个概率模型其实是无数个场景的概率分布组合而成的概率模型。预测“今天天气很”的下一个词,是一个概率分布。“GPT是一个预训练模”的下一个词是另一个概率分布。所以,从头学习机器学习、深度学习,就会知道,所有机器学习、深度学习模型都是概率模型,统计学是核心工具。

我们在对话聊天的时候,如果说了一些自己觉得是常识,对方却不懂的时候,是不是对话就较难进行下去了?所以,为什么我们的模型需要这么多参数?因为它需要‘什么都懂’。如果我说我用32M规模的数据就记住了这个世界的常识,你是不是会觉得‘这显然不可能’?

前面已经讲了Generative、Pre-trained、Transformer这些概念。我们接着讲ChatGPT。首先,GPT3不等于ChatGPT,GPT3这个预训练模型,是ChatGPT的基础。回顾我们最开始讲的‘人如何学会翻译’至少需要两个步骤,第一步就是训练一个GPT3的预训练模型。有了这个模型之后,我们还要接着做一些训练,才能完成ChatGPT。

我们首先来回顾一下GPT1、GPT2。

所以,又可以把猜下一个词分解为很多种猜词任务,数学计算就是其中一种。最后,证明了GPT2效果还不错。多说一句,上面这么搞,怎么就是自监督了呢?是否是‘有监督’学习,本身这个概念比较模糊,并不是一个科学的定义,只是大家习惯这么叫而已。我们约定俗成,把‘训练数据是经过精巧地设计,并且准备过程对人力成本较高’的训练,叫做有监督训练,否则就是无监督。我们只是把前人努力写的书做了一个调整给到模型,按照这个约定,应该属于无监督学习。但是,好像,我们又其实是在用人类努力的成果在训练它。所以,有人就开始称这种情况为‘自监督学习’。

接着,你就会想,深度学习是一门科学啊,怎么能对概念的定义搞得这么模糊不严谨?对,你说得没错,深度学习,在玩数学的人眼里,就是充满了不严谨,处在鄙视链的底端。但是,你挡不住深度学习应用的效果好呀。深度学习就是这么一系列‘不严谨’,充满了‘我不知道为什么,但是这么做效果就好’的方法。科学家们在努力地解释它为什么效果好,但是,这些研究远远追不上,找到‘效果更好,但是并不理解为什么效果好’的方法的步伐。对你自己的认知亦是如此,你有自我认知,那么,你的自我认知是怎么来的?“我是谁,我从哪里来,我要到哪里去?”

顾名思义,就是要通过一些‘问题-回答’对的训练数据,让模型能在收到“给我写一段简介”这样的指令性的输入的时候,真地去按照指令的要求去生成接下来的东西。OpenAI的标题里出现了一个词'Alignling(对齐)',你可以不管它。但是,理解了这个词,你才理解了‘制定对齐/指令微调’的核心技术。有兴趣,你可以接着看这个自然段,也可以不看,直接跳到下下一个自然段。

‘指令对齐’,就让掌握了知识的模型能按照我们想要的方式去生成更多的词了。达到这个效果的方法,讲起来,很硬核。为了说人话,我就打个比方。现在,我们有一个房间,里面有几百本书就像垃圾一样堆砌在一起。这就是预训练已经把隐藏特征学到了。我们应该怎么去整理这些书籍呢?这个问题,取决于,我们后续要如何使用这些书籍。我们可以按门类,去排列书籍,每一类书籍一个书架。也可以按照书名去排列书籍,所有书籍分别根据书名被放在按A-Z排列的的书架里。

所以,对齐,就是根据我们的目的,去整理模型学到了的知识。那么,为什么我们不用整理、重构之类的词,而用对齐呢?因为,我们知道模型学到了知识,但是,我们能看到这些表示,就是1750亿个参数,但是,人类看不懂它。就像,人类能看到自己的脑袋,但是脑袋里的神经元是如何联合在一起工作的,看不懂。

更具体的,‘1+1=2’这个知识,你知道它存储在你大脑里的具体哪个神经元上么?你当然不能。所以,我们没有细粒度的手段去整理书籍。有一个比较粗力度的手段,就是:按照我的需求,大概地把一些数据强行抓住首尾两本书,把它们压齐。你整理书籍,可以一本一本放。但是你没法去拿其中一本的时候,你当然可以从一对儿书的两端,用力压,被按照我们想要的方式挤压之后,书自己就变得更整齐了,对齐到了我们想要的结构。

我再打个比方,社会共识、常识,本身也是‘对齐’得来的。‘婚姻应该是自由恋爱的结果’,这个常识,不是从来如此的。是理性主义崛起之后,紧接着浪漫主义在1900年左右崛起,在20世纪才出现的。浪漫主义借由‘罗密欧与朱丽叶’之类的文艺作品广泛传播、得到认可,进而才把我们的常识‘对齐’成了这么一个结果。说得更远一点,习惯了中国文化的人在美国必然会被‘文化冲突’所困扰,也是因为,中国和美国其实都通过媒体把自己的常识对齐成了不同的‘形状’。‘对齐’无时无刻不在这个世界里发生。

实际上,模型每次只能生成一个词儿,那么,把问题和回答都当成字符串连接起来,结构是:输入[问题里所有的词][回答的前n个词儿],生成回答的第N+1个词儿。如果进行第二轮对话。输入就变成了:输入[第一个问题里所有的词][第一个回答的所有词][第二个问题的所有词][第二个问题的回答的前n个词],输出[第二个回答的第N+1个词]。至于模型如何知道哪一段是问题,哪一段是问题,这里不展开描述。

至此,你知道了GPT3是ChatGPT这个‘技惊四座’的模型的基础。

我们都知道,ChatGPT至少经历了预训练、指令对齐、你可以理解为,一个大学生上一门课,指令对齐就是老师在课堂上给我们上课。但是,我们学习不能总是耗着一个老师一直给我们讲啊,成本太高了。就是说,积累大量指令对齐的QA(问题-回答)训练数据,成本很高。后续更大量的学习,还得学生自己在脱离老师的强帮助,自行学习。一则效果更好,二则成本更低。

所以,我们用完成了指令对齐的模型,针对大量问题作出回答。并且,每个问题都给出10个回答。由人类去标注,所有回答里,哪些回答更好。用这个标注的QA对去接着‘对齐’模型,让模型把知识对齐到更符合我们的要求。这个时候,人类需要做的,就仅仅是提问题+标注,之前是要给出问题且给出答案。成本降低了一些,速度也变快了一些。这里,强化学习实际上是训练一个奖励模型(rewardmodel)作为新的老师,来对模型的回答进行‘批改’,让模型愈发把知识‘对齐’到我们想要的样子。

上面简单的强化学习讲解,其实有一个很严重的问题。如果对于同一个Q,老师一会儿说A1好,一会儿说A2好,就变成了学生的脑子在来回拉扯。所以,强化学习,在细节上,还有更多不同的细节。为了讲人话,我这里略过这些细节。

大模型太大,训练成本太高,人们总在寻找更低成本近似的方法。最近LoRA也是跟CV(计算机图像)领域的StableDiffusion一起大火。这里也用人话讲一下LoRAfine-tuning(不讲StableDiffusion)。为了讲清楚,会有一点点不讲人话的时候。

我们有一个3x4的矩阵如下:

[1,2,3,4]

[2,4,6,8]

[3,6,8,12]

显然,要存储它,我们需要用到12个数字。但是,这个我特别构造的矩阵是有一个特点的,第二行可以由[1,2,3,4]乘以2得到,第三行可以由[1,2,3,4]乘以3得到。那么,实际上,我就可以用[1,2,3,4]里的4个数字,加上1、2、3这3个系数,总共7个数字就可以表示这个矩阵。我需要的数字数量从12个降低到了7个。原始矩阵叫做W,分解之后变成了需要的数字更少的两个矩阵B和A,公式就是W=B乘以A,记为W=BA。

在我这个例子中,是无损失地进行了分解。数学上,有办法进行精度有损的分解,W可以转化为更少的数字构成B和A。这就是说人话版本的矩阵的秩分解。

这里,我们补充介绍一下深度网络里的参数是怎么组织的:

在这个图中,我们看到了一个网状结构。其中‘O单向箭头指向P’的意思就是‘O参与计算,得到P’。我们就看到了z1、z2、z3很多层,z1这一层是一个W1矩阵和B1这个偏置向量。z1、z2、z3,越往右,就越深,就是深度网络。所谓参数,就是这些密密麻麻、层层叠叠的计算网络里的数字。这个图只是一个示意,真实的网络结构,各有各的不同。以及,必须在每个网络节点上选择合适的激活函数,后面不会用到,这里不做展开。好了,我们接着讲LoRA。

理解了低秩分解,LoRA的paper的意思就是:

假设我们的模型深度为l(layer的首字母),每一层的参数为矩阵W。并且,我们之前就已经训练好了一个模型,这个模型的参数冻结住,永远不改变了,记为W0。那么,我们训练模型就是在不断改变下面这个公式的ΔW这个模型参数变更的增量。

这个增量可以通过低秩分解,分解为:

训练主要过程依然和其他所有fine-tuning一样,只是多了一个细节:把训练后的参数变更保存到了BA中,而不是直接更新到W0里去。

那么,我们可以得到以下几个结论:

1)模型训练好之后,做线上推理服务,计算量,并没有减少,反而可能有所微微增加。

2)低秩矩阵的大小是可以调整的,可以是非常小。低秩矩阵越小,丢失的精度越多。

3)训练过程,两个核心成本是显存使用和GPU运算量。LoRA方法下,低秩矩阵BA是可训练参数。显存的使用,等于1倍模型参数的体积加上10倍可训练参数的体积。GPU计算量可以根据可训练参数的数量决定,如果我们把BA设定得比较小,训练量可以比全参数模型训练降低成千上万倍。

4)微调后的模型和原始模型的参数不能相差过大,不然用一个低秩矩阵BA所替代的ΔW会丢失大量精度,推理效果特别差。

5)LoRA是一种模型训练的思想方法。它可以适配到很多类型的模型上。GPT模型,或者StableDiffusion的模型,都可以。训练时节省的显存量,要根据具体模型结构来计算。

回顾一下LoRA与GPT,我们可以说,LoRA方式的finetuning的对于GPT的价值,并不太大。只有在很小的场景,有LoRA的发挥空间。

现在,你应该能理解LoRA论文原文中的这种图了。注意,这里,LoRA是对原深度神经网络的每一层都设计了对应BA矩阵。

综上,如果我们手里已经有一个强大的模型,我们仅仅像微调它的表现,而不是想要教会它很多新的东西,使用LoRA方法,成本是很低的。比如,文生图的时候,我们不调整生成出来的图片的框架、构图,我们只想调整图片的风格(真实系、漫画风)。或者,我们让一个强大的模型去做一些简单的任务,把简单的任务做得特别好,也可以用LoRA。

计算机大二课程:

对截止2017年的理论研究最全面、深入的总结:

大概学懂前面的内容之后,看深度学习二号人物bengio写的书,大家亲切地叫它‘花书’。

PyTorch的API极度友好,可以通过下面这本书来数学。如果从这本书上手,你会不知道自己写的简短的代码在干什么。此书由亚马逊前首席科学家李沐所著,写得不错。这本书有很多个版本,最新的版本是2023年出的,才是以PyTorch为例子。

如果过程中有很多概念理解半天都理解不了,特别是统计学的概念,在碰到的时候,就可以去B站找解释得比较好的视频,我随便列举一下:

THE END
1.最近很火的ChatGPT究竟是什么?本文解释得非常全面,还通俗易懂本文解释得非常全面,还通俗易懂 目录 01 ChatGPT是什么? 02 ChatGPT能做什么? 1)回答问题。 2)撰写文章。 3)总结提炼。 4)生成代码。 03 ChatGPT 的缺点和问题 04 ChatGPT的未来前景 1)搜索。 2)阅读。 3)写作。 05 微调:训练你自己的人工智能https://blog.csdn.net/sunyctf/article/details/129129579
2.chatgpt说它有上千亿的参数,是什么意思?简介:chatgpt说它有上千亿的参数,是什么意思? 最近在捣鼓深度学习,今天突然开窍,对于大模型、上千亿参数的理解顿悟了,所以才有了这篇文章。 一个通俗易懂的模型举例 先用一个最简单的例子来说明,例如身高和体重之间是有一定对应的关系的。 如果我们有了非常多身高与体重对应关系的数据,我们就可以运用这些数据得到https://developer.aliyun.com/article/1228733
3.chatgpt什么意思ChatGPT是一个基于人工智能技术的聊天机器人。 ChatGPT的基本概念 ChatGPT,全称为'Chat Generative Pre-training Transformer',中文意思是“聊天生成预训练转换器”,是一种基于人工智能技术的聊天机器人。它代表了当前最先进的自然语言处理(NLP)技术,通过深度学习和大规模预训练,ChatGPhttps://localsite.baidu.com/site/wjzsorv8/8cd47d9a-7797-42f3-9306-b902ded71161?qaId=1270687&categoryLv1=%E6%95%99%E8%82%B2%E5%9F%B9%E8%AE%AD&efs=1&ch=54&srcid=10014&source=natural&category=%E5%B0%8F%E5%AD%A6%E8%8B%B1%E8%AF%AD&eduFrom=136&botSourceType=46
4.chatgpt是什么意思?chatgpt是啥软件?chatgpt有什么用?chatgpt是什么意思?chatgpt是啥软件?chatgpt是人工智能研究实验室OpenAI研发的聊天机器人程序,你可以把它当做一个人工智能聊天软件,那么下面炫酷小编为大家分享chatgpt有什么用。 chatgpt怎么下载? chatGPT手机中文版下载:http://gaokaoxz.715083.com:8020/chatgpt_980.apk https://m.oyooyo.cn/news/27803.html
5.chatgpt是什么?使用ChatGPT可以做的11件事电脑知识ChatGPT 可能有助于以通俗易懂的方式解释它们。我们提示 ChatGPT “像我 5 岁时一样解释虫洞”,结果如下。 我们还提示它以类似的方式解释互联网。这也不算太糟糕。 4. 逐步解决棘手的数学问题 无论您是要解决复杂的代数问题还是难以拼凑的简单数学问题,ChatGPT 在处理数学方面都特别强大。为了获得最佳结果,您需http://www.dnpz.net/diannaozhishi/6115.html
6.最近很火的ChatGPT究竟是什么?会给我们的生活带来什么改变?而对这个 GPT-3.5 进行包装、优化所形成的 ChatGPT,就是一个交互层,它的本质就是加了一层更友好的用户界面和交互方式,让个人用户能够更容易地应用它。 ChatGPT 能做什么? 了解完 ChatGPT 的原理,我们自然会关心一个问题:就目前而言,ChatGPT 究竟能做什么? https://36kr.com/p/2124639705736454
7.麻烦详细说明下,CHATGPT概念股是什么意思?你好,chatgpt概念股其实就是人工智能相关的股票。chatgpt是OpenAI开发的一个大型预训练语言模型,通俗一点https://licai.cofool.com/ask/qa_2057808.html
8.人人都懂的ChatGPT指南:原理价值应用理解原理是有效应用的第一步。ChatGPT是基于GPT模型的AI聊天产品,后文均简称为GPT。 从技术上看,GPT是一种基于Transformer架构的大语言模型(LLM)。GPT这个名字,实际上是'Generative Pre-trained Transformer'的缩写,中文意为“生成式预训练变换器”。 1.大模型和传统AI的区别是什么? http://www.360doc.com/content/23/0730/08/37102638_1090546201.shtml
9.科普ChatGPT及其影响说实话,想通俗的讲出来这个东西还有点难哈哈。今天先到这里,楼主也准备睡了。大致的总结一下上面的内容: 1、chatgpt是openai开发的一个语言模型,他的能力就是对语言进行理解,他对所有问题的解答也是基于对之前学习过的语言的综合考虑。(当然新发布的GPT-4还能读图片了,更牛了)。 2、这个东西怎么来的呢,大力飞https://m.douban.com/group/topic/285857238
10.如何用chatgpt学习炒股现在我们了解了Chat GPT是什么?为什么叫Chat GPT?GPT的各个版本、如何用Chat GPT!以后我们有问题就可以http://chatgpt.cmpy.cn/ask/1201005.html
11.看似无所不能,ChatGPT会不会成为行业“终结者”为什么这么说?我们可以尝试同时问ChatGPT和苹果智能手机助手Siri一个前阵子所有人都特别关心的问题:“阳”了之后该注意什么? 这时,Siri会因为无法理解问题,直接为我们到网上搜索已有的答案,但是ChatGPT却像一个真正的健康专家一样,合成出了像模像样的回答,而这一解答并非是网络上已经存在的。 https://www.zjds.org.cn/jzjd/40541.jhtml