人工智能大数据,工作效率生产力
Ctrl + D 收藏本站,更多好用AI工具
当前位置:首页 » AI资讯

在高通AI部门的一年工作经验分享

2024-10-22 45

前几天记不清在哪个平台上刷到有人分享在微软的工作分享,读完别人的分享后发觉这一类的工作分享还挺有意思。因而也有了自己写一篇类似工作分享的文章。

大概网上搜了一下有没有高通的工作经验分享,寥寥无几。在知乎上能找到几个相关的回答,但是感觉都好官方,就是从公司的创建背景讲到上一次公司年会。还有一些分享美国高通的工作经历的。上述我查到的这些分享都跟我自己的经历“削微”有些差距。

我目前在高通 AI 部门,base 上海张江,入职差不多一年。对高通 AI 部门感兴趣的同学可以继续往下看正文。但是如果想了解高通的其他部门,可能我这篇文章不能提供太多有用的信息。因为据我所知,高通不同部门之间不管是工作能容还是工作风格和领导风格都有较大的差异。

高通中国大概有包括 无线、VR、汽车、AI 等在内的十来个部门(具体记不清了)。高通在国内也有很多 base,我知道的有 上海、深圳、北京、西安。其中上海、深圳、西安都有我们 AI 部门的同事(在这些地方准备换工作的同学都可以考虑一下)。

本部门主要的工作内容是开发和维护高通的神经网络加速推理框架。对高通比较了解的同学可能知道高通的骁龙芯片里有一块专门的AI引擎叫 Hexagon Processor,对应华为海思的 NPU 和 联发科的 APU 还有苹果的 ANE,他们的最终目的都是AI加速,但是具体的实现方法相差很大。

有做 AI 加速芯片的公司基本都要做配套的软件框架。普及率最高的应该是英伟达的 CUDA/TensorRt,然后就是一众做手机芯片的,比如华为的 HiAI, 联发科的 NeuroPilot,苹果的 CoreML,三星的 Samsung Neural。而我们部门负责开发和维护的就是高通的 AI 框架。

有些同学可能对这种 AI 框架没什么概念,这里简单介绍一下他们是做什么的和怎么实现的。在 AI 这块领域学习或者工作的同学肯定对 Tensorflow 和 Pytorch (或者 caffe?)很熟悉了。也基本都用这些个框架训练过模型。那么训练好模型之后怎么使用呢?如果允许在线访问的话就很简单,让一台插有GPU的服务器来运行一次前向推理就行了,如果财大气粗,甚至可以直接跑pytorch 脚本来获取模型结果,通过大量的显卡和机器进行负载均衡来达到降低延时的效果。如果资源实在有限,没几台服务器,没几张显卡,又想尽量降低大量的模型推理工作花费的时间,那么可能需要用到 torch (或者 Tensorflow) 的 C++ 接口(libtorch)来实现推理过程。成功的用 libtorch 跑一次模型之后,推理效率可能还是不能达到我们的预期。然后去谷歌搜了一圈之后发现英伟达有提供一套针对自家GPU进行优化推理的框架叫 TensorRt,然后就开始学习使用 TensorRt 来跑自己的模型。如果我们的需求只是在线部署,那这里基本就到头了。但是如果我们要在没有(英伟达)显卡的环境中(比如手机、汽车)使用模型,那就很麻烦了。当然我们万能的 cpu 啥事都能干,如果不介意等一分钟来获取一张图片的目标锚框的话,我们都可以丢给 cpu 来做。但是显然我们不能给用户提供这种分钟级别的使用体验。我们也可以缩小模型来提升推理效率,但是这样模型的精度也会下降。

所以各个芯片厂商都推出了专门做 AI 加速的产品。有了硬件当然也要有软件支持并提供能够调用这些 AI 加速芯片的接口给开发者。所以简单来说, AI 框架就是做这个事情:把我们用 pytorch/tensorflow 训练好的模型运行在各个不同的 AI 加速芯片上面,能让我们高效的获取到模型结果。

具体的实现方法有很多不同的路线,大概思路是载入源框架(torch)的模型(.pt/.script/.tf/.onnx),然后解析 weights 和 图结构,然后根据载入的图结构构建我们自己的图结构(为什么要构建自己的图结构呢?因为各个框架对算子的支持和命名方式都是不一样的,这里相当于做一次统一,后面我们只要实现我们自己定义的图结构里面的算子),然后根据自己的芯片提供了哪些接口(比如矩阵乘加运算)来实现各个需求的算子。这只是最上层最直观的一种解释,落实到实现就会涉及到亿点点细节,不在这里赘述了。

我本人所在的团队非常 nice,直属领导非常贴心,平时找他聊天很亲切,办事也很靠谱,安排任务也比较合理,我目前的评价是”特别好评”。部门总监接触不是很多,目前了解下来也是个为人和技术都不错的大佬。

两个词概括我这一年在高通感受到的工作氛围:轻松,充实。工作基本没人会 push,除非真的是摸了一个月啥产出都没有(ps. 这里真的有这样的人), 上下班不用打卡,偶尔迟到早退没什么太大的问题,manager 在派活之前都会先问个人意愿,先考虑谁比较感兴趣,比较符合谁的特长,有感兴趣的人先挑,有些活谁都不想做,那就轮着来,反正就是尽量让大家都没有不舒服的感觉。给的时间都是比较充裕的,所以很轻松。同时在高通这一年也是我学到最多东西的一年,在进入高通之前我只会改参数,训模型,然后导出 torch/onnx 模型调用几个 C++ 接口进行推理。接触到的东西很有限,工作之外空余的时间也不多。在高通这一年不仅看了很多 python 和 C++ 的框架代码,而且自己的空余时间也多了,可以在玩游戏之余再看点李沐等大佬的视频和技术博客,所以不仅在代码层面,在神经网络模型编译和模型量化方面都有了很大的进步。所以真的就是轻松且充实。

外企的福利向来不差,年假 15 天(起,老员工最多20天),病假 30 天,有一天额外的员工指定假期,这两年 CEO 每年送4天指定假期(这个可能不是常有的),一年有几次团建(看部门),团建基本是在工作日,除非是远游。

零食咖啡啥的也有,不过花样不多,就是一些饼干啥的。

(疫情前)公司的制度是,每周有一天可以居家办公,然而因为今年(2022)上半年的疫情,我已经半年没去过公司了。居家办公这个事儿,各个部门或者各个 Team 怎么处理还得看领导,我领导就不是很 care,你能保证产出的话,一周只来一天公司也行。

节假日福利也挺实用的,发的是福利点数,一点等于一块钱,每个节假日最少发1000,有个高通京东商城,基本上能买到日常用到的任何东西,攒几个1000甚至可以买手机、无人机、运动相机啥的都有。

薪资这块就不多说了,从互联网大厂跳到高通来的同事,最好的情况是平跳,大多数是降薪来的。总的来说高通在外企里不算低但也不高。薪资这种东西还是得看自己的际遇,每个人的简历背景和运气差别太多了,也不好一概而论。

英语要求可能也是很多同学想要问的。不过这个说不好,我当初面试的时候倒是没有要求用英语自我介绍啥的,只是给了一张英语卷子,然后让我用英语作答。平时工作中,邮件和公司confluence都用的英语,这些都好说,最致命的是时不时要跟印度和美国的同事开会。反正要用到英语的地方挺多的,如果自觉英语实在是差的离谱,可能需要补一补再来。我觉得大概大学6级能过的水平应该就差不多能应付所有场景了。

经常听到对外企的评价是:养老,清闲,边缘业务。我这一年感受下来确实挺适合养老的(跟互联网大厂比起来),如果没有什么经济压力的话(比如上海本地人)在这干到退休(如果没被裁)应该挺舒服的。关于清闲,我上面提到过我个人觉得还挺充实的,不过这种感觉应该是因人而异的。对我而言,工作之余,在游戏/看剧之余能学些技术是最让我觉得充实的时候。如果工作之余只玩游戏,会有点空虚,但如果在工作之余只学这些枯燥的技术,又会有点boring。都不是我想要的状态。不过话说回来,想要把娱乐和学习合理的调和在一起是挺难的一件事情,“我应该去看点书” VS “再玩亿把/再看亿集”,这种类似的心理博弈我想大部分人都深有体会,通常我们都会让右边赢,我现在勉强能做到偶尔让左边赢一两次。而且我正在努力让左边多赢几次,这种博弈本身就挺有意思的,事后回过头去看这些拉扯更有意思,前提是左边至少要赢过一两次,不然我们也懒得回头看了。

关于边缘业务,就高通 AI 部门而言,我倒是没有什么体会。可能是因为高通的主要业务就在国内,大客户都是国内几家手机厂,在帮大客户解决问题的过程中,难免会接触到一些不那么边缘的工作。Anyway,反正 AI 框架开发在我看来应该不算特别边缘的业务。

原文链接:https://www.bilibili.com/read/cv16991864/

相关推荐

阅读榜

hellenandjeckett@outlook.com

加入QQ群:849112589

回顶部