ALBERT 如何有效减少 BERT 的参数?

程序员大白

共 902字,需浏览 2分钟

 ·

2021-09-12 16:02

点击上方“程序员大白”,选择“星标”公众号

重磅干货,第一时间送达

来自 | 知乎  作者 | 刘聪NLP
链接|https://www.zhihu.com/question/485441585/answer/2112050954
本文仅作学术分享,若侵权,请联系后台删文处理

主要由矩阵分解和参数共享两个部分进行了参数压缩。

1、矩阵分解

将词表*输出维度,变成词表*小维度+小维度*输出维度。

举例:如果BERT-base模型的词表为30K,输出维度维度为768,那么embedding部分的参数量为23,040,000。进行矩阵分解,小维度为128,那么embedding部分的参数量为3,840,000+98,304=3,938,304。缩小了20M。

2、参数共享

原来BERT-base模型有12层transformer-encode,每层大概7M,共84M参数。ALBERT将12层参数共享,相当于只有7M参数,缩小了77M。

详细对比如下:


其实,可以看出,参数的主要压缩要归功于参数共享。但是虽然参数变少了,但是推理速度并没有变。对于工业来说,其实挺鸡肋的,我又不差那点硬盘空间,我差的是推理速度。还不如老老实实蒸馏、量化、剪枝呢。

最后,推荐一下之前写的“常用预训练语言模型总结”:
https://zhuanlan.zhihu.com/p/406512290


“拍一拍” 能撤回了 !!!

5款Chrome插件,第1款绝对良心!

为开发色情游戏,这家公司赴日寻找AV女优拍摄,期望暴力赚钱结果...

拼多多终于酿成惨剧

华为阿里下班时间曝光:所有的光鲜,都有加班的味道




西[]


浏览 49
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报