首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-21 10:58
已编辑
门头沟学院 C++
博雷顿科技股份公司 C++ 一面复盘
1. 自我介绍我之前在某某公司实习,主要参与 C++ 后端相关开发工作。 实习期间参与消息处理和服务端模块开发,涉及功能迭代、问题排查和性能优化。 技术栈以 C/C++ 为主,熟悉 STL、Linux 多线程和网络编程(TCP/IP),了解 MySQL、Redis 组件。 整体偏工程实践,关注代码质量、稳定性及性能优化,期待在 C++ 后端方向继续提升2. 项目介绍我参与开发了一个分布式实时流处理平台,负责事件数据的实时计算和多维聚合。项目难点在于高并发写入时线程锁竞争严重,导致延迟不稳定;同时状态同步复杂,内存容易泄漏。我主要通过以下方式解决了问题: 用无锁队列替代传统锁,减少线程竞争。 设...
C++面试总结
点赞
评论
收藏
分享
02-17 09:03
马鞍山学院 golang
暑假实习求助
双非,现在想找暑假实习。许多公司都招长期实习。双非 + 暑假实习2个月 + Golang就已经很困难了。Golang的暑假实习不知道有哪些公司招,希望有前辈或者大佬指点指点。(腾讯、字节已投)阿里云云计算高级工程师ACP认 证 项目 K8S + 敏捷 + CD/CD + 网页全栈 两次团队比赛二等奖,队长面经和算法自驱、学习都个人认为不错望有大佬可以指点一下,谢谢。
不给转正的实习,你还去吗
点赞
评论
收藏
分享
02-21 17:19
电子科技大学 Java
这个简历可以去找暑期实习了吗
大佬们看看,有没有什么还要修改的地方,第一个项目做的是黑马点评,加了一个rabbitMQ,第二个项目是鱼皮的API开放平台结合了一下鱼皮的大语言对话模型项目
点赞
评论
收藏
分享
01-29 20:32
已编辑
门头沟学院 产品经理
只有我觉得牛客网全是神人吗
社区里全是牛人大佬。大一大二各种比赛,大三各种顶尖实习。研究生的话,我能接受,本科生展现这种实力,我觉得还是太牛掰了。看简历都是各种顶尖项目。都这么夸张了吗。按道理来说,在大学里,做兼职赚钱,成绩优异,英语过得去,有相关的项目经验,只要有任意一两项,我在生活中都觉得他很优秀了。牛客里老是刷出全能怪物,简直非人哉啊。看到都吓人,这真的是人类能完成的嘛。
重剑Ds:
哎 怎么可能人人都这么厉害qvq... 只是不厉害的人不咋发声罢
点赞
评论
收藏
分享
02-16 10:48
快手_快STAR广告引擎(准入职员工)
光峰科技内推,光峰科技内推码
结构工程师面试经验: 1. 自我介绍 2. 项目介绍 3. 使用的三维软件、仿真软件是什么? 4. 建的模型里几个零部件之间的约束方式 5. 对身边常见的一些产品的内部构件有什么了解? 6. 它们通过什么方式组装/连接? 7. 如果给你个鼠标让你设计,首先要了解什么参数和内容? 8. 对结构工程师岗位的认知 9. 未来的职业规划 10. 工作地点的选择 11. 家庭情况 12. 反问环节光峰科技2026届校园招聘进行中~【招聘岗位】光学 / 硬件 / 算法岗 / 产品研发类 / 技术研发类 / 产品类【我们提供】极具竞争力的薪酬回报机制+产品技术重大创新奖金、专利奖、国际三大工业设计奖等专项激...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
971
2
...
关于租房
486
3
...
27届实习近一年的年度经历和总结
473
4
...
HTTP 和 HTTPS 区别
462
5
...
agent实习都干什么?prompt设计
313
6
...
追一科技 C++ 一面
249
7
...
美团推荐算法一面
239
8
...
得力嵌入式工程师 二面 面经
228
9
...
这个简历可以去找暑期实习了吗
227
10
...
大三无实习
221
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
14063次浏览
168人参与
#
你最讨厌面试被问什么
#
1343次浏览
26人参与
#
牛客AI体验站
#
17878次浏览
302人参与
#
有转正机会的小厂实习值得去吗?
#
651次浏览
19人参与
#
牛友们,签完三方你在忙什么?
#
137395次浏览
993人参与
#
担心入职之后被发现很菜怎么办
#
282540次浏览
1185人参与
#
如何缓解入职前的焦虑
#
258880次浏览
1451人参与
#
校招第一份工作你干了多久?
#
139419次浏览
609人参与
#
去年的flag与今年的小目标
#
34312次浏览
337人参与
#
牛客租房专区
#
151470次浏览
1480人参与
#
秋招开始捡漏了吗
#
229471次浏览
1044人参与
#
九月了,是考研还是就业?
#
89323次浏览
557人参与
#
秋招投递攻略
#
268803次浏览
2553人参与
#
这份实习,有没有动摇过你的职业方向?
#
2225次浏览
40人参与
#
搜狐工作体验
#
4119次浏览
29人参与
#
机械人求职现状
#
33657次浏览
297人参与
#
我是XXX,请攻击我最薄弱的地方
#
61798次浏览
410人参与
#
用友工作体验
#
18086次浏览
151人参与
#
你的工资什么时候发?
#
57495次浏览
355人参与
#
你的实习什么时候入职
#
348105次浏览
2291人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务