【暑期实习】阿里云 AI Infra 二面复盘

项目深挖很多,也聊到了互联和软件硬件协同

最近面了一场阿里云的 AI Infra 二面,整体感受是,这轮不是那种偏八股或者偏刷题的面试,更像是围绕项目经历一路深挖,看你到底有没有真的做过优化,也看你对自己后面想做的方向是不是足够清楚。开头还是常规自我介绍,我主要讲了自己现在在做的方向,包括 AI Infra、异构计算、底层性能优化,以及一些算子开发、图优化、推理优化相关的经历。后面的问题也基本都是顺着这些内容往下展开。

前半段主要是在深挖项目。面试官先问了我现在做过的几类事情,我把内容归成了三块:一块是算子优化,一块是算子融合和图优化,还有一块是一些稳定性问题和 bug 修复。这里他问得比较细,不只是让你讲做了什么,而是会继续追问你怎么定位、怎么判断、怎么验证结果。比如我提到自己修过一个推理/训练过程中显存异常和长稳问题,他就继续往下问,这个问题原来为什么会发生,你具体做了什么,为什么修完之后就能稳定。这里我主要讲的是一条图优化之后的链路里,本来应该走 host 侧的 shape tensor,在 int32 场景下被错误地当成了 device tensor 去传,后面读取 shape 的时候读到了错误地址,导致维度异常,最后训练失败。我的处理思路是先拉日志、对照计算图逐条定位链路,再把这条链路里相关的 shape 信息显式约束回 host memory 路径,避免 host/device 封装混乱。这个地方其实挺像典型的 infra 问题,不是“代码写错一行”那么简单,而是数据语义、执行路径和图优化一起叠出来的。

后面他还追问了性能优化怎么做。我举了一个加法类算子的例子,重点不在算子本身有多复杂,而在于你怎么从工程角度把它做快。我的思路是先看它有没有可能复用已有输入 buffer,如果当前输入没有其他依赖、生命周期也允许,就不重新申请 output buffer,而是直接复用其中一个输入的存储。这样做的收益不只是少一次 malloc/free,而是把一整段额外内存分配和管理的时间也省掉了。面试官还继续问了优化前后效果、极限大概在哪、为什么这么估。我这里给的是,优化前平均耗时大概在 21 微秒,优化后能比较稳定地降到 12 微秒左右,在输入 shape 更规整的模型里可以做到 10 微秒以内。如果继续往极限压,可能还有空间到 6 到 7 微秒,但这个已经会明显受输入 shape 规整程度、调度开销和整网上下文影响了,不是单独看一个 kernel 就能完全决定的。

中间还问到了我做过的量化推理项目,主要是 AWQ 路线下的 W4A16。这里面试官问得也不是“你会不会量化”这么泛,而是继续往具体实现上压,比如 Linear 层怎么改、数据结构怎么设计、内存布局怎么处理、正确性怎么验证。我这里主要是从三个角度去讲。第一是权重量化成 Int4,激活保持 FP16,执行过程中会涉及权重反量化后再参与矩阵乘。第二是为了减少访存开销,会尽量做向量化加载,把更小粒度的数据一次打包读取,减少内存访问次数。第三是量化不是只看速度,还要做端到端的正确性验证,我会把量化后的结果和非量化结果做对比,看精度下降是不是在一个可接受范围里。这个部分我能感觉到,面试官不是在考你“知道不知道 AWQ”,而是在看你有没有把这个东西真做过、真想过。

再往后,问题就开始从单算子逐渐往系统层走了。他问到了多卡协同、卡间通信、NVLink、RDMA,也问了不同 GPU 生态的差别,还聊到了我怎么看现在用 AI agent 帮忙写代码、review 和梳理工程。对我来说,这一段的感受比较明显:这场面试不只是想确认你会不会写 kernel,而是想确认你是不是有往更大的系统层面去想,比如算子优化最后怎么影响整网,整网之外又怎么和多卡、互联、profiling、软件硬件协同接起来。整体答下来,我觉得自己相对顺的部分还是项目细节、排查思路、性能优化路径和开发 workflow;相对一般的部分,是更底层的微架构细节和更深入的多卡通信经验,这两块后面还得继续补。

#暑期实习##二面##面试复盘##ai infra##阿里云#
全部评论
佬 考虑我司么 考虑的话 可以看我主页帖子
点赞 回复 分享
发布于 04-11 14:44 上海

相关推荐

03-18 22:14
已编辑
香港科技大学 C++
那我认为字节的话,它最初起家能够获取成功的重要的因素就是它的推荐系统。那当时在国内也是相当于是第一个吃螃蟹的吧,那这个技术的基因其实是一直刻在公司的这个文化,文化的理念里面的,那我认为就是在字节做技术是一个比较好的选择,而第二点就是说我们去做一些策略,会做一些改进就是真实世界的数据会非常的脏,就是大家如果做过一些研究,可能也知道,就是真实世界的信噪比是非常非常的低。那我很难看到一些置信的结果。我其实根本无法判断我的一个改动到底是我是纯粹的随机波动,还是真的有显著性的影响。那我可以举个例子,我之前一份工作在做物流这个场景,我每天处理的订单量可能在万这个量级,但是我在字节这边刚刚也有介绍过,那我去做一些用户侧的一些工作。我可能每天能够干预到的用户是以亿这个级别去计算的,那我能够看到的算法的效果,我能够获取的真真实世界的单位其实完全不是一个level的。所以我觉得这个也是对做推荐算法特别重要的一点吧,就是我们会有一个更大的舞台。对,然后还有第三点吧,就是我认为自己他是一个比较比较勇于投入,就是饱和式投入的一个公司,就刚才也提到了,是一开始一做AI ML,做一些基础模型,那这个其实是需要有一些底子的。就如果说你现在是一个挣扎在生存线上,你可能还没有盈利的公司,但是显然不可能说我投入大量的钱,大量的人力资源,我去搞基础建设,我去研究基座模型,我去研究一些底层的算法,但是字节其实不是这样的。字节的话,其实在很多即使是一些业务的团队都会有一个专门的组织,叫做基础算法组。这这个也是我了解的一些信息吧,当时比较吸引我的一个信息。那么基础算法组他可能不直接对业务目标去负责,但是他会去做一些基础的模型的改进,基础算法的基础算法的研究,那就会让字节的这个技术一直保持一定的领先力。那我就觉得这种对基础的追求也是比较吸引我的一个点。好,谢谢desheng。对我可能是唯一一个校招,我是20年加入的字节,所以我是19年的校招。所以当时吸引我们呢,主要是有三点吧,就第一点,19年的时候,那个字节的时候,那个时候的体量已经非常大了,应该说是毫无疑问的中国互联网公司的这个头部的企业。然后第二点呢,是因为那个时候字节的整体的就是国际化业务的这个势头非常的好,就是如果说能一直保持这个势头下去呢,就是公司也受益,那我们功利一点的讲,就是员工也可以因为公司的发展而受益,所以这个也是比较吸引我的一点。然后第三点的话,是因为专业对口,我校招的岗位呢,其实是管理研究院下面的一个管理咨析师。大家学商管的时候,可能都知道字节的管理研究院其实是一个Inhouse的Team,然后,因为我本硕其实都是学管理的嘛,所以和这个岗位的需求是比较匹配的。主要就是以上,其实还有一点就是今天那个,发offer快真的很重要。我当时是十月底收到的offer,然后我就结束了我的秋招了,就没有再看别的机会了。所以替师弟师妹们跟那个说一声,发offer快很重要。说话人2 00:04:24感谢德胜这么实在的分享啊,确实是,是一个公司的招聘效率。那感谢几位学生的评,那接下来呢,还有一个问题想问,也是各位同学非常关注的,因为大家也是各个方向的这样一个代表嘛。很多同学也想说,我未来做智能也好,还是做算法,还是做运营做战略等等。那想问问,那在自己的这些职业方向或者说我们说的更大一点,那在一些这样一个公司平台,我们做这些职业方向有什么样的一些发展机会和前景,就是未来可能在哪里,然后那要不也先问问jinyi。jinyi:我是运营系列的同学们,其实我想很多人如果没有在大厂做过运营,可能会跟我在家中之前有一样的困惑,就运营到底是做什么的,听起来非常虚。那还有一部分有微点了解的同学,可能会觉得运营跟产品的算法战略比起来好像就是要低人一等,我们是不是老是做一些dirty work当的脏活累活,那其实不是的。来加入了这个之后,我才知道运营的岗位很多。这就意味着你的发展可能运营的天花板是相当相当高的。那从我身边的这些老板同事观察来看,我觉得第一个,你有向上走的空间。如果你是一个在工作当中发现自己有领导别人的潜能的人,是非常擅长管理工作的人,那你可以努力往上晋升,成为一个管理者。那如果你是一个喜欢挑战自己,喜欢做不同业务的人,那在运营岗位你是可以横向拓展的,因为运营它其实有点像一个,像一个圆点来,它可以有一个触手伸向一多岗位,你会跟很多岗位的同学打交道。如果你善于学习,你就可以吸取他们岗位里的相关的知识和经验。那你也日后可以活水去这样的岗位。比如说从运营转产品,或者说从产品转运营的同学也是相当多的。所以我觉得运营无论是纵向还是横向发展都是非常有前景的。另外还有一个问题,我想可能是做运营的同学,包括其实文科生非常关注的就是AI的发展,会不会取代我们。经过我这10个月的字节的体验,我觉得不会。因为首先AI很重要,如果我们想要成为当下工作环境的一个Top Performer,我们一定要善用AI工具,那我认为AI不会取代我们,因为AI没有办法立体的观察这个世界。而你无论是做运营还是做别的岗位,都需要你去跟人打交道,而且你需要去理解各种各样的能看。要有这样的能力,有去发现问题解决问题的能力,才是我们最无可替待的能力。我相信我们北大的同学也是一定能做到的,所以不用太焦虑这个问题。谢谢。那请gigi跟大家分享。gigi:我觉得就是像战略分析或者商业分析这个系列的话,他的发展前景就是我校招校招的同学,他首先可以帮你把职场的第一份工作的基本功做的很扎实,就是因为我们这一个职能的同学,他是需要非常高阶复杂的分析能力的。然后这个分析能力就涵盖很多方面。就比如说,你是需要一个向外看的一个市场洞察、行业研究、专家访谈的这些能力,然后向内你是可以去销售、设计的这些能力,然后同时你是需要去然后去向上传达你的观点,向下传达去沟通汇报一个能力,所以就是它可以作为第一份工作,把你的这个,市场的基本功做的很踏很扎实,然后如果向后发展的话,它其实整个深度和广度都是很宽的。就往深度方面的话,比如说你的分析很好的话,你可以以后成为一个分析的leader,你可以自己带一个分析团队,然后去承接不同方向的一些分析课题。然后同时,如果你不想再做分析了,你想做更落地一点的事情的话,其实你也可以深入业务里面去成为一个业务的leader。就现在这种案例也很多,就比如说抖音电商现在大家店的这个负责人,他以前就是抖音那个战略部的分析leader的,所以他其实是可以有一个丝滑的转化的。然后从拓宽的角度来讲,就是你如果不想做电商了,那么其实它整个业务逻辑都是可以泛化到整个交易型的业务的,就是它的逻辑是相通的,比如说像外卖交易,生活服务的交易,然后汽车交易,房产交易,这些都是可以相通的,就无论你去到哪一个业务,你用的这一套逻辑都是比较高度重合的。当然,有可能你也不想再做交易型的业务了。比如说,你可能对AI其他的东西感兴趣,也是可以复用整个分析的方法论的。你只是是需要学习就是新的业务的一套指标体系。那如果你学好了以后,就是其他业务,你都是可以比较丝滑的进行分析的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务