AIGC基础通识讲解——图解,小白向

声明:该文章内容和图片并非原创,而是课程学习笔记,希望能够帮到你,该内容来自B站UP主的原创视频。

- GenJi是真想教会你

- 林粒粒呀

连接:【包教包会】一条视频速通AI大模型原理_哔哩哔哩_bilibili

介绍AIGC概念

海外更流行的是另外一个词 Generative Al

AIGC即是AI生成的内容简写

生成式与其他的那么关键词有什么关系呢

AI和机器学习的关系​​

早在1956年,AI就被确立为了一个学科领域,在此后数十年间经历过多轮低谷与繁荣。

AI也叫人工智能,是计算机科学下的一个学科,旨在让计算机系统去模拟人类的智能,从而解决问题和完成任务。

机器学习是AI的一个子集,它的核心在于不需要人类做显示编程,而是让计算机通过算法自行学习和改进去识别模式,做出预测和决策。

比如如果我们通过代码告诉电脑,图片里有红色说明是玫瑰,图片里有橙色说明是向日葵。那程序对花种类的判断就是通过人类直接明确编写逻辑达成的,不属于机器学习,机器也没学。

但如果我们给电脑大量玫瑰和向日葵的图片,让电脑自行识别模式,总结规律,从而能对没见过的图片进行预测和判断,这种就是机器学习。

机器学习领域下有多个分支,包括监督学习、无监督学习、强化学习。

监督学习:在监督学习里,机器学习算法会接受有标签的训练数据,标签就是期望的输出值,所以每个训练数据点都既包括输入特征,也包括期望的输出值。算法的目标是学习输入和输出之间的映射关系,从而在给定新的输入特征后,能够准确预测出相应的输出值。

经典的监督学习任务包括:

  1. 分类,数据划分为不同的类别。
  2. 回归,也就是对数值进行预测。

比如拿一堆猫猫狗狗的照片和照片对应的猫狗标签进行训练,然后让模型根据没见过的照片预测是猫还是狗,这就属于分类。

拿一些房子特征的数据,比如面积、卧室树是否带阳台等,和相应的房价作为标签进行训练,然后让模型根据没见过的房子的特征预测房价,这就属于回归

无监督学习和监督学习不同的是,它学习的数据是没有标签的。所以算法的任务是自主发现数据里的模式和规律。

经典的无监督学习任务包括:

聚类就比如拿一堆新闻文章,让模型根据主题或内容的特征自动把相似文章进行组织。

强化学习则是让模型在环境里采取行动,获得结果反馈,从反馈里学习,从而能在给定情况下采取最佳行动来最大化奖励或是最小化损失。

强化学习就跟训小狗似的,刚开始的时候小狗会随心所欲做出很多动作,但随着和训犬师的互动,小狗会发现某些动作能够获得零食,某些动作没有临时,某些动作甚至会遭受惩罚。通过观察动作和奖惩之间的联系,小狗的行为会逐渐接近训犬师的期望。

深度学习和机器学习

深度学习属于这三类里的哪一类呢?它不属于里面的任何一类。神经网络可以用于监督学习、无监督学习、强化学习,所以深度学习不属于它们的子集。

深度学习是机器学习的一种方法,使用人工神经网络模仿人脑处理信息的方式。神经网络通过多层次的连接来处理数据,并提取数据的特征。神经网络是由许多基本的计算和储存单元组成,这些单元被称为神经元,这些神经元通过层层连接来处理数据,并且深度学习模型通常有很多层,因此称为深度。

比如要让计算机识别小猫的照片。在深度学习中,数据首先被传递到一个输入层,就像人类的眼睛看到图片一样。然后数据通过多个隐藏层,每一层都会对数据进行一些复杂的数学运算,来帮助计算机理解图片中的特征,例如小猫的耳朵、眼睛等等,最后计算机会输出一个答案,表明这是否是一张小猫的图片。

生成式AI是深度学习的一种应用,它利用神经网络来识别现有内容的模式和结构,学习生成新的内容,内容形式可以是文本、图片、音频等等。

大语言模型是深度学习的另一种应用,用于自然语言处理任务,具有巨大的参数量和海量文本数据集。大语言模型并非全部都是生成式AI,例如bert模型用于搜索和文本分类,不适合文本生成。这些概念构成了生成式AI的核心要素。

大语言模型也叫LLM language language model也是深度学习的一种应用,专门用于进行自然语言处理任务。大语言模型里面的大字说明模型的参数量非常大,可能有数十亿甚至到万亿个,而且训练过程中也需要海量文本数据集,所以能更好的理解自然语言以及生成高质量的文本

大语言模型的例子有非常多,基本上是它会根据输入题是以及前面生成过的词,通过概率计算逐步生成下一个词或token来输出文本序列。尽管生成式AI和大语言模型之间存在着紧密联系,但两者并不完全等同。首先,明确指出并非所有的生成式AI都属于大语言模型范畴,例如图像扩散模型,虽然作为生成式AI的一种,其功能集中在生成图像而非文本内容,因此不属于大语言模型。其次,即使在大语言模型领域内,也存在一种观点认为并非所有大语言模型都具备典型的生成式AI特征。这是因为某些大语言模型的设计架构可能更侧重于

理解和分析文本信息,而不一定专门优化用于生成全新的、连贯的文本输出,这种情况下将其严格定义为生成式AI可能会引起争议。简而言之,生成式AI包含多种类型的模型,大语言模型是其中专注于文本生成的一部分,但不是所有大语言模型都被设计成或被视为纯粹的生成式系统。

大语言模型

大语言模型也叫LLM large language model。是用于做自然语言相关任务的深度学习模型。

给模型一些文本内容输入,它能返回相应的输出。完成的具体任务可以是生成、分类、总结、改写等等。

但大语言模型的大指的不仅仅是训练数据巨大,而是参数数量巨大。

参数是模型内部的变量,可以理解为是模型在训练过程中学到的知识。

参数决定了模型如何对输入数据做出反应,从而决定模型的行为。大语言模型首先需要通过大量文本进行无监督学习。以GPT3为例,它的训练数据有多个互联网文本语料库,覆盖线上书籍、新闻、文章、科学论文、维基百科、社交媒体、帖子等等。借助海量的训练文本数据模型,能更多了解单词与上下文之间的关系,从而更好地理解文本的含义,并生成更准确的预测。

在过去的语言模型研究中发现,用更多的数据和算力来训练具有更多参数的模型,很多时候能带来更好的模型表现。

这就像要AI学习做蛋糕,只允许AI调整面粉、糖、蛋的量,可允许AI调整面粉、糖、蛋、奶油、牛奶、苏打粉、可可粉的量,以及烤箱的时长和温度。后者由于可以调整的变量更多,更能让AI模仿做出更好吃的蛋糕。

随着参数的增加,他甚至有能力做出别的玩意儿,创造一些全新的品种。所以如今语言模型的参数数量可能是曾经的数万倍甚至数百万倍。

参数量的增大也同样可以实现更好的效果。

接下里的内容比较深入的探讨原理。

大模型的参数量、训练量和数据量是描述深度学习模型规模和训练过程中的关键指标:

  1. 参数量
  2. 训练量
  3. 数据量

综上所述,大模型的参数量、训练量和数据量三者相辅相成,共同决定了模型最终的表现力和实用性。模型越大,通常就需要更大的数据量来充分训练,并且整个训练过程将消耗更多的计算资源。

​​

在transformer架构被提出之前,语言模型的主流架构主要是循环神经网络,简称RNN(Recurrent Neural Network),而未能按顺序逐字处理。

每一步的输出取决于先前的隐藏状态和当前的输入,要等上一个步骤完成后才能进行当前的计算,因此无法并行计算,训练效率低,而且不擅长处理长序列,也就是长文本。后来也出现了RNN的改良版本LSTM长短期记忆网络。但是这也并没有解决传统RN的无法并行算的问题,而且在处理非常长的序列时也依然受到限制。如果说2022年年底ChatGPT的惊艳亮相,是大语言模型公众认知被显著提升的里程碑。技术发展的里程碑其实要回溯到2017年。2017年6月,谷歌团队发表论文attention is all you need,提出了transformer架构。自此自然语言处理的发展方向被改变了,随后出现了一系列基于transformer架构的模型。

transformer

transformer架构及大语言模型transformer是一种能够学习输入序列中所有词的相关性和上下文的架构,不会受到短时记忆的影响,能做到这一点的关键在于transformer的自注意力机制。通过自注意力机制和位置编码,transformer能够捕获长距离依赖关系,提高训练速度transformer架构已被广泛应用于训练大语言模型,如ChatGPT背后的GPT模型。

transformer在处理每个词的时候,不仅会注意这个词本身以及它附近的词,还会去注意输入序列里所有其他的词,然后其余每个词不一样的注意力权重。

权重是模型在训练过程中通过大量文本逐渐习得的,因此transformer有能力知道当前这个词和其他词之间的相关性有多强,然后去专注于输入里真正重要的部分。即使两个词的位置隔得很远,transformer依然可以捕获到它们之间的依赖关系。

比如这个例子,单从语法上来讲,IT可以指的是离得更近的street,也可以是离得更远的animal。这里自注意力机制捕获到了IT和animal之间更强的关系,因此更集中在animal上。

也正如论文标题所说,attention is all you need, 注意力就是你所需要的一切。

在语言里,顺序很重要,即使句子里包含的字都是一样的,但顺序不一样也能导致意思大相径庭。

这也是为什么自然语言处理领域会用序列这个词,因为它表示一系列按照特定顺序排序的元素。

前面提到RNN和人类阅读文本一样,对输入序列同样是按顺序依次处理,这就造成了训练速度的瓶颈,因为只能串行,没办法并行,也就是没法同时去学习所有信息。

Transformer模型

Transformer再把词输入给神经网络前,除了会先对词进行嵌入转换成向量,也就是把磁各用一串数字表示,还会把每个词在句子中的位置也各用一串数字表示,添加到输入序列的表示中。

 然后把这个结果给神经网络大模型既可以理解每个词的意义,又能够捕获词在句子中的位置,从而理解不同词之间的顺序关系。借助位置编码,

通过位置编码词可以不按顺序输入给transformer,模型可以同时处理输入序列里的所有位置,而不需要像RNN那样依次处理。那么在计算时,每个输出都可以独立的计算,不需要等待其他位置的计算结果,这大大提高了训练速度,训练速度一快,训练出巨大的模型也不是那么难了。

2018年,OpenAI发布GPT1.0,谷歌发布bert 2019年OpenAI发布GPT2.0,百度发布AI1.0等等。所以大语言模型的发展早就如火如荼了,并不是像很多人以为的到了2022年才有所突破。

但因为ChatGPT直接向公众开放,而且能让用户在网页上用对话的方式进行交互,体验很流畅丝滑,大众的目光才被吸引过去。

ChatGPT背后的模型GPT首字母分别表示generative prochain transformer、生成式预训练transformer,也表明transformer是其中的关键,所以要了解大语言模型就无法跳过transformer。

原理

一个很常见的说法是,他们是通过预测出现概率最高的下一个词来实现文本生成的。这种效果有点像搜索引擎的自动补全,每当我们输入一个新的字或词,输入框就开始预测后面的文本概率,越高的排在越上面。但模型具体到底是如何得到各个词出现的概率的呢?

在attention is all you need论文里,它长成这样,看起来有点复杂,但不需要头戴。它可以被看作由两个核心部分组成:

  • 编码器encoder
  • 解码器decoder

    假如我们要这个transformer做英语翻译法语的任务,给编码器输入一句英语,解码器返回对应的法语。这个过程中发生了什么呢?

    编码器

    我们先看编码器部分,输入的文本首先会被token化,也就是先把输入拆分成各个token。Token可以被理解为是文本的一个基本单位,取决于不同的token化方法。短单词可能每个词是一个token,长单词可能被拆成多个token。每个token会被用一个整数数字表示,这个数字被叫做token ID这样做是因为计算机内部是无法储存文字的,任何字符最终都得用数字来表示,有了数字表示的输入文本后,再把它传入嵌入层。嵌入层的作用是让每个token都用向量表示,向量可以被简单的看为一串数字。(为了能在画面里放下,这里把向量长度简化为三,但实际中向量长度可以非常长。)

    怎么现在又要用一串数字表示各个token?其中一个原因是,一串数字能表达的含义是大于一个数字的,能包含更多语法、语义、信息等等。

    这就好比男人和女人这两个词,他们都在描述人类,但性别又是完全相反的。如果只用一个数字表示,这两个数字大小之间应该距离很大还是应该距离很小的。但如果有多个数字,我们就可以进行更多维度的表示。就比如说第一个数字可以表示是雌性的程度,第二个表示年龄大的程度,第三个表示社会阶层高的程度。

 所以嵌入层的向量不是随便搞出来的,里面包含了词汇之间语法语义等关系。相似的词所对应的嵌入向量在向量空间里距离也更近。而一些没啥关系的词之间的距离就更远。

这有助于模型利用数学计算向量空间里的距离,去捕捉不同词在语义和语法等方面的相似性。而且男人与国王的差异和女人与女王的差异可以被看作是相似的这也可以在多维向量空间里展现。

因此词向量不仅可以帮模型理解词的语义,也可以捕捉词与词之间的复杂关系。

我们这里为了直观是用三维向量空间表示的,把向量长度相应简化成了3,而提出transformer的论文里,向量长度是512GPT3是12288,所以可以想象能包含多少信息。

通过编码器的嵌入层得到词向量后,下一步是对向量进行位置编码。

这就是编码器的核心部分,它的主要任务是把输入转换成一种更抽象的表示形式,这个表示形式也是向量记串数字,里面既保留了输入文本的词汇信息和顺序关系,也捕捉了语法语义上的关键特征。

编码器在transformer里不只有一个,实际上是有多个堆叠到一起,每个编码器内部结构一样,但不共享权重,这样模型能更深入的理解数据处理更复杂的文本语言内容。

编码器实际上使用了多头自注意力,也就是编码器不只有一个自注意力模块,而是有多个。每个头都有它自己的注命力权重,用来关注文本里不同特征或方面,比如有的关注动词,有的关注修饰词,有的关注情感,有的关注命名实体等等,而且它们之间可以做并行运算,也就是计算进展上互不影响。

每个字注意力投的权重都是模型在之前的训练过程中从大量文本里逐渐学习和调整的。在多头自注意力后面还有一个前馈神经网络,它会对自注意力模块的输出进行进一步的处理,增强模型的表达能力。

解码器

解码器的部分,它是大语言模型生成一个个词的关键。通过前面的编码器,我们有了输入序列里各个token的抽象表示,可以把它传给解码器。解码器还会先接收一个特殊值,这个值表示输出序列的开头。这样做的原因是解码器不仅会把来自编码器的输入序列的抽象表示作为输入,还会把之前已经生成的文本也作为输入,来保持输出的连贯性和上下文相关性。刚开始的这轮还没有任何已生成的文本,所以把表示开头的特殊值先作为输入。首先和编码器一样,文本要经过我们已经了解过的嵌入层和位置编码,然后被输入进多头自注意力层。但它和编码器里的自注意层有点不一样。当编码器在处理各个词的时候,它会关注输入序列里所有其他词。但解码器中自注意只会关注这个词和它前面的其他词,后面的词要被遮住不去关注。这样做是为了确保解码器生成文本时遵循正确的时间顺序,不能给他偷看到后面。在预测下一个词时,只使用前面的词作为上下文。这种类型的多头字注意力被叫做带掩码的多头字注意力,但掩码的多头自注意力是针对已生成的输出序列的。那后面解码器还有个多头字注意力层,这里就是前面编码器所输出的输入序列的抽象表示所派上用场的地方。注意力会捕捉编码器的输出和解码器即将生成的输出之间的对应关系,从而将原始输入序列的信息融合到输出序列的生成过程中。解码器里的前馈神经网络作用和编码器里的类似,也是通过额外的计算来增强模型的表达能力。

和编码器一样,解码器同样是多个堆叠到一起的这可以增加模型的性能,有助于处理复杂的输入输出关系。

解码器的最后阶段包含一个线性层和一个soft max层,它们俩加一块的作用是把解码器输出的表示转换为词汇表的概率分布。

这个词汇表的概率分布代表下一个被生成token的概率,那么有些token的概率就会比其他的高。在大多数情况下,模型会选择概率最高的token作为下一个输出。

现在我们知道了解码器本质上是在猜下一个最可能的输出,至于输出是否符合客观事实,模型无从得知。所以我们能经常看到模型一本正经的胡说八道,这种现象也被叫做幻觉。

解码器的一整个流程会重复多次,新的token会持续生成,直到生成的是一个用来表示输出序列结束的特殊token。现在我们就拥有了来自解码器的完整输出序列。

但以上描述的是attention is all you need里的原始transformer。编码器用来理解和表示输入序列,解码器用来生成输出序列。

实际上在原始架构的基础上,后续出现了一些变种,主要有三个类别,仅编码器、仅解码器以及编码器解码器。仅编码器模型也叫自编码器模型,只保留了原始架构里的编码器.BERT就是这种模型的一个例子。此类模型适用于理解语言的任务,比如掩码语言建模,也就是让模型猜文本里被遮住的词是什么。情感分析让模型判断文本情感是积极还是消极等等。仅解码器模型也叫自回归模型,只保留了原始架构里的解码器。GPT系列都是这种模型的例子。这类模型非常擅长通过预测下一个词来实现文本生成。解码器模型也叫序列到序列模型,同时保留了原始架构里的编码器和解码器。T5 bart都是这种模型的例子。此类模型适用于把一个序列转换成另一个序列的任务,比如翻译、总结等等。经过这个视频,

如何从transform到chatGPT

将大象装进冰箱只需要三步,而要得到一个ChatGPT,也需要三步。

  1. 通过大量的文本进行无监督学习预训练,得到一个能进行文本生成的基座模型。基座大模型只是做文本补充,不会去回答问题,
  2. 通过一些人类撰写的高质量对话数据,对基座模型进行监督微调(Supervised Fine-Tuning)SFT完成后会得到一个SFT微调模型,此时的模型除了续写文本之外,也会具备更好的对话能力,它与步骤一里的基座模型更加擅长对问题做出回答。
  3. 用问题和多个对应回答的数据,让人类标注员对回答进行质量排序,然后基于这些数据训练出一个能对回答进行评分预测的奖励模型。

接下来让第二步得到的模型对问题生成回答,用奖励模型给回答进行评分,利用评分作为反馈进行强化学习训练。

  1. 预训练
  • 99%。而LLAMA的开源,就是帮大家节省了第一步与训练的成本。在第一步的预训练中,首先需要海量文本作为原料,让模型从中学习。比如GPT3这个基座模型的训练数据有多个互联网文本语料库,覆盖书籍、新闻、文章、科学论文、维基百科、社交媒体、帖子等等。训练数据的整体规模是3000亿个token。
  1. 监督式微调
  • GPT3为例,训练过程中它会利用海量文本自行学习人类语言的语法语义,了解表达结构和模式。具体来说,模型会先看到一部分文本,基于上下文尝试预测下一个token。然后通过比较正确答案和它的预测,模型会更新权重,从而逐渐能根据上文来生成合理的下文。随着见过的文本越来越多,模型生成的能力也会越来越好。
  1. 奖励建模
  • ChatGPT回答问题,然后由人类评估员对回答进行评分。
  • 3H原则:有用性、真实性、无害性。如果评分高,模型将学习到要再接再厉;如果评分低,模型将学习到要予以改正。
  • GPT模型,也就是第二步中得到的SFT模型,对每个问题生成多个回答,然后让人类标注员对回答质量进行排序。
  • 虽然仍然需要借助标注员的劳动,但一旦有了足够的排序数据,就可以将数据用于训练奖励模型,让奖励模型学习预测回答的评分。
  • 强化学习
  • ChatGPT就在不断学习中练成了。
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值