百度腾讯提前批阿里校招面经
百度推荐提前批:
好像是手百feed
一面:
自我介绍,项目,论文,了解transformer吗?讲一讲transformer,现在最好的模型是哪一个?了解GBDT吗?知不知道SVM的损失函数?推一下LR的导数吧。
算法题1:求两个字符串的最长子串长度,abcdef和acde最长子串为acde。
dp[i][j] = dp[i-1][j-1] + 1 s[i] == p[j]
dp[i][j] = max(dp[i-1][j], dp[i][j-1]) s[i] != p[j]
算法题2:设计一个程序,对扑克牌进行洗牌,尽可能的公平。(可以使用随机数生成)
(1)求全排列,使用随机数选择全排列的可能O(n!)
(2)每次使用随机数选择一张牌,之后迭代,选择后一张牌O(n)
总结:不了解SVM和GBDT,第二道算法题没写出来,LR的交叉熵求导不熟练。
二面:
稀烂。。。
自我介绍,项目,了解BN吗?了解正则化吗?了解BERT吗?SVM和GBDT的优缺点是什么?
算法题:求立方根。。。写的有bug
开放题:
(1)推荐模型对细粒度的数据效果不好,比如搜索3岁小孩辅食是什么,出现7岁小孩辅食是什么,如何处理?
(2)用户对某些推荐点击率高并不是因为他符合要求,而是排名在前面,如何消除这种偏差?(把位置信息作为一种特征训练模型)https://blog.csdn.net/beilizhang/article/details/115707058
总结:不了解树模型,推荐算法中的常见问题不了解。
一面:
非常看重基础知识:C++,CUDA,并行计算,tf,计算机网络,推荐算法相关
归并排序,代码思路,和快排的比较,项目,最近一段时间中解决问题的难点,了解C++吗?C++中指针和引用的区别?CUDA有用过吗?有没有了解过分布式和并行计算的一些东西?平常tf用的多还是pytorch用的多?tf和pytorch的区别在哪?计算机网络的五层结构?应用层有哪些协议?知道哪些推荐算法?讲讲wide&deep吧?deep的好处在哪?平常有没有用linux?常用的linux的命令有哪些?反问
二面:
30min(结束后5分钟就凉了)
介绍一下项目吧。为什么用目标检测的方法,不用基于强化学习的方法?当时你在数据集商训练好模型需要多长时间?有没有尝试其他加速方法?(我猜他想问有没有尝试用多卡多节点训练?当时没说。。。)了不了解c++?假如你在服务器上部署了一些程序,现在突然发现服务器的CPU占用不正常,你会如何排查?(top命令查具体进程,根据具体进程查程序代码,其实应该说先查日志文件的)懂不懂进程通信的一些方法?(管道,命名管道,共享内存,信号量,消息队列)
算法题:
统计1到n中所有数字中1的个数
总结:进程通信不了解(估计就是因为这个挂的),不了解Mapreduce和多线程等相关知识,其次在面试时没有掌握主动权,中间被打断一次之后应该继续说自己项目的。
挂的原因:进程通信说错了(管道,命名管道,消息队列,共享内存,信号量),完全没说pytorch分布式训练的内容,排查CPU占用异常没答好(查进程,根据进程号查底下线程,根据堆栈的报错信息或输出信息定位问题代码位置)
阿里校招:
夸克一面:
项目,说说你论文的改进思路,为什么你的改进思路有效?说说你了解的目标检测器。说说你研究方向里当前sota的方法,有尝试改进当前的sota方法吗?怎么改的
概率题:
(1)一副扑克牌54张牌,分成3个牌堆,问大小王同时在同一个牌堆里的概率
(2)一个很大数据流,有n个数,现在想从这n个数中等概率的抽k个数,设计一个方法。(维护一个k大小的池子,每碰到一个数设计方法让其替换池子中的一个数。生成2k中的一个随机数,若在1到k则替换,否则不替换?)
反问:部门主要做啥?是不是经常用Hadoop相关技术?
二面(已凉):
一个大数据一个场景题:
(1)现在有几亿条url数据,如何从这几亿条url数据中找出出现次数最多的10条url?(对所有url进行hash,将所有数据分片为多个小文件,之后使用hashmap统计每个小文件中的url出现次数,最后对所有小文件的hashmap结果使用小根堆或者使用排序)
(2)现在有一亿张图片,图片中很多是类似或者重复的,如何筛选掉大量重复的图片?(首先将图片缩放至相同大小,之后使用CNN或者滤波算子提取图像特征,然后将图像的特征按照位置顺序存储为字符串,每次从所有图片中抽出一张图片和剩下图片比对特征值字符串,按照字符串的相似程度进行排序,将相似程度高于90%的图片当做相同集合)