#1 如何招到真懂GenAI的人
“Transformer大模型的本质是什么?”
ChatGPT给出的一句话总结:Transformer 大模型是一个基于注意力机制的通用函数逼近器,它通过全局信息路由与非线性变换,将序列建模为条件概率分布,并在大规模训练中学得复杂模式与知识。
这段话听起来很有道理,在总结文字的任务上,chatgpt比人强多了,还能生成各种花样。但能说出这句话代表能出活吗?当然不是。不论什么背景的面试者,平时都很容易看到这些话题的讨论,所以即使没做过能拿的出手的东西,也能吹上一堆。设计面试时如果不谨慎很容易掉入这个陷阱,导致无法挑出真正能干活的人,而是最会忽悠的。对于其它领域,会忽悠也许是强项,甚至在大厂不会忽悠根本上不去。但这几年在竞争最激烈的GenAI领域反复出现不懂的“leader”几个月带崩团队一手好牌打烂的案例,最惨烈的是Llama4。这也是为什么Alex被小扎拉去管一堆researcher,业界一片不看好的原因,因为他没真正干过,靠传了几手的知识去lead别人无法获得信任。IC影响力小一些,但招几个不懂的进来也会极大地拖后腿。大公司如Meta、Apple还能一次次reorg换人折腾,小公司是绝对承受不起的。
我认为我们公司虽然比不上顶尖foundation model公司,但也算认真搞AI的。来分析一下我们的招人思路,抛砖引玉。几个前提条件:
1.只谈技术问题,因为给不了钱招不到人之类场外因素的不在讨论范围。假设来面的有一部分是真懂的。
2.只谈严肃的模型训练。现在市面上大部分startup都叫xxx.ai,实际可能只是做些相关的东西比如data pipeline,或者prompt engineering+RAG的chatgpt wrapper,最多做一点垂类小模型微调,这类工作不是真正的训练模型,需要排除掉。
3.只谈Transformer based模型,不讨论已经很成熟的搜广推之类的其它ML方向。
3.招来的人要能立刻上手干活。我一直说GenAI目前是“你行你上啊”的阶段,只要不是太蠢,放在一个好的环境里至少工程方面肯定能学会。但一般情况下我们不招看上去很聪明却没有相关经验的人来慢慢培养,即使newgrad都不太会开这个口子。infra方面市场上的solid engineer挺多,比如面到的有些搞large scale job scheduling或stream processing,我相信他们有能力学会,只缺乏转行机会,但只能忍痛割爱。
真正的模型训练需要什么技能呢?主要有以下几点:
1.Scaling。因为有scaling law的存在,模型小了能力本身不行,导致只有训练过几百B大模型的人才能了解模型的潜力,有一些宝贵的domain knowledge。有些researcher受限于资源,无法在大模型上充分验证idea的真实表现,是巨大的劣势。
2.SOTA Algorithm。GenAI领域日新月异,每几个星期就会出现一些特别有意思的论文。即使很感兴趣愿意阅读,不持续做训练工作的人肯定无法跟上业界的进展。
3.Hands on coding。真正走在业界前沿的话,没有靠谱的开源框架拿来开箱即用,coding能力是必须的。很多时间需要自己实现论文里的算法或改框架,真训过模型的人不可能手生,不考coding会失去重要的signal。
所以面试会针对这些进行设计,一般粗略地分成两个role:research和training infra,面试时的侧重点不同。而且跟传统面试不一样,AI的范围太广,需要针对candidate的背景去问,绝对不能用lc形式的题目去判断水平。
先说training infra。
scaling: pytorch distributed,各种model parallelism,往深了还有cuda kernel等压榨显卡性能的手段。
algorithm: 虽然不需要研究,但可能需要在框架上实现paper里的algorithm,pytorch必须熟。
考coding时让写一下相关的,比如MoE模型一层的EP rank间如何通信,是真的干过还是简历吹牛一目了然。我面过一个烙印各种知识性的问题都答的不错,看到他简历上号称lead了某platform的long context training,正好我在做这个,就喊他手写一下sequence parallel的伪代码,他就直接GG了。总体来说这个职位还是偏infra,考察起来相对容易。问candidate项目的bottleneck是什么,用什么方法解决,几句话就可以大致判断做到了什么程度。
research的水分就大了。因为ML工业化至少有20多年,各种擦了个边的阿猫阿狗都敢跳出来号称是GenAI researcher。贴近我们工作内容的coding题是找一篇比较新的SOTA paper,让candidate实现一下核心算法的伪代码,然后根据实战经验解释与其它算法的优劣比较。有些东西是模型大了才能体现出真实的效果,所以这方面没做过的只能瞎吹,容易看穿。research背景方面当然也不能让candidate随口忽悠,一般要做个发过的paper的presentation讲出贡献细节。
市场有太多简历包装的很好看的调参侠们,实际上只是下载一个开源框架搞点数据训几B小模型看看曲线的所谓AI Researcher Scientist,没有任何research能力;或者在大厂混过data pipeline组然后title叫MLE,实际没有distributed training的实战经验,这些人都绝对通过不了我们的面试。我们的问题是bar太高,看上的人基本一手OA同级的offer,包裹是秒杀我们的,招人异常艰难,不得不反思,来倒倒苦水。最近连续两个月每天辛苦搬砖之余,每周还要面几个人,到后来跟同事讨论某个candidate的表现都得先查一下自己写了啥feedback才能想起来说的是谁,实在身心俱疲。偶尔碰到水平很不错的candidate,恨不得当场哭求赶紧来带帮我们。
从招人的角度再回顾一下如何抢进赛道喝口汤,别人的视频通俗易懂:站内帖子:普通程序员如何转行为高附加值的AI Engineer 。那个视频缺乏一些具体技能的市场稀缺性的细节,我的帖子是非常好的补充。如果有拿的出手的research成果,paper能直接甩别人脸上的那种,多半已经被小扎reach out了,目前还没看到哪位来本论坛指点江山,如果有机会很希望能聆听大佬的教诲。而绝大多数人不是这样的牛人,所以有志者要针对市场需求去培养技能。我认为现在市场最紧俏的人才,首推能在SOTA算法的基础上真正提高大模型的实际产品能力,其次写过对应的大规模训练框架,以及没有提及的深度推理优化和多模态专长。其它在边缘蹭一蹭的职位比如搞服务器调度(job scheduling / storage / networking)、data pipeline、传统ML算法、AI product frontend/backend的附加值都很有限。因为GenAI整个stack已经非常复杂,方向很容易选错,进一个实际上不掌握核心技术的所谓AI组,白白耗去至少一两年才有机会跳出来,是非常frustrating的事。我个人就有踩坑的惨痛经历,所以很理解大部分人没勇气迈出转方向的一步。
反过来再看如何挑选公司,也是同样的道理。面试时如果只问些假大空话题,比如现在AI模型有什么局限(如果身边有人高谈阔论只讲这些而不敢涉及具体算法的实际应用效果,不敢说百分百,99.9%的概率他其实是不懂的),或者拿些QKV分别是什么意思、loss不收敛怎么办的八股来考(小红书上一堆这种题),绝对是red flag。大概率这公司的人本身就不懂,才只能问这些,按网上题库质量参差不齐的答案去打分。我觉得不妨参考一个很简单的指标,就问他们训练多大的模型,有多少卡。基本上这个公司/组的能力你就了解90%了。过几年怎么样我不知道,但现在真金白银买卡烧钱的,才是能学到最多东西的好地方(大厂的卡总数虽多一定要看具体的组)。如果平时连几百张GPU都摸不到,一定要谨慎考虑。