首页 > 开发,算法岗 字节、华为、百度、阿里等提前批面经
头像
黑大帅201805191425219
编辑于 2023-06-15 14:37
+ 关注

开发,算法岗 字节、华为、百度、阿里等提前批面经

捞一捞内推贴,长期收简历:https://www.nowcoder.com/discuss/487349636437458944

-------------------------------------------------------------------------------------------------------

商汤:视频编解码

一面(一小时):

面试官先自我介绍(比我早几届,算同龄人),然后让我讲项目,顺着项目问知识点。

1.视频编解码:我总共也就做了四个月,稍微问了一下就过了

2.ai的底层优化:问了simd和缓存的一些知识点,包括内存对齐,缓存一致性等,比较深,这块答的还行。后续追问了很多c++的东西,本来我很有信心的,毕竟去年背过https://www.nowcoder.com/tutorial/93/a34ed23d58b84da3a707c70371f59c21

没想到忘了不少,还有一些问的比我知道的多一点,比如函数传参,参数在内存里的顺序是正着放还是倒着放(这个其实偏汇编了)

3.讲了另一份实习的bilinear模型,交流了一下思路

4.我另一个实习的项目名字叫transformer,问我是真的transformer还是只是名字叫这个(三年前的项目,当时transformer好像还没出现吧)

5.华为软挑:赛题比较复杂,solution是用的启发式搜索,讲了几分钟感觉讲不清楚就跳过了

6.算法题很简单,5秒钟说了思路就没让我写下去了

7.反问,介绍了他当年是如何选择offer的,给我讲了一些人生的经验,商汤会更偏research一点。以及吐槽了一下在intel实习一年了不少基础居然还不会(我有点摸鱼了)

整体上面试体验很不错,和华为提前批的面试对比一下,华为的面试基础部分稍微简单一点(可能是我答的不好没继续深入),算法题华为会更看重一点(题一样简单,但是会考察coding习惯)。感觉如果前面基础答的不好,算法题做的漂亮应该也能过。

面试反馈:过后续面试应该没啥问题,看职业规划和怎么选offer了。

二面(一小时):项目撸了一遍,算法题写了一个avg_pool和iou,做的很随意,优化也没做,iou有个细节错了也没指出。整体很愉快。

三面(50分钟):项目讲了二十多分钟,看得出面试官在强行拖时间,后来说问点c++基础,上来就是链接和编译,还有内存池这种,连蒙带猜还能说个大概。最后时间还有很多,一脸坏笑的面试官说我acm打的不错,来道算法题吧,结果居然只是个k路归并。

10分钟秒了,还有时间就又让我写了个并查集,最后还剩快十分钟结束了。感觉以后做题,还是需要做慢一点,剩下时间够写两道的,也尽量做第一道的时候假装多思考一下。结束的时候说hr面这两天就会来,hr面要是我过了就不更了,挂了就更一下

四面(40分钟):team leader面,聊了一下自己的发展路线和一些宏观方面的点,比如怎么做research,对research和工程的看法如何,未来更想做哪个方向之类。

字节:ailab的广告推荐

怎么hr就给我推到这个组了

一面(45min):问项目,问我ai算子怎么优化和实现,问我avx512细节。

基础问了一个resnet,为啥要res,我说解决梯度消失。为啥会梯度消失,我说求导求多了,他问为啥求导求多了会梯度消失,我¥x*^$$&#。。。

算法题给了一个编辑距离,要求直接运行出结果,15min秒了,没什么好说的。

最后时间还有多,让我讲讲编解码。最后我确认了一下hr帮我推到了哪个组,我说你们组跟我方向感觉不太对口。

aml机器学习系统研发:

一面(50min):问项目,20分钟,当中想深入问一些网络和cpu体系结构,然而这两块我基本没看过,直接跳过,后面半小时做题。上来先是两道python看代码说结果,然后三道c++题,素数判断(写完后问我sqrt复杂度,我说牛顿迭代是二阶的,然后根据精度要求反推复杂度即可,没具体算),lis(不要求优化到nlogn),中序波兰式(只考虑加法乘法和括号,细节忘光了,面试官提示了括号怎么处理才顺利写出来,光这道题就写了20多分钟QAQ)

二面(40min):自我介绍的时候面试官麦有点不太好,他说:没事,反正待会就做题了。第一道:快排和并查集二选一,我选了并查集,秒了。第二道:拓扑排序,秒了。

三面(45min):自我介绍,大致说一下项目。算法题:二叉树选择权重和最大的结点,要求选择的任意两个结点不相邻。秒了,最后15分钟问了一些进程线程之类的八股,被我强行扯到项目上。面试官是个巨好看的小姐姐,声音还超好听,说话超温柔,我好想再面一次啊,我能不能这次挂了然后正式批再投一次这个部门啊。

四面(45min):leader面,第一道是场景题,挺有意思的,具体题目就不放出了,一开始想了歪门邪道,面试官指出这不太数学,让我重新想一个方法,想了几分钟做出来了。第二道写了一个LFU cache,没写完,大致看了我的思路,指出空间复杂度较高。

PS:二面到四面是一天内面完的,百度的二面也在这一天

华为:存储算法,软挑拿到笔试绿卡

一面:(45min):上来一道dfs,然后问项目,挨个问过去,问都不深,聊的很愉快

二面:(45min):问项目,问的比较深,重点问了三级缓存和一些c++基础,大多知道,但是不够熟悉,比如内存对齐的具体规则,缓存一致性问题。算法题是桶排序。

三面:(40min):面试官是21级的大佬,感觉方向不对口,全程让我讲项目,过程中他的电脑还没电一次,讲了半个多小时,也没啥互动,很郁闷。

总结:项目多且对口会聊的很愉快,算法题都很简单,考察的是coding的细节和代码的优雅程度。

百度:ai算子优化

一面(45min):全程聊项目聊产品,有趣的一点是官网写着hc只有5个,但是我问面试官的时候他说这方向还都蛮缺人的。

二面(40min):聊项目,问了一丢丢基础,多态继承,然后c语言如何实现多态继承,问了一点点算法,最长连续子数组。没了。

三面(15min):聊项目,没了。

虾皮:上海 算法工程师

只做了笔试,而且和商汤三面冲突了,只做了四十多分钟,本来不想写的。可是这个笔试槽点实在太!多!了!选择题八股就算了,编程题编译错误不给错误信息,然后用c++long long直接编译错误,第二道编程题样例给的大写字母,但是实际包含小写字母,我猜了20分钟才猜对条件,绝了。搞得第三题没时间做了,很气。

笔试过了,面试的时候我一定要跟他们反馈一下笔试的问题

一面(1h):做完自我介绍开始做题,上来写个二分,秒了。后面一道是根据“[[1, 2, 3]]”这样的输入计算矩阵的shape,按照面试官的思路没写出来,最后花十分钟写了个自己的思路,没时间调了。业务上他们做的推荐算法,跟我完全不对口,一些ml的基础我也早忘了,等待感谢信中。

感谢信没等到,等来了二面的预约,绝了,这都能过。

二面(50min):写一个sqrt,链表找环,链表找环的入口(没写出来,思考方向是对的,不过式子推起来好麻烦QAQ),聊项目,中间穿插八股文,比如问了梯度消失和梯度爆炸怎么解决,反向传播怎么传的(我就说了链式法则求导,没具体推),bn层的参数训练和推理时的区别,面试官说会反馈建议我做机器学习平台方面的。

两轮算法题都没做出来居然也约hr面了,绝了,看来今年秋招是不太能有面试能挂了。

hr面(20min):hr小姐姐很硬核,居然把我简历上的项目一路问过来,侧重点是业务场景,然后介绍了一下上海这边的情况和人数和计划招人数,说秋招是统招的,进去再根据情况分岗,跟我说面试通过等意向书就行(还以为面试表现很差要泡池子嘤嘤嘤)

拼多多:算法工程师:笔试ac3

一面(30min):15分钟介绍自己做的最好的项目,之后两道开放的场景题:计算两个向量的内积(我考虑了是用cpu还是gpu,加速手段不同,可能是稀疏向量),垃圾邮件分类(前不久刚打完微信大数据赛,我直接拿那边的模型过来套,相当于邮件被标为垃圾邮件的比率预估)

这里转了组,转成后端,方向跟我现在做的底层加速比较match,之前的面评保留

一面(30min):10分钟做了个链表加法,不需要run,面试官大致看看,然后聊项目,说方向match,过程比较愉快。

二面(1h):全程就做了一个题,写一个函数,控制最近一秒之内请求次数不能超过1000次,然后要求低内存,低延迟,写的非常艰难,反复核对需求,最后做出来9成,缺陷是算法对高精度时间的把控略有不足,但是想法基本上对了,后续就是找时间和空间的平衡就行。面试官做纯后台的,感觉懂网络更多一点,但是我网络完全不会,别的没法问。

三面(40min):一开始讲业务,然后问我虚函数实现,原理和应用场景,我直接说我以前做项目哪个地方用到,然后细节没记清说错了,他说我这块完全不理解,我就有点生气,太久不用忘记难道不是很正常么。后面他让我讲讲操作系统的虚拟内存,一开始我就直接说不知道,后面想想不太合适,就跟他讲了一下页表和逻辑地址虚拟地址啥的。反问阶段他问我有没有用过pdd,我说我从来不网购,都是我妈在买,问我想不想来,我说不想来我面试干啥。我问了他们硬件是gpu多还是cpu多,以及一些业务方面的问题

hr面(30min):都是常规问题,问我当时转专业准备了多久,我说没有准备啊,这不是有手就行吗。最后还问我有没有女朋友,这是在暗示什么吗?

阿里云:云计算工程师

简历面(30min):我先介绍我的项目,介绍完之后面试官介绍他们的项目,然后说后面大概还有两轮面试,会做点题啥的。算了再写详细点吧,问项目的时候问了一下我的项目是否有系统性,以及我的方法论,做优化的流程是怎么样的。

一面(1h):一开始吹逼了20分钟项目,对我的推理加速和华为软挑比较感兴趣,然后问了我三个知识点:进程线程和协程(线程共享哪些资源),内存泄漏和内存溢出(扩展到智能指针),stl里list和vector的区别(居然说我可能不太了解,太小看我了8)。最后做算法题,第一道矩阵中的最长四联通路径,8min秒了,后面看时间还有很多,问了个最大合法括号匹配(一开始想复杂了,以为要树状数组优化,纠结了三分钟想通了直接秒了)。反问阶段:你们这边定级到a+会考察哪些能力。

做了个笔试,15min就ak了,是不是以前爆零太多,降低难度了

终面+hr面(30min):面试官开会迟到了,hr先上,问了一些项目的业务相关的问题,比如业务需求是啥,我做了啥,体现了啥能力之类。然后boss来了,上来扯些有的没的,我提到当中gap了一年玩创业,做教育游戏,然后他就开始深挖,我被逼的没办法说之前想通过汇编做火焰纹章的改版,因为有个修改器提供了汇编的接口,他说直接c++改内存就好了,为啥要汇编,我说不然做地图啥的不方便orz。后面问我怎么看瓶颈,我说用vtune,他问我vtune的机制是啥,公司前几天有training但是我没听懂,他说是利用时钟中断,他又问我单核多线程咋实现线程中断的,对不起我不懂中断orz。然后问我未来项目打算做啥方向,我说想从内存入手,他问我了解过哪些,我说就看过stl的内存池实现,他说知不知道内存分配算法,像兄弟算法之类的,orz这是啥。最后问我有没有看过tf和pytorch的源码,我说我没看过,其实是想看但是没看懂QAQ。hr最后说8月底到9月初出结果。

终面是所有面试下来难度最大的一轮,可能是之前反问透露出我想要a+的想法,面试官完全没跟我客气,不过也给了我很多指导方向,整体上体验还是很不错的。

美团:大规模智能搜索架构搭建

校招找不到对口的组,就投了个北斗。

一面(40min):全程聊项目,但是问的都不深,主要考察广度,啥rpc,哈希一致性这种我都没听过,还问算法方面的,面试官解释说上面的要求是算法和工程都要会,我反问了一句,工程了解模型结构就行了,了解原理是什么原因呢,他并没有直接回答上来。感觉挂不会挂,但是概率会转普通批,北斗要求还是高。

一面(1h):之前的居然真的挂了,这次是新部门捞的,做推荐精排的。一上来吹项目,然后问了我一些方法论。基础的话问了我cpu资源没吃满可能会是什么问题,一开始我没反应过来,因为我用openmp一般不会碰到这种问题。后来回过神来我反问了一句:你是不是想问线程负载,然后他就说可以了。后面做了一道算法题,题很简单,最后有一步没写出来,他说思路对就行,时间给够肯定能调出来,他每次都会问同样的题,所以就不贴题了。

二面(30min):一开始自我介绍,面试官问我数学系学的那些和工作中的看起来是不是关系不太大,我说不能说关系不大,只能说毫无关系。后面聊了一下项目,做了一道题,让我用快排写topk。我说快排太慢了,我给你写个更快的,然后大概讲了一下思想,就pass了,最后面试官说三面面试官会很能聊,二面就早点结束了。

三面(20min):被转正式批了,面我的是推荐系统架构中负责搜索算法的算法+工程负责人。一开始做了自我介绍,然后对我的转专业非常感兴趣,后来就聊了一些职业规划,我问了一些北斗计划的问题,了解到他们组推上去的候选人和自身的差距。当中穿插了一道算法题,01矩阵中全为1的矩阵的最大面积,只是让我说了一下思路,秒了。然后让我等后续流程。

腾讯:腾讯云

本来投的优图,说好三天内锁部门,结果当天就先被云锁了,可能组不锁吧。。。

一面(30min):聊了聊我最近实习给他们做的优化,说能效率是pytorch的若干倍,面试官说我用的那些优化方法他们三年前就在openvino上做过,我表示很不服,我说openvino的我看过,有的op直接封装的onednn,效率稀烂,当下举了一个topk的例子,这个我写的比堆肯定要快得多。然后就结束了

二面(20min)电话面:讲了一遍项目,问了简历上的竞赛,算法的话问我排序算法的选择会考虑哪些因素,然后问我是不是有转正保底,我说有的,想冲一下大咖计划,看看后面能不能加一下面试难度。

收获秋招首挂。

全部评论

(16) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐