| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> [论文笔记]DistilBERT a distilled version of BERT: smaller faster cheaper and lighter -> 正文阅读 |
|
[人工智能][论文笔记]DistilBERT a distilled version of BERT: smaller faster cheaper and lighter |
引言本文是DistilBERT1的阅读笔记。 核心思想DistilBERT是一个更小更快的BERT模型,类似ALBERT,也是用来给BERT瘦身的。 DistilBERT应用了基于三重损失(Triplet Loss)的知识蒸馏(knowledge distillation)方法。相比BERT模型,DistilBERT的参数量压缩至原来的40%,同时带来60%的推理速度提升,并且在多个下游任务上达到BERT模型效果的97%。 并且该模型可以放到像手机📲(on-device)这类设备上运行,具备的好处就是更好的隐私保护,一些隐私数据可以不用上传到服务器,直接在手机端针对这些数据就可以为人们带来个性化的服务。 模型剖析DistilBERT的名字中Distil就是蒸馏的意思,我们先来看下什么是蒸馏。 蒸馏蒸馏的解释是加热液体汽化,再使蒸气液化,从而除去其中的杂质。 而这里的知识蒸馏是指将已经训练好的模型包含的知识(Knowledge),蒸馏(Distill)提取到另一个模型里面去。 通常前者是一个较大的模型,后者是一个较小的模型。 从另外一个角度思考的话,我们让小模型来学习大模型。因此,我们把大模型当成老师(Teacher),小模型当成学生(Student)2。 蒸馏的目标是让学生模型学习到老师模型的泛化能力,而不是学习拟合训练数据,理论上得到的结果会比单纯拟合训练数据要好。 训练损失为了将教师模型的知识传输到学生模型,DistilBERT采用了三重损失3:有监督MLM损失、蒸馏MLM损失和词向量余弦损失,如下所示: 蒸馏MLM损失 利用教师模型的概率作为指导信号,与学生模型的概率计算交叉熵损失进行学习。由于教师模型是已经训练过的预训练语言模型,其输出的概率分布相比学生模型更加准确,能够起到一定的监督训练目的。因此,在预训练语言模型的知识蒸馏中,通常将有监督MLM称作硬标签(Hard Label)训练方法,将蒸馏MLM称作软标签(Soft Label)训练方法。硬标签对应真实的MLM训练标签,而软标签是教师模型输出的概率。蒸馏MLM损失的计算方法为: 词向量余弦损失 词向量余弦损失用来对齐教师模型和学生模型的隐藏状态向量的方向,从隐藏状态维度拉近教师模型和学生模型的距离,如下: DistilBERT:一个蒸馏版本的BERT学生模型结构 学生模型(DistilBERT)的基本结构是一个六层的BERT模型,同时去掉了标记类型嵌入和池化模块(Pooler)。线性层和层归一化层已经被高度优化且证明有效,因此作者不改动。最后一层的隐藏向量大小,作者发现减少该值并不太影响模型效果。层数能影响模型效果和推理速度,因此作者注重于此参数优化。 学生模型初始化 教师模型直接使用了原版的BERT-base模型。由于教师模型和学生模型的前六层结构基本相同,为了最大化复用教师模型中的知识,学生模型使用了教师模型的前六层进行初始化。 蒸馏 DistilBERT 是在非常大的批次上使用动态掩码利用梯度累积(每批次最多 4K 个样本)进行蒸馏的,没有下一句预测目标。 评估GLUE : DistilBERT的参数量压缩至原来的40%,并且在多个下游任务上达到BERT模型效果的97%,甚至在WNLI任务上超过了BERT。 IMDb准确率 :BERT(93.46) DistilBERT(92.82) 推理速度(跑了所有的GLUE任务):DistilBERT(410s) BERT(668s) ELMo(895s) 参考 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 12:50:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |