首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
02-17 01:14
合肥工业大学
大二非科班学生c++方向求助
目前大二,不知道后面该走什么方向了,现在是继续做其它项目学一些通用技术栈,还是去找实习呢
点赞
评论
收藏
分享
昨天 10:58
已编辑
门头沟学院 C++
博雷顿科技股份公司 C++ 一面复盘
1. 自我介绍我之前在某某公司实习,主要参与 C++ 后端相关开发工作。 实习期间参与消息处理和服务端模块开发,涉及功能迭代、问题排查和性能优化。 技术栈以 C/C++ 为主,熟悉 STL、Linux 多线程和网络编程(TCP/IP),了解 MySQL、Redis 组件。 整体偏工程实践,关注代码质量、稳定性及性能优化,期待在 C++ 后端方向继续提升2. 项目介绍我参与开发了一个分布式实时流处理平台,负责事件数据的实时计算和多维聚合。项目难点在于高并发写入时线程锁竞争严重,导致延迟不稳定;同时状态同步复杂,内存容易泄漏。我主要通过以下方式解决了问题: 用无锁队列替代传统锁,减少线程竞争。 设...
C++面试总结
点赞
评论
收藏
分享
02-05 17:50
已编辑
武汉工程科技学院 Java
28学院本沉淀了一个寒假 求牛✌们看看如何
想直接投实习 碰碰运气 牛✌们瞅瞅我有机会吗?😀
zzz_jjj:
这个压测真的测过吗,面试的时候可能会拷打你这个
点赞
评论
收藏
分享
01-29 11:27
中南大学 Java
现在腾讯就开始招聘了?
现在是越来越夸张了,找工作也要越来越提前了,1. 本来是金9银10的秋招,现在变成了金7银82. 本来没必要人人都去卷暑期实习的,现在却是你没实习,秋招可能约面都约不到3. 暑期实习本来是暑假的,才叫暑期实习,现在却是3月就要开始准备面试了4. 有些公司暑期实习前还要有暑期实习提前批。现在找工作的环境颠的我已经不认识了
9527se:
别说企业了,公务员考试都还普遍开始提前了
这世界真是越来越看不明白
今年春招是金一银二嘛?
点赞
评论
收藏
分享
02-16 11:08
滴滴_移动端研发工程师(准入职员工)
腾讯内推,腾讯内推码
腾讯IEG 后端开发实习面经流程很快,效率棒棒哒10.10投递,10.11日过初筛,约一面到10.13,10.16就结束hr面了,6天速通一面 10.13挑一个项目讲打开项目github看,对照源码问了些问题Redis 用过什么数据结构Reids怎么实现分布式锁10亿条消息去重说下去会好好看看我的github(开源贡献比较多)算法题二面 10.15聊了下项目一聊了下项目二gmp调度模型go gctcp可靠性有哪些机制大模型的原理兴趣爱好玩啥游戏(金铲铲,暗区突围,王者荣耀,皇室战争,总之腾讯游戏玩的雀实多,也充了不少钱其实)Hr面 10.16等offer中。。10.24 offer腾讯2027...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
972
2
...
关于租房
537
3
...
27届实习近一年的年度经历和总结
489
4
...
HTTP 和 HTTPS 区别
462
5
...
agent实习都干什么?prompt设计
318
6
...
美团推荐算法一面
252
7
...
这个简历可以去找暑期实习了吗
252
8
...
大三无实习
251
9
...
追一科技 C++ 一面
240
10
...
得力嵌入式工程师 二面 面经
220
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
13956次浏览
168人参与
#
你最讨厌面试被问什么
#
1264次浏览
26人参与
#
牛客AI体验站
#
17869次浏览
302人参与
#
有转正机会的小厂实习值得去吗?
#
582次浏览
19人参与
#
牛友们,签完三方你在忙什么?
#
137383次浏览
993人参与
#
担心入职之后被发现很菜怎么办
#
282508次浏览
1185人参与
#
如何缓解入职前的焦虑
#
258863次浏览
1451人参与
#
校招第一份工作你干了多久?
#
139403次浏览
609人参与
#
去年的flag与今年的小目标
#
34294次浏览
337人参与
#
牛客租房专区
#
151425次浏览
1479人参与
#
秋招开始捡漏了吗
#
229461次浏览
1044人参与
#
九月了,是考研还是就业?
#
89297次浏览
557人参与
#
秋招投递攻略
#
268791次浏览
2553人参与
#
这份实习,有没有动摇过你的职业方向?
#
2201次浏览
40人参与
#
搜狐工作体验
#
4118次浏览
29人参与
#
机械人求职现状
#
33647次浏览
297人参与
#
我是XXX,请攻击我最薄弱的地方
#
61785次浏览
410人参与
#
用友工作体验
#
18084次浏览
151人参与
#
你的工资什么时候发?
#
57477次浏览
355人参与
#
你的实习什么时候入职
#
348083次浏览
2291人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务