ALBERT-更小更少但并不快

F-ALBERT模型 通过上述两阶段蒸馏系统,F-ALBERT模型能够有效地将原始ALBERT模型压缩成更轻量级的模型,同时保持或提升模型性能。 阅读详情

BERT模型的压缩大致可以分为:1. 参数剪枝;2. 知识蒸馏;3. 参数共享;4. 低秩分解。

其中,对于剪枝,比较简单,但是容易误操作降低精读;

对于知识蒸馏,之前我写个一系列的文章,重点可以看一下这里:

对于参数共享和低秩分解,就和今天分享的ALBERT息息相关;

它减少了BERT的参数,但是需要注意的一个细节点是,同等规格下,ALBERT速度确实变快,但是并不明显(和大量自媒体文章解读给大家的印象差距很大);

举个形象的例子就是,(这个例子并不严谨,只是帮助理解)参数共享让它训练的时候把多层压缩为一层去训练,但是在预测的时候,我们需要再展开多层去进行预测。

主要掌握以下的几个知识点:

  1. 词向量嵌入参数分解
  2. 跨层参数分享
  3. 取消NSP,使用SOP
  4. 预训练的时候采用更满的数据/n-gram mask方式

1.词向量嵌入分解

词向量嵌入参数分解,简单说就是将词向量矩阵分解为了两个小矩阵,将隐藏层的大小和词汇矩阵的大小分离开。

在Bert中,词汇表embedding大小是 V ∗ H V*H V∗H;

Albert 的参数分解是这样的,将这个矩阵分解为两个小矩阵: V ∗ E V*E V∗E和 E ∗ H E*H E∗H

这样做有什么好处呢?

如果说,我觉得我的模型表达能力不够,我想要通过增大隐层H的大小来提升我们模型能力的表达能力,那么在提升H的时候,不仅仅隐层参数增多,词汇表的embedding矩阵维度也在增多,参数量也在增大。

矩阵分解之后,我们可以只是做到提升隐层大小,而不去改变表词汇表的大小。

2.跨层参数分享

跨层参数分享,这个操作可以防止参数随着网络层数的增大而增加。

跨层参数共享

分为三种形式,只是共享attentions,只是共享FFN,全部共享。

共享的意思就是我这部分结构只使用同样的参数,在训练的时候只需要训练这一部分的参数就可以了。

看表格我们可以发现一个细节,就是只是共享FFN比只是共享attention的参数,模型效果要降低的多。

小声嘀咕一下,这是不是说明FFN比attention在信息表达上要重要啊。或者说attention在学习信息表达的时候。attention层学习共性比较多。FFN学习到的差异性比较多。这只是我自己的猜测哈。

3. SOP

作者认为,NSP不必要。与MLM相比,NSP失效的主要原因是其缺乏任务难度。

NSP样本如下:

  • 从训练语料库中取出两个连续的段落作为正样本
  • 从不同的文档中随机创建一对段落作为负样本

NSP将主题预测和连贯性预测合并为一个单项任务;

但是,与连贯性预测相比,主题预测更容易学习,并且与使用MLM损失学习的内容相比,重叠性更大。

对于ALBERT,作者使用了句子顺序预测(SOP)损失,它避免了主题预测,而是着重于句间建模。

其实就是预测句子顺序,正样本是顺着,负样本是颠倒过来。都是来自同一个文档。

SOP

其他细节

  1. 数据格式:Segments-Pair

这个在RoBERTa中也有谈到,更长的序列长度可以提升性能。

  1. Masked-ngram-LM

Masked-ngram-LM

这就有点类似百度的ERINE和SpanBERT了

  1. 推测速度

ALBERT推理速度

从图中知道,同一规模ALBERT和BERT,比如同为Base:

BERT base: 4.7x;ALBERT base:5.6x;速度确实变快,但是确实加速并不明显;

同等效果的情况下,比如BERT base(Avg=82.3)和ALBERT large(Avg=82.4):

BERT base:4.7x;ALBERT large:1.7x;速度变慢了

总结

总结一下可以学习的思路:

  1. 预训练的时候,数据填充的更满,到512这种,有利于提升模型效果,这点在RoBERTa有谈到
  2. mask n-gram有利于提升效果,这点类似百度的ERINE和SpanBERT了
  3. 词向量矩阵分解能减少参数,但是也会降低性能
  4. 跨层参数分享可以降低参数,也会降低性能,通过实验图知道,attention共享效果还好,FFN共享效果降低有点多
  5. 取消NSP,使用SOP,正负样本来自同一个文档,但是顺序不同。
  6. 推理速度来看,同等规格,ALBERT速度确实变快,但是并不明显,同等效果,速度变慢;https://kexue.fm/archives/7846)
【PTM】ALBERT:自监督学习的轻量级 BERT 今天阅读的是 Google 同学 2019 年的论文《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》。 我们知道模型效果会随着模型深度的增加得到提升,然而模型深度的增加也会使得训练变得更困难,为了解决这个问题,Google 的同学提出了一个轻量级的 BERT:ALBERT,参数比 BERT-large 更少,且效果更好。 1.Introduction 通常来说,模型深度与模型效果成正比,但是模型越深也 阅读详情

相关推荐

Bert基础(九)--Bert变体之ALBERT

在接下来的几篇,我们将了解BERT的不同变体,包括ALBERT、RoBERTa、ELECTRA和SpanBERT。我们将首先了解ALBERT。ALBERT的英文全称为A Lite version of BERT,意思是BERT模型的精简版。ALBERT模型对BERT的架构做了一些改变,以尽量缩短训练时间。本章将详细介绍ALBERT的工作原理及其与BERT的不同之处。

Andy_shenzl的博客 1835

NLP(十八)利用ALBERT提升模型预测速度的一次尝试

NLP(十八)利用ALBERT提升模型预测速度的一次尝试

山阴少年 7043

示波器面板上的隐藏功能:如何利用BW Limit和EXT TRIG提升测量精度

本文深入探讨示波器面板上的隐藏功能BW Limit和EXT TRIG,揭示它们如何提升测量精度。通过带宽限制(BW Limit)有效滤除高频噪声,结合外部触发(EXT TRIG)确保稳定信号捕获,为电子测量提供专业解决方案。特别适用于开关电源、传感器信号等复杂场景的高精度测量需求。

weixin_30300225的博客 518

深入理解深度学习——BERT派生模型:ALBERT(A Lite BERT)

预训练语言模型的一个趋势是使用更大的模型配合更多的数据,以达到“大力出奇迹”的效果。随着模型规模的持续增大,单块GPU已经无法容纳整个预训练语言模型。为了解决这个问题,谷歌提出了ALBERT,该模型与BERT几乎没有区别,但其所占用的显存空间可以减少至BERT的十分之一乃至更少,方便了预训练语言模型的训练与部署。Embedding层低秩分解是为了固定Embedding层的参数规模,使其不随模型的增大而增大。

冯·诺依曼 1万+

Python验证码识别神器ddddocr:5分钟搞定网站登录自动化(附完整代码)

本文详细介绍了如何使用Python开源库ddddocr快速实现验证码识别,结合Selenium完成网站登录自动化。ddddocr作为轻量级OCR工具,支持多种验证码类型,识别速度快且准确率高,特别适合自动化测试和爬虫开发。文章包含完整代码示例,从环境配置到实战应用,帮助开发者5分钟内实现验证码破解。

sprite的博客 799

利用腾讯云轻量服务器快速搭建网站CDN

腾讯云的轻量最近在主机和站长中间可谓是占尽来风头,优秀的线路,低廉的价格使得越来越多的人开始使用腾讯云的轻量级服务器来部署应用。由于腾讯云轻量服务器的海外服务器电信走的是CN2GIA线路带宽30m挺适合做CDN的,我就记录一下如何利用腾讯云香港的轻量服务器搭建一个CDN。 购买服务器 首先选购服务器,最近腾讯云在做活动,力度很大国内备案用户可以选用国内的服务器最低128元/年,未备案的可以选用香港或者新加坡的服务器。 购买链接 服务器系统选Debian、Ubuntu、centos都可以 一键脚

demo_top的博客 2566

低秩Low-Rank

低秩是模型压缩和优化领域的重要研究方向之一。低秩,是一种提高网络效率的操作,从高效训练/微调的角度,可以用Lora进行微调。从推理效率的角度,在lora finetune 大模型前就有低秩滤波器分解优化计算量和运算速度。

xcy8185083的博客 1348

从零构建:用Simulink搭建固定翼无人机六自由度模型的避坑指南

本文详细介绍了使用Simulink从零构建固定翼无人机六自由度动力学模型的完整流程和避坑指南。重点解析了模型架构设计、气动力计算、参数配置、仿真求解器选择等关键环节的常见问题与解决方案,帮助开发者快速建立准确可靠的无人机控制系统仿真模型。

hhh00的博客 1003

低秩分解技术实践:DeepSeek 辅助简化 Transformer 模型结构

秩 $r$ 控制近似精度与压缩率的平衡。多头注意力中的 $Q,K,V$ 投影矩阵满足 $W_Q, W_K, W_V \in \mathbb{R}^{d_{\text{model}} \times d_k}$,通过分解: $$W_Q \approx U_Q V_Q^T, \quad \text{rank}=r$$ 参数量从 $O(d_{\text{model}} \cdot d_k)$ 降至 $O(r \cdot (d_{\text{model}} + d_k))$需注意层归一化等结构不宜分解。

2501_94071211的博客 317

NXP S32k3 MCAL EMIOS PWM配置

NXP s32k 配置 EMIOS PWM

Leon_0125的博客 2704

一文入门车载以太网:从原理到实战,看完就能上手开发

新手选型遵循“适配场景、兼顾成本、优先车规”的原则:普通场景(车载娱乐、普通诊断):100Base-T1 PHY(LAN8742)+ 非TSN交换机(SJA1105)+ STM32H743 ECU + 普通STP线缆;ADAS场景:1000Base-T1 PHY(TJA1101)+ TSN交换机(SJA1110)+ NXP S32G399 ECU + 高抗干扰STP线缆;避免过度选型:如普通娱乐场景无需选择TSN交换机、ASIL-B级芯片,否则会增加成本;

getusushu的博客 320

LoRA技术深度解析:大模型高效微调的数学原理与实战指南!

LoRA技术通过冻结原始权重,仅训练低秩矩阵实现大模型高效微调。其核心是利用低秩分解将权重更新量表示为两个小矩阵的乘积,实现高达256:1的参数压缩。训练过程中,仅优化A、B矩阵,保留预训练知识的同时大幅降低计算成本。LoRA灵活适配Transformer的MHA和FFN层,在encoder和decoder结构中均有效,显著降低了大模型微调门槛,成为大模型产业落地的关键支撑技术。

m0_74942241的博客 1627

11.Labview实现用户界面切换的几种方式---通过VI间相互调用

本文介绍了界面切换的几种方式,分别是重入和引用①重入方式可以通过调用子VI的方式打开被调用的界面,往往应用于弹窗等的设置程序。②引用方式分两种,一种是打开引用,一种是静态引用。区别在于打开引用需要设置被打开VI的目标地址,静态引用仅需在引用时绑定VI的位置即可。③推荐使用静态引用的方式切换界面。④使用引用打开界面时,需通过属性节点和调用节点来设置程序的状态。更多内容欢迎大家补充和留言讨论~本文介绍了GUI界面设计相关的程序,更多相关文章后续持续更新,请关注作者不迷路~本期就到这里,再见~

关注我,更多技术问题欢迎私聊~ 9554

ALBert 详解

文章目录1. Abstract2. Introduction3. ALBert模型组成3.1 参数缩减方法3.2 SOP预训练任务4. 实验设置4.1 Segments-Pair4.2 Masked-ngram5. 实验结果5.1 Bert与ALBert对比5.2 嵌入向量的因式分解5.3 跨层参数共享5.4 句子次序预测(SOP) 在NLP任务中,一个好的预训练模型能够提升模型的效果。当前一个SOTA的模型,它有几百万或者十亿以上的参数,如果要扩大模型规模,就会遇到这些计算机内存上的限制,同时训练速度会受

Decennie的博客 1万+

【python三维深度学习】python三维点云从基础到深度学习

从三维点云基础知识到深度学习,将按照以下目录持续进行更新。更新完成的部分可以在三维点云专栏中查看。含数据与python源码。

叶子的博客 2万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

albert-chinese-ner使用预训练语言模型ALBERT做中文NER

向AI转型的程序员都关注了这个号????????????机器学习AI算法工程 公众号:datayx这次的albert某种程度上可能比bert本身更具有意义,恰逢中文预训练模型出来,还...

datayx的文章 5180

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

【BERT中文改进版】预训练ALBERT模型:参数更少,效果更好,拿下13项NLP任务

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要5分钟跟随小博主,每天进步一丢丢编辑:zenRRan作者:brightmartgithub:https://github.com/b...

zenRRan的博客 958

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ALBERT概述

1.Introduction 通常来说,模型深度与模型效果成正比,但是模型越深也会带来动则数亿甚至数十亿的参数量,这就对计算内存有了一定的要求。而在分布式训练中,通信开销与参数也成正比,所以其对训练速度也产生了显著的影响。 目前已有的解决方案要么是并行化,要么是内存管理,但是都没有解决通信开销,即降低模型本身的参数。 在本文,作者设计一种轻量级的 Bert,并取名为 ALBERT(A Lite BERT),ALBERT 的参数比传统的 BERT 要少得多,有效的解决了模型通信开销的问题。 ALBERT 提出

orangerfun的博客 937

ALBert论文阅读笔记-缩减版的bert,模型参数更少,性能更好

引言 自从Bert被提出来后,后续的研究者大多基于bert进行改造,提升预训练语言模型性能,从而提高下游任务的性能。比如ERINE、BERT_WWM、MASS、MT-DNN、RoBERT等等。从GLUE榜上我们可以看到,似乎现在的语言模型有越来越大的趋势,虽然我们的训练资源也是从GPU单卡到GPU多卡,到现在TPU,但不是每个公司都这么有钱,特别对个人,有可能就是一块卡,怎么样在资源有限的情况下,...

Bigbao的专栏 2001

海量中文语料上预训练ALBERT模型:参数更少,效果更好

向AI转型的程序员都关注了这个号????????????人工智能大数据与深度学习 公众号:datayxALBERT模型是BERT的改进版,与最近其他State of the art的模型...

datayx的文章 1240

60分钟带你了解ALBERT

ALBERT原文:《ALITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》 中文预训练ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍速度快1倍。 Google一出手就是不一样,不再是BERT+的模式,而是做了个大改动。ALBERT模型是BERT的改进版,与最近其他State of the a...

程序猿废柴的博客 1万+

[LLM] 自然语言处理 --- 从BERT, XLNet, RoBERTa, ERNIE2到ALBERT2

谷歌Lab发布了一个新的预训练模型"ALBERT"全面在SQuAD 2.0、GLUE、RACE等任务上超越了BERT、XLNet、RoBERTa再次刷新了排行榜!ALBERT是一种轻量版本的BERT,利用更好的参数来训练模型,但是效果却反而得到了很大提升!ALBERT的核心思想是采用了两种减少模型参数的方法,比BERT占用的内存空间小很多,同时极大提升了训练速度,更重要的是效果上也有很大的提升! ...

摩登都市天空---专栏 4903

6.4 ALBERT全面理解

文章目录1简介2相关工作2.1扩大自然语言的表征学习2.2跨层参数共享2.3句子排序目标3 ALBERT基本原理3.1模型架构选择分解式嵌入参数化跨层参数共享句子顺序预测3.2模型设置4实验结果4.1实验装置4.2评价基准4.2.1内在准备评估4.2.2下游评价4.3 BERT和ALBERT的总体比较4.4因式分解嵌入参数化4.7如果我们训练同样的时间呢?5讨论参考 在预训练自然语言表示时增加模型大小通常会提高下游任务的性能。 ALBERT提出了两种参数减少技术来降低内存消耗并提高BERT的训练速度,还使用

炫云云 2936

中文预训练ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍

(图片由AI科技大本营付费下载自视觉中国)作者 | 徐亮(实在智能算法专家)来源 | AINLP(ID:nlpjob)谷歌ALBERT论文刚刚出炉一周,中文预训练ALB...

AI科技大本营 5162

[LLM] 自然语言处理 --- ALBERT 介绍

一、简介 随着Transfomer结构的普及,一时间大语料、大参数量的预训练模型成为主流。当在实际部署BERT等模型时,往往需要使用蒸馏、压缩或其他优化技术对模型进行处理。 ALBERT模型来自论文 Google 最近公布的论文 《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》从名字就可...

摩登都市天空---专栏 1万+

ALBERT:轻量级BERT语言模型 ICLR2020

论文链接:https://arxiv.org/pdf/1909.11942.pdf 代码链接:https://github.com/google-research/ALBERT 导读 今天阅读的是 Google 同学 2020 年的ICLR论文《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》。 我们知道模型效果会随着模型深度的增加得到提升,然而模型深度的增加也会使得训练变得更困难,为了解决这个问题,.

u013602059的专栏 4380
上一篇: Pytorch中mask是如何实现的代码-阅读文本相似度模型
下一篇: Bert如何融入知识一-百度和清华ERINE
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值