8月20日,环卫工人和市民在上海绿洲食物银行浦东塘桥发放点,排队领取来自超市等捐赠的余量食物,前来领取食品的人需先登记信息,再领取食品,半小时不到,蔬菜就被一领而空。图为工作人员向“共享冰箱”增加余量食物。 殷立勤 摄

算法工程师不仅需要具备牛逼的算法能力,还要精通业务、善于沟通?(小本子赶紧记下来!)

总的来说,工具非常重要,我们对于 AI的理解和AI前沿技术的跟踪也很重要,但更重要的事情是:用户的需求到底在哪里,我们能解决什么问题。

另外,作为Caffe、PyTorch和Tensorflow曾经的核心开发者,他还提到,深度学习框架并不会出现大一统的局面,因为现实中需求很多,并没有一家机器学习框架能够囊括所有的需求。

那么,作为刚入职的同学,其实首先我认为入职已经晚了,在入职前就应该挑选一个在工程上相对规范的公司去入职。如果是一个小公司,自己又没有工程上的 sense(意识),那么你进入的是一个工程规范很乱的一家公司,这对于个人的职业发展和工程能力的培养是很有问题的。

贾扬清:首先,国内外的工程师都很用功,而且都追求最新的技术。个人认为国内的工程师更关注如何把方法与业务结合起来,而国外在AI方面有一些很好玩的事情。

小板凳蹲阿里、知乎的AI展望

Q4:扬清有没有一些具体的建议?比如说你在学生时代是怎么学习的?用什么途径获取到新的 AI资讯,遇到问题怎么解决?

李大海:扬清讲的这个公司我有印象,他们通过识别杂草、然后定点喷洒除草剂,杂草率可以降低到原来的10%。硅谷的公司一直有这个文化。当时我在谷歌的时候,Eric(谷歌执行董事长)曾经讲过一个很好玩的故事:当时在谷歌有一个柜子专门放T恤。在谷歌,无论发生什么,他们都会把事件印在T恤上,不定期往柜子里塞,然后大家去抢。当时柜子附近有一个摄像头,Eric就基于摄像头写了一些代码去监控这个柜子。一旦识别出这个柜子附近有人,摄像头就会发出“警报”来通知Eric,然后Eric一看到有人往柜子里面塞T恤就去抢。在美国,这些工程师会自发地去做这种(技术应用的)微创新。

Q5:想请问两位 AI从业者,你们觉得跟其他AI从业者比,你们最大的优势是什么?

这和一个大规模分布式系统是分不开的,因为我不可能今天说把这些数据放到一个GPU机器上面,拿三个SSD把它给接起来。所以这时候就需要一套比较完整的系统,从数据的存储、处理、分析到计算,到上层去进行任务的编排、模型的开发、模型的上线,以及数据的回流。无论用户是自己搭一个系统(我们叫“私有云”),还是在公有云上面进行,云都是AI不可或缺的一个环境。

个人认为:“当年”那些模型所用到的技巧对于培养机器学习的能力和解决现实问题是非常重要。

“专业”除草,没想到卖了3亿美元

在直播中,贾扬清与李大海就国内外AI研究区别、在校生/职场新人如何培养自己的AI才能、AI应用落地,以及AI在未来的发展趋势展开讨论。

但说到应用,我们可以看到,人工智能在许多领域里已经打败人了,比如说图片分类。所以在应用层面上我是很乐观的。人工智能的历史始于20世纪初,后来经历了一些起起伏伏。

综上,分领域来看,人工智能在认知领域已经到达非常成熟的阶段,但在决策领域可能还处于初期的探索。

开学后,小朋友屡屡为写不出来的小作文抓耳挠腮,问培训班上的老师,应该怎么速成从作文小白到写文大神之路,老师说:“你让孩子整天关在空调房里刷题、玩手机怎么行?你要想办法说服全家,一起拽着小朋友出门感受大自然呀,野炊、采摘、露营,包他下笔如有神。”

第二点是保持好奇心。其实任何一个公司的平台都是挺大的。拿阿里大数据和AI平台来举例子,像ODPS(Open Data Processing Service)大数据平台是10年前开始建造的,今天平台非常复杂,包括上层的C语言库、中间的 Query Optimization(查询优化)和底层的执行调度,肯定不能完全把握。在这个时候,算法工程师就要与他人保持交流,多提问、多讨论。就像T型,对系统的某一点了解特别深,对系统的其他部分就触类旁通。逐渐成为一个高级算法工程师之后呢,成为一个架构师所拥有的能力,其实也能使得我们在更看得更宽、看得更大的同时,有一个更加全局的系统架构的视野。

如今,云可以很好地解决算力问题。30年前,所有的单位都有一个发电机,但今天没有人用发电机了,因为底层的基础设施已经非常成熟,可以低成本、大规模地给社会提供电力。在今天,云的计算力就像水电煤一般的基础设施,我们不需要担心哪天机器哪里出了问题。比如说,今天我突然要拉起一个大量的应用,这个时候云可以“soo”一声弹上来,不要了就放掉。这是算力方面。

我们的团队内部曾经很喜欢一个国外经济学家写的一本书,叫《与运气竞争》。

家长立刻上了钩,买了强力防蚊水,买了炫酷的头灯和强光手电筒,还有帐篷、隔湿垫和防晒霜……像一个第一次上战场的侦察兵班长一样,领着小朋友上了路。

第二点是算法工程师需要培养业务能力,即对业务的理解。工程师首先要掌握业务应用的知识。业务场景非常多,但每个场景所面临的问题是不一样的,所以算法工程师一定要理解业务到底是需要解决什么问题,具备定位问题、发现问题、拆解问题和解决问题的能力。

到今天,AI可能有一些泡沫,但这个泡沫其实是AI公司在商业模式上遇到的问题。但从技术层面上讲,AI这个工具越来越强大,数据量越来越大,这些都是毋庸置疑的事情,所以在应用层面上我是很看好的。

我现在在做的工作是把AI和大数据进行结合。例如,前段时间我们发现:深度学习的工程师会发现目前的大数据平台不能满足需求。因为过去需要数据库管理结构化数据,而如今需要大数据逐渐向这种深度学习的应用领域进行改变。

《中国新闻周刊》2020年第34期

河北省高阳县纺织业有400多年历史,目前,该县有纺织企业4000余家,年产毛巾50万吨,被誉“中国纺织之乡”。(完)

AI科技评论对本次分享作了不改变原意的整理与编辑:

在具体的应用过程中,调参只是一个手段。例如,在无人驾驶领域,其场景和机场的云点识别的场景非常类似,但是其数据的分布不一样,所要做的事情不一样。应用工程师更多的是了解其背后的业务场景差距和限制,例如传统的约束满足问题(CSP)。所以,应用工程师更多的是对端到端进行整合,找到最优的方向进行调参,也就是说,调参只是一个手段。综上,调参侠没有市场,现实中只存在算法科研人员和应用工程师。

李大海:我们一般称掌握了AI知识的同学为“算法工程师”。算法工程师在本质上首先是一个工程师,所以一个工程师所具备的能力,算法工程师也应该具备,例如说:1)代码能力,能够通过代码实现自己的想法;2)数据能力,即能够对数据进行分析,并发现数据所包含的重点,同时对数据进行处理;3)与人沟通的能力,因为算法工程师都是在团队里面工作,不是单打独斗,所以需要能够与同组的其他工程师、产品经理、测试和其他同事进行沟通。

Q3:假设一个同学已经入职了,已经成为算法工程师,他可能会经历初级、中级、高级三个阶段。所以,关于初级算法工程师怎么晋升到中级算法工程师,以及中级算法工程师怎么晋升到高级算法工程师,两位有何看法?

那知乎在文本方面(NLP)有哪些工作呢?主要有两个方面,一是分词,例如最近的一次迭代结果是:F1的值从91%上涨到93.5%。二是词性的判断,这类工作包括命名实体识别、消歧等等。

第二个是,我有一个研究生同学把Raspberry Pi放在后院,后院里有一个喂鸟的地方,松鼠经常过来,他就拿那个Raspberry Pi识别松鼠,松鼠一来就把它赶走。这些技术看着好像没有什么用处,但后来产生了非常多应用。硅谷有一个公司叫Blue River Technology,他们做的事情是运用技术在田间地头找杂草、除杂草,有点类似筛黄瓜、找松鼠。这个公司后来被美国最大的农机制造商约翰迪尔公司以3亿美元收购了。他们很多时候是出于纯粹的技术好奇心,但后来创造了一个产业。我觉得这是国外蛮有意思的一点。

里面讲到,当我们手上有一把钻子的时候,很容易想到的是我拿着钻子可以干嘛?但其实很多时候,用户可能只需要钻一个孔来挂衣服。所以,如果你想的总是“如何提高钻头的合金程度”、“让它变得更好看”,这可能根本就不是用户想要的。

李大海:我非常赞同扬清的观点,就是在学校的时候我们会更关注代码的算法上是否足够精妙,但是对架构和工程的关注度是不够的。我自己在早年的时候也犯过这样的错误,像我们数学系毕业的,在工程上接受到的培训是偏少的,但进入公司以后,工程实践却变得很重要。扬清之前在一次线下分享中曾提到的一句话我也很赞同,就是:AI是一个系统工程,90%的时间里所做的事情都跟算法无关。在现实中也确实是这样。

回过头来看决策,人工智能的决策发展还不行。比如说,在自动驾驶里,我能感知这里有一辆车、那里有一个人,但是知道后如何做决策?逻辑是什么?甚至在一些更复杂的场景,例如限速25,但前面的车都超速往前开了,这时候我又怎么办呢?这些事情都是要在决策层面上解决的。人工智能很有可能会先解决感知/认知问题,然后在感知的基础上做决策。

今天的AI,越来越多会关注到系统、云。这也标志着AI未来发展的必然形态。目前,算法能够“单机”开发,但是如何运用算法,则需要算力和数据的支持,因此也会需要云和云相关的技术。

Q8:AI工程师和AI算法工程师之间有何不同?各自的发展趋势是怎样的?两者会不会融合?

另外,AI算法的创新在逐渐变慢。比如说,Bert在NLP领域,ResNet在CV领域都已经比较成熟。虽然算法创新还可以稍微提升一下,但算法已经不是一个核心的differentiate(区别点)。在这种情况下,怎么样找到实际应用场景,如何把算法和应用结合起来,我觉得这是最能体现出价值的地方。所以,如今AI的突破可能不是在算法上,而是“算法+系统+应用”,而且应用可能会变得越来越重要。

Q2:作为一个在校生,我要如何将学习与业务结合,如何培养自己的AI能力、才能进入比较好的互联网公司呢?

如何优雅入“AI”这个坑

感知大神VS决策白痴

贾扬清:阿里有很多团队在研究AI,例如阿里的PAI团队致力于AI的开发和治理的平台,基本上阿里的所有工程师都会在上面做开发,达摩院的同学就会在上面构建很多应用和落地的算法,包含图片、语音等等。

Q1:能否请两位聊一下国内外做AI领域的研究有什么区别?

贾扬清:同意大海的观点:分析问题,定义问题,然后解决问题的整个逻辑非常重要。在校生得到的训练更多是:如何解决问题的能力。但其实如果问题定义清楚了,解决问题的方法就会出现很多。

李大海:目前的AI工作和场景结合紧密。抽象来看,(知乎)有三大方向:一是内容生产,如何利用AI让内容生产进行更有效率,例如创作者匹配、激活创作者;二是内容理解,建立内容概述,对内容质量有初步把握,例如内容底线内容在哪里?内容是不是带有辱骂性质?是不是有极端(仇恨)情绪;三是内容分发,这个方向建立在第二个方向基础之上,但不再仅仅局限在内容的理解上,还需要对用户进行理解。具体而言有两种情况,一是用户主动搜索,将AI算法赋能到搜索引擎里;二是,被动推荐,将高质量内容推荐给合适用户。

举两个例子:一个是,如今很多农产品(比如黄瓜)在运去超市前需要筛选出大小、质量等许多方面合格的产品。以前都是用手分拣的,很麻烦,但自从有了深度学习的框架TensorFlow之后,有精通工程的年轻农民就结合算法,使用机器学习自动对黄瓜进行分类,实现了:大一点的黄瓜送超市,小一点的拿去做零售。

声明:刊用《中国新闻周刊》稿件务经书面授权

贾扬清:在AI领域里,在业界做得非常成功的人或团队都有一个特点,就是业务化。他们不光懂算法,而且懂得怎么用算法。因为在今天,算法已经迅速普及,找一个研究生,两分钟就能搞出ResNet。

李大海:如果要判断AI目前处于什么阶段,我们得先知道AI的全景是什么样子,但这个很难预测。这时又会涉及到:人工智能最后到底能走到什么阶段?它能不能达到强人工智能的状态?我的观点是偏悲观的,我觉得强人工智能可能永远都达不到。

国内工程师在创新方面与国外可能有一些差别。目前国内的AI应用场景已经很广。比如说,在知乎的工程团队里,大概1/6的人都是算法工程师。在工业界,算法确实已经渗透到应用场景的方方面面。第二点是,AI应用从互联网开始逐渐推向越来越多的传统企业和传统行业。但在个人层面,与国外相比,国内的工程师可能较少会自发去发现一些微小的创新机会,并实现它。

通报还称,该县将认真汲取教训,深刻自查自醒、举一反三,立即在全县范围内深入开展毛巾产品质量安全专项整治,规范生产经营行为,提升毛巾产品质量,坚决保障消费者合法权益。

Q7:有一句话叫“AI是云的内核,云是AI的必然形态。”如何看AI和云的关系,以及AI在云里面扮演的角色。

贾扬清:我来讨论可能相对比较有争议性的话题:个人认为没有算法工程师这个角色,只有两个角色,一个是算法的研究人员,一个是应用的工程师,而“调参侠”没有市场。因为,有的调参工作只需要写for 循环语句即可。

第三是更加成熟的工程化的AI算法的部署,旨在解决模型的稳定程度和弹性以及检测模型的性能。再者,如果有新的模型上线,如何进行A/B 测试?如何回流模型的用户反馈?等等都是需要考虑的问题。

但是有许多缺口需要AI工程师补充,所以,AI工程师也需要积累算法。因此,从这个角度来看,AI工程师既需要懂架构,又需要懂算法。对于学生或者刚进入工作的职场新人而言,需要好好塑造自己的方法论,快速补充自己,根据自己的业务需求让自己的能力变强。

第二是更加云原生、顺畅的AI的深度学习的体验。以往的大数据、深度学习平台其结构往往比较重,使用云原生“容器化”的能力可以构建出一个和“自己”的开发环境相符合的“产品”。例如在无人驾驶场景中,可以实现非常灵活的深度学习开发,构建灵活的深度学习应用。

其实,无论是在谷歌还是在知乎,我们招聘工程师都有一个标准,即希望工程师足够聪明,能够快速学习,可以根据自己的业务补充“技能树”。

Q9:AI的发展情况如何?在知乎和阿里有哪些技术沉淀?未来的应用情况、重点投入的AI方向是什么?

然而,事事方便的都市,已经把家长和孩子的野外生存能力降到最低。野炊,不知道应该怎样估量山风的方向,浓烟夹杂着炭火吹了自己一头一脸;不知道凉拌菜怎样做才不会招来成群结队的蚂蚁。最难的是现场挖坑,靠填埋炭火来焖熟一只叫花鸡。别以为火熄之时,扒开炭火、剥开泥壳子与锡箔纸,一定能收获活佛济公手上那只油光锃亮的鸡。就连以厨艺闻名的演员黄磊黄小厨,在《向往的生活》里都只收获了一坨焦炭。

综上,对于在校生来说,拥有对算法的理解能力是非常重要的特质。虽然算法工程师都喜欢自黑,称自己是“调参侠”,但除了调参之外,还需要知道算法背后的原理。我们现在处于深度学习时代,但是在“前深度学习时代”有很多浅层模型,这些模型因为没有深度学习碾压式的表达能力,所以在浅层模型上做了很多思考。

贾扬清:我觉得挺重要的一点是学习是所谓的engineering practice(工程实践)。很多时候,我们在写研究代码时,跟研究本质是一样的,因为研究是快速迭代,不需要做工程实现。假如,今天要上线一个功能,不仅要保证它的整个foundation(基础)是solid(坚固)的。这时候,我们怎么做代码的管理、协同、review(审查)、测试、CD和上线?怎么做 performance(性能)的benchmark(基准)跟profiling ?这一系列的工程流程也挺重要。

贾扬清:从历史的角度来看,计算机诞生的目的是为了更加智能化地处理人与世界交互的问题。在人工智能最早的时候,大家都在处理决策的问题。等决策系统做了一堆工作后,我们发现,其实我们首先都还不知道这个世界是如何从一个像素、语音“导入”到计算机逻辑的系统里。所以在前面这几年,深度学习其实是在从决策层面转到感知层面,从而来解决感知的问题。

当然,这些考验都比不上去山中野营。我的朋友小赵带着一儿一女出发野营,在前半夜,一切似乎都很完美:看到了上千只萤火虫结伴出行绵延的光带,听到了小猫头鹰的鸣叫,在星空中找到了明亮的猎户星座,顺利拉起了帐篷,打气筒也很争气,让充气隔湿垫迅速鼓胀起来。就在小赵在一片虫鸣声中即将朦胧睡去时,他听到了隐约的雷声,小女儿在惊诧地擂他的小腿:“爸爸,爸爸,下大雨了,涨水了,怎么办?充气垫子能像小船一样,让我们漂起来吗?”事实证明,小姑娘的想法太天真了:后半夜,帐篷里汪起了半尺深的水,充气垫子和大家的拖鞋、行李,完全浸泡在水中。父子三人只能按野外生存手册上的说法,半蹲抱头,像三只惊恐的水鸟一样等着头上的响雷平息。

算法的科研人员更多是攻坚“更好的算法”,例如在计算机视觉领域,可能要把模型做得更大、更准,在某些问题上需要把模型做得更小。当然,在具体量化的过程中,需要在两者之间进行平衡。也就是说,科研人员更多是思考如何在一些“普遍”的场景下对算法进行创新。

另一方面,对于结构化的应用工程师来说,当存在推荐系统的需求时,所需要的并不是把所有的代码写出来,而是通过更加灵活的“拖拉拽”等方式。因此,过去是从大数据的角度进行AI落地,而未来一到两年内需要从系统的层面,推动非结构化深度学习场景和结构化“传统经济学产品”进步。

综上,无论是算法还是工程,其基础能力和学习能力非常重要。

贾扬清:在我学生时代,当时大家了解深度学习的算法是通过看论文,看完论文后大概就知道怎么做架构设计。在看论文的过程中会有非常多的输入,比如我们学到,人们最开始写深度学习框架的时候(Torch是2000年左右出来的,Theano是2008年出来的),它们的架构设计怎么做神经网络、怎么做layer(层数)等等,这对我们后来设计其他的框架,像Caffe、MXNet、PyTorch等等,是非常有帮助的。再比如说,我们怎么样做模型civilization的格式化等等,这时候谷歌的ProtoBuf又是一个很好的测试框架,如G test。这些现有的工程实践以及设计有现成的代码、文档和应用,看这些其实能够在实际中提升自己的能力。

算法工程师的未来“凶多吉少”

野外休闲活动,常会遭遇意想不到的苦境。打枣儿,会暴露在当头吃爆栗子的急雨中,闹得不好,头上砸出一个小包。摘梨子,好不容易颤颤悠悠上了竹梯,却发现每摘一个套袋的梨子,都有蚊蝇朝你迎面扑来,一手狼狈驱赶一手摘梨,还要预防自己被树杈剐伤,简直有了笨贼穿越隐形红外线防护网的手忙脚乱。游野泳,看守水库的人向你指明要远离闸口的漩涡,也要远离黄鳝与水蛇的洞穴,还要预防小腿拍水,正好踢到张着嘴的河蚌,被受惊的蚌夹牢不放。想到身边跟着细皮嫩肉、泳技稚嫩的小朋友,你还是恨不能有哆啦A梦的任意门,送自己去散发着消毒水味儿的标准泳池。

从感知的角度来说,今天已经相对较成熟。例如2014年,图像识别的正确率在一个限定的范围内已经超过人类。

第二个是数据。前段时间,许多人关注深度学习领域,如图像、语音等等。但许多AI应用其实是跟结构化数据绑在一块的。咱们举个例子。比如说像知乎有大量的用户内容,这涉及到两方面:一方面是自然语言的处理,另一方面是用户和内容的匹配。这时候,其实是在一个大数据底座(像Hadoop和MaxComput)上面做结构化数据的人工智能。

李大海:我想补充一点。有段时间我订阅过arXiv上面的 topic,但我发现这是个坑。arXiv最近在机器学习领域非常火热,每天都大量的论文发布出来,其中包含很多不同领域的或大或小的突破,这其实会让人眼花缭乱。所以在这种情况下,我给学生们的建议是:自己先抓住一个重点(领域),至于其他领域,简单了解那些技术和突破是什么就好。

好不容易等雨小了,三人冒雨下山,小赵赶紧在附近乡镇订了一间民宿,让两个孩子喝姜汤、洗澡,生平第一次感觉到灯火可亲、浴缸可亲、吹风机与席梦思可亲。他这样自我安慰:“孩子们,咱们的苦没有白吃,萤火虫一闪一闪真美。”此时,儿子已经用上民宿主人提供的游戏手柄,恢复了精神气,他直言不讳地说:“爹地,得了吧,你得承认领略萤火虫的美,还得去看宫崎骏的动画片。”

李大海:在谷歌内部,AI的工作是普通的工程师在进行,只要把问题描述清楚,然后放到“系统”上,系统就能够给出一个大概的解决方案。在未来,随着技术的发展,AI和AI工程的门槛会越来越低。这就意味着AI工程师的从业门槛也会越来越低。

在讨论中,贾扬清认为:没有算法工程师这个角色,只有两个角色,一个是算法的研究人员,一个是应用的工程师,而“调参侠”没有市场。

贾扬清:为什么今天我们说云和AI是一个强结合的状态呢?我觉得原因可能有两点:一是算力,二是数据。从算力的角度来说,以前我们在学校做实验或自己创业的时候都搭过机器。搭机器很痛苦,而且运维机器在一定程度上不产生价值,然后AI又对GPU有非常强烈的需求。GPU又是一个很恶心的事,有时候运行不错,有时候又会过热,有时候又需要我们做资源的调度等等。任何一个实验室都会遇到资源调度问题:一个是科研人员在那找GPU的时候发现找不着,然后系统工程师跑去一看,说:“哇天啊!利用率好低!”一边是starvation(饥饿),一边是satiation(饱和)。

第二是,“摸透”应用的实现流程。落地应用是“昙花一现”,但应用背后所涉及的工程步骤,例如把算法快速地迭代出来、如何做算法优化、如何把算法放到手机上,如何上线,等等。这种实际操作的流程和只看论文和demo是不一样的。今天,我们有GitHub这类的开源社区,很多实际操作都比以前更加容易。

Q6:现在人工智能处于什么发展阶段?它未来会给我们带来哪些改变?它的长期规划可能是什么样的?

另外,从工程的角度补充两点:第一,如何获取最新的技术和算法?现在整个开源领域进展迅速。其实,不光是开源,也有很多开发支持平台。所以,大家可以保持好奇心,然后多带着玩的心态进行尝试。例如三年前,名为叫Neural Style Transfer的AI应用,将拍的照片上传之后,就可以转换成一张类似梵高风格的艺术照。

具体而言,阿里在开发和工程平台上基本上有三方面的应用,首先是AI和大数据的结合,目的是在传统机器学习领域里,如何让应用工程师、或者数据科学家更加容易使用数据和算法。换句话说,更加丰富、更加成熟、更加高效的算法的结合,目的是为公司提供需要的场景化的解决方案。最典型的例子有两个,一个是搜索推荐,另外一个是金融风控。这两个领域对AI存在强需求。如果存在场景化的解决方案,那么就能让其更容易将领域数据和AI相结合。

李大海:我们还处于AI的应用层。AI现在已经是一个非常大的框,里面可以放非常多东西,领域也非常广。我觉得我们更像是AI行业的从业者,是把AI当成一个功能强大的工具去使用。