对于蚂蚁金服研究员王益而言,2019年是个很有记念意义的年份。今年他整40岁。从10岁开始,写代码整30年。这30年来,他当过“游手好闲”的学生,创纪录地在大一就考下系统分析员,“单枪匹⻢”闯荡过从国内到硅谷的多家知名互联网科技公司,和AI领域许多传奇人物都有所交集。不惑之年对于许多工程师来讲,或许已经是须要焦虑的年龄,但40岁的王益在蚂蚁金服天天都过得很充实:起床,自由泳一公里,而后去作他最喜欢的事——写代码和组织你们一块儿写代码。
2019年9月11日,在上海举办的Google开发者大会上,蚂蚁金服研究员王益分享了新开发的分布式深度学习系统ElasticDL。这是他来到蚂蚁金服的一年之中所作的第二个开源项目,主要用于大幅提高集群整体利用率以及深度学习团队的工做效能。以前开源的 SQLFlow系统在短短的几个月之间,已经在GitHub上得到了三千多颗星星。程序员
2019对于王益而言是个很有记念意义的年份,今年他整40岁,写代码整30年。算法
这听上去是一件难以想象的事——30年前,上世纪的80年代末,他在⻓沙上小学,全城都很难找出一位能教编程的老师,我的电脑更是一个陌生名词,一台以苹果2为原型、能够用BASIC语言编程的 “中华学习机”售价7000人⺠币,在当时几乎能够买下一套房子。sql
幸运的是,王益在10岁那年获得了这样一件贵重的礼物,从这台学习机和一本BASIC语言教材开始,他开启了与代码结缘的人生。数据库
“我那时不是个好学生,常常受‘别人家的孩子’打击,老师和同窗都以为写代码是游手好闲。”回想起30年来的经历,这位清华博士、足迹从国内到硅谷历经多家知名互联网科技公司的学霸笑谈本身“活得比较任性”,“但我就是想作不同凡响的事。别人越说这样不行,我就越想用这种方式证实本身。”编程
初中毕业那年的暑假,他用“中华学习机”和本身焊接的电路板,把自家的老式“威力牌”双筒洗衣机改形成了自动洗衣机。同时,他用Apple BASIC语言和6502汇编混合编程,写了人生中第一个游戏。高中三年,其余同窗努力备考,他却加班加点自学了大学计算机系全部课程,随后参加计算机水平考试,前后得到了程序员、高级程序员、以及最高级别系统分析员资格。2018年,他得到Google APAC Innovation Award。从不断摸索代码世界的少年时代,到专一于AI基础架构和系统开发的求学工做生涯,这份“任性”一直伴随他走到今天。安全
“我常常从零开始。选择去作什么的一大标准是‘有意思’。”架构
相比于规划一条稳妥的职业发展道路,王益更愿意顺应本身强烈的好奇心,去选择最困难但最有意思的探索方向。他在中国和美国互联网公司都工做过,也分别在美国公司的中国分部和中国公司的美国分部工做过。他的足迹遍布国内BAT三家。任性的是,每次跳槽, 他都从一我的coding一个创新项目开始,吸引同事们加入,从而组建团队。虽然2011年就在腾讯做为广告系统技术总监,可是他从不在跳槽时要求带何等规模的团队。框架
2014年,王益带着妻子和两个月大的女儿离开腾讯移居硅谷。“一切都归零了。工资减半。”他笑笑说。不过凭着多位学界和业界领袖的推荐,他很快就安顿下来,不到一年就开始在硅谷创业,做为Head of Research Scienets 参与建立了AI创业公司 ScaledInference。这是一家人才辈出的创业公司。人工智能行业的领袖人物、加州大学伯克利分校的Michael Jordan教授是这家公司顾问。陆奇曾表明微软到访,讨论技术合做。“惋惜咱们不够关注业务落地,作的不够好。技术研发必定要有落地的能力。”过后,王益不无遗憾的说。分布式
在加入蚂蚁以前,王益在百度硅谷研究院工做,负责开源深度学习系统PaddlePaddle。在历经两年的艰苦开发,新一代技术Fluid开始系统地落地百度各个业务以后,他发起了他在 PaddlePaddle的最后一个子项目——一条太阳能驱动的无人驾驶船。这是一条双体船,由他和五岁女儿的两条划艇构成。船上的笔记本电脑运行基于immitation learning的人工智能系统,自动学习驾驶者的技巧。为了船体稳定,他在自家⻋库里焊接了链接两条划艇的金属框架。便于拆装的结构,能够装上他的皮卡,方便下水测试。工具
作出加入蚂蚁金服的决定,也是出于一样的理由——“有意思”。“这里的业务很新颖,对AI 有着更加多样化的需求。”如何用AI解决金融行业的问题,是和他以往所面对的彻底不一样的全新挑战。
加入蚂蚁金服不久,王益就意识到本身以前的朦胧猜测愈来愈清晰地被验证:和主要依靠流量与广告赚钱的传统互联网公司不一样,蚂蚁金服不是纯互联网公司,它有独特的商业模式和对于工具的独到需求。
此前的十多年中,他的大部分经历是在传统互联网行业作搜索推荐技术,这一类业务所需的模型总数比较有限,只须要算相关性的模型、排序的模型等,一个成熟的模型一般会有几十上百人维护,每一年修改调整去提高性能。但在蚂蚁金服,这种模式被颠覆了。由于金融行业的数据远比社交、电商和搜索引擎的数据要稀疏,很难彻底靠机器来挖掘出规律,必须依赖金融专业分析师的智慧。分析师大量使用SQL语言来验证想法,或者进一步作探索,这些结论对金融业务很是关键。
每一位分析师平均天天要提交不少个AI任务,这些任务对AI模型的需求各不相同,差别性特别显著。可是,模型是建模团队用Python语言描述的,分析师们若是要调用模型,要么须要学习Python语言,要么须要专配一位工程师,效率难以显著提升。
语言不通,因此须要翻译,那么可否在SQL和Python之间也设立一个翻译?
基于这样的想法,王益和团队一块儿开发了SQLFlow,这个系统比如一个“翻译机”,能将分析师们输入的SQL命令翻译成Python语言,这样一来,分析师无需学习Python,使用SQL语言就可以处理数据、训练AI模型,并使用训练好的模型来回答业务问题。
这套系统更重要的做用,是从新界定了分析师、建模团队和工具开发团队的责任,让同一个机构里的这三个工种有了清晰的分工,有效造成协力。
经过SQLFlow被调用的模型,会基于基础架构来进行分布式执行,这套分布式的智能学习系统,就是刚刚开源的ElasticDL。ElasticDL基于TensorFlow2.0构建,是面向将来的下一代技术,其很重要的独特之处,就在于它很“聪明”。
首先,它能和SQLFlow一块儿,补足简短的SQL程序翻译成复杂的Python程序的过程当中所需的信息。根据深度学习模型的数学特性,它可以决定用什么样的方式来进行计算,还能在计算过程当中智能地决定一些参数。
其次,它的容错和弹性调度机制,能让集群的利用效率更高。用户提交需求以后,再也不须要“排队”等待资源释放才开始计算,计算会“插空”进行,这样闲置和等待时间更短,大幅度减小了浪费在等待上的系统资源和人力资源。
在数据收集能力极大提高的今天,拥有能算“大”数据的能力,比算得快更为重要。这是王益一直未变的观点。ElasticDL的开发,着眼之处不只是计算自己的提速,更是针对云计算时代中,数据量大且多人共用集群的特色而进行的调度优化。“等待的时间有时会占到60%-80%,若是不能有效减小这部分的浪费,只是提高计算速度的话,对总体效率的提高就是杯水⻋薪。”王益说,可是ElasticDL的弹性调度能在资源不足的状况下,有多少就先调用多少,让计算尽快启动。
⻓远看来,ElasticDL还将支持各类学习模式,以顺应金融行业对AI的多种需求。不少在传统互联网行业无关紧要的训练模式,在金融行业都颇有广阔的应用场景,好比保障数据安全的同时还能共享数据背后规律的共享智能,或者创建能够进行各类大胆试验的虚拟环境,这些面向将来的需求,在ElasticDL的设计之中也有所考虑。
对于一直在作AI基础架构的王益来讲,对AI有着各类不一样需求的金融行业,是一片全新的驰骋疆场。无数新的问题等待他去尝试,去寻找新的解法,让他乐此不疲。
“数学模型和分布式架构是互相影响的,只了解其中任何一面,在这个领域都作很差。要为深度学习的架构去改数学模型,也要由于数学模型的数学特色去作架构调整。”
站在今天回顾过去作AI基础架构的十多年,王益以为这是本身所学到的最重要一课。
这一想法的首次验证,是在他2009年离开Google进入腾讯以后写出的Peacock系统。和在Google所作的语义理解项目不一样,此次他将算法和分布式架构一块儿考虑调整,让语义理解的规模扩大了上千倍,后来集结成了论文发表在ACM Transactions on Intelligent Systems and Technology杂志上,广为业界知晓。
2015年,他进入百度硅谷参与语音识别项目Deep Speech 2,这一项目不只被MIT科技评论评为 2016年全球十大科技突破之一,也成为他了解深度学习的一个契机。他一度坚持要有完美的理论论证才能进入实践验证,由于深度学习的理论未经严格推敲,他一直认为只有统计学习才是“正道”。
在百度,王益得到深度学习科学家徐伟的推荐,去负责深度学习平台PaddlePaddle。在不断探索解决实际问题的过程之中,他的想法改变了。
“并不必定先要有完整论证的理论才去进行实践,也能够先实践,实践出真知。实践以后再总结提高为理论。”王益说,“这就像是在牛顿发现力学原理以前的几千年前,人类就已经利用杠杆原理修起了金字塔。”
今年5月,SQLFlow宣布开源,以后仅四个月,ElasticDL也宣布开源,这在蚂蚁金服的历史上并很少⻅,倒是王益的坚持。他认为惟有开源才能保证信息透明,惟有让代码直接面对全社会,才能全方位的接受审视和检验,对写代码的人自身来讲,也是一种自我约束。
“开源和codereview不只是个技术问题,更是管理学问题、社会学问题,关系到如何把你们组织起来变成更高效的团队。”王益说。
Code Review对他本身而言,也是人生中一段难以磨灭的经历。他用“最初的震撼”来描述12年前初出校⻔加入Google中国时的体验。当时他已经写了18年程序,手握系统分析师资格,还特别研究过了Google的Code style,因此初次遭遇Code Review时并无太当回事:“觉得本身写了这么多年程序,怎么都还行吧。”
但现实是⻣感的:他在Google写出的第一个程序,总共不过100行代码,却被来自美国的同事和好友Jerad提出了120行意⻅。“当时深受打击,简直以为屈辱。”
他压制了情绪,仔细去看那些意⻅,这才发现每一条都真诚且颇有帮助。“从那一刻起, Code Review 成为了咱们的工做方式。”天天和这些同事们一块儿coding,互相review,让中国工程师们很快知道了应当关注哪些地方,应当如何沟通合做。所以,无论是腾讯的 Peacock,百度的PaddlePaddle新版本Fluid,仍是蚂蚁的SQLFlow 和 ElasticDL 都是王益先开发出原型,再吸引感兴趣的同事一块儿来完善。
这种工做方式的影响一直延续到了今天,他也但愿可以以这种方式去影响更多的工程师。“搞技术必须实事求是。”王益说,代码是工程师最好的名片,藏着掖着、互不交流,就没法带来信赖、合做与提高。帮助你们了解和实践code review,须要花费大量的时间和精力。“白天弄管理,晚上写程序”这是王益总结的在腾讯工做时的办法。“后来在百度和蚂蚁,我更刻意地专一作技术工做,确保精力更集中。”
这正是如今的互联网科技公司的组织管理和人才选拔之中不可或缺的一课。在开源机制之中,每一个人都会对本身的coding更加认真,主动的人会脱颖而出,被动的人会自动淘汰,团队成员之间会自发地相互协同,互相认同,找到沟通和合做的方式。
“如今技术领域的成果已经很难靠单枪匹⻢的我的英雄主义去取得,团队合做必不可少。但愿用这种方式来找到开朗真诚的伙伴,一块儿去摘高处的果实。”王益说。
OceanBase 登顶TPC-C测试榜,实现中国数据库零的突破,想要了解背后的技术细节?欢迎下载电子书《OceanBase TPC-C测试技术解析》,长按识别如下二维码,关注“蚂蚁金服科技”官方公众号,并在对话框内回复“TPCC”,便可免费下载。