Bert模型精简方法
方法 模型 精简 bert
2023-09-11 14:17:14 时间
BERT六大瘦身大法
网络剪枝:包括从模型中删除一部分不太重要的权重从而产生稀疏的权重矩阵,或者直接去掉与注意力头相对应的整个矩阵等方法来实现模型的剪枝,还有一些模型通过正则化方法实现剪枝。
低秩分解:即将原来大的权重矩阵分解多个低秩的小矩阵从而减少了运算量。这种方法既可以用于标记嵌入以节省磁盘内存,也可以用到前馈层或自注意力层的参数矩阵中以加快模型训练速度。
知识蒸馏:通过引入教师网络用以诱导学生网络的训练,实现知识迁移。教师网络拥有复杂的结构用以训练出推理性能优越的概率分布,是把概率分布这部分精华从复杂结构中“蒸馏”出来,再用其指导精简的学生网络的训练,从而实现模型压缩,即所谓知识蒸馏。另外,从BERT模型中蒸馏出不同的网络结构如LSTMs等,以及对教师网络结构的进一步挖掘都有望实现知识蒸馏这一方法的不断优化。
参数共享:ALBERT是谷歌提出的BERT改进版,其改进之一就是参数共享。全连接层与自注意力层都实现参数共享,即共享了编码器中的所有参数,这样一来,不仅减少了参数量还提升了训练速度。
量化:即通过减少每个参数所需的比特数来压缩原始网络,可以显著降低内存。
预训练和Downstream:模型压缩可以在模型训练时进行也可以在模型训练好之后进行。后期压缩使得训练更快,通常不需要训练数据,而训练期间压缩可以保持更高的准确性并导致更高的压缩率。
论文列表和结果对比
![](https://img2020.cnblogs.com/blog/552754/202004/552754-20200416171114556-664427721.png)
对比所有论文内容后,我们也对以下指标进行了对比:参数减少,推理加速和准确性。
对比后很容易得出赢家:我会选择ALBERT,DistilBERT,MobileBERT,Q-BERT,LayerDrop,RPP
![](https://img2020.cnblogs.com/blog/552754/202004/552754-20200416171156107-1761570250.png)
相关文章
- 代码重构与单元测试——继续将相应的方法进行移动(八)
- string方法 PadLeft 返回一个新字符串,该字符串通过在此实例中的字符左侧填充指定的 Unicode 字符来达到指定的总长度,从而使这些字符右对齐。 PadRight 右边
- 整理一下 System.Linq.Enumerable 类中的那些比较少用的方法
- c++中cin的基本使用方法
- (《机器学习》完整版系列)第2章 模型评估与选择 ——2.7 (实战)具体的性能检验方法
- Google Earth Engine(GEE) ——利用sentinel-2(哨兵2号)数据使用随机森林方法模型预测森林地上生物量
- 【MATLAB教程案例31】基于matlab的人脸检测相关算法的仿真与分析——肤色模型与形态学图像处理方法
- 在HMM中,如果已知观察序列和产生观察序列的状态序列,那么可用以下哪种方法直接进行参数估计
- win11任务栏设置不叠加的方法教程
- WEEX 报错 TypeError: Converting circular structor to JSON 的解决方法
- 《软件工程方法与实践》—— 3.2 什么是软件过程模型
- Java的Map中的map.keySet()方法
- Object.defineProperty方法
- tensorflow保存模型和加载模型的方法(Python和Android)
- DRF 3.x APP Model Serializer 应用模型序列化使用示例和配置方法
- Django实现adminx编辑详情页隐藏指定字段方法
- 『迷你教程』机器学习算法模型的结果应用的正确方法
- python迭代器协议支持的两种方法
- ChatGPT与GPT3详细架构研究,语言模型背后的详细直觉和方法
- 强化学习学习笔记(二)-基于模型的动态规划方法
- 《大数据分析原理与实践》一一2.1 大数据分析模型建立方法
- 50种方法优化SQL Server数据库查询
- tensorflow保存模型和加载模型的方法(Python和Android)
- fstream的使用方法
- 网络I/O模型--04非阻塞模式(解除accept()、 read()方法阻塞)的基础上加入多线程技术
- 设计模式—工厂方法
- CAD怎么画3D模型?CAD画三维实体和曲面方法技巧
- tesorflow训练完保存模型和测试模型的方法以及区别