首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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 10:09
蚌埠坦克学院 嵌入式软件开发
嵌入式面试常考八股文汇总
嵌入式岗位面试中,除了项目经历,面试官也很喜欢围绕基础知识、单片机原理、RTOS、通信协议、Bootloader、C语言底层细节等内容展开提问。下面给大家整理了 40 个嵌入式面试高频题目,适合用来查漏补缺、系统复习。一、C语言与基础知识volatile 关键字的作用是什么?哪些场景必须使用?const 和 #define 的区别是什么?指针和数组的区别是什么?malloc、calloc、realloc 的区别是什么?结构体内存对齐的原理是什么?为什么要进行内存对齐?大端模式和小端模式有什么区别?如何判断当前平台的字节序?static 关键字在局部变量、全局变量、函数中分别有什么作用?什么是野...
点赞
评论
收藏
分享
04-21 21:10
哈尔滨工业大学(威海) Java
今年是真的更难了吗,还是单纯我太菜了
三月中旬开始陆陆续续投了几十家,记录了一下情况,BOSS上也问了几百家,大部分没回或者根本未读面试只有寥寥几个,发笔试的更是一个都没通过(至今没敢做美团笔试,pdd听说笔试难更是没敢投)部分企业直接简历挂(快手挂了五次),甚至有点还在流程里出去一看岗位都没了(比如小米滴滴,前者还好直接流程结束了,滴滴硬是卡在那取消也取消不了,别的也投不了)大部分还是投了泡池子毫无推进网上都说今年暑期难得多,是我信息茧房了还是客观如此,或者我太菜了吗本人有三段小厂实习,其中两个规模不大的小公司做业务,一个几百人的数据库公司做的是数据库跟中间件,偶尔有几个面试也都感觉回答不上,除非像我主页京东一面那种项目引个头问八股的,不然问点场景题或者拷打实习产出与项目亮点,都感觉束手无策,想多面试攒经验吧偏偏连面试都接不到几个难道只能等六月份投日常了吗,中厂暑期感觉都希望不大了,面试基本全是bat京东给的,中厂一点面试不给,鱼鱼了
被迫内卷的man:
现在横向特别严重
没招了
我的求职进度条
点赞
评论
收藏
分享
03-18 10:28
贵州中医药大学 数据分析师
这公司疯了吧
这家公司疯了吧,5个人招我,我又不是什么稀缺资源这家看样子应该是外包公司
小肥罗:
你是她们的kpi呀
点赞
评论
收藏
分享
05-04 18:07
已编辑
门头沟学院 Java
agent项目相关八股
1. 怎么把 RAG 接入到你的 Agent 执行链路里的?是在调用工具之前先检索,还是在生成结果之后再做校验?我们的 RAG 是通过 Spring AI 的 Advisor 接入到 ChatClient 的:模型调用前在 before() 做向量检索,把命中文档拼成上下文注入 prompt;模型生成后在 after() 把命中文档回写到响应 metadata 便于追踪。当前是“先检索再生成”的 pre-RAG,并没有单独做生成后的事实校验,后续可以增加 verifier 节点来做 post-check。2. MCP 是完全自研的吗?和市面上成熟的 Agent 框架相比,你的方案在扩展性上有什...
查看3道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
毕业啦!我们要一起去广州打拼啦!
1.7W
2
...
毕业了,有些话只能藏在心里了
1.6W
3
...
2026春招到底卷成什么样了?填问卷说出真相,最高领200元现金红包
1.3W
4
...
字节 中国交易与广告 后端一面
1.0W
5
...
从阿里被裁到快手升P6,我花了四年
8707
6
...
211本,130投0面,agent应用开发,简历求助!
8277
7
...
别人:阿里 字节 腾讯
7155
8
...
在携程的一天
6470
9
...
从腾讯到阿里感,谢一路走来的自己
5628
10
...
华为暑期实习
5148
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
32264次浏览
232人参与
#
校招薪资来揭秘
#
961113次浏览
4063人参与
#
在爱玛,骑向未来
#
20535次浏览
395人参与
#
如果春招能重来,我会___
#
29758次浏览
296人参与
#
24秋招避雷总结
#
1020424次浏览
7098人参与
#
你会因为行情,降低找工作标准吗?
#
45622次浏览
333人参与
#
机械人还在等华为开奖吗?
#
339314次浏览
1652人参与
#
米哈游求职进展汇总
#
688849次浏览
3348人参与
#
华为池子有多大
#
178233次浏览
931人参与
#
26届春招投递记录
#
8768次浏览
72人参与
#
25届网易互娱暑实进度
#
109143次浏览
802人参与
#
通信/硬件求职避坑tips
#
172168次浏览
1170人参与
#
记录我的毕业季
#
4859次浏览
120人参与
#
机械人,你的秋招第一份简历被谁挂了
#
268856次浏览
2451人参与
#
远程面试的尴尬瞬间
#
363980次浏览
2062人参与
#
大学最后一个寒假,我想……
#
103342次浏览
846人参与
#
机械求职避坑tips
#
103745次浏览
589人参与
#
你认为小厂实习有用吗?
#
145127次浏览
763人参与
#
运营商笔面经互助
#
219727次浏览
1833人参与
#
美团秋招笔试
#
216548次浏览
1192人参与
#
网易求职进展汇总
#
213225次浏览
1524人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务