最近技术群的一位同学,分享了他面试NLP算法工程师(大模型方向)的经历与经验。直呼太难了。。。。
今天整理后分享给大家,如果你对这块感兴趣,可以文末加入我们的技术群
这位同学为了准备面试刷了 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的区别。
6、大模型实践场景有那些?ChatGLM、LlaMa、qwen 等大模型的区别?如何优化 Prompt ?
7、大模型微调的优化方法及区别?
8、是否熟悉大模型langchain 和 llama index 及区别?
9、当前大模型检索有什么问题?如何进行 RAG 优化的方法?
10、从0到1训练大模型的流程及方法及注意事项
二面(1h):
1、自我介绍+聊项目经历;
2、算法题:手撕transformer decoder部分的inference过程,重点看beam search的实现,使用tensorflow或torch框架;
3、开方式问题:如何解决含有象征、隐喻等修辞手法的文本分类问题。
4、大模型在NLP的落地案例及遇到的问题?
5、如果评估大模型的效果及安全性
三面(1h):
1、自我介绍+聊项目经历;
2、基础问题:介绍bert的原理、结构,以及bert中哪些结构(layer或block)的训练参数比较多;
3、基础问题:attention结构的神经网络与递归神经网络相比有什么优点(还问了一些比较基础的问题,貌似有点忘了);
4、业务问题:如何用一些业务指标衡量模型的效果;
5、算法题:(共三个小问题)
(1)针对某个表达式如5+64(只含有加减乘除),设计并使用一种数据结构能够对表达式进行求值(使用二叉树即可);
(2)在(1)的基础上,倘若表达式中出现未知变量,如a+ab,改进(1)中的结果使其在知道未知变量具体赋值的时候能够返回表达式的结果(实现类似tensorflow中placeholder的机制);
(3)在(2)的基础上,倘若已知loss function返回的结果,实现一下梯度的反向传播。
6、对那些开源大模型比较熟悉?如何看待大模型的前景与价值
hr面(0.5h):
自我介绍—》为什么想换工作—》薪资期望—》其他常规流程
二、拼多多-智能客服 nlp算法工程师
一面(1h):
1、自我介绍+聊项目经历;
2、基础问题:又问了一遍layer normalization和batch normalization的区别;
3、基础问题:bert模型采用mask的具体策略,以及为什么要这么设计;
4、开放式问题:常用的文本数据增强方法(全面完整的回答可以从语种层面,letter、subword、word和语序层面,利用mlm过程、利用wordnet近义词替代等角度);
5、开放式问题:模型蒸馏的具体实现过程,KL散度和交叉熵的联系与区别;
6、算法题:给定一个图的节点集合和边集合,找出图中一个有多少个连通子图(并查集或bfs)
7、AI 大模型LangChain开发框架是否用过,AGENT、MEM、向量知识库的细节
8、熟悉那些分布式训练框架,目前在用那些,能否详细说明?
9、是否有预训练、微调和部署经验,展开讲一下?
10、是否了解大模型在智能客服领域落地场景、质检、拓展问、机器人
二面(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、算题题:已知二叉树的前序和中序遍历的前提下重构二叉树。
9、基于大模型和向量数据库构建企业级知识库平台的流程及细节说明
三面(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、算法题:数组中连续子数组和的最大值。
8、大模型知道那些?原理、性能、差异的?目前有那些问题需要解决?
9、如果解决大模型的可控可信度不足、推理效率慢的问题
10、常用的模型微调方法、模型量化问题及分布式部署问题
二面(1h):
1、自我介绍+聊项目经历;
2、业务问题:如何用一些业务指标衡量模型的效果,如何使用一些非模型的方法解决内容的识别问题;
3、开放式问题:介绍一下是如何做语义相似度的(simcse,simbert,sentence bert等)
4、开放式问题:是否了解triple loss,以及它的功能是什么;
5、算题题:实现一个函数能够计算softmax和交叉熵;
6、基础问题:softmax函数在梯度反向传播过程中会出现梯度的钝化,实际过程中该如何解决。
7、熟悉的开发语言Pytorch 还是Tensorflow ?
8、Megatron-lm、Deepspeed 等是否熟悉?你熟悉哪一种?
9、模型并行、数据并行、ZERO是否用过?
三面(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都成立的排列组合总数(动态规划)。
5、GPT3、chagpt、T5、LLAMA、GLM 的区别?
6、模型小型化技术有那些?
7、使用大模型的落地场景?
二面(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)的理解,最好举一个例子;
6、大模型是否有经验,请详细说明?
7、目前大模型落地有那些问题?你是如何解决的?
8、大模型目前RAG、chain 是否熟悉?
三面(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)倘若这一次摸到球的颜色与上一次的相同,则将这一次摸到的球拿出;若不同,则将这一次摸到的球放回。求最后一个球是白球的概率(动态规划)。
这个岗位主要偏开发而非算法,和我自己的条件不匹配,一面后就没有后续了。
技术交流群
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
我们建了大模型面试与技术交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流
用通俗易懂方式讲解系列
- 用通俗易懂的方式讲解:自然语言处理初学者指南(附1000页的PPT讲解)
- 用通俗易懂的方式讲解:NLP 这样学习才是正确路线
- 用通俗易懂的方式讲解:28张图全解深度学习知识!
- 用通俗易懂的方式讲解:不用再找了,这就是 NLP 方向最全面试题库
- 用通俗易懂的方式讲解:实体关系抽取入门教程
- 用通俗易懂的方式讲解:灵魂 20 问帮你彻底搞定Transformer
- 用通俗易懂的方式讲解:图解 Transformer 架构
- 用通俗易懂的方式讲解:大模型算法面经指南(附答案)
- 用通俗易懂的方式讲解:十分钟部署清华 ChatGLM-6B,实测效果超预期
- 用通俗易懂的方式讲解:内容讲解+代码案例,轻松掌握大模型应用框架 LangChain
- 用通俗易懂的方式讲解:如何用大语言模型构建一个知识问答系统
- 用通俗易懂的方式讲解:最全的大模型 RAG 技术概览
- 用通俗易懂的方式讲解:利用 LangChain 和 Neo4j 向量索引,构建一个RAG应用程序
- 用通俗易懂的方式讲解:使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA