最近一位同学,给我分享了他面试 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)倘若这一次摸到球的颜色与上一次的相同,则将这一次摸到的球拿出;若不同,则将这一次摸到的球放回。求最后一个球是白球的概率(动态规划)。
这个岗位主要偏开发而非算法,和我自己的条件不匹配,一面后就没有后续了。
如何学习大模型
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍
四、AI大模型各大场景实战案例
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。