huapiaoxiang 2018-06-14
摘要: 阿里安全一线程序员告诉你“钢铁是怎样炼成的”。
在阿里巴巴集团安全部,有一个专注于计算机视觉、自然语言处理、机器学习和深度学习的团队,其全称为阿里安全图灵实验室。该实验室的相关技术广泛应用于手淘、天猫、支付宝、闲鱼、优酷土豆、UC、阿里妈妈等核心业务线,每天服务调用次数达数十亿,在为数亿用户创造极致体验的同时;实验室还通过阿里云上的“实人认证”和“内容安全”两大产品,对外输出AI能力。
据了解,阿里安全图灵实验室成员多数来自于清华、北大、中科院、浙大等顶级高校的博士、硕士,具有深厚的学术研究背景和良好的工程实践能力,先后申请了50多项专利。
今天我们要说的主角就是一名在阿里安全图灵实验室成长起来的AI算法工程师——炫谦。
2007年,炫谦考入中国科学技术大学(中科大),然后主要做信息信号处理(DSP,Digital Signal Processing)相关的事情。大三的时候,炫谦做了两件事。第一件事,参加中科大的机器人格斗大赛;第二件事,参加学校举办的数学建模大赛;然后他都拿到了奖。
读研期间的炫谦
听到机器人格斗大赛,我脑子里迅速浮现出谷歌的那个机器人,用脚踹都不会倒。炫谦设计的机器人可以行走、奔跑、侧移甚至是翻越障碍物,然而这并不是全部。最终的是,炫谦的机器人要和其他同学的机器人打擂台“正面刚”。因此,行走、奔跑之类的对于炫谦的机器人来说,只能算是小儿科,他需要自己设计的机器人更高阶一些,那就是具有一定的攻击性,而且要在功能上有所突破,比如抱摔,这对机器人的平衡性有很高的要求。
炫谦设计了专门的电路板来控制机器人的多个舵机,再通过舵机去操控机器人的各个关节。“我通过电流控制机器人的关节的角度,可以达到0-120度的幅度。”炫谦说。最后,炫谦设计的机器人喜提前三佳绩(因时间久远,炫谦已记不清是第二还是第三名了)。
本科毕业的时候,炫谦还做了图像去雾的一些工作,当时的毕业论文也是以此为主。为此,他还获得了一篇专利。
本科毕业之后,炫谦获得了保送资格,被保送到了中国科学院大学在成都的光电技术研究所。
截至目前,炫谦所获得的专利总计有10余项之多,包括10篇发明专利(授权1篇),1篇美国专利(METHOD AND APPARATUS FOR TARGET ACQUISITION),2篇技术秘密保护,涉及OCR、深度学习、垃圾图片识别、图像分类、验证码识别、目标检测、目标跟踪等领域。
在阿里安全图灵实验室,炫谦的专利数也排名前列。
因为学业出色,炫谦被一位师兄推荐到阿里巴巴。阿里安全图灵实验室的负责人奥创看到炫谦的简历后,就给他打电话,并约了面试。因为是实习面试,所以很顺利地就通过了。但由于导师要求他返校做项目,炫谦当时并没有到阿里巴巴来实习。
后来校招的时候,炫谦又参加了一次面试,校招走的是绿色通道,就直接过了。当时校招的时候是阿里巴巴的技术大牛守拙和鲁肃面试的,由技术高P甚至是CTO级别的面试,这是阿里技术人才招聘时一个常见的流程。
事实上,那时候向炫谦抛来橄榄枝的不止阿里巴巴,他还面试了腾讯的一个产品岗位。在当时,业界普遍认为BAT三大互联网公司,阿里巴巴偏运营,腾讯偏产品,百度偏技术。最终,炫谦选择了阿里巴巴。
“阿里是第一个给我发Offer的,虽然当时阿里在人工智能方面还没有太多布局,但我觉得其潜力空间巨大,而且应用场景非常丰富,和业务也是紧密贴合的。”炫谦说出了原因。
实际上,炫谦返校去做的那个项目,让他涨了不少经验值。“当时我作为项目负责人,从申请经费到技术研发、合作等都是亲力亲为,正因为遍历了项目的所有环节,所以让自己有了全局意识,而不是仅仅局限于某一项技术或其他细节。”
“如果是做一个业务项目,最好先把整体的框架弄出来,然后逐步地对每个点进行挖掘,其实就是全盘的考虑加上细节的思考。做项目一定要有全局视角。”炫谦认为,这个项目经验对他之后在阿里的工作有很大的帮助。
阿里安全图灵实验室AI算法工程师炫谦
事实上,炫谦在阿里巴巴的这几年,也获得了不少的荣誉。他公开发表多篇技术文稿,如《Securing Live Streams in China》、《九年双十一互联网技术超级工程》等。在去年,他还和几个技术小伙伴一起获得了2017阿里巴巴IoT极客大赛的冠军;在今年3月,他代表阿里安全图灵实验室在Pascal VOC挑战赛(Pattern Analysis, Statical Modeling and Computational Learning)的目标检测(Object Detection)之Competition 3 :TRAIN ON PASCAL VOC DATA项目中获得了74.8分,刷新了该项检测的世界最好成绩。要知道,Pascal VOC挑战赛类似于数学中的哥德巴赫猜想,与ImageNet和COCO(Common Objects in Context)同为世界顶级的比赛。
炫谦刚进公司的时候,基本是出于一种接活儿的状态,主管安排什么就做什么。而现在,炫谦已经切换到自由自主的状态,也就是说可以自己去想一个方向,然后沿着这个方向去达成自己的目标。“有意思的事情一定要坚持去做,也就是坚持做正确的事情。”炫谦说。
因为阿里偏向于业务,所以很多时候会把自己放在比较繁杂的环境去做事,然而这样对于技术的积累其实是很不利的。很可能把精力耗费在业务上,然后造成技术上没有提升。对此,炫谦的解决之道是,把KPI和自己的成长打包整合在一起,两条腿走路。“人工智能领域,核心的竞争力是技术。作为一个技术人,初心在于在技术领域扎得更深或做到拔尖。但是在阿里巴巴,更大的挑战是需要把初心和现实进行合理的结合或者平衡,把两块合到一起去做。”
炫谦坦言,在学校的时候,学术性更强。可能去参加一些竞赛或者比赛,几乎都是一次性的。但是在公司做业务的事情,是需要长期性地不断地去更新迭代,一批一批持续去做,不断地跟进。
做学术的时候,会偏向于一些数据指标,比如把算法模型的准确率做得很高,因此,可能就不太关注它在机器上的运行效率,或者是它能否落地。“这其实就是一个产出投入比的问题。在企业不一样的是,其实很多时候是需要注意机器的成本,或者说资源的消耗。”炫谦说。
在阿里,安全主要是保障工作,但投入产出比是需要衡量的,所以经常说安全是必须要做的,但安全的成本也是一个很大的挑战,阿里安全的技术同学都要求综合兼顾效果与成本。
这对于炫谦来说,其实也算是一个巨大的角色转变,之前在中科大研究所更关注指标,而现在在阿里巴巴,还要充分考虑指标和资源之间的平衡。
实际上,炫谦还参与了很多貌似跟自己工作无关的项目。比如智慧餐线。炫谦认为,像类似这些项目可以视作是“趟路”。可能给同事提供失误的经验,让其他技术同学知道这里有个坑,已经被探出来了,其他的同学少走一些弯路。
炫谦(左二)和小伙伴的“智慧餐线”项目夺得2017阿里IoT极客大赛冠军
“试错,试一下。大胆地去落地,去做。只想不做等于零。”炫谦强调。
炫谦说,项目的规划很重要,但有时候鸡蛋孵出了鸭子的事也经常发生。也就是说在做规划的时候,有些事情并没有想得那么透,可能是根据用户需求,根据业务的迭代出来的结果。这其实是在试错,在未知的方向进行探索。
在阿里巴巴,有足够丰富的场景去进行探索。炫谦说,他现在做的算法模型都会放到相对真实的环境去落地,比如放到线上,然后可能就会反映出一些问题,然后再不断地进行有针对性的迭代、调优。
在阿里巴巴的体系中,其实并不是只有阿里安全图灵实验室专注算法、人工智能等领域,但它是独特存在的,因为其聚焦于安全领域,是建立在攻防基础之上的人工智能。
炫谦刚来阿里的前两年主要是做OCR识别,但这跟攻防有什么关系呢?炫谦举了个栗子。现在互联网上很多的图片,于是黑灰产人员为了引流,就在这些图片上去滥发一些垃圾广告,这是一个非常大的问题。此时,就需要通过技术去识别这些图片,然后将其屏蔽掉,然而,这些黑灰产会想尽办法去绕开这些屏蔽手段,他们会不断变异这些图片。
相对来说,黑灰产是一个主动变化的过程,他们的成本低得多,而且变化非常快,因为他这个是和利益强绑定的。他们是只要觉得这条路走不通,马上就会变招,有时候刚上线一个新的技术去遏制,但很快,或者一个星期或者两个星期,他们就能绕开。而且,黑灰产一旦发现从某一个角度能够发出这些广告图,他们马上就能够迅速地、批量地生产这种图,并在网上很快地扩散。
“黑灰产还会对算法模型就行不断的试探,一旦他们探测出防御的策略或技术手段,马上就会去做针对性的改变或开发。“炫谦说。
炫谦介绍说,黑灰产还会形成一些暗号式的黑话,很难去筛查出来,而且看到的都是很正常的,但仔细排查后,会发现,他们的交易记录以及买家的情况,是局限在一个非常小的范围。深入去挖掘,会发现这些黑灰产团伙的性质,他们在不断地升级自己的“反侦察”手段。
这个过程其实就是充满对抗性的。
炫谦在阿里的头两年,面临很大的压力,内部的压力,业务的压力等,所以当时也比较困惑。
但从前年开始,炫谦开始转变思路,用一些更偏向于基础的检测技术,去把业务重新做起来。比如为大文娱做的台标检测,还比如给淘宝做的商标识别等。这些都很容易中途发生变化,对技术的要求较高,也相当于是重新切换领域和方式,可以说是从头开始。
“现在整体的工程类的技术更新迭代非常快,无论是从那个点切入,去从最新的技术开始研究,就是说,你一定要有好奇心,然后还要具备一定的工程能力,就可以切入一个不错的,还能提升自我能力的层面,而且在大公司学习的资源非常多。”炫谦说。
其实,炫谦当时做的OCR技术或产品在阿里内部也是处于领先地位的。但其实类似的产品或技术也有一些,就形成了一定的竞争。不过,炫谦认为良性的竞争,最终的结果就是产出很不错的产品或技术。确实,在阿里内部的很多技术或产品的竞争都是良性的产出。
对于竞争,炫谦觉得需要从另外的视角去看,需要研发人员找出自身业务的差异性,或者是自己独特的点是什么,也就是自己的核心竞争力在哪里。无论是从业务层面的思考,还是从行业领域层面的思考,自己要有独特的东西。
体系内的良性竞争,其实更有利于营造好的技术氛围,并促进技术的提升。
从常理来看,在企业,大家几乎都会认为自己做的事情是最重要的,也是最有价值最有意义的。因此,在评估的时候,可能就会面临“同行”的挑战。但这并不是存心的,而是说他们也可能面临着一些挑战,比如来自业务的压力。所以技术研发要做到业务前面去,帮他们分担这些压力,也就是常说的“换位思考”。
技术研发人员要深入了解业务内容,比如说一线的销售或客服同学,他们直接面临客户,也直接面对着巨大的压力,如果后台产品或技术没做好,客户的抱怨或者投诉,他们是第一时间要承受的。炫谦认为,技术开发人员要设身处地地去思考这些问题,最终把结果拿出来,帮助业务解决问题,才能为用户提供更好的体验。
“自己要静下心来去探寻问题的原因,然后结合业务方所处的位置,一定要形成良性的循环。”炫谦说。
由于互联网的快速性,所以在阿里巴巴,其实业务的变化也是非常快,也非常频繁的。技术开发人员很有可能在觉得自己对这个项目或业务很有信心,踌躇满志的时候,突然发生变化。这时候,应该赶紧从坑里“爬出来”并重新快速地投入到新的业务或项目之中。此时要及时调整心态,这个其实是极为挑战的。
面对这种挑战,炫谦表示自己的心态现在很平和了,已经能够在很短的时间去重新投入另外的战场。
人工智能现在是一个特别火的领域,所以很多相关专业的应届毕业生会志得意满。炫谦说,希望这些新同学能静下心来,一点点地去积累,包括在数据方面,在模型训练,甚至是现成的服务的维护方面打好基础。
一方面要在技术上下功夫,紧跟最新的技术前沿;另一方面,还需要在业务中不断地具备落地的能力。就是说,把自己研究的技术成果,落地到一个具体的项目里,让它产生价值。
因为人工智能市场的极度火爆,会推高行业的薪资水位等,但这并不是说你因为学习了人工智能,就表明你的能力一定强,而实际上是因为行业的趋势抬高了。应届生应该要有这种清楚的自我认知,不然很可能会迷失。
“尽量少吹牛,把承诺的事情做好,不要被打上不靠谱的标签。”炫谦的建议是,扎扎实实地一步一个脚印地去做,同时,开阔自己的眼界,多去了解和学习技术,不一定要局限于一个点,因为技术是多种多样的。从这些技术领域中,发现自己感兴趣的,培养自己的兴趣点和好奇心,因为兴趣才是能够长期激发自我的东西。
“应该用兴趣做自己的老师,那么才能持久地投入极大的热情。”炫谦说。