NLP_BERT与GPT争锋

文章目录

  • 介绍
  • 小结


介绍

在开始训练GPT之前,我们先比较一下BERT和 GPT 这两种基于 Transformer 的预训练模型结构,找出它们的异同。

Transformer架构被提出后不久,一大批基于这个架构的预训练模型就如雨后春笋般地出现了。其中最重要、影响最深远的两个预训练模型当然就是GPT 和 BERT这两个模型。

在ChatGPT震惊世界之前,在自然语言处理领域影响最大的预训练模型是 BERT,很多科研工作都是围绕着BERT 展开的。由于BERT语言理解和推理能力很强,它也适用于很多下游任务。

初代的GPT和 BERT几乎是同时出现的,其实GPT还要稍微早一些。因此,在 BERT 的论文中,特意将二者进行了比较。在下文中,我将用你能够理解的方式来讲解二者的异同,这样你就明白BERT 和 GPT 这两个模型到底是怎么训练出来的了。

在对BERT 做无监督的预训练时,研究人员设计了两个目标任务:一个是将输入的文本中 k% 的单词遮住,然后让它预测被遮住的是什么单词,这个目标任务叫作掩码语言模型(Masked Language Model,MLM);另一个是预测一个句子是否会紧挨着另一个句子出现,这个目标任务叫作下一句预测(Next Sentence Prediction,NSP)。这两个任务在预训练时,数据集都是通过现成的语料文本构建的,标签也是原始语料自带的,所以属于无监督的预训练。其实,从模型参数优化的角度来讲,是有标签指导的。

掩码语言模型,举个例子:随机把“一二三四五,上山打老虎”中的“二”和“打”抠掉,被抠掉的词就成了标签,这样来训练模型的文本理解能力。

自然语言模型的预训练,最不缺的就是数据,比如维基百科、知乎、微博文本,这些平台中有海量的数据。预训练时在大量数据上基于这两个目标(MLM和NSP)对模型进行优化,就形成了预训练好的模型,然后,我们可以把这个基础模型(Foundation Model)的结构和参数一并下载下来,再针对特定任务进行微调,就可以解决下游问题了。BERT适合解决的NLP任务包括文本分类、命名实体识别、完形填空、关系抽取等推理性问题。

GPT也是一种基于Transformer架构的自然语言处理模型,但它与BERT有一些不同之处。

  • 首先,GPT在训练时采用的是单向语境,也就是从左到右的顺序。而BERT则采用了双向的方式,即同时考虑上下文信息。这使得GPT在生成文本时更擅长保持连贯性,但可能在理解某些上下文时不如 BERT。

  • 其次,在预训练任务上,GPT的主要任务是基于给定的上下文,预测出现的下一个词。这个任务就是我们之前反复介绍过的语言模型,也被称为语言建模(Language Modeling)。由于GPT 的预训练任务更简单,因此,它在生成文本方面通常表现得更好。

在实际应用中,GPT经过预训练后,可被用于解决各种下游任务,例如文本生成、文本分类、问答系统等,尤其是生成性问题。与BERT一样,GPT的预训练模型可以在大量文本数据上进行训练,然后根据特定任务进行微调,从而解决各种实际问题。

总之,GPT与BERT都是基于Transformer架构的NLP 模型,但在文本理解方式和预训练任务上有所不同。GPT采用单向语境和语言建模任务,而BERT采用双向语境和掩码语言建模及句子预测任务。在实际应用中,它们都可以通过预训练和微调的方式来解决各种 NLP 任务。

从BERT原始论文中的示意图来理解,这张图简单地说明了所谓单向和双向的区别。从宏观上看,BERT和GPT是相似的,图中蓝色的圈圈是Transformer 的隐藏层,其中的缩写Trm其实就是Transformer,而唯一的区别在于每个蓝色圈圈接收到的自注意力信息的方向。

  • BERT整体处理整个序列,既能够关注前面的信息,也能够关注后面的信息,所以是双向编码。在训练过程中,每个位置的向量表示都通过左右两侧的上下文信息一起学习,这样能更好地捕捉句子的语义。

  • GPT的理念就很不相同了。它是通过语言模型的思想,最大化语句序列出现的概率。你不是让我预测吗?那我只能翻来覆去看问题,不能先看答案啊!这就是生成式模型和填空式模型的不同。

在这里插入图片描述

总结一下,BERT和GPT 的两个主要区别。

  • 第一,BERT是掩码语言模型;GPT 是生成式语言模型。我们这门课程一路以来讲的 N-Gram、Word2Vec、NPLM和 Seq2Seq预测的都是下一个词,其本质都是生成式语言模型。因此,生成式语言模型是语言模型的原始状态,而 BERT 的掩码语言模型“猜词”,是创新。

  • 第二,BERT是双向语言模型,每个位置的向量表示都通过上下文信息来一起学习;GPT 是单向语言模型,在解码器的每个自注意力子层中引入了一个掩码(掩蔽)机制,以防止当前位置的注意力权重分配到后续位置。

  • 第三, BERT只使用编码器架构;而GPT只使用解码器架构。

编码器的双向模型结构使得BERT能够充分利用上下文信息,因此BERT更适用于理解任务,如文本分类、命名实体识别和问答等,因为它可以同时关注输入序列中的所有单词,而不仅仅是一个方向的信息。

只有解码器架构的GPT是一个单向模型,具有自回归的特点。在训练过程中, GPT模型通过后续注意力掩码,确保每个位置只能看到当前位置之前的信息,这使得 GPT非常适合完成生成任务,如文本生成、文章摘要等。当生成一个序列时,GPT会根据之前生成的上下文信息生成下一个单词。

这两个模型的架构差异(见表7.1)使它们在不同类型的NLP任务中各有优势。 BERT 因其双向上下文关注和编码器架构在理解任务上表现出色,而GPT因其单向自回归特性和解码器架构在生成任务上具有较好的性能。

在这里插入图片描述

小结

BERT 因其双向上下文关注和编码器架构在理解任务上表现出色,而GPT因其单向自回归特性和解码器架构在生成任务上具有较好的性能。


学习的参考资料:
(1)书籍
利用Python进行数据分析
西瓜书
百面机器学习
机器学习实战
阿里云天池大赛赛题解析(机器学习篇)
白话机器学习中的数学
零基础学机器学习
图解机器学习算法

动手学深度学习(pytorch)

(2)机构
光环大数据
开课吧
极客时间
七月在线
深度之眼
贪心学院
拉勾教育
博学谷
慕课网
海贼宝藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue+springboot登录与注册功能的实现

①首先写一个登录页面 <template> <div style"background-color: #42b983;display: flex;align-items: center;justify-content: center;height: 100vh"><div style"background-color: white;display: flex;width: 50%;height: 50%;overflow: h…

驶向未来:3D可视化模型重塑我们的道路认知

在科技的浪潮中&#xff0c;每一个革新都是对人类未来生活的深度洞察。而今&#xff0c;当可视化这一技术走进我们的视野&#xff0c;它不仅是一场视觉盛宴&#xff0c;更是一次对未来出行方式的全新探索。 一、从平面到立体&#xff0c;解锁道路新视角 你是否曾站在十字路口&…

NS安装-CentOS服务器安装Nightscout CGM

NS CGM 安装必要条件 有自己的云服务器好像没有2&#xff0c;有云服务器就行了 安装顺序 先安装数据库&#xff0c;目前支持的是 MongoDB &#xff0c;官方推荐4&#xff0c;其实目前最新版本就行。可以用宝塔安装&#xff0c;比较简单克隆代码&#xff0c;我是放到 /opt/ns…

PHP小程序 获取二维码

//获取token public function getAccessToken($appId,$appSecret) {// 请求API获取 access_token$url "https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appid{$this->appId}&secret{$this->appSecret}";$result $this->g…

抖音关键词搜索爬虫,抖音API数据接口,抖音商品详情数据采集

抖音商品API接口抖音关键词搜索抖音直播间小黄车抖店商品数据采集 除了微博&#xff0c;小红书&#xff0c;抖音也是一个巨大的流量池。 除了评论&#xff0c;其实关键词搜索视频是更为常见的一个需求&#xff0c;于是上周末抽空开发了下&#xff0c;完成了 mvp。

MQTT协议-ISO标准下基于发布/订阅范式的消息协议

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上&#xff0c;是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议&#xff0c;为此&#xff0c;它需要一个消息中间件 。 MQTT是一个…

【单链表反转】图文解析 链表反转

目录 例题描述&#x1f4a1; 思路一 &#xff08;推荐&#xff09; 代码实现 &#x1f4a1; 思路二 代码实现 引申1. 局部反转单链表2. k个一组反转链表 例题描述 反转一个链表 示例&#xff1a; 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1-…

海外大带宽服务器连接失败:原因与解决策略

​随着全球互联网的发展&#xff0c;越来越多的企业和个人选择使用海外大带宽服务器来满足数据传输和业务需求。然而&#xff0c;在实际使用中&#xff0c;有时会出现服务器连接失败的问题。本文将为您分析原因并提供相应的解决策略。 一、海外大带宽服务器连接失败的原因 网络…

Java三大框架简介与比较

一、引言 在Java开发领域&#xff0c;三大框架——Spring、Hibernate和MyBatis&#xff0c;各自扮演着重要的角色。它们为开发者提供了不同的解决方案&#xff0c;使得开发者能够更高效地构建企业级应用。本文将分别介绍这三大框架的特点、优势以及适用场景&#xff0c;并对它…

PCL 计算点云AABB包围盒的体积

目录 一、AABB包围盒二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。爬虫自重,把自己当个人。 一、AABB包围盒 AABB包围盒又称了 轴对齐包围盒,是点云包围盒里最简单的一种,其计算方法也极其简单。获取包围盒之后,根据包围盒的长宽高进行体积计算即…

MySQL性能分析1——查看频次

1、查看执行频次 查看当前数据库的INSERT,UPDATE,DELETE,SELECT的访问频次&#xff0c;得到当前数据库是以插入&#xff0c;更新和删除为主还是以查询为主&#xff0c;如果是以插入&#xff0c;更新和删除为主的话&#xff0c;那么优化比重可以轻一点儿。 语法&#xff1a; …

武汉融资融券利率最低目前是多少?4.5%!如何计算的?

融资融券利率是指证券公司提供的融资融券服务的费率&#xff0c;由证券公司根据市场行情情况而定&#xff0c;该费率由两部分组成&#xff0c;即融资利率和融券利率。目前市场上的融资利率最低一般是在4.5%~5%之间。 融资利率是指投资者从证券公司融资时需要按照利率支付一定的…

大路灯怎么选?五款顶级落地台灯揭秘,深度测评推荐!

现在很多家长都担心孩子的视力&#xff0c;其实孩子夜间的读写光源问题是家长很容易忽略的视力“隐形杀手”。许多家长都选择入手了大路灯来帮助孩子改善读写用眼时的光线环境&#xff0c;从而能够达到提高学习效率的同时还能够很好的保护眼睛视力&#xff0c;但随之照明市场的…

温湿度如何精准监测?教你一招秒速搞定!

随着科技的不断发展&#xff0c;温湿度监控系统在各个领域中变得越来越重要。为了满足不同行业的需求&#xff0c;温湿度监控系统不断创新和进化&#xff0c;提供更为精准、可靠的监测方案。 传统的温湿度监测手段已经无法满足当今复杂的需求&#xff0c;而现代的监控系统以其高…

0成本部署github前端项目流程

0成本部署github纯前端项目流程 对业内来说应该是一个比较常规的操作&#xff0c;对于新手来说进行过一次应该就很难忘记了&#xff0c;但很多人仍然是不会的&#xff0c;认为部署项目很难&#xff0c;很专业&#xff0c;其实现在由于这些厂商的努力&#xff0c;大众&#xff…

Python兼职跳过血泪史直接分享干货及平台推荐

文章目录 Python兼职种类&#xff1a;接私活注意事项&#xff1a;接单报价方式&#xff1a;简单公式&#xff1a;项目工时\*日薪&#xff0b;紧急程度&#xff0b;报价国内远程工作平台 学python能兼职挣钱吗&#xff1f;怎么挣钱&#xff1f; Python兼职种类&#xff1a; …

PyCharm 主题和字体 (Scheme Editor Font)

PyCharm 主题和字体 [Scheme & Editor Font] References Scheme & Editor Font File -> Settings -> Editor -> Colors & Fonts -> Font Show only monospaced fonts&#xff1a; 只显示等宽字体。编程时使用等宽字体效果较好。 References [1] Yon…

DockerFile的应用

DockerFile的应用 一、介绍1 构建的三步骤2 构建的过程 二、常用命令三、DockerFile案例1 创建DockerFile文件2 使用DockerFile文件构建镜像3 启动容器并验证 四 DockerFile添加数据卷 一、介绍 DockerFile是用来构建Docker镜像的构建文件&#xff0c;是由一系列命令和参数构成…

负载均衡下webshell连接nginx解析漏洞、sql注入第一关

首先搭建环境找到php较低的版本改一下账号密码输入?id1 正常 输入?id1 报错 .0 输入?id1-- 正常 判断是字符型注入&#xff0c;闭合方式是 id是1后台看是数据表里第一行 查询id1出错前端打印出了报错信息语法错误这里是找到了库名&#xff0c;接下来是找表名这个方法是…

php基础学习之匿名函数

匿名函数 描述 允许临时创建一个没有指定名称的函数&#xff0c;使用匿名函数可以方便地创建一次性或临时的功能块。 语法 function (){ //函数体 }; 样例 &#xff08;注&#xff1a;匿名函数定义后&#xff0c;需要将其赋值给一个变量&#xff0c;然后通过该变量来调用 这种调…