0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

河套IT TALK94:(原创)GPT技术揭秘:探索生成式模型的训练之道

共熵服务中心 来源:未知 2023-06-20 19:10 次阅读

1. 引言

人工智能机器学习,都是由场景和需求驱动的。找不到运用场景的机器学习技术,也没有生命力。越有挑战性的场景,越能激发人们用机器学习寻找解决方案的激情和动力。人们总是在问题中寻找解决方案,砥砺前行。

最近在尝试梳理机器学习的相关内容,发现知识量巨大,信息庞杂,需要梳理一个主线,才能更好理解相关概念。所以很多研究机器学习的技术,都是顺着如下的脉络来展开的:

1. 我们准备解决什么问题?

2. 我们准备按照什么方式进行训练学习?

3. 我们准备选定什么样的模型来应对?

4. 针对模型,我们应该采取什么样特定架构或网络

5. 针对这个模型和网络,我们将采用什么样的算法

6. 这个算法有什么优势和劣势?

这几个维度的问题解答,相信能涵盖绝大多数人对机器学习某些特定场景的技术和知识领域的理解。近期看了很多关于机器学习、自然语言处理以及GPT相关技术的文章,有一些心得体会,今天准备按照上述问题的脉络,分享给大家,希望能有所帮助。

2. 自然语言处理NLP(Natural Language Processing)

人类,作为智能生物,交流是离不开自然语言的。如何让机器理解人的语言,并能正常和人类进行语言互动,就成为迫切需要解决的重要问题。不管是文字类,还是语音类,都会存在所谓的语义分析理解、情感分析、机器翻译问题。从自然语言处理的过程来看,不免要经历:分词和词性标注、词法分析、句法分析、实体识别、语义角色标注、句法语义分析、情感分析、语法归纳和机器翻译等等。人类差不多有7000种活跃的语言,其中有文字支撑的,特别是在很多消费电子产品里能正常切换使用的,不过百种。不过这也足够给自然语言处理带来巨大的挑战。不同文化背景,可能意味着完全不同的词语分割、模糊和引发歧义的语义、或严格或宽松的语法灵活性,以及俗语、谚语等等,甚至会牵扯到各种图形学和图像识别的技术。

3. 大模型(Large language model)

既然是自然语言处理,就一定离不开语言模型。我们现在听的很多的所谓大模型,就是大型语言模型的简称,英文是LLM,也就是 Large language model的缩写。大模型也没有什么神秘的,无非就是“大”。目前对于这个多“大”才算是大模型,还没有一个官方权威的界定。但经验上来讲,大模型通常指的是至少具有数百万参数深度学习模型。而类似GPT-4的参数已经达到了170万亿的量级。上图是近年来已有的大模型LLM(大于100亿参数)的时间线。黄色标记此大模型已经开源。

6a447320-0f5a-11ee-962d-dac502259ad0.png

大模型一般是通用模型,在广泛任务中表现出色,而且通常大模型已经在大型语料库上进行了“预训练”。

只要是语言模型,不管是大还是小,其实都是一个基于统计学的模型。不管人们怎么去包装,把这个说成是“推理”,但目前的技术就是建立在概率基础上的。无非就是根据给定的输入文本,预测下一个可能的单词或字符序列。通过分析大量的文本数据,学习词汇的出现概率和上下文之间的关系,从而能够生成连贯的文本或评估给定文本的合理性。

4. 大模型的最小单元Token

语言模型最基础的模型是词袋模型(Bag-of-Words Model)。作为一种简化的文本表示方法,将文本看作是一个袋子(或集合)中的词语的无序集合,忽略了词语的顺序和语法结构。在词袋模型中,每个文档或句子被表示为一个向量,向量的每个维度对应一个词语,维度的值表示该词语在文档中出现的次数或其他统计信息。词袋模型假设词语的出现是独立的,只关注词语的频率和出现情况,忽略了词语之间的顺序和上下文信息。这种模型简化了文本的表示和处理,常用于文本分类、信息检索等任务。但是对于自然语言生成就无能为力了。在此基础上将连续的文本流切分成有意义的单元,以便于模型对其进行处理和理解,这就是Token化(Tokenization)。"token"是指文本中的最小单位或基本元素。它可以是一个单词、一个字、一个字符或其他语言单位,根据任务和需求而定。下图就是GPT-3的标记化(Tokenization)示例:

6a991e84-0f5a-11ee-962d-dac502259ad0.png

在大模型中,token 的选择和处理方式往往是根据具体任务和训练数据来确定的。在训练一个通用模型时,可以使用更粗粒度的 tokenization 方法,如将单词作为 token。而在某些特定任务,如命名实体识别(Named Entity Recognition)或语言翻译(Machine Translation)中,可能需要更细粒度的 tokenization,以便更好地捕捉特定领域或语言的信息。

不同语言的Token也会有很大差别。拿英文和汉语为例,在英语中,通常将单词作为 token,而在汉语中,单个汉字级别的 tokenization 更为常见。汉语中的词汇通常没有复数形式、时态变化或进行时等形态变化,因此,对于一些任务,如词性标注或命名实体识别,将单个词作为 token 可能更加合适。而在英语中,单词的不同形式(如单数和复数、时态等)可能被视为不同的 token。汉语中的合成词较为常见,可以通过将多个单字组合而成。因此,在处理汉语时,可能需要将合成词进行拆分,将其组成部分作为单独的 token 进行处理。而在英语中,合成词的形式较少,单词本身就可以作为一个独立的 token。在英语中,单词之间由空格或标点符号分隔,因此可以相对容易地进行单词级别的 tokenization。而在汉语中,字词之间没有明确的分隔符,需要进行中文分词来将连续的汉字序列划分为有意义的词汇。所以在汉字处理上,比英文多了分词这个步骤。

5. 无监督学习(Unsupervised learning)

6adc1e6e-0f5a-11ee-962d-dac502259ad0.png

有了模型,我们接下来思考的就是,应该用什么方式进行训练?语言模型带有很强的内容生成属性和灵活性,也就是不存在唯一解。这种模型,就绝对不能采用老是想着最优策略的强化学习方式。而且,训练这种语言模型,也不适合用通过使用标记的训练数据来学习从输入到输出的映射关系的监督学习(Supervised learning),因为人类语言信息量太大,标记不过来。而最理想的方式就是从未标记的数据中学习数据的隐藏结构、模式或分布的无监督学习(Unsupervised learning)。当然,也不排除所谓的同时利用有标签和无标签的数据来进行学习的半监督学习(Semi-supervised learning),或者从无监督任务中自动生成标签来进行学习。通过设计任务或目标函数,利用数据样本中的已知信息进行预测或重构的自我监督学习(Self-supervised learning)。

既然是无监督学习为主,那么应该采用什么样的网络架构来学习合适呢?

6. 反馈神经网络(Feedback Neural Networks)

当然是神经网络。最早人们想到的用于语言模型处理的神经网络是反馈神经网络(Feedback Neural Networks)。存在反馈连接,信息可以从后续时间步骤传递回前面的时间步骤。可以对动态系统的行为进行建模和预测,如控制系统、运动轨迹预测等。我们必须承认,在处理时序任务方面反馈神经网络着实表现出色,如语音识别、自然语言处理中的语言模型、机器翻译等。

6b268bde-0f5a-11ee-962d-dac502259ad0.png

大家一般会想到的反馈神经网络就是循环神经网络(Recurrent Neural Networks,RNN),是一类具有循环连接的神经网络,能够保留先前状态的信息,主要由循环层和激活函数组成。作为一种递归的神经网络,适用于处理序列数据的任务,如自然语言处理、语音识别、时间序列分析等。如果用于处理文本,它的核心思想是在处理每个输入时,将前一个时刻的隐藏状态传递给当前时刻,并结合当前输入进行计算。这种递归的结构使得RNN能够捕捉到序列中的上下文信息。

6b4d4760-0f5a-11ee-962d-dac502259ad0.png

然而,传统的RNN在处理长序列时会面临梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)的问题。梯度消失指的是在深层神经网络中,反向传播过程中梯度逐渐变小,并最终变得非常接近于零的现象。当网络层数较多时,梯度在每一层中都会乘以网络参数的权重,因此,如果权重小于1,则梯度会指数级地逐渐减小,导致在浅层网络中梯度无法有效传递到较深的层,从而使得较深层的参数更新缓慢或停止更新,影响网络的训练效果。梯度爆炸指的是在深层神经网络中,反向传播过程中梯度逐渐增大,并最终变得非常大的现象。当网络层数较多时,梯度在每一层中都会乘以网络参数的权重,如果权重大于1,则梯度会指数级地逐渐增大,导致在浅层网络中梯度变得非常大,进而导致网络参数更新过大,使得网络无法收敛。不管是梯度消失,还是梯度爆炸问题,都会导致深层神经网络的训练变得困难,甚至无法收敛到有效的结果。

6b858ed6-0f5a-11ee-962d-dac502259ad0.png

于是人们又改进了循环神经网络,设计了一个变体长短期记忆网络(Long Short-Term Memory,LSTM),用于解决传统RNN在处理长期依赖问题上的挑战。LSTM通过引入门控单元结构,可以更有效地处理和记忆长期依赖关系。LSTM通过引入门控机制来解决梯度消失和梯度爆炸的问题。LSTM单元包含遗忘门(forget gate)、输入门(input gate)和输出门(output gate)。LSTM通过这些门的控制,可以有选择性地遗忘和更新信息,能够更好地捕捉长期依赖关系,有助于控制信息的流动和记忆的更新,从而解决了梯度消失和梯度爆炸的问题。

7. Transformer转换器

上述的LSTM看似完美,其实也有硬伤。传统的循环神经网络(RNN)或长短期记忆网络(LSTM)都属于反馈神经网络(Feedback Neural Networks),在处理序列数据时是逐步进行的,每个时间步依赖于前一个时间步的计算结果。这种顺序计算导致了计算的串行性,无法同时进行多个计算。而且这种局部信息交互的方式可能无法充分利用整个序列中的上下文信息。尽管LSTM缓解了梯度消失或梯度爆炸的问题,但仍然存在一定的限制。

6bb7c6bc-0f5a-11ee-962d-dac502259ad0.png

而新的技术Transformer又打破了僵局。Transformer是前馈神经网络(Feedforward Neural Networks)。前馈神经网络中,信息只沿着前向的方向传递,没有循环连接。适用于各种监督学习和无监督学习任务,如分类、回归、特征提取等。Transformer作为一种基于自注意力机制的模型,用于处理序列数据,能够在每个位置对输入序列的所有位置进行注意力计算。这使得模型能够根据输入序列的不同部分自适应地分配注意力权重,能够在一个序列中捕捉到不同位置之间的依赖关系,更加灵活地捕捉关键信息。由于Transformer是基于注意力机制的前馈神经网络,可以在一次前向传播中同时处理整个序列,因此可以进行更有效的并行计算。这使得Transformer摒弃了传统的递归结构,而是采用了并行计算的方式,在处理长序列时更为高效。Transformer由编码器和解码器组成,编码器负责将输入序列编码成一系列特征表示,解码器则根据这些特征表示生成目标序列,Transformer通过注意力机制使每个位置都能够在编码和解码阶段获得序列中所有位置的信息,实现了全局的信息交互,能够更好地捕捉上下文关系。使得它可以广泛应用于机器翻译和生成式任务中。

8. 生成式与训练转换器GPT(Generative Pre-trained Transformer)

6c05ac7e-0f5a-11ee-962d-dac502259ad0.png

而大家熟知的GPT正是使用了最后这个Transformer技术。其实这也是GPT名字的由来。GPT是生成式与训练转换器(Generative Pre-trained Transformer)的缩写。GPT通过对提出的问题进行预测(Generate)来生成一篇回答。GPT不是在一次预测中输出整篇回答,而是首先预测回答的第一个字,然后将预测的第一个字与问题连接起来,形成一个延长一个字的输入句子,并再次输入给GPT。GPT进行第二次预测,得到回答的第二个字,然后将这个字续在输入句子后,再次输入给GPT,以此类推。这个过程一直重复进行,直到GPT预测出"结束符"(或达到约定的最大长度,此时回答过程结束,GPT生成了一篇完整的回答。这种逐步地一个字一个字生成整篇回答的过程被称为"自回归"—— Auto-Regression。在自回归过程中,GPT进行多次预测而不仅仅是一次预测。因此,使用过ChatGPT的用户可能会发现它在回答问题时逐字逐字地产生输出,速度较慢。这是因为大型的GPT模型进行一次预测(输出一个字)本身就需要一定的时间。

9. 转换器(Transformer)与注意力(Attention)

6c286c8c-0f5a-11ee-962d-dac502259ad0.png

从内部实现细节来看,输入句子首先通过一系列堆叠在一起的Transformer组件。下一层Transformer的输出作为上一层Transformer的输入。GPT看到的"字"是数值化的表示,即一组向量。整个语言中有V个字(字表)。GPT为每个字分配一个向量,这些向量也是GPT的参数。输入句子中的每个字向量被传递给第一个Transformer,它对每个字生成一个向量。可以将这个过程看作是Transformer对每个字向量进行了"变形"。下一层Transformer将其输出的字向量传递给上一层Transformer,直到最顶层的Transformer为句子中的每个字生成一个向量。通过多层Transformer的处理,字向量在传递过程中发生了变化,这些变化可以视为Transformer对字向量进行了"变形"。更重要的是,在这个变形的过程中,每个字的向量融合了上下文中所有字的信息。这就是Transformer中的Attention(注意力)组件的作用。Attention首先利用每个字的向量计算出query向量、key向量和value向量。query向量和key向量指示了这个字与其他字(包括自身)如何相关联,而value向量则包含了字本身的含义信息。Attention使用query向量和所有字的key向量计算出对应的注意力得分,这个得分表示这个字在多大程度上将注意力分配给其他字。然后,Attention使用这些注意力得分对所有字的value向量进行加权求和,得到对于该字的输出向量。可以认为,Attention改变了该字的向量,使得变化后的向量通过不同的注意力权重融合了上下文中所有字的信息。

GPT的全部参数包括:

  • N个Transformer中组合多个Attention头的输出矩阵,以及全连接神经网络的参数(包括多个权重矩阵和偏置向量);

  • 每个Transformer中H个Attention头的Q、K和V矩阵;

  • 预测下一个字的全连接神经网络的参数(包括多个权重矩阵和偏置向量);

  • 初始的字向量。

正是这些参数使得GPT模型具有我们希望它具备的行为。例如,一个Attention头的Q、K和V矩阵,其中V矩阵对输入给Attention的字向量进行线性变换,得到该字的value向量,这种线性变换在某种程度上表达了该字某个方面的含义(抽象)。Q和K矩阵分别对字向量进行线性变换,得到该字的query和key向量,也编码了该字与其他字相关联的信息。再例如,位于Transformer之上的预测神经网络,其参数编码了如何根据句子的表示(即最后一个字的向量)来预测下一个字的信息。

10. GPT是如何训练出来的?

所有这些参数都是通过“训练”得到的。一开始,这些参数被初始化为随机值,此时它们没有任何含义和功能,GPT也无法很好地预测下一个字。训练者准备了一个庞大的语料库,其中包含许多合法的句子。从合法句子中随机选择一部分作为训练样本,以最后一个字作为标签,将前面的字作为输入,从而构造了一个训练样本。许多这样的训练样本构成了训练集。

将训练样本的句子输入到GPT中,GPT将预测下一个字,准确地说是生成字表中所有字的概率分布。然后将正确的下一个字(标签)与GPT的输出进行比较,计算出误差(交叉熵损失)。接下来,在GPT模型上执行反向传播,使用梯度下降法或其变体更新GPT的所有参数。

通过逐个样本地(实际上是一批样本)进行这一过程的迭代,即“计算误差+反向传播+更新参数”,最终调整GPT的参数使误差最小化。此时,GPT能够很好地预测句子的下一个字,训练完成。

通过对GPT技术的揭秘,今天我们深入了解了生成式模型的训练之道。相信大家能清晰看到从自然语言处理(NLP)到生成式与训练转换器(GPT)的技术发展脉络。随着技术的不断进步,人们对大模型的期望也在增加。特别是如何处理不同语言和文化背景下的多样性,克服词语分割、语义模糊和语法灵活性等挑战,以实现全球范围内的语言处理能力。同时,这种大模型的能力如何扩展到多媒体,多模态领域以及如何在各种专业领域发挥更好的作用,让人们产生更多的期待。

相信,通过不断的研究和探索,AIGC大模型将在自然语言处理领域发挥越来越重要的作用,为人们提供更好的语言交流和理解体验,进而推动人工智能的发展迈上新的台阶。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源技术
    +关注

    关注

    0

    文章

    389

    浏览量

    7913
  • OpenHarmony
    +关注

    关注

    25

    文章

    3658

    浏览量

    16132

原文标题:河套IT TALK94:(原创)GPT技术揭秘:探索生成式模型的训练之道

文章出处:【微信号:开源技术服务中心,微信公众号:共熵服务中心】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NVIDIA Nemotron-4 340B模型帮助开发者生成合成训练数据

    Nemotron-4 340B 是针对 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 优化的模型系列,该系列包含最先进的指导和奖励模型,以及一个用于生成 AI
    的头像 发表于 09-06 14:59 260次阅读
    NVIDIA Nemotron-4 340B<b class='flag-5'>模型</b>帮助开发者<b class='flag-5'>生成</b>合成<b class='flag-5'>训练</b>数据

    大语言模型的预训练

    随着人工智能技术的飞速发展,自然语言处理(NLP)作为人工智能领域的一个重要分支,取得了显著的进步。其中,大语言模型(Large Language Model, LLM)凭借其强大的语言理解和生成
    的头像 发表于 07-11 10:11 385次阅读

    llm模型和chatGPT的区别

    基于Transformer架构的预训练语言模型,它可以生成连贯、自然的文本。ChatGPT使用GPT模型作为基础,通过微调和
    的头像 发表于 07-09 09:55 911次阅读

    如何用C++创建简单的生成AI模型

    生成AI(Generative AI)是一种人工智能技术,它通过机器学习模型和深度学习技术,从大量历史数据中学习对象的特征和规律,从而能够
    的头像 发表于 07-05 17:53 741次阅读

    OpenAI发布全新GPT-4o模型

    近日,OpenAI宣布推出全新的GPT-4o模型,标志着人工智能领域的一大技术飞跃。这款模型不仅具备强大的生成能力,还能精准理解用户意图,提
    的头像 发表于 05-17 11:48 618次阅读

    大语言模型:原理与工程时间+小白初识大语言模型

    开拓深度学习的思路。对于新涌现的大语言模型的能力,主要是表现在学习能力的提升、语言理解和生成能力、创新和探索的能力。 基础技术 词表示技术
    发表于 05-12 23:57

    【大语言模型:原理与工程实践】大语言模型的预训练

    大语言模型的核心特点在于其庞大的参数量,这赋予了模型强大的学习容量,使其无需依赖微调即可适应各种下游任务,而更倾向于培养通用的处理能力。然而,随着学习容量的增加,对预训练数据的需求也相应
    发表于 05-07 17:10

    【大语言模型:原理与工程实践】大语言模型的基础技术

    下游任务提供丰富的文本表示,如谷歌公司推出的BERT。(2) Decoder-Only 预训练语言模型:这类模型一般使用单向的 Decoder 结构,通常擅长生成任务,如OpenAI
    发表于 05-05 12:17

    【大语言模型:原理与工程实践】揭开大语言模型的面纱

    大语言模型(LLM)是人工智能领域的尖端技术,凭借庞大的参数量和卓越的语言理解能力赢得了广泛关注。它基于深度学习,利用神经网络框架来理解和生成自然语言文本。这些模型通过
    发表于 05-04 23:55

    【大语言模型:原理与工程实践】探索《大语言模型原理与工程实践》

    处理中预训练架构Transformer,以及这些技术在现实世界中的如何应用。通过具体案例的分析,作者展示了大语言模型在解决实际问题中的强大能力,同时也指出了当前技术面临的挑战和局限性。
    发表于 04-30 15:35

    生成 AI 进入模型驱动时代

    随着ChatGPT和大型语言模型(LLM)呈现爆炸增长,生成人工智能(GenerativeAI)成为近来的一大热词。由此引发了一场争论:哪种AI
    的头像 发表于 04-13 08:12 487次阅读
    <b class='flag-5'>生成</b><b class='flag-5'>式</b> AI 进入<b class='flag-5'>模型</b>驱动时代

    联想携手京东,紧扣大模型生成AI技术

    联想与京东携手,紧扣大模型生成AI技术带来的产业机遇,在多个领域展开深入合作。
    的头像 发表于 04-12 10:27 609次阅读

    大语言模型使用指南

    ,带你发现大语言模型的潜力,解锁无限可能。 揭秘大语言模型的魔法 在动手操作之前,我们先来揭秘一下大语言模型的魔法。这些
    的头像 发表于 12-29 14:18 646次阅读

    模型数据集:突破边界,探索未来

    随着人工智能技术的快速发展,大型预训练模型GPT-4、BERT等在自然语言处理领域取得了显著的成功。这些大模型背后的关键之一是庞大的数据集
    的头像 发表于 12-06 16:10 606次阅读

    大语言模型简介:基于大语言模型模型全家桶Amazon Bedrock

    本文基于亚马逊云科技推出的大语言模型生成AI的全家桶:Bedrock对大语言模型进行介绍。大语言模型指的是具有数十亿参数(B+)的预
    的头像 发表于 12-04 15:51 746次阅读