支付宝王益:40岁写30年代码是一种什么体验?

对于蚂蚁金服研究员王益而言,2019年是个颇有纪念意义的年份。今年他整40岁。从10岁开始,写代码整30年。这30年来,他当过“不务正业”的学生,创纪录地在大一就考下系统分析员,“单枪匹⻢”闯荡过从国内到硅谷的多家知名互联网科技公司,和AI领域许多传奇人物都有所交集。不惑之年对于许多工程师来说,或许已是需要焦虑的年龄,但40岁的王益在蚂蚁金服每天都过得很充实:起床,自由泳一千米,然后去做他最喜欢的事——写代码和组织大家一起写代码。

2019年9月11日,在上海举办的Google开发者大会上,蚂蚁金服研究员王益分享了新开发的分布式深度学习系统ElasticDL。这是他来到蚂蚁金服的一年之中所做的第二个开源项目,主要用于大幅提升集群总体利用率以及深度学习团队的工作效能。之前开源的 SQLFlow系统在短短的几个月之间,已经在GitHub上获得了三千多颗星星。

2019对于王益而言是个颇有纪念意义的年份,今年他整40岁,写代码整30年。

这听上去是一件不可思议的事——30年前,上世纪的80年代末,他在⻓沙上小学,全城都很难找出一位能教编程的老师,个人电脑更是一个陌生名词,一台以苹果2为原型、可以用BASIC语言编程的 “中华学习机”售价7000人⺠币,在当时几乎可以买下一套房子。
幸运的是,王益在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解决金融行业的问题,是和他以往所面对的完全不同的全新挑战。

SQLFlow:分析师与AI模型间的翻译

加入蚂蚁金服不久,王益就意识到自己之前的朦胧猜想越来越清晰地被验证:和主要依靠流量与广告赚钱的传统互联网公司不同,蚂蚁金服不是纯互联网公司,它有独特的商业模式和对于工具的独到需求。

此前的十多年中,他的大部分经历是在传统互联网行业做搜索推荐技术,这一类业务所需的模型总数比较有限,只需要算相关性的模型、排序的模型等,一个成熟的模型通常会有几十上百人维护,每年修改调整去提升性能。但在蚂蚁金服,这种模式被颠覆了。因为金融行业的数据远比社交、电商和搜索引擎的数据要稀疏,很难完全靠机器来挖掘出规律,必须依赖金融专业分析师的智慧。分析师大量使用SQL语言来验证想法,或者进一步做探索,这些结论对金融业务非常关键。

每一位分析师平均每天要提交很多个AI任务,这些任务对AI模型的需求各不相同,差异性特别显著。但是,模型是建模团队用Python语言描述的,分析师们如果要调用模型,要么需要学习Python语言,要么需要专配一位工程师,效率难以显著提高。

语言不通,所以需要翻译,那么能否在SQL和Python之间也设立一个翻译?

基于这样的想法,王益和团队一起开发了SQLFlow,这个系统好比一个“翻译机”,能将分析师们输入的SQL命令翻译成Python语言,这样一来,分析师无需学习Python,使用SQL语言就能够处理数据、训练AI模型,并使用训练好的模型来回答业务问题。
这套系统更重要的作用,是重新界定了分析师、建模团队和工具开发团队的责任,让同一个机构里的这三个工种有了清晰的分工,有效形成合力。

ElasticDL:一个“聪明”的智能学习系统

通过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。在不断探索解决实际问题的过程之中,他的想法改变了。

“并不一定先要有完整论证的理论才去进行实践,也可以先实践,实践出真知。实践之后再总结提升为理论。”王益说,“这就像是在牛顿发现力学原理之前的几千年前,人类就已经利用杠杆原理修起了金字塔。”

Code Review:从最初的震撼到⻓年的习惯

今年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更加认真,主动的人会脱颖而出,被动的人会自动淘汰,团队成员之间会自发地相互协同,互相认同,找到沟通和合作的方式。

“现在技术领域的成果已经很难靠单枪匹⻢的个人英雄主义去取得,团队合作必不可少。希望用这种方式来找到开朗真诚的伙伴,一起去摘高处的果实。”王益说。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛!2020年,这项技术将获得1,000,000,000元人民币注资!

在今年的特殊情况下,国外的AI明星公司轰然倒塌,一夜之间倒闭。又有某AI大厂一年亏了60亿……就像看破楼市一样,我们不由心想:“AI,会不会从头到尾就是一场泡沫?”但是,最近国家发的“定心丸”来…

基于阿里云的 Node.js 稳定性实践

前言 如果你看过 2018 Node.js 的用户报告,你会发现 Node.js 的使用有了进一步的增长,同时也出现了一些新的趋势。 Node.js 的开发者更多的开始使用容器并积极的拥抱 ServerlessNode.js 越来越多的开始服务于企业开发半数以上的 Node.js 应用都使用远端…

Knative 实战:基于阿里云 Kafka 实现消息推送

在 Knative 中已经提供了对 Kafka 事件源的支持,那么如何在阿里云上基于 Kafka 实现消息推送,本文给大家解锁这一新的姿势。 背景 消息队列 for Apache Kafka 是阿里云提供的分布式、高吞吐、可扩展的消息队列服务。消息队列 for Apache Kafka 广泛用于…

“编程能力差,90%输在了数学上!”CTO:多数程序员都是瞎努力!

01从未得到过重视的问题一流程序员学数学,二流程序员学算法,低端看高端就是黑魔法。可能有人以为这就是个段子,但有过工作经验的都知道,这其实就是程序员的真实写照!想一想,我们学习、求职、工作的场景中&a…

没有写入hosts文件权限

文章目录1. 效果图2. 现象3. 解决方案4. 赋予权限5. 成功截图1. 效果图 2. 现象 3. 解决方案 4. 赋予权限 5. 成功截图

6万人同时离场,竟然一点都不挤?原来用了这个神器

阿里妹导读:阿里20周年年会上,全球6万阿里人 "回家",用一种特别的方式为阿里庆生。年会现场,每位阿里员工人手一只白色IoT手环,这个由102颗LED小灯组成的手环,随着现场音乐、节目节奏变幻不同色彩…

独家揭秘 | 阿里怎么做双11全链路压测?

阿里妹导读:全链路压测是阿里的首创,我们将从工作内容、操作过程、运行总结等多个方向来介绍下阿里内部典型电商活动(如双11准备),以给大家展示一个完整的压测流程,帮助更多的企业和用户更好的完成性能测试…

读取模式错误,计算引擎操作复杂……面对Hadoop这些问题该如何应对?

作者 | Monte Zweben译者 | 天道酬勤,责编 | Carol封图 | CSDN 付费下载自视觉中国Apache Hadoop于2006年出现在IT领域,它使用商品硬件,为组织提供前所未有的数据量存储能力。不仅解决了数据集的大小问题,还解决了数据类型问题&am…

Nacos 集群集成SpringBoot2.x 微服务_02

文章目录一、SpringBoot2.x 微服务1. 依赖引入2. bootstrap.yaml配置3. 测试类二、nacos配置规则2.1. 登录nacos2.2. 配置规则三、测试验证3.1. 启动项目3.2. 验证一、SpringBoot2.x 微服务 1. 依赖引入 <parent><groupId>org.springframework.boot</groupId&g…

蚂蚁“备战”TPC-C这1年

阿里妹导读&#xff1a;1年前OceanBase团队开了个会&#xff0c;定了个小目标&#xff0c;接下来的一年中这群工程师闭关攻坚。从掉头发到睡几个小时就跳起来看邮件&#xff0c;更甚至有人天天焦虑地捧着手机等邮件。 1年后&#xff0c;蚂蚁金服自研数据库OceanBase登上TPC-C排…

瞧!公务员的工作还可以这样干

盼啊盼&#xff0c;第六届世界互联网大会在乌镇如期而至。 在今天的大会上&#xff0c;小云带来了帮助公务员提升工作效率的“神器”&#xff0c;平头哥压箱底的“宝贝”...... 一起来深入了解下。 政务钉钉来了&#xff01;告别公务员传统工作方式 今天&#xff0c;浙江省政…

Nacos 集群搭建_01

文章目录一、准备工作1. 服务器部署2. nacos下载2. nacos下载与解压3. 编辑配置文件4. nacos 集群配置二、初始化nacos脚本2.1. 创建nacos数据库2.2. 初始化nacos脚本三、启动nacos集群3.1. 启动nacos服务3.2. 测试验证一、准备工作 1. 服务器部署 系统版本ip部署应用应用版本…

学数据科学,为何不尝试这 9 个编程语言!

在256种编程语言中&#xff0c;了解数据科学的编程语言&#xff01;作者 | Rashi Desai 译者 | Arvin&#xff0c;责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;数据科学在相当长一段时间以来一直是一件大事。在当今飞速发展…

Swift 5 时代的机遇与挑战到底在哪里?

作者|刘镇夫&#xff08;小鱼&#xff09; 出品|阿里巴巴新零售淘系技术部 本文是知名 ios 开发者 NSHipster中文译者-刘镇夫&#xff08;小鱼&#xff09;&#xff0c;在云栖大会上为大家带来的分享&#xff0c;本文主要介绍几点&#xff0c;第一、Swift 5 代表什么&#xff1…

Nacos 集群整合 Nginx 实现反向代理、负载均衡_03

文章目录一、Nginx 配置1. 下载安装nginx2. 配置nginx3. 启动nginx4. 测试验证5. 配置域名4.6. 域名验证一、Nginx 配置 1. 下载安装nginx https://gblfy.blog.csdn.net/article/details/119536779 2. 配置nginx # 进入nginx目录 cd /usr/local/nginx/conf# 编辑nginx.conf…

阿里云Kubernetes CSI实践—NAS动态存储卷使用

1. 前言 NAS存储盘能将nfs&#xff08;网络文件系统&#xff09;挂载到你的Pod中&#xff0c;阿里云Kubernetes CSI支持静态存储卷挂载和动态存储卷挂载2种方式&#xff0c; 在静态存储卷挂载的方式中&#xff0c;通常需要手动编辑和创建一个pv/pvc进行挂载&#xff0c;当需要…

怒肝 8 个月源码,我成为了 Spring 开源贡献者

作者 | cxuan 来源 | 程序员cxuan责编| 王晓曼前言我最近一直在写Spring的文章&#xff0c;而且仅仅是 Spring FrameWork 的文章 ,从最开始的官网入门到现在源码的深度分析。主要就是三个系列&#xff1a;官网入门系列&#xff0c;Spring官网读书笔记&#xff0c;这一系列的文章…

HTTPS配置过程

该文章借鉴于博主小东很不戳 先在自己项目中根目录下生成数字证书 生成命令如下&#xff1a;keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365 命令解释 • -genkey表示要创一个新的密钥。 • alias表示 keystore 的别名。…

汇报时,如何让老板快速抓住重点?—— 黄金三步法

阿里妹导读&#xff1a;对事物的归类分组是我们人类的天性&#xff0c;我们的大脑会自动将发现的所有事物以某种持续组织起来。但如何组织才能帮助我们解决工作和生活中出现的各种复杂问题&#xff1f;今天&#xff0c;我们请阿里高级技术专家张建飞分享他的黄金三步法。 我们…

Nacos 集群 Nginx MySql SpringBoot2.x 微服务_04

接上一篇&#xff1a; Nacos 集群整合 Nginx 实现反向代理、负载均衡_03 文章目录一、配置规则1. 域名登录nacos2. 测试验证二、SpringBoot2.x 微服务2.1. 依赖引入2.2. bootstrap.yaml配置2.3. 测试类三、测试验证3.1. 启动项目3.2. 验证一、配置规则 1. 域名登录nacos 使用…