首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
沐筱漓
东北大学秦皇岛校区 C++
发布于北京
关注
已关注
取消关注
@SweetBean:
算法岗常见面试题(九):BERT
BERT模型参数量计算(5)一文懂“NLP Bert-base” 模型参数量计算_embed_huang的博客-CSDN博客_bert-base词向量参数计算token embedding参数:30522(词汇量)* 768(隐藏层大小)position embedding参数:512(文本输入最长大小)* 768(隐藏层大小)segment embedding参数:2(0和1区分上下句)* 768(隐藏层大小)故,词向量总参数量 = (30522 + 512 + 2)* 768 = 22.7 MB多头注意力层参数计算Q K V 权重矩阵尺寸:768 * 64(多头注意力机制下)O 的权重矩阵:768 * 76812头multi-head的参数为 768 * 64 * 3 * 12故,12层multi-head的参数为 12 * (768 * 64 * 3 * 12)= 27MB全连接层参数计算主要由两个全连接层构成,连个全连接层的权重矩阵分别为W1 768 * (768 * 4)W2 (768 * 4)* 768故,12层全连接层参数为:12 *( 2 * 768 * 3072 )= 54MBLayNorm层参数计算LN层用到了两参数g和b,维度为768LN在模型中的三个地方用到:embedding后、multi-head后、fead forward后故,LayNorm层参数为:768*2 + ( 768 * 2 ) * 12 + ( 768 * 2 ) * 12 = 37.5 KBBERT和ELMo、GPT的区别ELMo、GPT的损失函数基于标准语言模型,它的缺点是单向。BERT 及其变体中,常用的mask方法及特点原始 mask (BERT)15% tokens: 80% [MASK], 10% random, 10% unchangedmask策略的好处:a)一定程度上缓解了初始做法导致的预训练模型和微调模型不一致的问题,减少了[MASK]的数量;mask策略的缺点:b)10%保留为原来的词,10%替换为该句子的其他部分,使得模型并不知道输入对应位置的词汇是否为正确的词汇,这迫使模型更多地依赖上下文预测词汇,并赋予了模型纠错的能力。预处理阶段制作[MASK],给每个句子采样10种mask方式:在预处理阶段制作[MASK],导致[MASK]单一稳定。BERT处理这种缺点:预训练共迭代40次,在这期间训练数据被重复处理了10次,每次都更换不同的mask方式,故相同的mask会重复训练4个epoch。whole word mask (WWM) (BERT-wwm)Bert系列七:中英文的whole word masking以及sentencepiece在BERT发布的新版本中被提出。BERT一次mask一个单词相关的所有token,而不是随意mask WordPiece tokendef create_masked_lm_predictions(tokens, masked_lm_prob, max_predictions_per_seq, vocab_words, rng):'''google 官方WWM实现代码'''cand_indexs=[]for (i,token) in enumerate(tokens): if token == "[CLS]" or token == "[SEP]": continueif (FLAGS.do_whole_word_mask and len(cand_indexs) >= 1 and token.startswith("##"): cand_indexs[-1].append(i)else: cand_indexs.append([i])dynamic mask (RoBERTa)每个Epoch都会生成新的mask,实际上效果只提升了不到一个点。phrase mask (Baidu ERNIE)Baidu ERNIE 改进了两种masking策略,一种是phrase mask,一种是entity mask。phrase指短语,如 a series of 一类。将由多个字组成的phrase当做一个统一的单元。entity mask (Baidu ERNIE)entity指实体,如 人名、位置、组织、产品等。将由多个字组成的entity当做一个统一的单元。处理篇章级的长文本有哪些方案?(超参数二面)截断法head截断tail截断head+tail截断缺点:丢失部分序列信息,不适用于很长的文本。Pooling法将一整段文本拆分为多个segment,每个segment长度小于510。每个segment分别进入BERT,获得[CLS].对所有segment的[CLS]进行Pooling,可以用Max-Pooling(更推荐,保留突出特征)和Mean-Pooling。优点:考虑到了全局信息,对文本很长且截断敏感的任务有较好的效果。缺点:需要多次Encode,速度慢;segment之间失去联系。压缩法对原文本进行过滤,降低有效文本的大小。过滤的方法因任务而定,没有统一的方法。(比如:正文的句子和标题做字符相似度,只取字符相似度最大的TOP-K句子来代表整个篇章)如果压缩之后,大部分句子还是超过510,继续使用截断法或者Pooling。BERT缺点(携程一面)BERT - 1033020837 - 博客园 (cnblogs.com)从MLM预训练任务分析其中1、2两点都基于自编码的痛点。预训练阶段会出现特殊的[MASK]字符,而在下游任务中不会出现,造成预训练和微调之间的不匹配。解决方案:XLNet:使用自回归代替自编码。自回归是指使用前向语言模型或后向语言模型来预测当前位置的词,有单向的缺点;自编码是BERT所使用的MLM的训练方法,其能使用到双向信息但是会造成预训练与微调时的不一致。基于不符合真实情况的假设:被mask掉的token是相互独立的。如“自然语言处理”,如果mask掉“语言”,显然“语“和”言“并不是相互独立的,即”语“后面预测”言“的概率要高于预测为其他字的概率。解决方案:XLNet:使用自回归代替自编码。BERT中词被切分为更细粒度的Token,在随机Mask的过程中会出现只Mask掉一个词的一部分的情况,这样会使得预测任务变得更简单,因为通过一个词的前后部分很容易预测出当前词。解决方案:BERT-wwn:对全词mask,对于中文来说就是mask词语而不是字,对于英文来说就是mask单词而不是tokenERNIE:百度的。基于实体和短语的mask每个batch只有15%的token会被预测,所有收敛速度会比传统语言模型慢,因为传统语言模型会预测每个token静态掩码。BERT在数据预处理期间执行一次掩码,得到静态掩码。解决方案:RoBERTa:动态掩码。在每次模型输入一个序列时都会生成新的掩码模式。这样,在大量数据不断输入的过程中,模型会逐渐适应不同的掩码策略,学习不同的语言表征。从NSP预训练任务分析NSP任务的有效性被质疑,可能是由于NSP任务相比于MLM过于简单。解决方案:RoBERTa:删除NSP预训练任务ALBERT:使用SOP任务代替NSP任务,即预测两个句子顺序是否正确。模型结构分析词向量维度和隐层维度相同,参数量大。ALBERT:在词表和隐层之间增加一个维度E(应该就是模型内部的计算维度吧);缺乏生成能力只能处理两个segmentXLNet:Relative Segment Encoding。只判断两个token是否属于同一个segment,而不判断他们各自属于哪个segment。具体实现是在计算attention weight的时候,给query额外算出一个权重加到原来的权重上,类似于relative positional encoding。长度限定512XLNet:沿用了Transformer-XL的思想,可处理更长文本。BERT的预训练流程(8条消息) 李沐动手学深度学习V2-bert预训练数据集和代码实现_cv_lhp的博客-CSDN博客_bert预训练数据集
点赞 11
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-07 08:54
门头沟学院 Java
从手足无措到慢慢踏实
刷到这个话题,一下子就想起了我实习第一天的样子,紧张到手心冒汗,连喝水都不敢大声,现在回头看,又好笑又怀念。我是双非计算机本科,在杭州一家互联网公司做后端开发实习,实习第一天,我提前半个小时就到了公司楼下,在楼下便利店坐了20分钟,反复对着手机里的自我介绍稿默念,生怕进去说错话,连呼吸都在紧张。到了上班时间,我给mentor发了消息,他下来接我,带我进了办公区。第一关就是认人,他带着我挨个工位介绍组里的同事,“这是张哥,负责架构的”“这是李姐,负责业务开发”“这是王哥,测试负责人”,十几个人介绍下来,我一个名字都没记住,全程只会傻笑,重复着“您好您好,我是新来的实习生,以后请多指教”,脚趾都快...
实习第一天,你在干什么
点赞
评论
收藏
分享
05-02 21:34
蚌埠坦克学院 嵌入式软件开发
如果春招能重来,我会多投几个简历
如果春招能重来,我会更主动一些,多投几份简历,而不是把机会压在少数几家公司上。很多时候,并不是能力不够,而是曝光太少、尝试不够。多投递不仅能增加面试机会,也能在不断反馈中调整方向、提升表现。回头看,求职本身就是一个不断试错的过程,机会往往藏在“多尝试一步”里。
如果春招能重来,我会__...
点赞
评论
收藏
分享
04-28 13:00
已编辑
门头沟学院 Java
暑期破防
同等学历背景,别人从头到尾编的项目拿了三四家大厂offer,自己从0整的项目至今0 offer。这个世界真可笑,呵呵…
啥都ac:
项目主要是能讲清楚核心链路技术选型对比方案量化结果等等吧 是否真实做过真实存在不太重要 当然编的项目能做到这种水平也付出了精力了
找工作的破防时刻
点赞
评论
收藏
分享
03-31 17:19
天翼电子商务有限公司上海分公司_大数据研究院_测试实习生(实习员工)
实习累😩
我是一块砖,哪里需要哪里搬
点赞
评论
收藏
分享
05-06 11:21
门头沟学院 Java
华为暑期实习一面 48min
1. 手撕:给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。2. 解释摩尔投票法的思路,为什么用这种方法?3. 为什么不用哈希表?4. 哈希表的扩容机制是什么?5. 扩容时的时间复杂度?6. 用HashMap的总时间复杂度7. 如果所有元素都不同,哈希表的内存占用会怎样?8. 如果用摩尔投票法, 不存在超过半数的元素,如何识别?9. 场馆预订平台的框架和技术选型,用了什么框架?10. 如何实现存数据库一致性11. 如何用Canal监听MySQL binlog?如果是大规模数据,用几台Canal12. 那数据量很大的话,单台...
查看28道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
毕业啦!我们要一起去广州打拼啦!
1.8W
2
...
毕业了,有些话只能藏在心里了
1.5W
3
...
2026春招到底卷成什么样了?填问卷说出真相,最高领200元现金红包
1.3W
4
...
字节 中国交易与广告 后端一面
1.0W
5
...
从阿里被裁到快手升P6,我花了四年
7937
6
...
211本,130投0面,agent应用开发,简历求助!
7918
7
...
别人:阿里 字节 腾讯
6752
8
...
在携程的一天
6307
9
...
从腾讯到阿里感,谢一路走来的自己
5809
10
...
华为暑期实习
5156
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
32035次浏览
232人参与
#
校招薪资来揭秘
#
960836次浏览
4063人参与
#
在爱玛,骑向未来
#
20446次浏览
395人参与
#
如果春招能重来,我会___
#
29565次浏览
296人参与
#
24秋招避雷总结
#
1020210次浏览
7098人参与
#
你会因为行情,降低找工作标准吗?
#
45392次浏览
328人参与
#
机械人还在等华为开奖吗?
#
339258次浏览
1652人参与
#
米哈游求职进展汇总
#
688734次浏览
3348人参与
#
华为池子有多大
#
178149次浏览
931人参与
#
26届春招投递记录
#
8717次浏览
72人参与
#
25届网易互娱暑实进度
#
109123次浏览
802人参与
#
通信/硬件求职避坑tips
#
172097次浏览
1170人参与
#
记录我的毕业季
#
4760次浏览
120人参与
#
机械人,你的秋招第一份简历被谁挂了
#
268806次浏览
2451人参与
#
远程面试的尴尬瞬间
#
363913次浏览
2062人参与
#
大学最后一个寒假,我想……
#
103324次浏览
846人参与
#
机械求职避坑tips
#
103703次浏览
589人参与
#
你认为小厂实习有用吗?
#
145082次浏览
763人参与
#
运营商笔面经互助
#
219671次浏览
1833人参与
#
美团秋招笔试
#
216449次浏览
1192人参与
#
网易求职进展汇总
#
213195次浏览
1524人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务