贾扬清:把生命浪费在有意思的事情上
昨天,是1024程序员节。在这个“攻城狮”自带光芒的日子里,阿里妹请来AI大神贾扬清,作为一位开发者,聊一聊他自己的开发者经历,希望对你有所启发。
深度学习框架Caffe 作者,TensorFlow 作者之一,曾任 Facebook AI 架构部门总监,负责前沿 AI 平台的开发,Facebook 各产品部门 AI 平台的支持以及前沿机器学习系统研究。加州大学伯克利分校计算机科学博士学位、清华大学硕士学位和学士学位。
01 人生经历
当我觉得正在做的事情有意思,
我就觉得投时间在里头是对的。
阿里妹:大家对你的个人经历特别感兴趣,这么年轻来到阿里,想了解你是什么时候开始编程的?大学、研究生、博士分别学了什么?
贾扬清:其实我学编程还挺晚的。初三的时候,有一台计算机,我觉得挺有意思的,这时候开始接触电脑。大学的时候我想报相关的专业,清华计算机的分数线非常高,我就去了自动化线。我在本科学的是正常的课程,到了研究生阶段才开始学习机器学习相关的内容。当时有一句话是说:机器学习在80%的时间里解决80%的问题,但我们不知道哪80%的时间解决了哪些80%的问题。当时大家都很沮丧,想着毕业可能就失业了,还不如学系统或是数据库,至少有工作的机会。后来是因为兴趣,就一直坚持下来了,再后来去伯克利读PHD。博士期间已经在做计算机视觉的研究。要说正式开始非常认真的编程的话,Caffe 应该算是我第一个C++的项目。
阿里妹:你认为你是一个智力超群的人还是学习刻苦的人?
贾扬清:我觉得我智商没太高,可能还是因为兴趣,我也是相对比较懒的人,但是干活还是干的。我基本上7点起来,半夜还在做。当我觉得我的事儿特别有意思,那我就觉得投时间在里头是对的。
02 深度学习技术
这是一个值得投入的方向。
阿里妹:Caffe 是在什么场景下开发的这个框架,并且选择开源的,开发这么一个复杂的计算框架中遇到最大的坑是什么?
贾扬清:当时我们是想解决一个现实的问题,AelxBnet 出来之后,一直没有一个通用的让我们做科研的像 cuda-covnet 这样的一个平台,大家如果去看 cuda-covnet的话,是很难做扩展的。所以,当时我和伯克利的其他研究生是想解决自己的痛点:怎样来训练和设计深度学习的网络?
开源的原因是我们觉得我们有这样的一个问题,那么斯坦福肯定也有,清华也有,其他人肯定也是有这样的一个痛点。后来,我们基于共享的考虑因素就把它放出来了,可能也是因为这个缘故,正好踩到了点。
如果要说坑的话,搞开发的时候,最痛苦的事情是怎样来Debug。最开始的时候没有测试,后来我们跟以前在谷歌和其他的科技公司的朋友谈了一些测试框架。我们把测试的东西弄起来之后,写完Code跑一遍测试就可以了,这是很大的收获。
阿里妹:AI 对于解决常识或者推理的问题上面,会不会有重大的突破?包括知识图谱跟深度学习学习如何结合?知识图谱+图计算是不是有希望的方向?
贾扬清:凭心而论,我不是图计算的专家,只在读Paper了解的程度。我觉得类似于知识图谱,或者说用一个很老的词叫专家系统,这方面的研究可能是人工智能接下去的方向。以前做专家系统的时候,大家发现一个问题:我知道这个逻辑是怎么样的,但是输入一个图,怎么样从图到逻辑。所以,这几年人工智能在感知方面,像图像识别、语音识别、自然语言理解,都是从各种各样的输入到所谓深度学习的阶段,这方面深度学习的问题没有解决。图计算让我想起我在做PHD的时候一个特别热的领域叫概率图模型,我觉得这是一个很值得投入的方向。
阿里妹:目前出现了无需大规模训练集的深度学习算法模型,只是在精准度方面有一定的损失,请问这个方向是否有生命力?如果有,可以应用在哪些场景中?
贾扬清:这还是跟场景有关系,在一些影像识别等场景中的确有这样的问题,当我要找一个特殊癌症的人,我不能满世界找十个得癌症的人。所以说怎样在小数据上做学习是一个问题。我也经常在反思,不一定需要拘泥于数据太少的问题,可以通过一些方法来看能不能找到更多的数据。目前,小数据的收集还处于一个偏科研的方向,很多场景在真正落地的时候,还是需要数据,但是这个方向还是非常值得关注的。
阿里妹:你会推荐其他技术上的同学投入深度学习吗?
贾扬清:我夫人是做 finance 和 accountant 的,有一天她说要学 SQL,在finance 中,很多人需要数据处理。后来,我们就用一个周末的时间在一块儿学习。我觉得这件事和这个问题类似,大家可以把深度学习当做一个工具。如果你在周末的时候把它当做练练手的项目来做,那还可以,否则就不要搞了。有很多专业的,像做编译器的同学都可以帮忙搞定。怎么投入学习呢?看一看数据科学家都在做什么事情,如果自己有一堆数据的话,是不是可以用深度学习的模型跑一跑,前提是作为一个用户来用,而不是作为底层的开发者来用。我觉得深度学习是一个好东西,看大家怎么来用,到底要不要造这个工具,有兴趣的话当然可以。
03 职业成长
人应该是要想着怎样做更好的工具,
而不是跟工具抢活。
阿里妹:AutoML是一个兴起的领域,预期会有越来越多的日常工作被自动化,算法工程师应该如何选择发展提升方向?
贾扬清:我认为这是一个机会。当年C语言出来的时候,做汇编的同学会觉得自己没饭吃了。python、java出来后, C语言的人是不是没饭吃了?其实都不是,而是说效率提升了。所以,我觉得 AutoML 更多的是让我们能够放手来考虑更多更上层的东西。所以人应该是要想着怎样做更好的工具,而不是跟工具抢活。
阿里妹:对算法工程师来说有没有更具体的,可以发力的方向?
贾扬清:AutoML 应该是从2016年开始的, AutoML 最开始做搜索的时候,需要大量的资源,一开始大家开玩笑说AutoML 属于谷歌秀肌肉的文章,一上来就说800个GPU跑了几个月的时间,这事儿不现实的。我们用一个相对批评的态度来看 AutoML 文章,他基本上就是跑一堆程序,最后跑出一个最好的。但是我们随机搜了一堆,它的效果能差多少?这个问题在研究领域也在讨论。所以,AutoML 一个比较现实的方向是,怎么样在资源受限的情况下,最快地寻找到一个最好的模型,这是一个传统的像搜索等方面的问题。
阿里妹:在你的感受中,国内工程师跟硅谷工程师有什么差异点和共同点,对国内的一些工程师有什么样的建议?
贾扬清:我觉得咱们国内的工程师最好的一点是特别认真,真的是特别认真。国外的工程师,有的时候到周末就找不到人,甚至星期五下午四点钟就下班了。我来阿里之后,加入了骑自行车锻炼的群,虽然还没有机会去,我觉得还是需要平衡一下。硅谷工程师的想法更加天马行空一点,愿意投资到看似没什么用的地方去。这体现在公司的文化上面,硅谷的工程师把很多的工具做的挺好的,这无形当中就提升了我们的效率,比如说像代码的审查,怎样做测试等。也不是批评咱们自己,国外的公司可能在这方面的投资的范围更大,这个反过头来帮助了日常的工作效率,这可能是咱们应该向硅谷学习的一个地方。
04 未来
人不是一台机器,
但也正因此,
我们才比机器更加温暖。
阿里妹:AI 在落地改变人类发展的道路上,面临的主要挑战是什么?
贾扬清:我觉得面临的挑战是我们做 AI 的人不落地,这算是一个自我批评。大家做科研,很多时候像在象牙塔里,需要解决的问题很简单,就像 imagenet,最开始我们说人工智能爆发的这一点,imagenet 图像解压缩之后250G左右的样子,我拿个硬盘就解决了,即使硬盘不够快,我拿个 SSD 也差不多也解决了。然后,我们再看看应用到产品里,有的时候是30亿的照片,拿 SSD 就放不下。你再拿一个机器跑一跑试试,半年后说不定也没戏。所以这个时候,算法需要真正的在不同的产品环境里头摸爬滚打。产品的数据,在一定程度上来说挺脏的,但是这事得做,做完了才能把算法推下去,有的时候做事不能太干净,这个是最主要的一个挑战。AI 领域发展得很快,科研人员很快地冲到了产品里,对软件工程这方面的敬畏在一定程度上是不够的,包括我自己,这是最大的挑战。
阿里妹:知识爆炸的时代,未来应该如何选择可以长期投入的方向去研究?
贾扬清:这个有点难说,我们当时搞人工智能的时候,开玩笑说,毕业就是失业。我觉得还是要找一个自己感兴趣的方向,现在大家都在做的,并不一定是最有意思的一个事儿。
有一次,我们一群博士生在讨论日子要怎么过。我们的想法是找一个自己喜欢做的事情。如果是我不喜欢做的事情,即使挣钱了,也还是在干不喜欢干的事。我们当时的说法是:即使我做得不开心,即使我赚不了钱,但我觉得这事儿有意思就行。我有一位同学是做天文的,虽然不赚钱,但是他做得很开心,这事儿就是我想做的事情。
2002年我刚入学的时候,我们班主任跟我们说了这样一句话:“你们已经读大学了,都已经在这儿了,你们要考虑到将来你毕业之后,年薪10万是没有问题的,养小孩是没有问题的。你们要想想,当温饱解决了之后,你做事儿是不是开心?”我觉得这句话对我的触动挺大,我一直都记得这句话。
阿里妹:如果推荐一本书给现在的开发者,你会推荐哪一本书?
贾扬清:作为软件工程师我经常有这样一份沮丧:为什么别人总是不讲逻辑?这种沮丧在我走上技术管理岗位以后越来越多,直到今天。戴尔卡内基的《人性的弱点》,从畅销书的角度可能都已经被说烂了,不过我觉得它对像我这样的技术人员来说,是一本特别值得读的书:它用逻辑来讲述逻辑之外的事情,同时向我展示了一系列为人处世和共创成功的方法论。我2014年的时候第一次读到这本书,感觉它解决了我心底里对于和人打交道的恐惧。乍一看,书中讲到的事情似乎都是一些技巧:如何使你更受欢迎,如何交朋友,如何增加赚钱的能力,等等;但一条主线贯穿始终:人作为一种社会动物,有着喜怒哀乐,有着不同的个性,但是最终都希望获得相互的真诚,合作和理解。书中讲到的无数种技巧,归结起来,就是真心理解他人,尊重他人。人不是一台机器,但也正因此,我们才比机器更加温暖,共勉。
本文作者: 贾扬清
本文来自云栖社区合作伙伴“阿里技术”,如需转载请联系原作者。