当前位置: 首页 > news >正文

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)机构
光环大数据
开课吧
极客时间
七月在线
深度之眼
贪心学院
拉勾教育
博学谷
慕课网
海贼宝藏

相关文章:

NLP_BERT与GPT争锋

文章目录 介绍小结 介绍 在开始训练GPT之前,我们先比较一下BERT和 GPT 这两种基于 Transformer 的预训练模型结构,找出它们的异同。 Transformer架构被提出后不久,一大批基于这个架构的预训练模型就如雨后春笋般地出现了。其中最重要、影响…...

放一个还看得过去的后台模板设置模块css样式框架

#小李子9479# 如下图 <div class"grid col-3 margin-top-xl"><?php$clist array(cyan, yellow, purple, red, blue, brown);foreach ($clist as $kk > $vv) {?><div style"max-width:400px;width:100%;padding:10px;"><div cl…...

关于信号强度单位dB和dBm区别

dB&#xff0c;dBm 都是功率增益的单位&#xff0c;不同之处如下&#xff1a; 一、dB 是一个相对值&#xff0c;表示两个量的相对大小关系&#xff0c;没有单位。当考虑甲的功率相比于乙功率大或小多少个dB时&#xff0c;按下面的计算公式&#xff1a;10log&#xff08;甲功率/…...

华清远见作业第四十二天——Qt(第四天)

思维导图&#xff1a; 编程&#xff1a; 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTextToSpeech> //语音播报类 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public Q…...

vue2和vue3区别 浅析

vue2和vue3区别 浅析 数据响应原理 vue2 通过 Object.defineProperty 来更新数据,只会监听使用Object.defineProperty创建的(初始化)的数据&#xff0c;并通过订阅方式进行发布&#xff0c;在初始化之外的数据&#xff0c;不会受到监听&#xff1b; 在数据初始化时&#xf…...

GIT使用和简介

Git 是一个版本控制系统&#xff0c;它可以追踪文件的更改&#xff0c;并可以在不同的分支上进行并行开发。下面是 Git 的基本概念和使用方式的解释&#xff1a; 1. 仓库&#xff08;Repository&#xff09;&#xff1a;仓库是用来存储项目代码的地方。一个仓库可以包含多个文…...

HTTPS(超文本传输安全协议)被恶意请求该如何处理。

HTTPS&#xff08;超文本传输安全协议&#xff09;端口攻击通常是指SSL握手中的一些攻击方式&#xff0c;比如SSL握手协商过程中的暴力破解、中间人攻击和SSL剥离攻击等。 攻击原理 攻击者控制受害者发送大量请求&#xff0c;利用压缩算法的机制猜测请求中的关键信息&#xf…...

QT-模拟电梯上下楼

QT-模拟电梯上下楼 一、演示效果二、核心程序三、下载链接 一、演示效果 二、核心程序 #include "ElevatorController.h" #include <QGridLayout> #include <QLabel> #include <QGroupBox> #include <QGridLayout> #include <QPushButto…...

基于springboot+vue的桂林旅游景点导游平台(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

设计模式四:适配器模式

1、适配器模式的理解 适配器模式可以理解为有两个现成的类Adaptee和Target&#xff0c;它们两个是不能动的&#xff0c;要求必须使用B这个类来实现一个功能&#xff0c;但是A的内容是能复用的&#xff0c;这个时候我们需要编写一个转换器 适配器模式 Adaptee&#xff1a;被适…...

【AI应用】SoraWebui——在线文生视频工具

SoraWebui 是一个开源项目&#xff0c;允许用户使用 OpenAI 的 Sora 模型使用文本在线生成视频&#xff0c;从而简化视频创建&#xff0c;并具有轻松的一键网站部署功能 在 Vercel 上部署 1. 克隆项目 git clone gitgithub.com:SoraWebui/SoraWebui.git 2. 安装依赖 cd So…...

电路设计(27)——交通信号灯的multisim仿真

1.功能要求 使用数字芯片设计一款交通信号灯&#xff0c;使得&#xff1a; 主干道的绿灯时间为60S&#xff0c;红灯时间为45S 次干道的红灯时间为60S&#xff0c;绿灯时间为45S 主、次干道&#xff0c;绿灯的最后5S内&#xff0c;黄灯闪烁 使用数码管显示各自的倒计时时间。 按…...

Python Sanic 异步 Web 框架

Sanic 是一个基于 Python 3.6 的异步 Web 框架&#xff0c;它使用了 Python 的 async/await 语法来实现高效的非阻塞 IO 操作。 Sanic 的主要作用是提供一个快速、轻量级的方式来构建异步 Web 服务&#xff0c;适用于处理大量并发请求的场景。 以下是一个简单的示例代码&…...

滚雪球学Java(70):深入理解Java中的PriorityQueue底层实现与源码分析

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…...

李宏毅2023机器学习作业1--homework1

一、前期准备 下载训练数据和测试数据 # dropbox link !wget -O covid_train.csv https://www.dropbox.com/s/lmy1riadzoy0ahw/covid.train.csv?dl0 !wget -O covid_test.csv https://www.dropbox.com/s/zalbw42lu4nmhr2/covid.test.csv?dl0 导入包 # Numerical Operation…...

Mysql的SQL调优-面试

面试SQL优化的具体操作&#xff1a; 1、在表中建立索引&#xff0c;优先考虑where、group by使用到的字段。 2、尽量避免使用select *&#xff0c;返回无用的字段会降低查询效率。错误如下&#xff1a; SELECT * FROM table 优化方式&#xff1a;使用具体的字段代替 *&#xf…...

Unity 2021.3发布WebGL设置以及nginx的配置

使用unity2021.3发布webgl 使用Unity制作好项目之后建议进行代码清理&#xff0c;这样会即将不用的命名空间去除&#xff0c;不然一会在发布的时候有些命名空间webgl会报错。 平台转换 将平台设置为webgl 设置色彩空间压缩方式 Compression Format 设置为DisabledDecompre…...

【鸿蒙 HarmonyOS 4.0】数据持久化

一、数据持久化介绍 数据持久化是将内存数据(内存是临时的存储空间)&#xff0c;通过文件或数据库的形式保存在设备中。 HarmonyOS提供两种数据持久化方案&#xff1a; 1.1、用户首选项&#xff08;Preferences&#xff09;&#xff1a; 通常用于保存应用的配置信息。数据通…...

mysql mgr集群多主部署

一、前言 mgr多主集群是将集群中的所有节点都设为可写&#xff0c;减轻了单主节点的写压力&#xff0c;从而提高了mysql的写入性能 二、部署 基础部署与mgr集群单主部署一致&#xff0c;只是在创建mgr集群时有所不同 基础部署参考&#xff1a;mysql mgr集群部署-CSDN博客 设置…...

【开源】JAVA+Vue.js实现医院门诊预约挂号系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 功能性需求2.1.1 数据中心模块2.1.2 科室医生档案模块2.1.3 预约挂号模块2.1.4 医院时政模块 2.2 可行性分析2.2.1 可靠性2.2.2 易用性2.2.3 维护性 三、数据库设计3.1 用户表3.2 科室档案表3.3 医生档案表3.4 医生放号…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...