大家好,我是对白。

春招已经接近尾声,今年互联网大厂都在裁员,上岸也变得更加困难。尤其是算法岗,学历背景好的人太多了,导致竞争也异常激烈。但光有学历还不够,面试主要还是看能力,今天就给大家分享一位23届双非硕士成功拿到字节算法岗offer的经历,字节的面试还是有一定难度的,以下为原文。


作者:乔帮主打肖邦 | 编辑:对白的算法屋

https://zhuanlan.zhihu.com/p/498252976


一. 面试心路历程


本人是23届校招M同学,春招累计拿到10+家公司的 算法offer( 字节跳动、腾讯、百度、网易、58同城、智源研究院、 CVTE、 深信服等大中小公司),想跟优秀的人做点有挑战的事~~ 近期即将入职,春招得益于牛客上大佬们的面经,趁着工作开始前也来分享一下我自己的面经。

先罗列下个人的背景信息以供参考:


学历:广东某双非,本校考研上岸

论文:中科院sci二区期刊一作在投 + 一B会三作 + 一C 会三作

实习:一段小公司的算法实习经历

比赛:CCL比赛Top5名次

代码:leetcode 100+,面试手撕代码环节基本能ac;由于投的都是提前批或者内推,几乎没有笔试过。

基础:DL和NLP的相关知识面感觉还蛮广,但是做深的较少;ML相对薄弱一些;搜广推没系统学习过。

方向:NLP领域偏摘要生成这一块(面试官重点问的也是这方面)

嘴炮:这是很容易忽视的一项, “你很优秀”和“你能让面试官觉得很优秀”是有gap的


下面是海投的部分公司视图(飞书YYDS!!!)

从双非渣硕到字节算法岗,很强_百度

投过近10多家大中厂以及结果反馈

收到的offer展示:

从双非渣硕到字节算法岗,很强_面试_02

字节跳动的offer

二. 字节NLP算法面试经历


①字节跳动-一面(02.28) 1h

面试官声音挺温柔的。先跟我说本次的面试主要是分三个环节:自我介绍+聊项目+代码环节。然后直接开面:

自我介绍:(说一下自己的方向》各方面价值》标配了)

聊项目环节:

1.重点聊你觉得最深挖的项目

核心是围绕对话摘要生成做的一系列探索:论文调研》论文成果放到项目落地》报告生成比赛。

2.做的的抽取式和生成式?

3.现在用的评价指标有哪些?

4.生成式摘要模型整体上是怎么样?

5.讲一下PGN生成模型?

6.讲一下TDS生成模型?聊聊苏神的space模型?

7.NTM的结构能不能详细介绍一下?与VAE的区别?

8.摘要领域里面常见的TextRank

9.现在抽取式生成式哪个效果更好?

10.摘要领域的数据集有哪些?

11.有没有了解中文的摘要数据集?

12.长文本摘要和对话摘要有什么区别?

13.dialogue summarization的目的是干嘛?

14.对话摘要里面的摘要结果有没有角色呼应?

15.摘要生成怎么控制长短?

beam-search,topk词。

16.跟beam search 的窗口大小有多大关系?

17.beam search以EOS为结束解码,解码时候遇到最大长度但是还没有解码符号?

18.coverage mechanism(覆盖机制)是怎么样?

聊比赛环节:

19.说一下比赛的经过?这里问了一些问题,不太记得了,总体就是模型的选择、细节、输入输出的固定、还有维度问题等。

20.看你说做过java研发,那多线程和多进程有什么区别?python的线程锁了解过吗?

21.最后代码题:

编辑距离 :直接给了道编辑距离,刚好这几天有刷到这道题,dp表格法秒解了

整数幂 :一道hard一道medium,还得面向codetop刷题才行。

②字节跳动-二面- Leader面(03.07) 1h20分钟(面试官居家隔离好像信号有点差)

开端:自我介绍

1.着重讲一下报告生成比赛?比赛人数?

blablabla开始从任务背景》比赛指标 》选择方案 》模型选择和细节 》线上线下效果 》top1腾讯和top2平安科技是怎么做的》总结等

2.评价指标的介绍?

3.Rouge-1和Rouge-2的召回率怎么算?

4.摘要有长度限制吗?

  1. 生成可读性用哪个指标来衡量?

6.用了什么算法和模型?用的EDA数据增强的哪个?

7.对话有没有做变动?深入聊 数据增强

6.如何用置信度判断? 过拟合怎么解决

  1. 伪摘要的提升?1个点左右提升,线上线下的提升?

8.除了数据增强,还有什么方案?

9.介绍 BIO方案?模型的token是一个字还是一个词?

10.PGN与seq2seq的区别?

11.二阶段方案怎么做的?

  1. Bert、attention、transformer区别联系?

这里讲了很多,把transformer从输入到输出中间细节包括Encoder、Decoder、musk机制、涉及到Layer Normalization、Batch Normalization的环节都详细讲了。

13.为什么encoding中直接加position位置信息能work?为什么不用一个变量让他剃度学习呢?

14.self-attention的 多头注意力的作用?好处?是不是越多越好?

  1. Bert的优缺点有哪些??

四个优点,缺点:长度限制,语言改进tag,

16.把8个头改成16个头?模型的参数数量有什么变化?QKV的矩阵维度是多少?原来和改进后是多少?

16组QKV。 _16*_768。

17.LSTM对于梯度比RNN有什么改进?RNN梯度消失的求导有什么影响?RNN梯度消失了,梯度还有吗?是否为0?

  1. LSTM相对比RNN有什么优点?

快车道,上下文,Forget gate等

  1. 代码题

最长公共子序列 (因为之前提到了rouge-L指标里面有最长公共子序列,就让我手写实现了)

最长回文子串

③字节跳动-三面-主管面(03.11)

面试官给我感觉的气场很足,看上去很有远见卓识或者很会带人。面试的体验也是挺不一样。

1.说一下你之前没有讲到的一个项目或者比赛?

因为之前一二面聊的比较多是比赛的东西,然后就跟面试官说聊下项目:从任务背景》评价指标》根据背景和指标选用的方案》模型细节》线上线下效果》具体部署平台,讲了下自己之前算法项目的经历。之后大部分时间也是交流项目。因为讲之前有先概括说一下,面试官也很快理解我的东西。

2.为什么没有顶会论文,说了下后面在投COLING了,讲一下低频算法

把将要投的论文idea给面试官说了下,又不敢透露太多毕竟还没发(艰难)

3.问到说有没有了解过字节范,问我如何在技术上追求极致?

聊了下在在自己垂直领域用飞书构造领域知识库的经历。

4.实现无序数组抽出其中 Topk的一个数?

手写快排+最后优化成O(n),基操了。

写完面试官说我说话太快了,我觉得可能是因为他是北京那边可能口音听起来有点怪,本来以为有点凉凉。然后又说可以去北京带我。感觉又被捞起来了。

ps中间一个小插曲:三面面试官也是挺不容易的,好像是那两天刚好字节本部发生疫情其被隔离了,然后三面面试时候突然有人敲门,然后面试官被叫过去做核酸emmm回来后跟我说是做鼻拭子说很酸爽,让我等他缓一下emmm

④字节跳动-HR面 (03.16)

催了几次,然后16号中午11点多给我电话,说北京那边缺人,叫我去北京干活,待遇也是字节标配了。

也不算面试,就直接说待遇,然后说去就给发offer。

大概1点多收到入职邮件,就这样前后花了近2周多面了三次终于斩获了字节算法offer。(三次面试的经历就字节和百度了,百度那个也oc了,个人感觉字节百度算是效率最快的了)

三. 总结


  1. 简历非常重要,非常重要,非常重要,可能要改自己的简历几十次并且让大牛或者导师帮忙看改简历,且一定要在面试前把自己简历上的东西确保都弄懂了。面试只有最多不超过1小时的时间,面试官要在有限的时间考察一个应试者,只能从简历入手提问。尽管技术知识千千万但总有自己不会的,这时候就要善于把会的放前面,不会的尽量不写或者不引导面试官问,而是把面试官引导到你会的技术的层面来发问(这里又涉及面试的大学问,篇幅有限就不赘述了)。
  2. 简历没问题了,就把涉及的比赛、项目、论文分别用**一张纸(杰哥推的秘籍)**写满相关的可能问题并做好提前的回答。基本上面试都是先聊比赛、项目、论文,或者面试官问你觉得做的最深入的是哪个然后深挖,这时候尽可能聊久点。
  3. 聊久点点好处是能压缩后面面试官问算法八股的时间(如果论文、比赛、项目、实习全都没有,那就只能做好面试大半小时聊算法八股的问题,感觉最好还是争取搞个小项目放在简历上好给面试官聊更好,不然人家就只能跟你聊八股了(摊手))。
  4. AI算法基础八股这个就靠自己记忆实践了,无非就是Attenton、Transformer、Bert、LSTM、RNN、CNN、ML各种模型细节讲解以及一些常见 炼丹问题的解决办法,特别是Attention必考八股了。这里不得不提一下我的同门biu,他提出的 paper式面试八股秘籍思想很有料,核心原理是用写论文的思想来在面试回到问题,比如问到transformer为什么要用position encoding,他教我说在表达的时候要突出你与其他面试者在思考上的异同点,相当于让你在不同时空与竞争者pk,要怎么表达对于这个问题的理解才能比其他人讲的更出彩是个好问题。即“能按照八股回答好这个问题”和“能对比竞争者的八股回答讲解得出自己船新的理解并在不同时空对比其他竞争者在面试官的记忆里讲的更好”是有gap的。
  5. 字节内部有字节范(不懂的可以去搜下),在面试时候结合字节范来回答有加分,在主管面的时候亲测有加分。
  6. 据说字节的coding难度国内很顶了,上来就是leetcode-hard级别,但是其实出的题也有些也是高频的,把常见 贪心、动规dp问题(卡哥动规五板斧yyds)、链表、二叉树搞懂,做点高频的编程题如 编辑距离、接雨水、子串子序列、topK问题并深挖不同的解法有益处。个人强推 卡神随想录codetop编程网站。
  7. 一定要早投简历,早做准备。话虽如此,但是准备肯定是不可能有充分的时候,所以一旦简历搞完》即刻就海投,先投2-3家小公司面试试试手,然后直接面大厂中厂积累经验。
  8. 春招的努力好比是跑毒初赛,有了实习,等秋招才有机会撬动更好的offer!
  9. 又回到简历:切记简历上的东西尽可能垂直,感觉会有加分。

最后引用一句话自勉:“ 年轻人,你的职责是平整土地,而非焦虑时光。做三四月的事,八九月自会有答案”。

关于我

你好,我是对白,清华计算机硕士毕业,现大厂算法工程师,拿过8家大厂算法岗SSP offer(含特殊计划),薪资40+W-80+W不等。

高中荣获全国数学和化学竞赛二等奖。

本科独立创业五年,两家公司创始人,拿过三百多万元融资(已到账),项目入选南京321高层次创业人才引进计划。创业做过无人机、机器人和互联网教育,保研清华后退居股东。

我每周至少更新三篇原创,分享人工智能前沿算法、创业心得和人生感悟。我正在努力实现人生中的第二个小目标,上方关注后可以加我微信交流。

期待你的关注,我们一起悄悄拔尖,惊艳所有从双非渣硕到字节算法岗,很强_百度_03