首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【AI大模型】ChatGPT模型原理介绍(上)

【AI大模型】ChatGPT模型原理介绍(上)

作者头像
小言从不摸鱼
发布于 2024-09-18 00:33:37
发布于 2024-09-18 00:33:37
6460
举报
文章被收录于专栏:机器学习入门机器学习入门

学习目标 🍀 了解ChatGPT的本质 🍀 了解GPT系列模型的原理和区别

🍔 什么是ChatGPT?

ChatGPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具. 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动, 真正像人类一样来聊天交流, 甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务.

数据显示, ChatGPT在推出2个多月的时间内,月活跃用户已经超过1亿, 这, 成为史上增长最快的消费者应用. 全球每天约有1300万独立访问者使用ChatGPT, 而爆炸性的增量也给该公司发展带来了想象空 间.

自从 ChatGPT 出现后. 突然之间, 每个人都在谈论人工智能如何颠覆他们的工作、公司、学校和生活. 那么ChatGPT背后的实现原理是什么呢?接下来我们将给大家进行详细的解析.

在我们了解ChatGPT模型原理之前, 需要回顾下ChatGPT的成长史, 即我们需要对GPT-1、GPT-2、GPT-3等一系列模型进行了解和学习, 以便我们更好的理解ChatGPT的算法原理.


🍔 GPT-1介绍

2018年6月, OpenAI公司发表了论文“Improving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》, 推出了具有1.17亿个参数的GPT-1(Generative Pre-training , 生成式预训练)模型.

与BERT最大的区别在于GPT-1采用了传统的语言模型方法进行预训练, 即使用单词的上文来预测单词, 而BERT是采用了双向上下文的信息共同来预测单词.

正是因为训练方法上的区别, 使得GPT更擅长处理自然语言生成任务(NLG), 而BERT更擅长处理自然语言理解任务(NLU).


2.1 GPT-1模型架构

看三个语言模型的对比架构图, 中间的就是GPT-1:

  • 从上图可以很清楚的看到GPT采用的是单向Transformer模型, 例如给定一个句子[u1, u2, ..., un], GPT在预测单词ui的时候只会利用[u1, u2, ..., u(i-1)]的信息, 而BERT会同时利用上下文的信息[u1, u2, ..., u(i-1), u(i+1), ..., un].
  • 作为两大模型的直接对比, BERT采用了Transformer的Encoder模块, 而GPT采用了Transformer的Decoder模块. 并且GPT的Decoder Block和经典Transformer Decoder Block还有所不同, 如下图所示:

  • 如上图所示, 经典的Transformer Decoder Block包含3个子层, 分别是Masked Multi-Head Attention层, encoder-decoder attention层, 以及Feed Forward层. 但是在GPT中取消了第二个encoder-decoder attention子层, 只保留Masked Multi-Head Attention层, 和Feed Forward层.
  • 注意: 对比于经典的Transformer架构, 解码器模块采用了6个Decoder Block; GPT的架构中采用了12个Decoder Block.

2.2 GPT-1训练过程

GPT-1的训练包括两阶段过程: 预训练 + 微调

  • 第一阶段: 无监督的预训练语言模型.
  • 第二阶段: 有监督的下游任务fine-tunning.
2.2.1 无监督的预训练语言模型
  • 给定句子U = [u1, u2, ..., un], GPT训练语言模型时的目标是最大化下面的似然函数:
  • 上述公式具体来说是要预测每个词ui的概率,这个概率是基于它前面 ui-k 到 ui−1 个词,以及模型 Θ。这里的 k 表示上文的窗口大小,理论上来讲 k 取的越大,模型所能获取的上文信息越充足,模型的能力越强。
  • GPT是一个单向语言模型,模型对输入U 进行特征嵌入得到 transformer 第一层的输h0,再经过多层 transformer 特征编码,使用最后一层的输出即可得到当前预测的概率分布,计算过程如下:

其中Wp是单词的位置编码, We是单词本身的word embedding. Wp的形状是[max_seq_len, embedding_dim], We的形状是[vocab_size, embedding_dim].

  • 得到输入张量h0后, 要将h0传入GPT的Decoder Block中, 依次得到ht:
  • 最后通过得到的ht来预测下一个单词:
2.2.2 有监督的下游任务fine-tunning
  • GPT经过预训练后, 会针对具体的下游任务对模型进行微调. 微调采用的是有监督学习, 训练样本包括单词序列[x1, x2, ..., xn]和label y. GPT微调的目标任务是根据单词序列[x1, x2, ..., xn]预测标签y.

其中W_y表示预测输出的矩阵参数, 微调任务的目标是最大化下面的函数:

  • 综合两个阶段的目标任务函数, 可知GPT的最终优化函数为:
2.2.3 整体训练过程架构图

根据下游任务适配的过程分两步: 1、根据任务定义不同输入, 2、对不同任务增加不同的分类层.

具体定义可以参见下图:

  • 分类任务(Classification): 将起始和终止token加入到原始序列两端, 输入transformer中得到特征向量, 最后经过一个全连接得到预测的概率分布;
  • 文本蕴涵(Entailment): 将前提(premise)和假设(hypothesis)通过分隔符(Delimiter)隔开, 两端加上起始和终止token. 再依次通过transformer和全连接得到预测结果;
  • 文本相似度(Similarity): 输入的两个句子, 正向和反向各拼接一次, 然后分别输入给transformer, 得到的特征向量拼接后再送给全连接得到预测结果;
  • 问答和常识推理(Multiple-Choice): 将 N个选项的问题抽象化为N个二分类问题, 即每个选项分别和内容进行拼接, 然后各送入transformer和全连接中, 最后选择置信度最高的作为预测结果

总的来说,都是通过在序列前后添加 Start 和 Extract 特殊标识符来表示开始和结束,序列之间添加必要的 Delim 标识符来表示分隔,当然实际使用时不会直接用 “Start/Extract/Delim” 这几个词,而是使用某些特殊符号。基于不同下游任务构造的输入序列,使用预训练的 GPT 模型进行特征编码,然后使用序列最后一个 token 的特征向量进行预测。

可以看到,不论下游任务的输入序列怎么变,最后的预测层怎么变,中间的特征抽取模块都是不变的,具有很好的迁移能力。


2.3 GPT-1数据集

GPT-1使用了BooksCorpus数据集, 文本大小约 5 GB,包含 7400w+ 的句子。这个数据集由 7000 本独立的、不同风格类型的书籍组成, 选择该部分数据集的原因:

  • 书籍文本包含大量高质量长句,保证模型学习长距离信息依赖。
  • 这些书籍因为没有发布, 所以很难在下游数据集上见到, 更能验证模型的泛化能力.

2.4 GPT-1模型的特点

模型的一些关键参数为:

参数

取值

transformer 层数

12

特征维度

768

transformer head 数

12

总参数量

1.17 亿

优点:

  • 在有监督学习的12个任务中, GPT-1在9个任务上的表现超过了state-of-the-art的模型
  • 利用Transformer做特征抽取, 能够捕捉到更长的记忆信息, 且较传统的 RNN 更易于并行化

缺点:

  • GPT 最大的问题就是传统的语言模型是单向的.
  • 针对不同的任务, 需要不同的数据集进行模型微调, 相对比较麻烦

2.5 GPT-1模型总结

  • GPT-1证明了transformer对学习词向量的强大能力, 在GPT-1得到的词向量基础上进行下游任务的学习, 能够让下游任务取得更好的泛化能力. 对于下游任务的训练, GPT-1往往只需要简单的微调便能取得非常好的效果.
  • GPT-1在未经微调的任务上虽然也有一定效果, 但是其泛化能力远远低于经过微调的有监督任务, 说明了GPT-1只是一个简单的领域专家, 而非通用的语言学家.

🍔 GPT-2介绍

2019年2月, OpenAI推出了GPT-2, 同时, 他们发表了介绍这个模型的论文“Language Models are Unsupervised Multitask Learners” (语言模型是无监督的多任务学习者).

相比于GPT-1, GPT-2突出的核心思想为多任务学习, 其目标旨在仅采用无监督预训练得到一个泛化能力更强的语言模型, 直接应用到下游任务中. GPT-2并没有对GPT-1的网络结构进行过多的创新与设计, 而是使用了更多的网络参数与更大的数据集: 最大模型共计48层, 参数量达15亿.

3.1 GPT-2模型架构

在模型方面相对于 GPT-1 来说GPT-2做了微小的改动:

  • LN层被放置在Self-Attention层和Feed Forward层前, 而不是像原来那样后置(目的:随着模型层数不断增加,梯度消失和梯度爆炸的风险越来越大,这些调整能够减少预训练过程中各层之间的方差变化,使梯度更加稳定
  • 在最后一层Tansfomer Block后增加了LN层
  • 输入序列的最大长度从 512 扩充到 1024;

3.2 GPT-2训练核心思想

目前大部分 NLP 模型是结合无监督的 Pre-training 和监督学习的 Fune-tuning, 但这种方法的缺点是针对某特定任务需要不同类型标注好的训练数据. GPT-2的作者认为这是狭隘的专家而不是通才, 因此该作者希望能够通过无监督学习训练出一个可以应对多种任务的通用系统.

标题中的多任务学习与我们常规理解的有监督学习中的多任务不太一样,这里主要是指模型从大规模数据中学到的能力能够直接在多个任务之间进行迁移,而不需要额外提供特定任务的数据,因此引出了 GPT-2 的主要观点:zero-shot。通过 zero-shot,在迁移到其他任务上的时候不需要额外的标注数据,也不需要额外的模型训练。

因此, GPT-2的训练去掉了Fune-tuning只包括无监督的预训练过程, 和GPT-1第一阶段训练一样, 也属于一个单向语言模型

理解GPT-2模型的学习目标: 使用无监督的预训练模型做有监督的任务.

  • 语言模型其实也是在给序列的条件概率建模, 即p(sn|s1,s2,...,sn−1)
  • 在 GPT-1 中,下游任务需要对不同任务的输入序列进行改造,在序列中加入了开始符、分隔符和结束符之类的特殊标识符,但是在 zero-shot 前提下,我们无法根据不同的下游任务去添加这些标识符,因为不进行额外的微调训练,模型在预测的时候根本不认识这些特殊标记。所以在 zero-shot 的设定下,不同任务的输入序列应该与训练时见到的文本长得一样,也就是以自然语言的形式去作为输入,例如下面两个任务的输入序列是这样改造的: 机器翻译任务:translate to french, { english text }, { french text } 阅读理解任务:answer the question, { document }, { question }, { answer }
  • 为什么上述输入序列的改造是有效的?或者说为什么 zero-shot 是有效的?这里引用原文的一句话: Our approach motivates building as large and diverse a dataset as possible in order to collect natural language demonstrations of tasks in as varied of domains and contexts as possible.
  • 大概意思是,从一个尽可能大且多样化的数据集中一定能收集到不同领域不同任务相关的自然语言描述示例,例如下图中展示了英法互译任务在自然语言中出现的示例,表明了不同任务的任务描述在语料中真实存在: ​

  • 所以 GPT-2 的核心思想就是,当模型的容量非常大且数据量足够丰富时,仅仅靠语言模型的学习便可以完成其他有监督学习的任务,不需要在下游任务微调

综上, GPT-2的核心思想概括为: 任何有监督任务都是语言模型的一个子集, 当模型的容量非常大且数据量足够丰富时, 仅仅靠训练语言模型的学习便可以完成其他有监督学习的任务.

3.3 GPT-2的数据集

为了保证 zero-shot 的效果,必须要足够大且覆盖面广。所以 GPT-2 专门爬取了大量的网络文本数据,GPT-2的文章取自于Reddit上高赞的文章, 命名为WebText. 数据集共有约800万篇文章, 累计体积约40G. 为了避免和测试集的冲突, WebText移除了涉及Wikipedia的文章.


3.4 GPT-2模型的特点

与GPT-1的区别:

  1. 主推 zero-shot,而 GPT-1 为 pre-train + fine-tuning;
  2. 训练数据规模更大,GPT-2 为 800w 文档 40G,GPT-1 为 5GB;
  3. 模型大小,GPT-2 最大 15 亿参数,GPT-1为 1 亿参数;
  4. 模型结构调整,层归一化;
  5. 训练参数,batch_size 从 64 增加到 512,上文窗口大小从 512 增加到 1024,等等;

优点:

  • 文本生成效果好, 在8个语言模型任务中, 仅仅通过zero-shot学习, GPT-2就有7个超过了state-of-the-art的方法.
  • 海量数据和大量参数训练出来的词向量模型有迁移到其它类别任务中而不需要额外的训练.

缺点:

  • 无监督学习能力有待提升
  • 有些任务上的表现不如随机

3.5 GPT-2模型总结

GPT-2的最大贡献是验证了通过海量数据和大量参数训练出来的词向量模型有迁移到其它类别任务中而不需要额外的训练. 但是很多实验也表明, GPT-2的无监督学习的能力还有很大的提升空间, 甚至在有些任务上的表现不比随机的好. 尽管在有些zero-shot的任务上的表现不错, 但是我们仍不清楚GPT-2的这种策略究竟能做成什么样子. GPT-2表明随着模型容量和数据量的增大, 其潜能还有进一步开发的空间, 基于这个思想, 诞生了我们下面要介绍的GPT-3.

🍔 小结

  • 本章节主要讲述了GPT-1与GPT-2的发展历程
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【AI大模型】ChatGPT模型原理介绍(下)
2020年5月, OpenAI发布了GPT-3, 同时发表了论文“Language Models are Few-Shot Learner”《小样本学习者的语言模型》.
小言从不摸鱼
2024/09/18
2830
【AI大模型】ChatGPT模型原理介绍(下)
多模态大模型技术原理与实战(2)
原始 Transformer 模型以编码器 ( Encoder )-解码器( Decoder )架构
顾翔
2024/09/10
2830
多模态大模型技术原理与实战(2)
大语言模型技术原理
在今天这个时代,人们的工作和生活已经离不开数据访问,而几乎所有平台背后的数据存储和查询都离不开数据库。SQL作为一种数据库的查询和处理语言历史悠久,最早由IBM于上世纪70年代初研究关系数据模型时提出,后续发展为一种广泛使用的数据库标准访问接口。
NineData
2023/05/30
1.9K0
大语言模型技术原理
Transformer结构及其应用详解——GPT、BERT、MT-DNN、GPT-2
为了缓解传递间的梯度和遗忘问题,设计了各种各样的RNN cell,最著名的两个就是LSTM和GRU了
新智元
2023/08/05
7650
Transformer结构及其应用详解——GPT、BERT、MT-DNN、GPT-2
【人工智能】第一部分:ChatGPT的基本概念和技术背景
随着人工智能技术的不断发展,自然语言处理(NLP)领域取得了显著的进步。ChatGPT,作为一种先进的对话生成模型,展现了令人瞩目的语言理解和生成能力。本文将深入探讨ChatGPT的原理,从基础概念到技术细节,帮助读者全面了解这一革命性技术。
人不走空
2024/06/03
9340
【人工智能】第一部分:ChatGPT的基本概念和技术背景
【AI大模型】探索GPT模型的奥秘:引领自然语言处理的新纪元
给定句子U = [u1, u2, ..., un], GPT训练语言模型时的目标是最大化下面的似然函数:
小言从不摸鱼
2025/01/17
1770
【AI大模型】探索GPT模型的奥秘:引领自然语言处理的新纪元
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(二)
 机器之心专栏 本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。 本文将分 2 期进行连载,共介绍 10 个在文本生成任务上曾取得 SOTA 的经典模型。 第 1 期:Seq2Seq(RNN)、Seq2Seq(LSTM)、Seq2Seq+
机器之心
2023/03/29
1.2K0
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(二)
多模态大模型技术原理与实战学习笔记(1)
GPT ( Generative Pre-trained Transformer,生成式预训练Transformer )
顾翔
2024/09/10
2020
多模态大模型技术原理与实战学习笔记(1)
从0到1带你了解ChatGPT原理
2022年底,ChatGPT(Generative Pre-trained Transformer)横空出世,迅速火遍大江南北,与过往传统的聊天机器人不同,ChatGPT拥有更为出色的自然语言理解与生成能力,能够为用户提供更为高效、准确、愉悦的交互体验,刷新了人们对于人工智能(Artificial Intelligence,简称AI)的认识,引起了全社会广泛的讨论。那么,ChatGPT为何能做到如此智能呢?本文将以最通俗、最浅显的的语言从0到1带你了解ChatGPT背后的工作原理。
MIchaelWang
2023/11/16
2.6K3
从0到1带你了解ChatGPT原理
长文梳理!近年来GPT系列模型的发展历史:从GPT-1到GPT-4o(前世、今生)
随着ChatGPT的发布,大语言模型的关注度和数量都在不断上升,它引领了人类进入了大模型时代,并且随着一轮一轮的迭代,最新模型已经进化到了GPT-4o。在众多大语言模型中,GPT系列因其代表性而备受关注,其发展历程和技术革新值得深入探讨。那么今天带大家回顾一下近年来GPT系列模型的发展。【参考中国人民大学《大语言模型》】
ShuYini
2024/06/19
3.6K0
长文梳理!近年来GPT系列模型的发展历史:从GPT-1到GPT-4o(前世、今生)
深度解析ChatGPT原理
ChatGPT是基于OpenAI的生成式预训练变换器(GPT)模型的自然语言处理技术。它通过大规模预训练和微调来生成高质量的自然语言文本。本文将详细探讨ChatGPT的技术原理,包括其架构、训练过程、生成机制和应用场景,并提供图文并茂的解释。
AI拉呱
2024/06/05
3400
人工智能的发展历程和当前状态,全面认识大语言模型的发展之路
截至 2023 年 11 月,人类创造的人工智能工具已经取得了长足的进步,在自然语言处理、机器翻译、问答系统等领域取得了显著成果。当前走到了大语言模型阶段。
LIYI
2023/12/04
3.1K0
人工智能的发展历程和当前状态,全面认识大语言模型的发展之路
【LLM系列之GPT】GPT(Generative Pre-trained Transformer)生成式预训练模型
GPT(Generative Pre-trained Transformer)是由OpenAI公司开发的一系列自然语言处理模型,采用多层Transformer结构来预测下一个单词的概率分布,通过在大型文本语料库中学习到的语言模式来生成自然语言文本。GPT系列模型主要包括以下版本:
致Great
2023/08/25
1.5K0
【LLM系列之GPT】GPT(Generative Pre-trained Transformer)生成式预训练模型
推理大模型的后训练增强技术-预训练篇
训练大型语言模型不是一个单一的过程,相反,它是一个多层的训练过程组合,每个过程都有其独特的作用,并对模型的性能做出贡献。
致Great
2025/03/08
2670
推理大模型的后训练增强技术-预训练篇
大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解
在自然语言处理问题中,可从互联网上下载大量无标注数据,而针对具体问题的有标注数据却非常少,GPT 是一种半监督学习方法,它致力于用大量无标注数据让模型学习 “常识”,以缓解标注信息不足的问题。其具体方法是在针对有标签数据训练 Fine-tune 之前,用无标签数据预训练模型 Pretrain,并保证两种训练具有同样的网络结构。 GPT 底层也基于 Transformer 模型,与针对翻译任务的 Transformer 模型不同的是:它只使用了多个 Deocder 层。
汀丶人工智能
2023/07/18
3.8K0
大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解
机器学习|7种经典预训练模型原理解析
目前无论在CV领域还是NLP领域,预训练都是一个很普遍和普适的方法。我们都知道深度学习的模型越庞大,模型参数越多,为了避免过拟合就需要相应大规模的数据集,但对于很多任务而言,样本标注的成本昂贵。相反,大规模无标签数据库相对容易建立,为了充分利用这些无标记数据,我们可以先使用它们在其他一些任务上学习一个好的特征表示,再用于训练目标任务。
智能生信
2021/02/04
5.6K0
广告行业中那些趣事系列20:GPT、GPT-2到GPT-3,你想要的这里都有
摘要:本文是广告系列第二十篇,主要介绍了GPT系列模型的发展流程。首先介绍了NLP中超强但不秀的GPT模型。GPT属于典型的预训练+微调的两阶段模型,将Transformer作为特征抽取器,使用单向语言模型,属于NLP中非常重要的工作,同时还介绍了GPT模型下游如何改造成不同的NLP任务;然后介绍了有点火的GPT-2。相比于GPT来说GPT-2使用了更多更好的训练数据,同时直接使用无监督的方式来完成下游任务;最后介绍了巨无霸GPT-3。相比于GPT-2,GPT-3直接把模型的规模做到极致,使用了45TB的训练数据,拥有175B的参数量,真正诠释了暴力出奇迹。GPT-3模型直接不需要微调了,不使用样本或者仅使用极少量的样本就可以完成下游NLP任务,尤其在很多数据集中模型的效果直接超越了最好效果的微调模型,真正帮助我们解决了下游任务需要标注语料的问题。对GPT系列模型感兴趣的小伙伴可以一起沟通交流。
guichen1013
2021/01/21
8370
LLM主要类别架构
💫LLM分类一般分为三种:自编码模型(encoder)、自回归模型(decoder)和序列到序列模型(encoder-decoder)。
@小森
2024/06/04
5910
从GPT-1到GPT-4,再到未来的GPT-5,一文带你了解GPT的前世今生和未来!
ChatGPT爆火的余热还没退去,GPT-4又横空出世,各大媒体都争相报道,朋友圈也在不断刷屏,打工人更是感叹饭碗要被AI夺走了!作为一名理性吃瓜群众我们还是得去了解一下GPT的过去、现在和未来,正所谓知己知彼,百战不殆,只有充分了解"对手",我们才能驾驭AI为我所用!话不多说,立马开始!
itvv
2023/03/23
9.2K0
【Pre-Training】GPT-2:四只角的独角兽
今天阅读的是 OpenAI 的同学于 2019 年发表的论文《Language Models are Unsupervised Multitask Learners》,目前具有 300 多引用量。
阿泽 Crz
2020/07/21
1K0
推荐阅读
相关推荐
【AI大模型】ChatGPT模型原理介绍(下)
更多 >
目录
  • 🍔 什么是ChatGPT?
  • 🍔 GPT-1介绍
    • 2.1 GPT-1模型架构
    • 2.2 GPT-1训练过程
      • 2.2.1 无监督的预训练语言模型
      • 2.2.2 有监督的下游任务fine-tunning
      • 2.2.3 整体训练过程架构图
    • 2.3 GPT-1数据集
    • 2.4 GPT-1模型的特点
    • 2.5 GPT-1模型总结
  • 🍔 GPT-2介绍
    • 3.1 GPT-2模型架构
    • 3.2 GPT-2训练核心思想
    • 3.3 GPT-2的数据集
    • 3.4 GPT-2模型的特点
    • 3.5 GPT-2模型总结
  • 🍔 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档