问题描述

预训练自然语言表征时,增加模型的参数量通常可以是模型在下有任务中性能提升。但是这种做法对硬件设备的要求较高(当下的各种SOTA模型动辄数亿甚至数十亿个参数,倘若要扩大模型规模,这个内存问题是无法回避的),也会显著地降低训练效率(由于通信开销与模型中参数的数量成正比,在分布式训练中训练速度将成为一大瓶颈。简单地增加隐含层单元数,只会适得其反,从而降低效率)。并且随着模型参数的增加,模型性能会先提升,后又会随着参数的增加性能反而变差。

核心方法

为了降低模型训练的系统开销,提升模型的训练效率,且几乎不降低模型效果,本文做如下一些优化:

  • 对嵌入参数进行因式分解(factorized embedding parameterization)。将一个大的词汇嵌入矩阵分解为两个小的矩阵, 将隐藏层的大小与词汇嵌入的大小分离开来(原本认为词汇嵌入学习的是一种上下文无关,无依赖的词嵌入表示;而隐状态学习的是上下文相关的,有上下文依赖的表示;故而应该将其分类开来,同时降低了参数)。此过程其实就是降低了词嵌入向量的长度,使得每个词嵌入向量长度远小于隐状态的向量长度(原bert模型中二者长度相同)。而且在后续增加隐状态的参数时,并不会显著增加词汇嵌入的参数量

  • 跨层参数共享。共享模型不同layer之间的参数,避免模型参数量随着网络深度的增加而增加

    • All-shared:在该方法中,与其他编码器的所有子层共享第一个编码器的所有子层的参数
    • Shared feedforward network:只与其他编码器层的前馈网络共享第一个编码器层的前馈网络的参数
    • Shared attention:只与其他编码层的多头注意力共享第一个编码器层的多头注意力参数。
  • 句子顺序预测(SOP:sentence-order prediction)。在bert中有提出NSP,即预测一个句子是否是另一个句子的下一句。其正样本是两个连续的句子,欺负样本中后一句来自于其他文档,这可能会导致模型根据两句话的主题就能判断后一句子是否是前一句子的next sentence,而并未真正学到语序信息。本文所提SOP的正样本与bert一样,但负样本是将正样本进行对换顺序,从而预测两个句子顺序。

实验结果

对于ALBERT,在不共享参数时,词嵌入的尺寸越大,模型效果越好,但提升幅度并不是很大;在共享参数时,随着嵌入尺寸增大,模型效果先变好,后变差。

不同跨层参数共享的效果,同样使用 ALBERT-base 作为示例模型,all-shared策略(ALBERT-style)、not-shared 策略(BERT-style)及其介于二者之间的中间策略(仅注意力参数共享,FNN不共享;仅FNN参数共享,注意力参数不共享)。总体而言,all-shared型策略使得模型在一定程度上降低了性能,但是下降幅度较小。

预测下一句任务中,本文总共对比三种策略:没有句子间损失(比如XLNet和RoBERTa)、NSP(比如BERT)、SOP(ALBERT)。从表中可以看出,训练NSP任务,对SOP任务的益处并不明显,正确率只打到52%;而SOP任务则有利于NSP,能使其正确率达到78.9%。更重要的是,SOP对下游任务性能的提升也较为明显。

ALBERT模型默认使用All-shared方式。实验表明,使用参数共享后,每一层的输入嵌入和输入嵌入的L2距离和余弦相似度都比bert平滑得多,证明参数共享能够使模型的参数更加稳定。

参考链接

https://blog.csdn.net/ljp1919/article/details/101680220

https://blog.csdn.net/yjw123456/article/details/120275965

ALBERT论文简读的更多相关文章

  1. 【论文简读】 Deep web data extraction based on visual

    <Deep web data extraction based on visual information processing>作者 J Liu 上海海事大学 2017 AIHC会议登载 ...

  2. 简读《ASP.NET Core技术内幕与项目实战》之3:配置

    特别说明:1.本系列内容主要基于杨中科老师的书籍<ASP.NET Core技术内幕与项目实战>及配套的B站视频视频教程,同时会增加极少部分的小知识点2.本系列教程主要目的是提炼知识点,追求 ...

  3. 论文泛读:Click Fraud Detection: Adversarial Pattern Recognition over 5 Years at Microsoft

    这篇论文非常适合工业界的人(比如我)去读,有很多的借鉴意义. 强烈建议自己去读. title:五年微软经验的点击欺诈检测 摘要:1.微软很厉害.2.本文描述了大规模数据挖掘所面临的独特挑战.解决这一问 ...

  4. ICCV 2019|70 篇论文抢先读,含目标检测/自动驾驶/GCN/等(提供PDF下载)

    虽然ICCV2019已经公布了接收ID名单,但是具体的论文都还没放出来,为了让大家更快得看论文,我们汇总了目前已经公布的大部分ICCV2019 论文,并组织了ICCV2019论文汇总开源项目(http ...

  5. React v16-alpha 从virtual dom 到 dom 源码简读

    一.物料准备 1.克隆react源码, github 地址:https://github.com/facebook/react.git 2.安装gulp 3.在react源码根目录下: $npm in ...

  6. 论文速读(Chuhui Xue——【arxiv2019】MSR_Multi-Scale Shape Regression for Scene Text Detection)

    Chuhui Xue--[arxiv2019]MSR_Multi-Scale Shape Regression for Scene Text Detection 论文 Chuhui Xue--[arx ...

  7. 论文速读(Jiaming Liu——【2019】Detecting Text in the Wild with Deep Character Embedding Network )

    Jiaming Liu--[2019]Detecting Text in the Wild with Deep Character Embedding Network 论文 Jiaming Liu-- ...

  8. 论文速读(Yongchao Xu——【2018】TextField_Learning A Deep Direction Field for Irregular Scene Text)

    Yongchao Xu--[2018]TextField_Learning A Deep Direction Field for Irregular Scene Text Detection 论文 Y ...

  9. 【论文速读】Cong_Yao_CVPR2017_EAST_An_Efficient_and_Accurate_Scene_Text_Detector

    Cong_Yao_CVPR2017_EAST_An_Efficient_and_Accurate_Scene_Text_Detector 作者和代码 非官方版tensorflow实现 非官方版kera ...

  10. 论文泛读 A Novel Ensemble Learning-based Approach for Click Fraud Detection in Mobile Advertising [1/10]

    title:新的基于集成学习的移动广告作弊检测 导语:基于buzzcity数据集,我们提出了对点击欺诈检测是基于一组来自现有属性的新功能的一种新方法.根据所得到的精度.召回率和AUC对所提出的模型进行 ...

随机推荐

  1. SpringBoot+Mybatis-plus整合easyExcel批量导入Excel到数据库+导出Excel

    一.前言 今天小编带大家一起整合一下easyExcel,之所以用这个,是因为easyExcel性能比较好,不会报OOM! 市面上常见的导入导出Excel分为三种: hutool easyExcel p ...

  2. SOFAJRaft模块启动过程

    本篇文章旨在分析SOFAJRaft中jraft-example模块的启动过程,由于SOFAJRaft在持续开源的过程中,所以无法保证示例代码永远是最新的,要是源代码有较大的变动,亦或出现纰漏.错误的地 ...

  3. Echarts自适应屏幕,无需刷新网页,可根据屏幕大小完美展现,内有详细代码注释,我可真是个小机灵~~O(∩_∩)O哈哈~

    Echarts自适应屏幕,无需刷新网页,可根据屏幕大小完美展现 效果如图 随意拖拉,无惧检验 ~ ~ ~ ~ 下面上代码 里边有详细解释 <template> <div class= ...

  4. Bootstrap Blazor Viewer 图片浏览器 组件更新, 支持流转图片(ImageFromStream), 用于本地项目例如 MAUI Blazor,Blazor hybrid

    示例: https://blazor.app1.es/viewer 使用方法: 1.nuget包 BootstrapBlazor.Viewer 2._Imports.razor 文件 或者页面添加 添 ...

  5. Thread的常用方法_sleep-实现Runable接口

    Thread的常用方法_sleep public static void sleep(long millis) :使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行 实现Runable接口 采用 j ...

  6. C-03\浮点数转换与编码和补码

    工程生成文件格式了解(常用) 工具 文件 作用 vc++6.0 .dsw 最高级别的配置文件,记录了整个工作空间的配置信息,是一个纯文本的文件,创建新项目时自动生成 vc++6.0 .dsp 配置文件 ...

  7. Vite 配置别名 vue3 项目

    官方文档还是有点难懂,然后点链接找到了 https://github.com/rollup/plugins/tree/master/packages/alias#entries // rollup.c ...

  8. CentOS7安装了图形界面为默认如何修改默认登录到控制台

    在安装的时候,选择了图形界面安装,一段时间后,想还是直接登录到控制台,需要的时候在手动登录到图形界面, 在CentOS7中的设置方法不同与之前的版本 在之前的版本中是修改配置文件 sudo nano ...

  9. redis-07主从复制

    转 https://www.jianshu.com/p/06ab9daf921d https://www.jianshu.com/p/06ab9daf921d 1 基本说明 我们所说的主从复制,主机数 ...

  10. Lodop打印小票

    使用Lodop打印小票 1.html页面 <head> <meta http-equiv="Content-Type" content="text/ht ...