24年上半年人生小结

罗马的教皇和深圳的马化腾的共同点是什么?

他们现在应该都很热。

被四季如春的湾区宠坏的我,只觉得今年走过最长的路,就是6月罗马的石子路。35度的石子路。这第一天citywalk,就在广场上见证了伟大的意大利队欧洲杯出局。看得出来今天罗马人心情一般,遂决定溜回酒店。

不知不觉半年又过去了,又到了总结人生的时候 🙂

Life

我最近在努力做一个快乐的好人。

什么是好人?我不知道。但自从懂事以来,我好像一直学习的都是怎么做一个厉害的人,或是有趣的人。小时候还有济世救民为天地立心的情怀,读着武侠小说就想做个大侠,长大后耳濡目染的都是人善被人欺,等价交换,人要为自己而活。老好人和滥好人都变成了贬义词。

我好像背离了初心。现在的我,算不上一个好人。我性子有些急,嘴巴有点利,情商有点钝,是一个德行不足的人。这一年来,我每天反思的都是怎么精进自我,而很少思考怎么帮助他人。

在飞机上读《了凡四训》,心有所感。

“从前种种,譬如昨日死;从后种种,譬如今日生;此义理再生之身。夫血肉之身,尚然有数,义理之身,岂不能格天!”

虽然我过去犯下了不少过错,有时候对同事和父母不耐烦,有时候忙起来就冷落了朋友,有时候私下里乱吹牛逼口出狂言,但是以今日作为界限,诚心改过,行善积德,也犹未迟也。

毕竟我们自己对自己的认知和相信,是来源于自己做的每一件事情的。比如运动多了,我就是一个健康的运动的人;读书多了,我就是一个有文化的喜欢学习的人;干成事情多了,我就是一个行动家;做的好事多了,我就是一个好人。

我要在湾区开始修仙了(真是一个修行宝地呢)。修仙的第一步就是积累福报,从每天做好事开始。了凡四训的功过格里面说,“济一人饥”可以准一功,所以每天吃不饱的小伙伴们可以来找我,我请你吃chipotle。

那什么又是快乐呢?我也不知道。愤怒,伤心,和焦虑,这些情绪一出现我就知道了。只有快乐,很多当下觉得普通甚至辛苦的生活片段,回看的时候才觉得是珍贵,幸福,和有成就感的。

我是一个从小没怎么受过快乐教育的人。从小我被教的都不是如何开心快乐,而是如何做得更高更快更强,如何达成一个一个的目标,人生就像打卡节点一样。如果套用头脑特工队2里面的情绪,我似乎是anxiety和pride主导的,而joy被总是被抛在了脑后。

感谢有人教会了我,看到天上的彩虹,路边的花儿,晨间的鸟叫,朋友的小心意,也能很快乐。这对于一个INTJ来说真的挺难的。我专门在notion里面开了一栏记录“每天的快乐碎片“。几周后发现,记下的还是”游泳又学会了一个新姿势“,”猫猫又减了半斤“,“推荐信终于写完了”这些小成就,而不是捕捉到的生活中快乐的瞬间。

所以这是一个钝感的男孩,从零开始,学着感知生活的故事。

另外,记忆真的是个大漏勺。时间不仅会美化一切,还会把痛苦的回忆(熬夜赶project)变成快乐的(我怎么这么优秀)。这鼓励着我去尝试去做很多看起来困难的麻烦的事,因为不论酸甜苦辣,它们以后都会变成珍贵的回忆。

祝我修行成功。

事业

英伟达突破三万亿市值了。肉眼可见的感觉到,这个领域卷了起来,之前两年一发的芯片也变成了一年一发。

不过不夸张的说,Annapurna Labs 真的在蒸蒸日上:) 虽然还不能比肩英伟达,但是这一年来我们逐渐站稳了业界老二的宝座,和TPU一时瑜亮。这对于人数不到别人十分之一的我们来说,是个了不起的成就。能明显感觉到整个亚麻高层对此的紧迫感,从各个团队抽调强者和资源,短短半年Annapurna就扩招了将近一倍(还在疯狂扩招中)。

我们的mission是打破英伟达的垄断,democratize AI for everyone。所以我们一切都是对标英伟达,从自己设计芯片,自己设计整套软件栈(从编译器,深度学习框架,运行环境,到我们自己的CUDA),自己设计片间互联系统,互联芯片,和数据中心的交通算法,自己部署服务器。这套完整的技术栈加上和AWS强大的基建和用户基础,是我们和英伟达叫板的最大底气。

现在的差距在哪呢,其实硬件上很多方面我们已经不输甚至超过英伟达了,当然ASIC和GPU的底层设计思路差别很大不好直接比较。英伟达的护城河还是它基于CUDA的一套完整生态系统,是全世界那些基于CUDA写的库,是世界上成千上万习惯用CUDA来设计模型和优化算法的聪明人。

总结了一下,我们芯片现在干不过英伟达,还是因为我这块的工作没做好,任重而道远。啥时候软件做好做成熟了,用户体验打磨到最佳了,才是能真正华山论剑的时候。

(对不起,又打了个招人广告)

而处在这一切暴风雨中心的男人,我们Trainium的总指挥,那个永远精神矍铄的男人,那个默默扛下一切的男人,是一个让我发自内心敬重的人,无论是做事还是做人。

我曾经疑惑的问他,我未来该走什么样的路,并列举了团队里好几位我钦佩的大佬作为学习对象。他跟我说,他们都不是你,你也不是他们,你要走的只能是自己独一无二的路,一条深耕技术但又不忘沟通的路。必须在depth and breadth之间找到平衡,缺一不可。depth是静下心来屏蔽干扰去为团队解决最大的技术难题。breadth是横跨几个技术栈协调不同团队一起去做出项目。而最重要的是,无论做什么,都能从中获得快乐和成就感。

这一年来,我也从一个管理小白,被赶驴上架的学习如何带领一个小团队。在此期间我犯了很多错误,踩了很多坑,也让团队走了一些弯路。在此中总结了几点经验教训以供参考。

  1. 最重要的是 ownership

我一开始最大的毛病就是micromanagement。啥都想自己上。不仅一个一个小任务的派活,还事无巨细的过问,甚至越俎代庖帮别人写设计文档。这不仅影响了同事的积极性和创造力,也让我焦头烂额无暇兼顾自己的项目。其实一个团队要scale,最重要的就是ownership和delegation。每个人对待自己own的模块就像自己的孩子一样,从头设计打磨,主动的去思考怎么改进,主动的给自己派活,在这期间收获成长。而我需要做的,只是把正确的活给正确的人,把项目定义明确,然后时时跟进和做好模块间的串联沟通即可。慢慢学会发自内心的信任和仰仗同事们,是我学到的最大一课。

2. Tech lead 最重要的技能是开坑

基于上面这一点,最重要的就是给团队里的每个人找到合适的模块和大方向。当我碌碌终日,忘记为团队思考新的方向的时候,我们就容易陷入在现有框架内拆东墙补西墙的节奏,每天又忙又累却没有解决本质问题。而每个开出的新坑,一个新的优化或功能,就像一个新世界一样,为团队注入生机和活力。新坑往往在技术上有很大的困难,这时候就需要tech lead身先士卒去搭出初版的POC(概念验证)。这个过程最好是和后面会主导这个项目的同事一起,pair coding为最佳。另外,tech lead必须要提前思考过程中会遇到的绊脚石和难关,这样新坑才不会是坑人的坑。

3. 怎么跨团队的推进项目

跨团队的项目就像异地恋一样,推进的难度不是高了一点半点。然而芯片领域因为多个技术栈紧密结合,大的项目往往都是跨团队的。这里很重要的一课是,学会说他人的语言。我做的编译器,说的是编译器语,上层的同事们说的是模型框架语,底层的硬件大哥们说的是硬件语,互相沟通起来就是大眼瞪小眼,你说你的我说我的。其实每个团队都有自己不为外人道的技术难题(这个看起来这么简单为什么做不了?),也有自己不同的优先级和大方向。只有虚心学习和请教对方的语言,了解他们的痛点和难处,对方团队才会正眼看我。这时候才能结合以上“销售”自己的项目,定义清楚分工,在细节上达成妥协。可能这就是”对齐颗粒度“吧。

4. 第一性原理(first principles thinking)

第一性原理,指的是抛开现有的框架,从问题本身和基础的底层原理出发,重新通过推导来构建一个系统,以及发现真正突破的关键。

掌握第一性原理,首先要明确什么是基础的底层原理。比如模型优化里,memory bound vs compute bound 就是关键的指导性思想。把AI芯片软硬件作为一个整体来看待时,cost/performance/flexibility tradeoff 又是核心的利弊权衡。硬件里呢,台积电,HBM,和冷却技术等目前的技术限制就是我们的基础原理。

我最近悟到的是,以前的我过于技术理想化,而忘记了用户体验这个真正的第一性原理。我过于追求自动算法的最优性,而没有重视软件的易用性,稳定性,透明度,和可调试性。这些才是积累用户信任的关键。

运用第一性原理也需要勇气,因为它往往代表着打破现有的模式,走一条新的路。这需要乐观和长期主义,也需要一个好老板好团队的信任。

5. 上下求索

最后,虽然这半年主要在往上游学那些大模型的优化算法,但我发现,我真正的passion在下游和底层,在芯片设计,互联设计,和软硬件结合。Annapurna有世界级的芯片设计架构师(画房屋设计图的人)。每次和他们聊到技术,都能感觉到那种纯粹的,藏不住的对这份工作的热爱。我时常后悔本科时没多学点EE的课程。但现在为时不晚,我决定一步一步从零学起。

结语

2024是很好的一年。下半年会更好。祝大家都越来越好。

Leave a comment