第2章 大模型基础_第1页
第2章 大模型基础_第2页
第2章 大模型基础_第3页
第2章 大模型基础_第4页
第2章 大模型基础_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江省普通本科高校“十四五”重点教材大语言模型通识大语言模型通识周苏教授QQ:81505050第2章大模型基础语言模型是自然语言处理领域的基础任务和核心问题,其目标是对自然语言的概率分布建模。大量的研究从n元语言模型、神经语言模型以及预训练语言模型等不同角度开展了一系列工作。这些研究在不同阶段对自然语言处理任务有重要作用。随着基于谷歌Transformer的各类语言模型的发展及预训练微调范式在自然语言处理各类任务中取得突破性进展,从OpenAI发布GPT-3开始,对大语言模型的研究逐渐深入。虽然大模型的参数量巨大,通过有监督微调和强化学习能够完成非常多的任务,但是其基础理论仍然离不开对语言的建模。第2章大模型基础01什么是语言模型02大模型发展三阶段03Transformer模型04生成式预训练语言模型GPT目录/CONTENTS05大模型的结构PART01什么是语言模型语言模型起源于语音识别。输入一段音频数据,语音识别系统通常会生成多个句子作为候选,判断哪个句子更合理?这就需要用到语言模型对候选句子进行排序。语言模型的应用范围早已扩展到机器翻译、信息检索、问答、文摘等众多自然语言处理领域。2.1什么是语言模型语言模型是这样一个模型:对于任意的词序列,它能够计算出这个序列是一句话的概率。例如,词序列A:“这个网站|的|文章|真|水|啊”,这个明显是一句话,一个好的语言模型也会给出很高的概率。再看词序列B:“这个网站|的|睡觉|苹果|好快”,这明显不是一句话,如果语言模型训练的好,那么序列B的概率就会很小。2.1.1语言模型的定义于是,给出语言模型的较为正式的定义。假设我们要为中文创建一个语言模型,V表示词典,V={猫,狗,机器,学习,语言,模型,...},wi∈V。语言模型就是这样一个模型:给定词典V,能够计算出任意单词序列w1,w2,...,wn是一句话的概率p(w1,w2,...,wn),其中,p≥0。语言模型中计算p(w1,w2,...,wn)的最简单方法是数数,假设训练集中共有N个句子,数一下在训练集中(w1,w2,...,wn)出现的次数,不妨假定为n,则p(w1,w2,...,wn)=n/N。可以想象出这个模型的预测能力几乎为0,一旦单词序列没有在训练集中出现过,模型的输出概率就是0。2.1.1语言模型的定义语言模型的另一种等价定义是:能够计算p(wi|w1,w2,...,wi-1)的模型就是语言模型。从文本生成角度来看,也可以给出如下的语言模型定义:给定一个短语(一个词组或一句话),语言模型可以生成(预测)接下来的一个词。2.1.1语言模型的定义在统计学模型为主体的自然语言处理时期,主要成果是N-gram语言模型。为了简化p(wi|w1,w2,...,wi-1)的计算,引入一阶马尔可夫假设:每个词只依赖前一个词;也可以引入二阶马尔可夫假设:每个词依赖前两个词。有了马尔可夫假设,就可以方便的计算条件概率。此外,还有前馈神经网络语言模型、循环神经网络语言模型及其他预训练语言模型。2.1.1语言模型的定义语言模型可用于提升语音识别和机器翻译的性能。例如,在语音识别中,给定一段“厨房里食油用完了”的语音,有可能会输出“厨房里食油用完了”和“厨房里石油用完了”这两个读音完全一样的文本序列。如果语言模型判断出前者的概率大于后者的概率,就可以根据相同读音的语音输出“厨房里食油用完了”的文本序列。在机器翻译中,如果对英文“yougofirst”逐词翻译成中文的话,可能得到“你走先”“你先走”等排列方式的文本序列。如果语言模型判断出“你先走”的概率大于其他排列方式的文本序列的概率,我们就可以把“yougofirst”翻译成“你先走”。2.1.1语言模型的定义早期在解决机器翻译这一类序列到序列的问题时,通常采用的做法是利用一个编码器和一个解码器构建端到端的神经网络模型,但是基于编码解码的神经网络存在两个问题。拿机器翻译作为例子:问题1:如果翻译的句子很长很复杂,比如直接一篇文章输进去,模型的计算量很大,并且模型的准确率下降严重。问题2:在翻译时,可能在不同的语境下,同一个词具有不同的含义,但是网络对这些词向量并没有区分度,没有考虑词与词之间的相关性,导致翻译效果比较差。2.1.2注意力机制同样,在计算机视觉领域,如果输入的图像尺寸很大,做图像分类或者识别时,模型的性能就会下降。针对这样的问题,提出了注意力机制。早在20世纪九十年代对注意力机制就有研究,到2014年弗拉基米尔的《视觉注意力的反复模型》一文中将其应用在视觉领域,后来伴随着2017年Transformer结构的提出,注意力机制在自然语言处理、计算机视觉等相关问题上被广泛应用。2.1.2注意力机制“注意力机制”实际上就是想将人的感知方式、注意力的行为应用在机器上,让机器学会去感知数据中的重要和不重要的部分。比如要识别一张图片中是一个什么动物时,我们让机器存在这样一个注意力侧重点,最重要应该关注的地方是图片中动物的面部特征,包括耳朵、眼睛、鼻子、嘴巴,而不用太关注背景的一些信息。核心目的是希望机器能注意到对当前任务更关键的信息,而对于其他非关键信息不需要注意太多。同样,在机器翻译中,要让机器注意到每个词向量之间的相关性,有侧重地进行翻译,模拟人类理解的过程。2.1.2注意力机制对模型的每一个输入项,它可能是图片中的不同部分,或者是语句中的某个单词,分配一个权重,这个权重的大小代表了我们希望模型对该部分的关注程度。这样,通过权重大小来模拟人在处理信息时的注意力侧重,有效的提高了模型的性能,并且在一定程度上降低了计算量。2.1.2注意力机制深度学习中的注意力机制通常可分为三类:软注意(全局注意)、硬注意(局部注意)和自注意力(内注意)(1)软注意机制:对每个输入项分配的权重在0~1之间,也就是某些部分关注多一点,某些部分关注少一点。由于对大部分信息都有考虑,但考虑程度不一,所以相对计算量也比较大。2.1.2注意力机制(2)硬注意机制:对每个输入项分配的权重非0即1,只考虑那部分需要关注,哪部分不关注,也就是直接舍弃掉一些不相关项。优势在于可以减少一定的时间和计算成本,但有可能丢失掉一些本应该注意的信息。(3)自注意力机制:对每个输入项分配的权重取决于输入项之间的相互作用,即通过输入项内部的“表决”来决定应该关注哪些输入项。和前两种相比,在处理很长的输入时,具有并行计算的优势。2.1.2注意力机制当前的大模型技术,可以分为“开源”和“闭源”两大类型。所谓“开源”,是指事物规划为可以公开访问的,因此人们都可以对其修改并分享。“开源”这个词最初起源于软件开发,指的是一种开发软件的特殊形式。但时至今天,“开源”已经泛指一组概念——就是所谓“开源的方式”。这些概念包括开源项目、产品,或是自发倡导并欢迎开放变化、协作参与、快速原型、公开透明、精英体制以及面向社区开发的原则。2.1.3开源还是闭源开源软件的源代码任何人都可以审查、修改和增强。“源代码”是软件中大部分计算机用户都没见过的部分,程序员可以修改代码来改变一个软件(“程序”或“应用”)工作的方式。程序员如果可以接触到计算机程序源代码,就可以通过添加功能或修复问题来改进这个软件。2.1.3开源还是闭源1.开源软件和其他类型软件的不同有些软件只有创建它的人、团队、组织才能修改,并且控制维护工作,称之为“专有”或“闭源”软件。专有软件只有原作者可以合法地复制、审查以及修改这个软件。为了使用专有软件,计算机用户必须同意(通常是在软件第一次运行的时候签署一份显示的许可)他们不会对软件做软件作者没有表态允许的事情。微软Office和AdobePhotoshop就是专有软件的例子。2.1.3开源还是闭源开源软件不一样。它的作者让源代码对其他人提供,需要的人都可以查看、复制、学习、修改或分享代码。LibreOffice(办公软件)和GIMP(图像编辑器)是开源软件的例子。2.1.3开源还是闭源就像专有软件那样,用户在使用开源软件时必须接受一份许可证的条款——但开源许可的法律条款和专有软件的许可截然不同。开源许可证影响人们使用、学习、修改以及分发的方式。总的来说,开源许可证赋予计算机用户按他们想要的目的来使用开源软件的许可。一些开源许可证规定任何发布了修改过的开源软件的人,同时还要一同发布它的源代码。此外,另一些开源许可规定任何修改和分享一个程序给其他人的人,还要分享这个程序的源代码,而且不能收取许可费用。2.1.3开源还是闭源开源软件许可证有意地提升了协作和分享,因为它们允许其他人对代码作出修改并将改动包含到他们自己的项目中。开源许可证鼓励开发者随时访问、查看、修改开源软件,前提是开发者在分享成果的时候允许其他人也能够做相同的事情。2.1.3开源还是闭源2.开源思想对开发者和非开发者都有益早期的创造者基于开源技术构建了互联网本身的大部分——比如Linux操作系统和ApacheWeb服务器应用——任何今天使用互联网的人都受益于开源软件。2.1.3开源还是闭源每当计算机用户浏览网页、检查邮件、和朋友聊天、在线收听流媒体音乐、玩多人游戏的时候,他们的电脑、手机或游戏主机都会连接到一个全球性的计算机网络,使用开源软件来路由(指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程)并将他们的数据传输到面前的“本地”设备上。完成这些重要工作的计算机通常位于很远的地方,用户不会实际看到或物理接触到它们——所以有些人称之为“远程计算机”。2.1.3开源还是闭源越来越多的人开始依赖于远程计算机,在可以在本地完成的任务在线完成。举个例子,人们可能会使用在线文字处理、电子邮件管理、图片编辑工具,而在本地的个人电脑并没有安装运行相应的软件。人们轻松地使用浏览器或手机应用访问这些程序。当他们这么做的时候,他们参与到了“远程计算”中。2.1.3开源还是闭源一些人将远程计算称为“云计算”,因为它涉及的活动(像是存储文件、分享照片、观看视频)不仅包含本地设备,还有一个远程计算机全球网络,像是围绕在周围的大气。云计算是日常生活一个越来越重要的概念,离不开连接互联网的设备。一些云计算应用,比如谷歌应用是专有的。其他的,像OwnCloud和NextCould是开源的。2.1.3开源还是闭源云计算应用运行在一些额外的软件“之上”,这些软件帮助它们流畅高效地操作,所以人们经常说那个软件运行在云计算应用“之下”,为那些应用扮演一个“平台”。云计算平台可以是开源或闭源的。OpenStack是一个开源云计算平台的例子。2.1.3开源还是闭源3.人们更倾向于使用开源软件人们相对于专有软件更倾向于开源软件有很多原因,包括:(1)可控。很多人青睐开源软件因为相对其他类型软件他们可以拥有更多的可控制性。他们可以检查代码来保证它没有做任何不希望它做的事情,并且可以改变不喜欢的部分。不是开发者的用户也可以从开源软件获益,因为他们可以以任何目的使用这个软件——而不仅仅是某些人认为他们应该有的目的。2.1.3开源还是闭源(2)训练。其他人喜欢开源软件是因为它可以帮助他们成为更好的开发者。因为开源代码可以公开访问,学生可以在学习创建更好的软件时轻松地从中学习。学生还可以在提升技能的时候分享他们的成果给别人,获得评价和批评。当人们发现程序源代码中的错误的时候,可以将这个错误分享给其他人,帮助他们避免犯同样的错误。2.1.3开源还是闭源(3)安全。一些人倾向开源软件是因为他们认为它比专有软件更安全和稳定。因为任何人都可以查看和修改开源软件,就会有人可能会注意到并修正原作者遗漏的错误或疏忽。并且因为这么多的开发者可以在同一开源软件上工作,而不用事先联系获取原作者的授权,相比专有软件,他们可以更快速地修复、更新和升级开源软件。2.1.3开源还是闭源(4)稳定。许多用户在重要、长期的项目中相较专有软件更加青睐开源软件。因为开发者公开分发开源软件的源代码,如果最初的开发者停止开发了,关键任务依赖该软件的用户可以确保他们的工具不会消失,或是陷入无法修复的状态。另外,开源软件趋向于同时包含和按照开放标准进行操作。2.1.3开源还是闭源4.“开源”的含义不只是指经济方面的开源软件开发者可以为他们创建或贡献的开源软件收取费用。但在一些情况下,由于开源许可证可能会要求他们在将软件卖给他人的时候发布源代码,一些开发者发现向用户收取软件服务和支持(而不是软件本身)的费用会更加合算。通过这种方式,他们的软件仍然保持免费,而他们从帮助他人安装、使用、解决问题中赚取费用。尽管一些开源软件可能是免费的,但开源软件的编程和解决问题的技能可能十分有价值。许多雇主特别寻求雇佣在开源软件方面有工作经验的开发者。2.1.3开源还是闭源5.“在软件之外”的开源人们更愿意不仅将开源视为一种计算机软件开发和许可的方式,也把它视作一种态度。实现“开源方式”的生活的各个方面,意味着表达一种分享的意愿,通过透明的方式和他人协作(这样其他人也可以关注和加入),拥抱失败,将它作为一种改进的手段,以及期待(甚至鼓励)所有人都可以这么做。这也意味着在让世界变得更好的过程中扮演一个积极的角色,这只有在每个人都可以接触到对世界进行规划的途径时才有可能。2.1.3开源还是闭源这个世界充满了“源代码”——蓝图、食谱、规则——它们引导和塑造我们思考和行动的方式。我们相信这些深层代码(无论是什么形式)应该是开放、可接触、分享的——这样人们可以参与其中并让它变得更好。在这里,我们诉说开源价值对生活所有领域的影响的故事——科学、教育、政府、工业、健康、法律,以及组织动态。我们是一个社区,告诉他人开源的方式如何成为最好的方式,因为对开源的爱和其他一样:当它被分享的时候它会变得更好。2.1.3开源还是闭源PART02大模型发展三阶段在很短的一段实践内,人们接连迎来了ChatGPT、Gemini、Gemma和Sora大模型的发布,整个人工智能圈和科技圈都异常沸腾。人工智能带来的更像是工业革命的变革浪潮,将逐渐改变我们的生活和工作方式。大模型的发展历程并不长,但是速度相当惊人,国内外已经有上百种大模型相继发布。大模型的发展可以粗略的分为三个阶段:基础模型、能力探索、突破发展。2.2大模型发展三阶段基础模型阶段主要集中于2018年至2021年。2017年瓦斯瓦尼等人提出了Transformer架构,在机器翻译任务上取得了突破性进展。2018年,谷歌和OpenAI分别提出了BERT和GPT-1模型,开启了预训练语言模型时代。BERT-Base版本参数量为1.1亿,BERT-Large的参数量为3.4亿,GPT-1的参数量1.17亿。这在当时,相比其他深度神经网络的参数量已经是有数量级上提升。2019年OpenAI又发布了GPT-2,其参数量达到了5亿。此后,谷歌也发布了参数规模为110亿的T5模型。2020年OpenAI进一步将语言模型参数量扩展到1750亿,发布了GPT-3。2.2.1基础模型阶段此后,国内也相继推出了一系列的大模型,包括百度ERNIE、华为盘古-α等。这个阶段研究主要集中语言模型本身,包括仅编码器、编码器-解码器、仅解码器等各种类型的模型结构都有相应的研究。模型大小与BERT相类似的算法,通常采用预训练微调范式,针对不同下游任务进行微调。但是模型参数量在10亿以上时,由于微调的计算量很高,这类模型的影响力在当时相较BERT类模型有不小的差距。2.2.1基础模型阶段能力探索阶段集中于2019年至2022年,由于大模型很难针对特定任务进行微调,研究者开始探索在不针对单一任务进行微调的情况下,如何能够发挥大模型的能力。2019年雷德福等人就使用GPT-2研究了大模型在零样本情况下的任务处理能力。在此基础上,Brown等人在GPT-3模型上研究了通过语境学习进行少样本学习的方法,将不同任务的少量有标注的实例拼接到待分析的样本之前输入语言模型,用语言模型根据实例理解任务并给出正确结果。在包括TriviaQA、WebQS、CoQA等评测集合都展示出了非常强的能力,在有些任务中甚至超过了此前的有监督方法。2.2.2能力探索阶段上述方法不需要修改语言模型的参数,模型在处理不同任务时无需花费大量计算资源进行模型微调。但是仅依赖基于语言模型本身,其性能在很多任务上仍然很难达到有监督学习效果,因此研究人员们提出了指令微调方案,将大量各类型任务,统一为生成式自然语言理解框架,并构造训练语料进行微调。2.2.2能力探索阶段突破发展阶段以2022年11月ChatGPT的发布为起点。ChatGPT通过一个简单的对话框,利用一个大模型就可以实现问题回答、文稿撰写、代码生成、数学解题等过去自然语言处理系统需要大量小模型订制开发才能分别实现的能力。它在开放领域问答、各类自然语言生成式任务以及对话上文理解上所展现出来的能力远超大多数人的想象。2.2.3突破发展阶段2023年3月GPT-4发布,相较于ChatGPT又有了非常明显的进步,并具备了多模态理解能力。GPT-4在多种基准考试测试上的得分高于88%的应试者,包括美国律师资格考试、法学院入学考试、学术能力评估等。它展现了近乎“通用人工智能(AGI)”的能力。各大公司和研究机构也相继发布了此类系统,包括谷歌推出的Bard、百度的文心一言、科大讯飞的星火大模型、智谱ChatGLM等。2.2.3突破发展阶段PART03Transformer模型Transformer是一种在自然语言处理领域中广泛使用的深度学习模型,它源自谷歌公司在2017年发表的一篇论文“注意力就是你所需要的”。Transformer模型的主要特点是使用了“自注意力”机制,允许模型在处理序列数据时考虑到序列中所有元素的上下文关系。Transformer模型首先应用于机器翻译的神经网络模型架构,目标是从源语言转换到目标语言,Transformer模型完成了对源语言序列和目标语言序列全局依赖的建模。因为它适用于并行化计算,其模型复杂程度使它在精度和性能上都要高于之前流行的RNN循环神经网络,如今,几乎全部大语言模型都基于Transformer结构。2.3Transformer模型可以简单地把Transformer看成是一个黑盒子,当我们在做文本翻译任务时,输入一段中文,经过这个黑盒子之后,输出来的就是翻译过来的英文。图2-1把Transformer当成黑盒子2.3.1Transformer过程黑盒子里面主要有两部分组成:编码器组和解码器组(见图2-2)。当输入一个文本的时候,该文本数据经过编码器模块对该文本进行编码,然后将编码数据传入解码器模块进行解码,得到翻译后的文本。图2-2黑匣子里面装着编码器组和解码器组2.3.1Transformer过程一般情况下,编码器组模块里边有6个小编码器,同样的,解码器组里边有6个小解码器。编码器里边是自注意力机制加上一个前馈神经网络(见图2-4)。图2-4编码器内部结构2.3.1Transformer过程我们通过以下步骤来解释自注意力机制。步骤1:模型最初输入的是词向量形式。自注意力机制,顾名思义就是自己和自己计算一遍注意力,对每一个输入的词向量需要构建自注意力机制的输入。这里,Transformer将词向量乘上三个矩阵,得到三个新的向量,这是为了获得更多的参数,提高模型效果。对于输入X1(机器),乘上三个矩阵后分别得到Q1、K1、V1(见图2-5)。同样,对于输入X2(学习),也乘上三个不同的矩阵得到Q2、K2、V2。图2-5得到三个新的向量2.3.1Transformer过程步骤2:计算注意力得分。这个得分是通过计算Q与各个单词的K向量的点积得到的。以X1为例,分别将Q1和K1、K2进行点积运算,假设分别得到得分112和96(见图2-6)。图2-6计算注意力得分2.3.1Transformer过程步骤3:将得分分别除以一个特定数值8(K向量的维度的平方根,通常K向量的维度是64)这能让梯度更加稳定,得到结果14和12。步骤4:将上述结果进行softmax运算,得到0.88和0.12。softmax运算主要是将分数标准化,使得数都是正数并且加起来等于1。2.3.1Transformer过程步骤5:将V向量乘上softmax的结果,这主要是为了保持想要关注的单词的值不变,而掩盖掉那些不相关的单词,例如将它们乘上很小的数字(见图2-7)图2-7V向量乘softmax2.3.1Transformer过程步骤6:将带权重的各个V向量加起来,至此,在这个位置上(第一个单词)产生自注意力机制层的输出,其余位置的自注意力机制输出计算方式相同。将上述过程总结为一个公式(见图2-8)。图2-8过程总结2.3.1Transformer过程为进一步细化自注意力机制层,增加了“多头注意力机制”的概念,这从两个方面提高了自注意力层的性能。第一个方面,扩展了模型关注不同位置的能力。第二个方面,给自注意力层多个“表示子空间”。2.3.1Transformer过程多头自注意力机制不止有一组Q/K/V权重矩阵,而是有多组(例如用8组),所以每个编码器/解码器使用8个“头”(可以理解为8个互不干扰自的注意力机制运算),每一组的Q/K/V都不相同。然后,得到8个不同的权重矩阵Z,每个权重矩阵被用来将输入向量投射到不同的表示子空间。经过多头注意力机制后,就会得到多个权重矩阵Z,将多个Z进行拼接就得到了自注意力机制层的输出(见图2-9)。

图2-9自注意力机制层的输出2.3.1Transformer过程自注意力机制层的输出即是前馈神经网络层的输入,只需要一个矩阵就可以了,不需要8个矩阵,所以需要把这8个矩阵压缩成一个,这只需要把这些矩阵拼接起来,然后用一个额外的权重矩阵与之相乘即可。最终的Z就作为前馈神经网络的输入(见图2-10)。图2-108个矩阵的压缩2.3.1Transformer过程接下来就进入小编码器里边的前馈神经网模块了。前馈神经网络的输入是自注意力机制的输出,即图2-10中的Z,是一个维度为(序列长度×D词向量)的矩阵。之后前馈神经网络的输出也是同样的维度。进一步,一个大的编码部分就是将这个过程重复6次,最终得到整个编码部分的输出。然后,Transformer中使用6个解码器,为了解决梯度消失问题,在解码器和编码器中都用了残差神经网络的结构,即每一个前馈神经网络的输入不光包含上述自注意力机制的输出Z,还包含最原始的输入。2.3.1Transformer过程编码器是对输入(机器学习)进行编码,使用的是自注意力机制+前馈神经网络的结构。在解码器中使用的也是同样的结构,首先对输出(机器学习)计算自注意力得分。不同的地方在于,进行自注意力机制后,将自注意力机制的输出与解码器模块的输出计算一遍注意力机制得分,之后再进入前馈神经网络模块。2.3.1Transformer过程至此,通过Transformer编码和解码两大模块,完成将“机器学习”翻译成“machinelearning”的过程。解码器输出本来是一个浮点型的向量,为转化成“machinelearning”这两个词,这个工作是最后的线性层接上一个softmax。其中,线性层是一个简单的全连接神经网络,它将解码器产生的向量投影到一个更高维度的向量上,假设模型的词汇表是10000个词,那么向量就有10000个维度,每个维度对应一个唯一的词的得分。之后的softmax层将这些分数转换为概率。选择概率最大的维度,并对应地生成与之关联的单词作为此时间步的输出就是最终的输出。2.3.1Transformer过程假设词汇表维度是6,那么输出最大概率词汇的过程如图2-11所示。图2-11最大概率词汇过程以上就是Transformer的框架。整个框架并没有考虑顺序信息,这就需要提到“位置编码”概念,可以让输入携带位置信息。2.3.1Transformer过程Transformer模型主要由编码器和解码器两部分组成。(1)编码器:由多个相同的层组成,每一层都有两个子层。第一个子层是自注意力层,它可以考虑到输入序列中所有元素的上下文关系。第二个子层是一个前馈神经网络。每个子层后面都跟有一个残差连接和层归一化。编码器的任务是将输入序列转换为一组连续的表示,这些表示考虑了输入序列中每个元素的上下文。2.3.2Transformer结构(2)解码器:也由多个相同的层组成,每一层有三个子层。第一个子层是自注意力层,但它在处理当前元素时,只考虑到该元素及其之前的元素,不考虑其后的元素,这种机制被称为掩码自注意力。第二个子层是一个编码器-解码器注意力层,它使解码器可以关注到编码器的输出。第三个子层是一个前馈神经网络。每个子层后面都跟有一个残差连接和层归一化。解码器的任务是基于编码器的输出和前面已经生成的元素,生成下一个元素。2.3.2Transformer结构基于Transformer的编码器和解码器结构如图2-12所示,左侧和右侧分别对应着编码器和解码器结构,它们均由若干个基本的Transformer块组成(对应图中的灰色框)。这里N×表示进行了N次堆叠。每个Transformer块都接收一个向量序列{xi}作为输入,并输出一个等长的向量序列作为输出{yi}。这里的xi和yi分别对应文本序列中的一个词元的表示。yi是当前Transformer块对输入xi进一步整合其上下文语义后对应的输出。2.3.2Transformer结构

图2-12基于Transformer的编码器和解码器结构2.3.2Transformer结构先通过输入嵌入层将每个单词转换为其相对应的向量表示。在从输入到输出的语义抽象过程中,主要涉及如下几个模块。(1)注意力层:自注意力操作是基于Transformer的机器翻译模型的基本操作,在源语言的编码和目标语言的生成中频繁地被使用,以建模源语言、目标语言任意两个单词之间的依赖关系。使用多头注意力机制整合上下文语义,它使得序列中任意两个单词之间的依赖关系可以直接被建模而不基于传统的循环结构,从而更好地解决文本的长程依赖问题。2.3.3Transformer模块(2)位置感知前馈网络层:前馈层接收自注意力子层的输出作为输入,并通过一个带有ReLU激活函数的两层全连接网络对输入文本序列中的每个单词表示进行更复杂的非线性变换。2.3.3Transformer模块由Transformer结构组成的网络结构通常都非常庞大。编码器和解码器均由很多层基本的Transformer块组成,每一层中都包含复杂的非线性映射,这就导致模型的训练比较困难。因此,研究人员在Transformer块中进一步引入了残差连接与层归一化技术,以进一步提升训练的稳定性。具体来说,残差连接主要是指使用一条直连通道将对应子层的输入连接到输出,避免在优化过程中因网络过深而产生潜在的梯度消失问题。2.3.3Transformer模块(3)残差连接:对应图中的Add部分。它是一条分别作用在上述两个子层中的直连通路,被用于连接两个子层的输入与输出,使信息流动更高效,有利于模型的优化。(4)层归一化:对应图中的Norm部分。它作用于上述两个子层的输出表示序列,对表示序列进行层归一化操作,同样起到稳定优化的作用。2.3.3Transformer模块PART04生成式预训练语言模型GPT计算机视觉领域采用ImageNet(数据集)对模型进行一次预训练,使得模型可以通过海量图像充分学习如何提取特征,再根据任务目标进行模型微调。受此范式影响,自然语言处理领域基于预训练语言模型的方法也逐渐成为主流。以ELMo为代表的动态词向量模型开始了语言模型预训练,此后,以GPT(生成式预训练)和BERT(来自变压器的双向编码器表示)为代表的基于Transformer的大规模预训练语言模型出现,使自然语言处理全面开启预训练微调范式。2.4生成式预训练语言模型GPT利用丰富的训练数据、自监督的预训练任务及Transformer等深度神经网络结构,预训练语言模型具备了通用且强大的自然语言表示能力,能够有效地学习到词汇、语法和语义信息。将预训练模型应用于下游任务时,不需要了解太多的任务细节,不需要设计特定的神经网络结构,只需要“微调”预训练模型,即使用具体任务的标注数据在预训练语言模型上进行监督训练,就可以取得显著的性能提升。2.4生成式预训练语言模型GPTOpenAI公司在2018年提出的GPT是典型的生成式预训练语言模型(见图2-13),它是由多层Transformer组成的单向语言模型,主要分为输入层、编码层和输出层三部分。

图2-13GPT的模型结构2.4生成式预训练语言模型GPT(1)无监督预训练。GPT采用生成式预训练方法,单向意味着模型只能从左到右或从右到左地对文本序列建模,所采用的Transformer结构和解码策略保证了输入文本每个位置只能依赖过去时刻的信息。(2)有监督下游任务微调。通过无监督语言模型预训练,使得GPT模型具备了一定的通用语义表示能力。下游任务微调的目的是在通用语义表示的基础上,根据下游任务的特性进行适配。下游任务通常需要利用有标注数据集进行训练。2.4生成式预训练语言模型GPTPART05大模型的结构当前,绝大多数大语言模型都采用类似GPT的架构,使用基于Transformer结构构建的仅由解码器组成的网络结构,采用自回归的方式构建语言模型,但是在位置编码、层归一化位置、激活函数等细节上各有不同。下面以LLaMA模型为例进行介绍。2.5大模型的结构LLaMA是Meta(原脸书)公司的开源大模型,其参数量从70亿到650亿不等。根据初步测试,130亿参数的LLaMA模型“在大多数基准上”可以胜过参数量达1750亿的GPT-3,而且可以在单块V100GPU上运行;而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论