首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
沐筱漓
东北大学秦皇岛校区
发布于北京
关注
已关注
取消关注
@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预训练数据集
点赞 7
评论 0
全部评论
推荐
最新
楼层
滴滴
校招火热招聘中
官网直投
相关推荐
柠檬牛牛
05-08 17:30
门头沟学院 统计学类
帮选offer
Offer1 中国移动信息技术中心(深圳)数据类岗位 薪资转正后总包24左右,发展情况未知,17年成立,可能之后不太稳定,也可能有变卷的趋势. Offer2 华夏银行总行管培生(北京)薪资转正后第一年大概总包22左右,但要轮岗,但保证可以回总行,目前户口指标没下来,但往年都解决了户口. #银行# #移动# #晒一晒我的offer# #offer决赛圈,我是怎么选的# #offer#
投递中移(苏州)软件技术有限公司等公司7个岗位 >
晒一晒我的offer
offer决赛圈,我是怎么选的
点赞
评论
收藏
转发
wanglaowu
03-27 00:53
已编辑
门头沟学院 计算机类
双非成功入职百度外卖
兄弟们,帮忙看一下简历有啥问题,双非这简历有没有啥问题呀,主要投中厂。如果没有问题,那其他的就不是我能改变的了。拜托兄弟们了
投递百度等公司10个岗位
点赞
评论
收藏
转发
互联网农民工_
05-07 09:24
清华大学 计算机类
暑期实习超全最新更新,技术岗看过来!
5.7 更新 华资软件:https://sinobest.zhiye.com/ 万兴科技:https://app.mokahr.com/campus_apply/wanxingkeji/41591#/jobs?zhineng%5B0%5D=141601 宁德时代:https://talent.catl.com/#/ 奇安信:https://campus.qianxin.com/campus/intern 智臾科技:https://app.mokahr.com/campus-recruitment/dolphindb/101962#/jobs?commitment=%E5%85%A8%E8%8...
投递东方财富等公司10个岗位 >
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
全站热榜
1
...
31天勇闯盲审(附盲审经验
5897
2
...
5.11校招&实习招聘信息汇总
5072
3
...
捞简历这件事儿
4744
4
...
滴滴测开秋储一面凉
3805
5
...
无题
3684
6
...
微信支付一面
3627
7
...
24届春招还有0offer的吗 #0offer是寒冬太冷还是我太菜#
3246
8
...
云智offer
3221
9
...
美团-Java后端-平台技术部-一面凉经(复活赛)
2781
10
...
华为暑期实习面经(已入池)
2643
正在热议
#
牛客帮帮团来啦!有问必答
#
655484次浏览
10866人参与
#
无实习如何秋招上岸
#
211584次浏览
3299人参与
#
你的简历改到第几版了
#
295188次浏览
4472人参与
#
23届的你们都什么时候入职?
#
83118次浏览
724人参与
#
租房前辈的忠告
#
30703次浏览
2018人参与
#
找工作中的意难平
#
183884次浏览
3336人参与
#
硬件人的简历怎么写
#
76036次浏览
775人参与
#
华为开奖那些事
#
693525次浏览
5962人参与
#
简历中的项目经历要怎么写
#
421206次浏览
7148人参与
#
机械人怎么评价今年的华为
#
65682次浏览
529人参与
#
秋招开了,你想投哪些公司呢
#
114774次浏览
3232人参与
#
五一之后,实习真的很难找吗?
#
16350次浏览
102人参与
#
我想象的工作vs实际工作
#
89841次浏览
1520人参与
#
金融银行面经
#
4509次浏览
104人参与
#
你投了多少份简历,才拿到offer?
#
5145次浏览
58人参与
#
你已经投递多少份简历了
#
285264次浏览
4325人参与
#
第一份工作应该选择高薪还是大平台
#
33655次浏览
252人参与
#
本周投递记录
#
193888次浏览
5009人参与
#
工作压力大怎么缓解
#
9660次浏览
135人参与
#
浅聊一下我实习的辛苦费
#
78480次浏览
726人参与
牛客网
牛客企业服务