【AI大模型】探索GPT模型的奥秘:引领自然语言处理的新纪元

news/2024/12/27 5:06:33/

目录

gpt-toc" style="margin-left:0px;">🍔 GPT介绍

gpt-toc" style="margin-left:0px;">🍔 GPT的架构

gpt-toc" style="margin-left:0px;">🍔 GPT训练过程

3.1 无监督的预训练语言模型

3.2 有监督的下游任务fine-tunning

🍔 小结

学习目标

  • 了解什么是GPT.
  • 掌握GPT的架构.
  • 掌握GPT的预训练任务.

gpt">🍔 GPT介绍

  • GPT是OpenAI公司提出的一种语言预训练模型.
  • OpenAI在论文<< Improving Language Understanding by Generative Pre-Training >>中提出GPT模型.
  • OpenAI后续又在论文<< Language Models are Unsupervised Multitask Learners >>中提出GPT2模型.
  • GPT和GPT2模型结构差别不大, 但是GPT2采用了更大的数据集进行训练.

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

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

gpt">🍔 GPT的架构

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


  • 从上图可以很清楚的看到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 Decoder模型, GPT利用句子序列信息预测下一个单词的时候, 要使用Masked Multi-Head Attention对单词的下文进行遮掩, 来防止未来信息的提前泄露. 例如给定一个句子包含4个单词[A, B, C, D], GPT需要用[A]预测B, 用[A, B]预测C, 用[A, B, C]预测D. 很显然的就是当要预测B时, 需要将[B, C, D]遮掩起来.


  • 具体的遮掩操作是在slef-attention进行softmax之前进行的, 一般的实现是将MASK的位置用一个无穷小的数值-inf来替换, 替换后执行softmax计算得到新的结果矩阵. 这样-inf的位置就变成了0. 如上图所示, 最后的矩阵可以很方便的做到当利用A预测B的时候, 只能看到A的信息; 当利用[A, B]预测C的时候, 只能看到A, B的信息.

  • 注意: 对比于经典的Transformer架构, 解码器模块采用了6个Decoder Block; GPT的架构中采用了12个Decoder Block.

gpt">🍔 GPT训练过程

GPT的训练也是典型的两阶段过程:

  • 第一阶段: 无监督的预训练语言模型.
  • 第二阶段: 有监督的下游任务fine-tunning.

3.1 无监督的预训练语言模型

给定句子U = [u1, u2, ..., un], GPT训练语言模型时的目标是最大化下面的似然函数:

有上述公式可知, GPT是一个单向语言模型, 假设输入张量用h0表示, 则计算公式如下:

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

得到输入张量h0后, 要将h0传入GPT的Decoder Block中, 依次得到ht:

最后通过得到的ht来预测下一个单词:

3.2 有监督的下游任务fine-tunning

GPT经过预训练后, 会针对具体的下游任务对模型进行微调. 微调采用的是有监督学习, 训练样本包括单词序列[x1, x2, ..., xn]和label y. GPT微调的目标任务是根据单词序列[x1, x2, ..., xn]预测标签y.

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

综合两个阶段的目标任务函数, 可知GPT的最终优化函数为:

🍔 小结

  • 学习了什么是GPT.

  • 学习了GPT的架构.

    • GPT采用了Transformer架构中的解码器模块.
    • GPT在使用解码器模块时做了一定的改造, 将传统的3层Decoder Block变成了2层Block, 删除了encoder-decoder attention子层, 只保留Masked Multi-Head Attention子层和Feed Forward子层.
    • GPT的解码器总共是由12个改造后的Decoder Block组成的.
  • 学习了GPT的预训练任务.

    • 第一阶段: 无监督的预训练语言模型. 只利用单词前面的信息来预测当前单词.
    • 第二阶段: 有监督的下游任务fine-tunning.

 


http://www.ppmy.cn/news/1558440.html

相关文章

【每日学点鸿蒙知识】getStringSync性能、avplayer、Socket、ScanKit、Authentication

1、HarmonyOS getStringSync和getNumber方法耗时导致性能问题&#xff1f; 页面中有很多场景需要使用getContext().resourceManager.getStringSync()方法&#xff0c;将resource资源取出&#xff0c;在其他地方使用&#xff1b;但是&#xff0c;经分析&#xff0c;getStringSy…

Java爬虫获取1688 item_search_img接口详细解析

概述 1688作为中国领先的B2B电商平台&#xff0c;提供了丰富的API接口供开发者获取商品信息。item_search_img接口允许通过图片搜索商品&#xff0c;这对于需要基于图片进行商品查找的应用场景非常有用。本文将详细介绍如何使用Java爬虫技术获取1688的item_search_img接口数据…

短视频运营行业该如何选择服务器?

在互联网快速发展的时代&#xff0c;短视频行业也应运而生&#xff0c;企业为了保证用户能够浏览流畅且稳定的短视频&#xff0c;则需要选择一台合适的服务器来运行相关业务&#xff0c;本文就来探讨一下短视频运营行业该如何选择服务器吧&#xff01; 短视频行业一般需要处理大…

RabbitMQ中的普通Confirm模式:深入解析与最佳实践

在分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信和解耦的重要组件。RabbitMQ作为一种广泛使用的消息中间件&#xff0c;提供了多种消息确认机制&#xff08;Confirm Mode&#xff09;&#xff0c;以确保消息的可靠传递。本文将深入探讨…

帝国cms同一条信息使用不同的多个内容页模板伪静态实现教程

理论上可以实现一条信息使用无数个内容页模板&#xff0c;实现过程&#xff1a; 1、/e/action目录下新建bishun.php&#xff0c;内容如下&#xff1a; <?php require(../class/connect.php); require(../class/db_sql.php); require(../class/functions.php); require(..…

小程序canvas画环形百分比进度图

组件封装 component/canvas-ring目录下 canvas-ring.js <canvas style"width:{{canvasWidth}}px;height:{{canvasWidth}}px; margin:0 auto;position:relative" type"2d" id"myCanvas"><view class"circle-bar" style&quo…

安卓开发实现图像处理相关功能

彩色图像转换黑白图像实验 基本图形绘制与填充实验 Mat像素操作实验 图像滤波实验 图像轮廓特征检测实验 图像局部特征检测实验 人脸美颜

中国量子计算机领域的发展现状与展望

中国量子计算机领域的发展现状与展望 摘要 随着全球科技竞争的加剧&#xff0c;量子计算作为前沿技术领域备受瞩目。中国在量子计算机的研发方面取得了显著进展&#xff0c;本文将深入探讨中国量子计算机领域的现状、取得的成果、面临的挑战以及未来的发展方向&#xff0c;并…