NarrowBERT: Accelerating Masked Language Model Pretraining and Inference

本文是LLM系列文章,针对《NarrowBERT: Accelerating Masked Language Model Pretraining and Inference》的翻译。

NarrowBERT:加速掩蔽语言模型的预训练和推理

  • 摘要
  • 1 引言
  • 2 NarrowBERT
  • 3 实验
  • 4 讨论与结论
  • 局限性

摘要

大规模语言模型预训练是自然语言处理中一种非常成功的自监督学习形式,但随着时间的推移,模型和预训练语料库变得越来越大,执行成本越来越高。我们提出了NarrowBERT,这是一种改进的transformer编码器,它将掩蔽语言模型预训练的吞吐量提高了2倍以上。NarrowBERT稀疏transformer模型,使得自注意查询和前馈层在预训练期间仅对每个句子的掩蔽标记进行操作,而不是像通常的transformer编码器那样对所有标记进行操作。我们还表明,在MNLI等句子编码任务上,NarrowBERT在推理时的吞吐量增加了3.5倍,性能下降最小(或没有)。最后,我们检查了NarrowBERT在IMDB和Amazon评论分类和CoNLL NER任务上的性能,并表明它也与标准BERT性能相当。

1 引言

2 NarrowBERT

3 实验

4 讨论与结论

我们已经探索了在掩蔽语言模型损失计算中利用稀疏性的两种直接方法:重新排列transformer编码器的层,以允许前馈组件避免在非掩蔽位置上进行计算,以及在注意力机制中稀疏查询,以仅将掩蔽位置上下文化。NarrowBERT变体可以将训练速度提高约2倍,将推理速度提高约3倍,同时在GLUE、IMDB、Amazon和CoNLL NER任务上保持非常相似的性能。基于第3节中速度和性能之间的有利权衡,我们建议从业者在缩小范围之前考虑使用具有2或3层的SparseQueries NarrowBERT模型。

局限性

由于我们的预算限制,我们只对基本尺寸的transformer模型进行了预训练和下游实验。我们也只应用了掩蔽语言建模目标,但还有其他有效的预训练目标。尽管如此,由于我们在架构中引入了最小的更改,我们希望后续工作将从我们的缩小操作中受益,并进行更广泛的预训练和下游实验。虽然预训练的模型可以应用于更多的下游任务,但我们在这项工作中设计了一个合理的任务集,包括GLUE句子分类和CoNLL-NER顺序分类任务。

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

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

相关文章

栈和队列的C++模拟实现

一、栈stack 1.介绍(库里面的文档介绍) 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 2. stack是作为容器适配器被实现的,容器适配器即是对…

PositiveSSL的泛域名SSL证书

PositiveSSL是Sectigo旗下的一个子品牌,致力于为全球用户提供优质、高效的SSL证书服务。PositiveSSL以Sectigo强大的品牌影响力和全球网络为基础,秉承“安全、可靠、高效”的服务理念,为各类网站提供全面的SSL证书解决方案。今天就随SSL盾小编…

统信uos 1030 企业版 安装.net core环境

安装.net core步骤 添加密钥和包存储库 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-mic…

【LeetCode】71. 简化路径

1 问题 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 / 开头),请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身&#xf…

HarmonyOS版本号,API level(updateing)

版本列表: OS名称API Ver工具更新特性更新Harmony4.0Beta102023年9月Harmony3.192023年5月OpenHarmony SDK 3.2.12.2 Toolchains 3.2.3.6 DevEco Studio 3.1.0.500Harmony3.1Beta292023年4月OpenHarmony SDK 3.2.5.8 Toolchains 3.2.3.2 DevEco Studio 3.1.0.400Ar…

收藏,安装报错信息汇总,MacOS上安装Adobe等软件/插件报错问题解决合集

打开允许“允许任何来源” 如何打开允许任何来源?在 Finder 菜单栏选择 【前往】 – 【实用工具 】,找到【终端】程序,双击打开,在终端窗口中输入:sudo spctl --master-disable 输入代码后,按【return 回车…

JVM第十七讲:调试排错 - Java 问题排查之Linux命令

调试排错 - Java 问题排查之Linux命令 本文是JVM第十七讲, Java 问题调试排错。Java 在线问题排查主要分两篇:本文是第一篇,通过linux常用命令排查。 文章目录 调试排错 - Java 问题排查之Linux命令在项目中,日志操作的常用命令1、…

Mac 远程桌面软件

对于使用 Mac 计算机和笔记本电脑的企业来说,适用于 Mac 的远程桌面软件变得越来越重要,随着远程工作变得越来越普遍,IT 管理员和组织需要一种安全的方式来访问和修复问题、处理紧急任务以及监控远程工作站的状态,为了促进远距离协…

【Edabit 算法 ★☆☆☆☆☆】Convert Hours into Seconds

【Edabit 算法 ★☆☆☆☆☆】Convert Hours into Seconds language_fundamentals math numbers Instructions Write a function that converts hours into seconds. Examples howManySeconds(2) // 7200 howManySeconds(10) // 36000 howManySeconds(24) // 86400Notes 60…

Java:ApacheHttpClient连接寿命(timeToLive)未配置问题分析

一、问题描述 若 Apache HttpClient 未设置 timeToLive,通过服务域名访问服务的实例并且服务域名解析出的 IP 发生变化时,在短时间内会有部分请求出现连接异常错误。 二、问题分析 Apache HttpClient 通过服务域名从连接池获取连接,当连接…

面试官:说说 HTTP 常见的请求头有哪些?

一、是什么 HTTP头字段(HTTP header fields),是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分 它们定义了一个超文本传输协议事务中的操作参数 HTTP头部字段可以自己根据需要定义,因此可能在 Web 服务器…

项目知识点总结-过滤器-MD5注册-邮箱登录

(1)过滤器 使用过滤器验证用户是否登录 /** * Title: NoLoginFilter.java * Package com.qfedu.web.filter * Description: TODO(用一句话描述该文件做什么) * author Feri * date 2018年5月28日 * version V1.0 */ package com.gdsdx…

Linux---(三)基本指令大全

前提引入:历史上先出现的键盘还是鼠标? 答案:键盘 ✨所以刚开始的时候绝对没有图形化界面,因此操作系统刚开始兴起的时候绝对没有图形化界面,因为当时没有鼠标。 ✨因为没有图形化界面,只有键盘&#xff0c…

实时消息传送:WebSocket实现系统后台消息实时通知

实时消息传送:WebSocket实现系统后台消息实时通知 WebSocket简介基本实现步骤后台服务器后端接口SimpMessagingTemplate MessageDto前端客户端 示例应用 在现代Web应用中,提供实时通知对于改善用户体验至关重要。WebSocket技术允许建立双向通信通道&…

nginx常见报错及解决acme.sh给Nginx配置SSL证书

问题排查: nginx -t //检查配置是否正确只要返回ok就说明配置没问题。 Nginx报错Failed to restart nginx.service: Unit not found 解决方法: 1、在根目录下执行 vim /etc/init.d/nginx2、插入以下代码 #!/bin/sh # nginx - this script starts …

网络基础知识点

osi七层模型: 应用层:提供用户接口,与用户进行交互 表示层:进行数据格式的转换 会话层:建立、维护和验证会话 传输层:保证目标从源到目的地的传输(传输协议和端口号) 网络层&#x…

打造自己的前端组件库(奶妈版,超详细)

打造自己的前端组件库 demo是开源的,自己上npm 或者 github 上都能搜到 新建vue项目(sass js vue2) vue create yt-ui 修改文件目录(如下) 修改: 1.src 更名 examples; 2. src/components移动到项目最外层;3.vue.config.js更改入口文件 /…

FPGA ZYNQ VIVADO创建IP核点亮LED灯 方式一

这里写自定义目录标题 PL端 纯Verilog语言创建IP核实现点亮LED灯工使用设备 ZYNQ 7010,选择设备型号XC7Z010CLG400-1根据以下流程完成本次创建时钟频率50MHZ,周期T20ns,因此计数50_000_000次,1sLED灯闪烁一次 PL端 纯Verilog语言创…

Hadoop3教程(二十五):Yarn的多队列调度器使用案例

文章目录 (136)生产环境多队列创建&好处(137)容量调度器多队列提交案例如何创建多个队列如何向指定队列提交任务 (138)容量调度器任务优先级(139)公平调度器案例参考文献 &#…

自动化运维ansible

一、Ansible概述: 是一个配置管理系统(configuration management system),当下最流行的批量自动化运维工具之一。 Ansible是一个开源的自动化工具,用于配置管理、应用程序部署和编排等 IT 任务的执行。它专注于简单性和可扩展性,并…