最近摸鱼期间,发现身为程序员的我被赋予了另一个身份“新生代农民工”,简直炸了!重点还官宣了,这就更加实锤了啊!我就想说,我们新生代农民工招谁惹谁了,我们能有什么坏心思呢?头都秃了挣点高工资容易吗?
说到高工资,坊间确实流传着程序员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入门到精通都可以在这个平台上进行。讲真,靠这个面试拿到高薪,程序员农民工也很知足了。
标签:程序员,迭代,Offer,AI,适配,模型,求职,百度 From: https://blog.51cto.com/u_14439393/5992966