【NLP】BERT,BART和T5等LLM模型的比较

news2024/11/26 16:30:03

一、介绍

        在这篇博文中,我将讨论像BERT,BART和T5这样的大型语言模型。到2020年,LLM领域取得的主要进展包括这些模型的开发。BERT和T5由Google开发,BART由Meta开发。我将根据这些模型的发布日期依次介绍这些模型的详细信息。在之前的博客文章自然语言处理的自回归模型中,我讨论了生成式预训练转换器的自回归性质。在这篇博客中,我将比较这些模型与自回归模型的不同之处。因此,如果您还没有查看上一篇文章,请去查看。BERT 论文于 2018 年发布,BART 于 2019 年发布,T5 于 2020 年发布。我将以相同的顺序介绍论文的细节。

二、变压器的双向编码器表示 (BERT)

        BERT模型基于多层双向变压器编码器。BERT旨在通过在所有层中联合调节左上下文和右上下文来预训练来自未标记文本的深度双向表示。因此,只需一个额外的输出层即可对预先训练的BERT模型进行微调,以创建最先进的模型。BERT使用掩蔽语言模型预训练目标来克服单向性约束。BERT的预训练也是通过下一句预测来完成的。

        

        bert输入表示

        与transformer相比,BERT的输入表示是令牌嵌入,段嵌入和位置嵌入的总和。还添加了特殊的分类标记和句子分隔符标记。令牌嵌入是词汇量为 30,000 的词片嵌入。预训练期间使用的数据集是BookCorpus和Wikipedia。

2.1 MLM语言模型

        在MLM预训练中,输入序列的15%的单词被获取。其中 80% 被屏蔽,10% 被替换为随机单词,10% 保持不变。因此,每次模型查看掩码时,它都会输出词汇标记的分布。

2.2  传输工作:下一句预测

        在第二个预训练任务中,模型在一个序列中提供两个句子,模型必须根据上下文输出第二个句子是Next还是NotNext。已确保数据集与相同数量的isNext和NotNext类进行平衡。这有助于理解句子之间的关系。

2.2 NSP 工作:下游任务训练

        在大型未标记数据集上完成预训练后,将针对标记数据为下游任务训练模型。遵循两种方法:

  1. 微调方法: 在这种方法中,我们在模型的末尾添加一个分类层,该分类层输出单词的softmax概率。模型在下游任务的标记数据集上进行端到端训练。模型的所有参数都将更新。
  2. 基于功能的方法: 在这种方法中,BERT模型的权重在预训练后被冻结。为标记数据集创建BERT嵌入,然后在这些嵌入上训练新模型。在原始论文中,应用于来自BERT模型连接的最后2层的嵌入的4层BILSTM表现最佳。

三、双向和自回归变压器 (BART)

        BART是Facebook开发的模型。它是谷歌的BERT和OpenAI的GPT的组合。BERT的双向和自动编码器特性有助于需要有关整个输入序列信息的下游任务。但它不适用于序列生成任务。GPT 模型擅长文本生成,但不擅长需要了解整个序列的下游任务。这是由于其单向和自回归的性质。BART结合了两种模型的方法,因此是两全其美的。

3.1 巴特架构

BART 模型由双向编码器和自回归解码器组成。对于编码器,噪声变换已应用于序列。序列被掩码符号损坏。然后,此损坏的序列作为输入发送到双向编码器。在此之后,使用自回归解码器计算原始文档的可能性。不强制要求以相同的方式对齐输入和输出。但是在微调的情况下,将未损坏的文档输入到编码器和解码器,并使用解码器最终隐藏状态的表示。

3.2 噪声变换

        在 BART 模型的预训练期间,对序列应用了多个噪声变换。对模型进行了优化,以从损坏的序列中重建原始序列。

捷径结果

四、文本到文本传输变压器 (T5)

        T5模型的架构与Vaswani等人提出的原始变压器几乎相同。编码器和解码器都由 12 个模块组成。该模型有 220.5 亿个参数。仅对架构进行了一些更改,例如它们消除了层范数偏差并将层规范化置于残差路径之外。T<> 中使用了不同的位置嵌入方案。为了训练模型,使用了模型和数据并行性的组合。使用相同的无监督预训练和监督微调技术。

4.1 文本转文本框架

        T5 以文本到文本格式的形式对每个问题进行建模。输入和输出将始终采用文本格式。他们还以文本格式对回归问题进行了建模。T5 在 750 GB C4 数据集上训练。此数据集是在清理 20 TB 通用爬网数据集后检索的。删除了带有 JavaScript 代码、大括号、HTML 标签、占位符文本和冒犯性语言的句子。

4.2 屏蔽方法

        在无监督的预训练期间,设计了一个目标,该目标随机采样,然后丢弃输入序列中 15% 的标记。丢弃令牌的所有连续跨度都将替换为单个哨兵令牌。在BERT的情况下,训练模型以预测相应掩码的一个单词。但T5是混合的。它被训练为输出一个掩码的一个单词或多个单词。这使得模型在学习语言结构时可以灵活。

4.3 注意面具图案

        在上图中,显示了模型中使用的各种注意力掩模模式。光细胞表示不允许自我注意机制关注相应的细胞。在左侧,整个输入在每个输出步骤中可见。在中间部分(因果关系),输出步骤无法查看来自未来的任何输入。在右侧部分(带前缀的因果关系),自我注意机制在输入序列的一部分上使用完全可见的掩码。

五、结语

        总之,BERT、BART和T5等语言模型具有不同的架构和训练方式。与单向预训练相比,MLM技术在自然语言处理领域引发了革命性的变化,并展示了大规模语言模型的力量。这些模型在生成连贯且上下文相关的文本方面展示了非凡的能力,推动了语言生成任务的界限。在下一篇博文中,我将详细介绍从 GPT-3.5 到 ChatGPT 和 RLHF 概念的过渡。

参考和引用

  1. BERT:用于语言理解的深度双向变压器的预训练
  2. BART:用于自然语言生成、翻译和理解的去噪序列到序列预训练
  3. 使用统一的文本到文本转换器探索迁移学习的极限
  4. 关注就是你所需要的一切
  5. 用于序列间建模的 RNN 和转换器

机器学习

深度学习

大型语言模型

自然语言处

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

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

相关文章

thinkphp实现无限分类(使用递归)

thinkphp实现无限分类&#xff08;使用递归&#xff09; 本文实例为大家分享了thinkphp实现无限分类的详细代码&#xff0c;希望对大家学习无限分类有所启发。 数据库&#xff1a;test 数据表&#xff1a;&#xff08;tp_category&#xff09;&#xff1a; Common/conf/conf…

Python如何读写配置文件?

目录 什么是配置文件 常见的配置文件格式 为什么要使用配置文件 Python如何读写配置文件&#xff1f; 什么是配置文件 配置文件是用于存储程序或系统的设置和配置选项的文本文件。它通常以特定的格式编写&#xff0c;以便程序或系统可以读取和解析其中的配置信息。配置文件…

汽车资讯新闻网站nodejs+vue

本汽车资讯网站有管理员和用户。管理员功能有个人中心&#xff0c;用户管理&#xff0c;汽车品牌管理&#xff0c;价格分类管理&#xff0c;经销商管理&#xff0c;汽车信息管理&#xff0c;留言板管理&#xff0c;系统管理等。用户可以查看各种汽车信息&#xff0c;还可以进行…

Spring 中一个少见的引介增强 IntroductionAdvisor

我们平时做 AOP 开发的时候&#xff0c;基本上都是增强某一个方法&#xff0c;在某一个方法执行之前或者执行之后做一些事情&#xff0c;这种叫做 PointcutAdvisor&#xff0c;实际上&#xff0c;Spring 中的 Advisor 大致可以分为两种类型&#xff0c;除了 PointcutAdvisor 之…

极简并优雅的在IDEA使用Git远程拉取项目和本地推送项目

连接Git 搜索Git然后将你下载好的Git的文件目录位置给他弄进去就行 本地分支管理 分支管理通常是在IDEA的右下角找到 连接远程仓库 方法1本地项目推送到远程仓库 如果当前项目还没交给Git管理的则按照以下图所示先将项目交给Git管理 然后此时文件都会是红色的&#xff0c;这表…

3.矩阵常用操作

文章目录 线性代数的常用操作1.向量的内积2.向量的外积3.正交向量4.正交向量组5.向量空间的基与维数6.正交矩阵7.反对称矩阵8.齐次坐标与齐次变换矩阵9.相似矩阵10.相似对角化11.矩阵的特征分解12.奇异值分解SVD12.1 SVD求齐次矩阵方程的最小二乘解 13.满秩分解14.Pseudo-Inver…

Python入门【 控制语句和逻辑思维、选择结构(条件判断结构)双分支选择结构、多分支选择结构、循环结构、while循环 】(七)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

LeetCode·每日一题·2208. 将数组和减半的最少操作次数·优先队列

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/minimum-operations-to-halve-array-sum/solutions/2357852/you-xian-dui-lie-zhu-shi-chao-ji-xiang-x-805n/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系作…

如何打开工业相机(海康)与halcon方式打开

使用海康相机&#xff0c;下载对应的客户端软件 地址&#xff1a;https://www.hikrobotics.com/cn/machinevision/service/download 界面如下&#xff1a; 使用 halcon 读取相机&#xff0c;需要将对应的动态链接库dll文件放入halcon的安装目录中&#xff0c;如下&#xff0c;…

Linux中的chmod命令使用方法总结

chmod命令用于更改文件或目录的权限chmod命令的基本语法如下&#xff1a;范例研究&#xff1a;rwx权限对于文件和目录的作用 chmod命令用于更改文件或目录的权限 它允许用户控制谁可以读取、写入和执行文件。 权限由三个组成部分组成&#xff0c;分别是所有者权限、所属组权限…

企业邮箱选购:选择最适合您的方案

作为一名公司员工&#xff0c;你需要一个专业且令人难忘的公司电子邮件地址。毕竟无论何时你和你的联系人交流&#xff0c;你都代表着你公司的品牌。但是你应该选择什么样的公司电子邮件地址呢? 首先&#xff0c;考虑使用你公司的域名作为你的公司电子邮件地址。这是最专业的方…

【C++入门到精通】C++入门—缺省参数、函数重载

目录 前言 一、缺省参数 1.缺省参数的概念 2.缺省参数分类 ⭕全缺省参数 ⭕半缺省参数 二、函数重载 1.函数重载的概念 2.函数重载类型 &#x1f534;参数类型不同 &#x1f534;参数个数不同 &#x1f534;参数类型顺序不同 C支持函数重载的原理--名字修饰(name Mangli…

基于Android Studio编辑器上开发的一款看点新闻App

完整资料进入【数字空间】查看——baidu搜索"writebug" 1 系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态&#xff0c;增长知识&#xff0c;增广见闻&#xff0c;顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 …

【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块4

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

FPGA学习——实现任意倍分频器(奇数/偶数倍分频器均可实现)

文章目录 一、分频器二、Verilog实现任意倍分频器2.1、Verilog源码2.2、仿真文件 三、仿真波形图 一、分频器 在FPGA&#xff08;可编程逻辑门阵列&#xff09;中&#xff0c;分频器是一种用于将时钟信号的频率降低的电路或模块。它可以根据输入的时钟信号生成一个较低频率的输…

Vivado 差分输出引脚配置

diff_out输出如下所示 在引脚配置时&#xff0c;如下图所示&#xff0c;只能设置一个Pos Diff的引脚&#xff0c;此时设置完Pos Diff的引脚后&#xff0c;Neg Diff默认被绑定在相邻的引脚 我们可以打开上图中Package Pins页面&#xff0c;发现这一对引脚设置完毕

基于Java+Swing+mysql人力资源管理系统_员工信息管理系统

基于JavaSwingmysql人力资源管理系统/员工信息管理系统 一、系统介绍二、效果展示1、登陆2、查看个人信息--员工3、更新个人信息--员工4、管理员主页&#xff08;增删改查&#xff09; 三、其他系统实现四、获取源码 一、系统介绍 系统主要分为两个角色&#xff1a; 员工&…

【LeetCode-中等】剑指 Offer 67. 把字符串转换成整数(详解)

题目 写一个函数 StrToInt&#xff0c;实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时&#…

【ArcGIS Pro微课1000例】0029:绘制全球海洋波纹荡漾效果图

本文讲解ArcGIS Pro3.0中,基于全球航洋面状矢量数据,绘制震撼全球海洋波纹荡漾效果图。 文章目录 一、效果预览二、效果制作三、参数详解一、效果预览 绘制好的海水波纹荡漾效果图如下: 下面我们来学习绘制过程。 二、效果制作 波纹荡漾效果需要在全局或者局部场景中制作…

7月最新大模型排名!3700道保密试题、20个大模型参与评测|SuperCLUE

7月最新大模型排名&#xff01;3700道保密试题、20个大模型参与评测&#xff5c;SuperCLUE CLUE中文语言理解测评基准 中文通用大模型综合性评测基准SuperCLUE 2023年7月榜单 7月25日&#xff0c;SuperCLUE发布大模型7月榜单。 SuperCLUE: A Benchmark for Foundation Mo…