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

一、介绍

        在这篇博文中,我将讨论像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 和转换器

机器学习

深度学习

大型语言模型

自然语言处

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AlSD 系列智能安全配电装置是安科瑞电气有限公司专门为低压配电侧开发的一款智能安全用电产 品-安科瑞黄安南

一、应用背景 电力作为一种清洁能源&#xff0c;给人们带来了舒适、便捷的电气化生活。与此同时&#xff0c;由于使用不当&#xff0c;维护 不及时等原因引发的漏电触电和电气火灾事故&#xff0c;也给人们的生命和财产带来了巨大的威胁和损失。 为了防止低压配电系统发生漏…

Yarn与Zookeeper学习

YARN学习 1.YARN是什么&#xff1f; yarn 分配运行资源 mapReduce的运行平台 2.YARN运行过程&#xff1a; 客户端与ResourceManager交互&#xff0c;生成临时配置文件(Application)ResourceManager根据Application信息生成Task然后生成MapReduceApplicationMaster(简称AM)AM…

STN:Spatial Transformer Networks

1.Abstract 卷积神经网络缺乏对输入数据保持空间不变的能力&#xff0c;导致模型性能下降。作者提出了一种新的可学习模块&#xff0c;STN。这个可微模块可以插入现有的卷积结构中&#xff0c;使神经网络能够根据特征图像本身&#xff0c;主动地对特征图像进行空间变换&#x…

前端图标解决方案

1. 前言 随着 Web 技术的发展与日益丰富的界面需求&#xff0c;图标逐渐成为前端开发中不可或缺的一部分&#xff0c;为此也诞生了各种各样的解决方案。文章总结及分析了目前常见的一些图标解决方案。 2. CSS 背景图片 2.1 background-image 图标本质上也是图片&#xff0c…

人才公寓水电表改造解决方案

随着社会经济的不断发展&#xff0c;人才公寓作为吸引和留住人才的重要配套设施&#xff0c;其水电表改造问题越来越受到人们的关注。本文将从以下几个方面探讨人才公寓水电表改造解决方案。 一、现状分析 目前&#xff0c;人才公寓的水电表普遍存在以下几个问题&#xff1a; …

科技资讯|苹果计划本月推出Vision Pro头显开发套件,电池有重大更新

根据消息源 aaronp613 分享的信息&#xff0c;苹果计划本月底面向开发者&#xff0c;发布 Vision Pro 头显开发套件。消息源还指出苹果更新了 Vision Pro 头显电池组的代号&#xff0c;共有 A2781&#xff0c;A2988 和 A2697 三种不同的型号&#xff0c;目前尚不清楚三者之间的…

【iOS】多界面传值

文章目录 前言一、属性传值二、协议传值三、block传值四、KVO传值五、KVO的自动触发与手动触发六、通知传值总结 前言 在写网易云音乐以及3GShare包括后面的学生管理系统时&#xff0c;用到许多界面传值方法&#xff0c;特撰写博客记录目前学过的几种多界面传值方法 一、属性…

了解Unity编辑器之组件篇Video(二)

Video Player组件&#xff1a;用于在游戏中播放视频的组件。它提供了一系列属性来控制视频的播放、显示和交互。 1.Source&#xff08;视频源&#xff09;&#xff1a;用于指定视频的来源。可以选择两种不同的视频源类型&#xff1a; &#xff08;1&#xff09;Vieo Clip&#…

STM32 点灯实现 7.18

嵌入式&#xff1a; 以应用为中心&#xff0c;以专用计算机为基础&#xff0c;软硬件可裁剪ARM A系列芯片&#xff1a;高端芯片&#xff0c;实现人机互动 R系列&#xff1a;实现时效性 M系列&#xff1a;低端芯片&#xff0c;控制硬件设备&#xff0c;灯&#xff0c;风扇....…

设备监测诊断与维护:优化工业生产效率的关键措施

在现代工业生产中&#xff0c;设备的稳定运行对于保障生产效率至关重要。设备监测、诊断和维护作为关键措施&#xff0c;能够帮助企业及时发现设备问题、诊断故障原因&#xff0c;并采取有效维护措施&#xff0c;从而降低生产中断风险&#xff0c;提高生产效率。本文将深入探讨…

Verilog 学习之路二——基础学习总结(摘取自菜鸟教程)

目录 1 Verilog 设计方法2. 基础语法2.1 格式2.2 数值表示数值种类表示方法 2.3 数据类型2.4 表达式 3. 编译指令4. 连续赋值5. 过程结构6 过程赋值7 时序控制8 语句块9 循环10 函数例子-数码管译码 1 Verilog 设计方法 Verilog 的设计多采用自上而下的设计方法&#xff08;to…

平台化的测试工具推荐|一站式测试平台RunnerGo

互联网行业的发展到今天越来越多的公司更加注重工作效率和团队协作&#xff0c;越来越多的产品也趋于平台化&#xff0c;平台化也更有利于提高团队效率&#xff0c;代码管理、持续构建、持续部署这些工具的发展都是非常超前的&#xff0c;它们对于团队协作的支持和工作效率的提…

vue中如何通过webpack-bundle-analyzer打包分析工具进行配置优化

vue中随着项目的不断功能迭代和开发&#xff0c;项目文件越来越多&#xff0c;项目的打包文件也越来越大。如何对打包文件进行分析优化&#xff0c;减小打包文件大小呢&#xff1f;可以通过webpack-bundle-analyzer 这个打包分析工具进行解决。 1、webpack-bundle-analyzer的安…

接口漏洞-WebService-wsdl+SOAP-Swagger+HTTP-WebPack

什么是接口&#xff1f; 接口就是位于复杂系统之上并且能简化你的任务&#xff0c;它就像一个中间人让你不需要了解详细的所有细节。像谷歌搜索系统&#xff0c;它提供了搜索接口&#xff0c;简化了你的搜索任务。再像用户登录页面&#xff0c;我们只需要调用我们的登录接口&am…

【go语言学习笔记】02 Go语言高效并发

文章目录 一、并发基础1. 协程&#xff08;Goroutine&#xff09;2. Channel2.1 声明2.2 无缓冲 channel2.3 有缓冲 channel2.4 关闭 channel2.5 单向 channel2.6 selectchannel 示例 二、同步原语1. 资源竞争2. 同步原语2.1 sync.Mutex2.2 sync.RWMutex2.3 sync.WaitGroup2.4 …

TypeError: can‘t convert np.ndarray of type numpy.object_.

在处理数据集的时候出现报错&#xff1a; TypeError: can’t convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint8, and bool. train_labels torch.tensor(train…

ES6基础知识七:你是怎么理解ES6中 Generator的?使用场景?

一、介绍 Generator 函数是 ES6 提供的一种异步编程解决方案&#xff0c;语法行为与传统函数完全不同 回顾下上文提到的解决异步的手段&#xff1a; 回调函数promise 那么&#xff0c;上文我们提到promsie已经是一种比较流行的解决异步方案&#xff0c;那么为什么还出现Gen…

Docker安装Nexus并配置Maven私服

1 准备工作 1 服务器已安装docker, docker各命令无报错 2 通过dockerhub查看nexus的版本信息&#xff0c;此次使用的镜像为&#xff1a;sonatype/nexus3&#xff0c;可以看到latest版本更前的的是3.58.0&#xff0c;我们这次就使用这个版本的nexus3. 2 开始安装 # 下载镜像 do…

Java中的队列

队列的理解 队列&#xff08;Queue&#xff09;是一种特殊的线性表&#xff0c;它只允许在表的前端进行删除操作&#xff0c;而在表的后端进行插入操作。 LinkedList类实现了Queue接口&#xff0c;因此我们可以把LinkedList当成Queue来用。 常用方法 实例 import java.util…

Go基础快速入门

目录 一、变量相关基础语法 1、变量的定义以及赋值 2、变量的交换 3、匿名变量 4、变量的作用域 二、常量 三、基本数据类型 1、常见数据类型 2、数据类型的转换 四、运算符 五、函数 函数高级用法 函数也是一个类型 函数也是一个变量&#xff0c;也可以赋值 高…