为了准备社招刷了leetcode200-300题左右,侧重刷高频hard题,注重最优解法。面的公司地点均在上海,总共5家。
一、字节跳动-抖音 nlp算法工程师
一面(1h):
1、自我介绍+聊项目经历;
2、算法题:手撕multi-head self-attention,使用tensorflow或torch框架(尽量按google源码的思路);
3、开方式问题:介绍deberta中的两个优化点,disentangled attention和enhanced mask decoder;
4、开方式问题:说出pre-norm和post-norm的区别(答案在苏剑林的《科学空间》);
5、基础问题:layer normalization和batch normalization的区别。
二面(1h):
1、
自我介绍+聊项目经历;
2、算法题:手撕transformer decoder部分的inference过程,重点看beam search的实现,使用tensorflow或torch框架(尽量按google源码的思路);
3、开方式问题:如何解决含有象征、隐喻等修辞手法的文本分类问题。
三面(1h):
1、自我介绍+聊项目经历;
2、基础问题:介绍bert的原理、结构,以及bert中哪些结构(layer或block)的训练参数比较多;
3、基础问题:attention结构的神经网络与递归神经网络相比有什么优点(还问了一些比较基础的问题,貌似有点忘了);
4、业务问题:如何用一些业务指标衡量模型的效果;
5、算法题:(共三个小问题)
(1)针对某个表达式如5+6*4(只含有加减乘除),设计并使用一种数据结构能够对表达式进行求值(使用二叉树即可);
(2)在(1)的基础上,倘若表达式中出现未知变量,如a+a*b,改进(1)中的结果使其在知道未知变量具体赋值的时候能够返回表达式的结果(实现类似tensorflow中placeholder的机制);
(3)在(2)的基础上,倘若已知loss function返回的结果,实现一下梯度的反向传播。
hr面(0.5h):
自我介绍---》为什么想换工作---》薪资期望---》其他常规流程
二、拼多多-智能客服 nlp算法工程师
一面(1h):
1、自我介绍+聊项目经历;
2、基础问题:又问了一遍layer normalization和batch normalization的区别;
3、基础问题:bert模型采用mask的具体策略,以及为什么要这么设计;
4、开放式问题:常用的文本数据增强方法(全面完整的回答可以从语种层面,letter、subword、word和语序层面,利用mlm过程、利用wordnet近义词替代等角度);
5、开放式问题:模型蒸馏的具体实现过程,KL散度和交叉熵的联系与区别;
6、算法题:给定一个图的节点集合和边集合,找出图中一个有多少个连通子图(并查集或bfs)
二面(1h):
1、自我介绍+聊项目经历;
2、开放式问题:写出中文bert-base预训练模型所有的参数量,细分到每一个结构的参数量;
3、基础问题:attention结构中Q、K、V的含义及作用;
4、基础问题:bert结构中embedding部分具体是怎么样的(word embedding+position embedding+segment embedding);
5、基础问题:绝对位置和相对位置的区别(最好举例作答);
6、开放式问题:position embedding的实现方式有哪两种(functional position embedding,如transformer和华为的NEZHA;parametric position embedding,如bert);
7、基础问题:layer normalization中的两个可学习参数的作用;
8、算题题:已知二叉树的前序和中序遍历的前提下重构二叉树。
三面(0.5h):
1、自我介绍+聊项目经历;
2、场景题:基于项目中聊到的多轮对话改写模型,是否能够用另一种不同的方法实现;
3、场景题:在真实的客诉场景中,客户可能不会一次性把话说完整,比如某客户会先说“hi”,然后说“想问一下”,最后说“如果你们这边的产品有问题该怎么办”。如何设计客服机器人解决上述的问题(停顿检测);
4、算法题:将两个升序的数组合并,合并后的数组保持升序,设计时间复杂度尽可能低的算法。
hr面(0.5h):
自我介绍---》为什么想换工作---》薪资期望---》其他常规流程
三、bilibili 人工智能与大数据平台 nlp算法工程师
一面(1h):
1、自我介绍+聊项目经历;
2、基础问题:再问了一遍layer normalization和batch normalization的区别;
3、基础问题:transformer网络中一共有多少种不同的attention(3种);
4、开放式问题:bert及其变体中常用的mask方式及特点(dynamic mask,whole word mask,phrase mask, entity mask);
5、开放式问题:中文场景的nlu任务和英文场景有什么不同;
6、开放式问题:模型蒸馏的具体实现过程;
7、算法题:数组中连续子数组和的最大值。
二面(1h):
1、自我介绍+聊项目经历;
2、业务问题:如何用一些业务指标衡量模型的效果,如何使用一些非模型的方法解决内容的识别问题;
3、开放式问题:介绍一下是如何做语义相似度的(simcse,simbert,sentence bert等)
4、开放式问题:是否了解triple loss,以及它的功能是什么;
5、算题题:实现一个函数能够计算softmax和交叉熵;
6、基础问题:softmax函数在梯度反向传播过程中会出现梯度的钝化,实际过程中该如何解决。
三面(0.5h):
1、自我介绍+聊项目经历;
2、算法题:判断链表是否有环,并输出环的入口节点;
3、场景题:平时是否使用过b站,如何看待b站的弹幕文化。
hr面(0.5h):
自我介绍---》为什么想换工作---》薪资期望---》其他常规流程
四、太保金科 研究院 nlp算法研究员
一面(0.5h):
1、自我介绍+了解哪些nlp的前沿研究;
2、场景题:如何用gpt-3的prompt机制挖掘以新冠疫情为主题的稀疏文本以及如何在保险场景实现zero-shot;
3、场景题:在文本分类任务中,如果打乱文本中字或词的顺序,是否会对分类结果产生影响;
4、算法题:给定一个长度为n的初始数组nums[0, 1, 2, ..., n-1],求出i != nums[i]对任意i都成立的排列组合总数(动态规划)。
二面(1h):
1、自我介绍+聊项目经历;
2、场景题:如何在一个3GB内存空间中部署一个深度学习模型;
3、开放式问题:说一下目前主流或前沿的nlp预训练模型(百度ERNIE3.0,华为NEZHA,openAI gpt-3,nvidia MegatronLM,macrosoft T5)及相关的加速方法(混合精度训练、Zero Redundancy Optimizer);
4、开放式问题:简单聊一下ERNIE1.0到3.0发展历程和gpt-1到gpt-3的发展历程;
5、开放式问题:说一下对多任务训练(multi task learning)和多领域训练(multi domain learning)的理解,最好举一个例子;
三面(0.5h):
1、笔试题:给定训练集和测试集,要求在24h内自己设计神经网络。要求在epoch=1和learning_rate=0.03的限制下,测试集评估的准召达到95%以上;
2、智力题:有5个相邻的山洞(一字排开),山洞里有一只兔子,兔子每天白天会移动到相邻的洞中,你是一个猎人,每天晚上可以查看一个洞。设计一个可以找到兔子的策略。
hr面(0.5h):
自我介绍---》为什么想换工作---》薪资期望---》其他常规流程
五、上海人工智能实验室 大规模预训练算法研究员
一面(1h):
1、自我介绍;
2、开放式问题:说一下目前主流或前沿的预训练模型,包括nlp(百度ERNIE3.0,华为NEZHA,openAI gpt-3,nvidia MegatronLM,macrosoft T5)和cv(我只知道CLIP)领域;
3、基础问题:说一下数据并行和模型并行的主要区别;
4、基础问题:混合精度训练的原理,有哪些优缺点,针对这些优缺点是如何改进的;
5、开放式问题:说一下DeepSpeed有哪些方面的突破;
6、算法题:N皇后;
7、算法题:用递归和迭代两种方式实现二叉树的层次遍历;
8、算法题:袋子中有5个白球和8个红球,现规定摸球规则:(1)第一次摸球无论红白,均拿出;(2)倘若这一次摸到球的颜色与上一次的相同,则将这一次摸到的球拿出;若不同,则将这一次摸到的球放回。求最后一个球是白球的概率(动态规划)。
这个岗位主要偏开发而非算法,和我自己的条件不匹配,一面后就没有后续了。
#自然语言处理##面经##Python##社招#