求职季,我是这样拿到百度 AI Offer 的!
最近摸鱼期间,发现身为程序员的我被赋予了另一个身份“新生代农民工”,简直炸了!重点还官宣了,这就更加实锤了啊!我就想说,我们新生代农民工招谁惹谁了,我们能有什么坏心思呢?头都秃了挣点高工资容易吗?
说到高工资,坊间确实流传着程序员 35 岁财富自由一说,尤其是做 AI 算法工程师的,年纪轻轻就可以月入 6W+!但也有不少人说了,真能开出高薪的也就大厂了吧,看看那些 JD,再看看自己之前螺丝钉的工作,大厂的程序员是不是都得会造轮子?自己能面的上么?
这不,一个朋友最近去百度面了一个 AI 相关的工作,面试官结合现在流行的 AI、物联网趋势,问到 AI 落地会考虑哪些问题,先来给大家分享一下~
一、为了适配边缘部署要求,AI 算法怎么做适配?
二、在模型效果和效率之间怎么做平衡和取舍?怎么在不牺牲效果的前提下提高效率?
三、AI 算法上线后怎么持续做迭代?
这一连“三问”瞬间给朋友问懵了,他说当时真想找个地缝钻进去。不过幸好他提前刷了很多试题,也找别人取了经验,关键还主动对飞桨 PaddlePaddle、飞桨企业版 BML 等产品做了一些了解,思考了一会儿以后竟然对答如流,简直“凡尔赛”了!面试回来竟然还写了面经!
“跑起来”——适配、适配,还是适配!
我们都知道现在是人工智能时代,越来越多的 AI 需要从云端扩展到我们熟悉的边缘端,比如智能耳机、智能摄像机、智能手环、物流机器人等等,把 AI 部署在边缘端已经成为趋势,这也正式嵌入式 AI 要做的事情。而我们关心的 AI 模型能不能跑起来问题,关键在于软硬件环境的适配情况:
硬件适配,当然是适配越多的 AI 芯片越好。常见的有 CPU,GPU,FPGA,以及各类 ASIC 芯片,例如:Nvidia Jetson 系列、海思 NNIE 系列、华为 Atlas、麒麟 NPU、高通 DSP、Intel VPU、瑞芯微 NPU、寒武纪等,都适配了就给工程师降低了端侧模型适配迁移的难度,换一个设备照样可以轻松的部署上去;
软件适配,四大操作系统肯定不用说要适配。Linux、Windows、Android 、iOS,无论是 PC 还是手机,都得能给安排上;
框架适配,越全越好。我们知道的飞桨 PaddlePaddle、TensorFlow、PyTorch、Caffe、MXNet 等框架以及 ONNX 模型格式。此外,还要支持图像分配、物体检测、人脸识别、OCR 等业界主流的算法类型,这样在模型的适配和转换方面可以轻松自如。
“跑得快”——“轻装上阵”,不以牺牲精度为目的
在进行端侧部署时,我们通常比较关注模型的推理性能,其实,各家 AI 芯片厂商为了实现更高性能的推理能力,都在努力提高芯片的并行处理能力,比如通过 GPU 这样的超多线程并行处理……但最终的结果是,算力得到提升了,灵活性反而下降了。
想要一个速度快、精度高、占用内存少的模型,该怎么办?
为了让模型跑得更快更省内存,我们可以采用模型压缩,比如模型量化、剪枝和蒸馏技术 ,让模型轻便地跑起来,在尽可能保证效果的同时达到更好的压缩效果。蒸馏可以简单理解为,通过大模型蒸馏小模型,使得小模型具有与大模型接近的效果。而量化、剪枝本质都是对基础模型在尽量不影响精度的前提下进行精简 , 自然模型小了,内存占用就少了 , 推理时间也就短了,功耗也更低。
“持续跑”——部署并非一劳永逸,AI 要自我迭代
模型的部署不是一劳永逸的,我们需要根据客户需求或者实际的业务场景进行迭代升级,需要在应用中收集样本、不断更新模型。
其实,最简单的模型维护方式就是不断添加新数据,或者在添加的基础上做进一步数据增强,从而提升模型迭代的精度。比较好操作的方法就是把新的数据添加到原有的数据集,从而让模型持续优化。
以上就是朋友做的面试经验总结啦,当然他也喜提了百度 AI 的 offer,他很庆幸自己提前做足了功课,尤其是对百度 BML 的深入了解,面试问题可谓正中下怀!他也给身边想学 AI 的朋友们安利了百度 BML,从 AI 入门到精通都可以在这个平台上进行。讲真,靠这个面试拿到高薪,程序员农民工也很知足了。
版权声明: 本文为 InfoQ 作者【百度开发者中心】的原创文章。
原文链接:【http://xie.infoq.cn/article/c8947f0957be39b0e0757f5e3】。文章转载请联系作者。
评论