编辑 | Jane
采访嘉宾 | 唐源,蚂蚁金服技术专家
出品 | AI科技大本营(ID:rgznai100)
今天是 2019 年最后一天,伴随着即将到来的 2020 年,第一批 90后互联网大军即将步入而立之年,回首他们的来时路,那些熬夜奋战的日夜,失败后的坚守,不断的创新与突破都成为他们送给自己最值得回味的礼物。
第三次 AI 浪潮下,AI 技术大军应用而生,而 90后开发者在这波大军中破竹而出,无论是国内外,还是学术界与工业界,他们完成了自己从「新生代」迅速成长为「中坚力量」的华丽变身。而蚂蚁金服技术专家唐源就是这批大军中的一员,也是“异军突起”的一员。
唐源,90后,从 6 岁到 17 岁一直在国内学习书法、美术、绘画等艺术专业 11 年,18 岁留学到美国却选择了数学专业,期间接触了编程,开启 7 年算法与技术之旅,大学创业,多年来一直与开源结伴同行,现任蚂蚁金服技术专家。
他带着第一本 TensorFlow 的中文教材与大家见面
2016 年,AlphaGo 与李在乭的一战,让 AI 成名。自此,国内开始涌现大批 AI、深度学习爱好者与学习者,但是,与国外相比,国内学习条件乃至中文版的学习课程与资源、专业图书、都非常匮乏。2017 年 2 月,第一本 TensorFlow 的中文教材《TensorFlow实战》出现在大家的视野中,这本书就像给国内的学习者、开发者的“学中送碳”,理论结合大量实例代码,成为初学者的必备案牍之作。同时,这本书也获得了 Google 团队内部及业内众多大牛的强力推荐。本科学习期间,唐源就成为创业公司 DataNovo 的核心创始成员,研究专利数据挖掘、无关键字现有技术搜索、策略推荐等。后来,进入美国 Uptake,担任数据科学家,带领团队建立用于多个物联网领域的数据科学引擎进行条件和健康监控,同时建立公司的预测模型引擎,现已被用于航空、能源等大型机械领域。现在,唐源任蚂蚁金服技术专家,目前专注于建立 AI 基础架构和自动机器学习平台,如 2019 年 10 月,蚂蚁金服开源的 ElasticDL。AI 科技大本营近期再次采访到了唐源本人,和他聊了聊多年来他在美国学习与工作,现加入蚂蚁金服,一路走来的故事。AI科技大本营:什么时候加入蚂蚁金服的?是什么原因离开了上一份工作,选择了蚂蚁金服?唐源:我是在2018年6月加入蚂蚁金服的,离开上一份工作加入蚂蚁金服主要有以下两个原因。首先,我想体验一下国内的公司文化和技术氛围,我是高三的时候就来美国做交换生,之后留在这边读大学。因为大部分的专业知识以及工作经验都是在美国积累的,所以一直对国内公司的文化和氛围充满好奇,蚂蚁金服联系我的时候也是我第一次开始了解国内的公司。其次,我也想在更大的环境里从更多有经验的同事那里学习和积累。我在本科期间自己有过创业经历,由于在美国的身份限制很遗憾没能继续,毕业后也进入了一家发展迅速的创业公司,体验了一个公司从100多人发展到1000人的整个过程。我非常享受创业公司的文化氛围,当时做的项目也在自己的推动之下在几个大的场景落地,得到不少高层的支持,紧接着开始带领自己的小团队,目标是把这个项目应用到公司内部所有的应用和场景。后来发现自己逐渐地把时间都花在和各个团队沟通和策划上面了,自己热衷的写代码、玩技术的机会和时间却越来越少。我当时想的是,过早地做管理可能会让自己没办法沉下心来好好在技术上有沉淀,应该要多花时间在自己最喜欢的事情上,趁现在多在技术上有提升。蚂蚁金服联系我的时候也刚好是我想走出舒适区的时候了,我在蚂蚁金服的团队不乏从 Google、Facebook 等大公司来的很有经验的同事,可以更多地从他们身上学习,踏踏实实地侧重提升自己的技术能力。AI科技大本营:目前在蚂蚁金服主要负责哪方面的工作?这和之前有什么不同吗?有哪些变化?唐源:目前在蚂蚁金服主要在做 AI 基础架构,支持蚂蚁金服内部的各种业务算法在大规模的分布式集群里的运行,围绕 Kubernetes 以及各种机器学习框架来做系统上的优化。加入蚂蚁金服之前我在 H2O.ai 主要负责开发开源大型机器学习平台 H2O 以及自动机器学习平台 Driverless AI,这里面囊括了各种系统性能上的优化,优秀的机器学习算法和建模技巧,当时能做到自动化整个机器学习流程,在无人工干预的情况下能在 Kaggle 数据科学竞赛中取得前10的成绩。加入蚂蚁金服后,工作内容对我来说是有非常大的转变,从算法建模工作逐渐转到了搭建分布式机器学习系统,走出了自己的舒适区,在更多方面得到了提升。由于自己之前在开源社区有不少积累,分布式机器学习架构很多时候也是需要结合算法来优化的,所以这个转变整体来说算是比较成功。2019 年是拥抱开源的一年,无论是国内外开源社区、开发者乃至企业,都发生了很大的变化。据 GitHub 年度数据报告统计,在 GitHub 全球 4000 万的开发者中,中国开发者无论从数量还是开源项目的贡献上均已位列第二。并且,越来越多的中国企业正在国际开源项目及贡献中扮演着重要角色,譬如阿里、腾讯、百度均已进入 GitHub 全球公司贡献榜。
中国的活跃开源项目贡献者,有 40%~50% 都是在过去一年里加入的。开发者群体中很多人都是 90 后,或者是高中生,对软件开发有着非常强烈的兴趣。
彼时,CSDN 曾对唐源进行过一次专访:《掌握 Google 深度学习框架的正确姿势——专访 TensorFlow 贡献者唐源》,了解到了那时他与众多深度学习开源框架的故事。做为第一批走进开源社区的 90后,多年来,唐源都一直醉心于自己的开源的事业中。他是 XGBoost 和 Apache MXNet 的 PMC 成员,TensorFlow、ElasticDL、以及 Kubeflow 等项目的 Committer,也是 ggfortify、metric-learn 等软件的作者,曾因他对开源社区的贡献而荣获谷歌 Open Source Peer Bonus。AI科技大本营:此前,你获得了谷歌 Open Source Peer Bonus 奖,证明了你在开源工作上取得了成就与获得的认同,你如何看待这个奖,对你后来的工作和想法产生了作用?唐源:这个奖首先是由谷歌内部员工提名推荐,然后再经过内部审核和讨论得到最后的获奖人名单的,我通过持续对 TensorFlow 的贡献吸引到了他们的注意最后得到肯定,这是对我的一个很大的鼓励以及对我的贡献的认可。紧接着,我也围绕 TensorFlow 生态做了许多的工作,包括:我和 RStudio 合作的 TensorFlow in R,提供了非常友好的 API 让 R 语言用户能方便地使用 TensorFlow;TensorFlow I/O 支持 TensorFlow 从各种格式以及文件系统来读写数据;Kubeflow 支持在 Kubernetes 集群上很方便地运行各种机器学习框架,包括 TensorFlow;ElasticDL 支持在 Kubernetes 集群上运行 TensorFlow,并且支持容错和弹性调度。这些工作很多都是社区、家人、以及公司的鼓励和支持分不开的,在这里由衷地感谢。AI科技大本营:国内现在也有很多开发者积极投入到开源的工作中,从你个人多年的经历而言,有什么经验可与大家分享吗?唐源:一开始我是因为工作需要,经常对使用的软件进行各种修修补补,逐渐也养成了一种看源代码的习惯,对软件的架构好奇心也越来越强,开始主动去了解某个功能是如何具体实现的,这个过程让我受益良多。对还没有参与开源的朋友,我的建议是先从用户做起,熟悉一个软件的功能,遇到问题自己尝试阅读源代码看看是不是能自己解决,如果对自己的解决方案不满意可以和社区讨论,多从用户的角度思考是不是其它有价值的功能可以开发,并且多参与社区的讨论,尽可能地帮助和回馈社区。从个人的角度来说,参与开源能够塑造个人品牌、认识各地的开发者、促进世界范围内的合作、提升个人技术、思考、以及交流能力等等。从公司的角度来说,参与开源能够提升社区影响力、引导社区发展、提升团队整体能力、避免重造轮子、复用现有技术、以及鼓励创新等等。我从参与开源软件这个过程中获得了许多帮助,学到了很多,认识了许多志同道合的人,我也希望通过我的贡献来报答社区对我的帮助。我相信给予越多,获得的回报也越多。一个开源项目如果只有中文文档的话那是无法推广到世界范围上去的,因为大部分开发者都是至少会英语,中文对外国人来说是比较难学的。如果仅仅是在中文的文档基础上再补充英文文档的话,也是不足以做到有很大的影响力的。一个有影响力的项目是要用长时间的维护来赢得用户和社区的信任和支持的,我看到过很多中国开发者开源的项目都是项目一开源就放在 GitHub 上不管了,其实开源只是第一步而已,接下来要持续的维护项目、收集用户遇到的问题和需求、组织社区会议、定期规划项目的长短期目标等等。这样可以吸引更多的人来参与开发与贡献,长远来看不仅仅项目会有更大影响力,还能形成更好的开源生态,用户和开发者们一起在社区成长和学习,以后可以再回馈给社区。公司开源的项目也是如此,开源之后要尽早地将内部的会议和技术讨论开放到社区,吸引更多的开发者参与到讨论和决策中去。AI科技大本营:加入蚂蚁金服后,在开源方面的工作与身份,发生了哪些变化吗?唐源:加入蚂蚁金服之后,除了自己在继续保持和开源社区的交流和贡献之外,也在公司以及老板们的支持下开始负责推动团队一起贡献开源。国内的开源氛围相比起美国来还没有那么活跃,所以需要花时间来宣传开源的意义,建设团队内部的开源文化,以及推进相关开源技术的复用。我们围绕 Kubeflow 和 TensorFlow 两个社区来展开贡献,包括参加社区的会议、拉动跨公司的合作、在 GitHub 上讨论新版本的设计、提交 bug fix、改进文档等等,团队里不少成员都积极地参与了进来,贡献的成果不仅在公司内部以及合作方能够得到应用,同时也收获了社区的认可和支持。AI开发者大本营:如何评价这些改变?预料之中还是预料之外?唐源:这是预料之外的,因为我之前对国内公司的文化是完全没有了解的,阿里巴巴有非常成熟和有特色的企业文化与价值观,这和我呆过的美国初创公司是很不一样的。非常感谢老板们对我的支持和信任,让我能有机会和动力在蚂蚁金服带动团队一起贡献开源,为社区出一份力。虽然一开始参与的人还不是特别多,但是我相信他们会成为一股开源的中坚力量,之后带动更多的人参与进来。AI科技大本营:目前,还在参与哪些开源项目的开发中?唐源:我在 GitHub 上对我参与的开源项目和活动进行了简单的总结,欢迎大家来支持我的开源工作:https://github.com/sponsors/terrytangyuan可以说,唐源的整个青春时代都与开源社区和开源事业紧紧连在一起,现在他的开源生涯也和他一起正迎来开花结果的大好年华,亦如他所坚信的那样:给予越多,回报越多。他谈到自己对编程感兴趣缘起本科期间一个项目,在项目中接触到了MATLAB,开始学习各种编程语言,软件工程课程。在数据挖掘课程上开始接触机器学习,从而开始进入这方面的研究。AI科技大本营:之前学习艺术专业,是怎么在留学时选择了数学专业?这应该是让很多非理科生都头疼的一门学科?在过往中给你增添了哪些有趣的经历?如果再让你选择一次,你想过自己会如何选择吗?唐源:我是很小的时候就开始学习国画和书法,之后一直在沿着美术这条路努力,开始打素描、速写、水彩画等美术功底,初三毕业的时候就跑去北京和准备高考的美术特长生一起培训,当时可以说是对美术的兴趣十足,但同时需要兼并学校的文化科目,和大家一起准备高考。后来也是机缘巧合,我们学校的上一届的赴美交换生来学校分享,我从小在小城市长大,高中才去了湖南长沙,这次的分享为我打开了一个全新的视野,我当时感觉特别激动和新鲜,开始着重加强英语等方面的学习,开始了留美学习之旅。我是理科生,其中学得最好而且最喜欢的科目是数学和物理,我就毫不犹豫地选择了主修数学,数学是很多工程以及科学类的课程的基础学科,想着自己可以先学着,然后如果发现更喜欢的科目再转也不迟。果不其然,在课程之余和导师一起做项目时接触了编程,由此开始对编程产生了特别浓厚的兴趣,开始学习各种编程语言,也开始选修一些计算机课程。如果再让我选择一次,我还是会这样选择,因为主修数学为我后来在机器学习领域的工作打好了扎实的基础,同时数学作为计算机视觉、机器学习、等等的基础,随着人工智能领域的发展,越来越的研究成果也运用在了艺术创作上,比如自动生成梵高风格的油画、齐白石风格的水墨画等等,这些应用都非常的有意思。AI科技大本营:进入程序员这一行后,是否也犹疑迷茫过?如何化解的?唐源:刚开始编程的时候,主要是运用在数值计算上,能够利用计算机来解决很多自己平时手动解决数学问题繁琐的过程,比如解微分方程。逐渐地我就开始对各种编程产生的应用软件感兴趣,开始自学做网页、做手机App、写小游戏、等等。在大学最后一年连续几个周末都在参加各个大学组织的 Hackathon,翻译过来是黑客马拉松,也就是整个周末不间断地完成一个自己想的创新项目,虽然只收获了一枚第一名的奖章,结识了不少热爱创新热爱编程的朋友,也感受了从自己一行行写出来的代码到能够和观众进行互动的App的成就感。受到编程和之前学美术的影响,我在后来也做了一些数据可视化的工作,比如 ggfortify 和 autoplotly 两个开源项目,能够自动将数据分析的结果进行二维或者三维的可视化,让研究者和工作者能够集中精力在他们的主要研究当中,从而在科学和技术上有着更快的实质性突破。现在做分布式机器学习系统,需要对算法和系统都有很深的理解,由于分布式系统的复杂性,也经常遇到很多挑战、比较棘手的 bug、等等。有时候问题无法复现,网上也没有找到类似的解决方案,经常会卡在一个问题上好几天,需要有足够的耐心和细心来调试每个相关的系统组件,最后总是能解决的。虽然有时候可能会有小小的气馁,但解决问题的那一瞬间充满了成就感。生活中,唐源有很多兴趣爱好,同时他对工作与生活也有自己的规划,有目标。他还是一个2岁可爱、机灵又帅气男孩(豆仔)的父亲,日常带娃的他,还用儿子制作各种搞怪有趣的表情包,真是「不玩一下自己的儿子的程序员,不是敬业好爸爸」。他是这么描述自己的:”我喜欢游泳、骑车、滑雪和各种球类运动,比如乒乓球、羽毛球、篮球、和高尔夫,不过在这些爱好面前,我是业务选手。论专业能力,我更擅长各种溜娃,带娃出去结交新朋友以及尝孩子妈做的美食”。(这碗粮,我先干为敬!)即使在短暂的接触中,很容易就能感受到唐源的耐心、善解人意与风趣幽默,并且被他身上满满的幸福感与正能量所感染。AI科技大本营:你对自己的认知,工作和生活的规划与目标,一直都是很清晰的吗?唐源:工作方面,一直都是比较清晰的,一步步走过来都算是跟着自己的兴趣爱好,做的工作都是自己比较感兴趣的,也在各个领域都有不少的探索,在这里非常感谢我的公司以及老板对我信任,能够让我自己选择想做的工作。生活和恋爱方面,我和我太太是在大一的时候认识的,那时候我们都被分到了一个比较小的校区,公共交通很不发达,我们慢慢就熟悉了,三年以后本科毕业就结婚了,之后我去工作,太太继续读硕士。一直以来我们有大概的方向,但也不敢说对于未来的计划都很清晰。我们对未来生活的大方向和价值观非常一致,在一些生活细节和性格方面也比较互补。AI科技大本营:你认为支持你走到现在最关键的三个因素?未来,你对自己的有什么规划,制定过哪些目标吗?唐源:三个支持我走到现在关键因素是:信仰的带领,对自己做的事情的热爱,以及家人的支持。我是一名基督徒,我觉得提到自己人生的方向和规划的时候,就不可避免要谈一谈基督徒是如何为自己人生制定计划的。圣经的箴言里面有一句话是“人心筹算自己的道路;惟耶和华指引他的脚步”。我对于工作和家庭有很多具体的设想和计划,也很期待之后实践的过程,但是大的方向还是由神来带领的。至于在开源社区的付出与贡献,我觉得与个人兴趣是分不开的,需要长期的坚持。另外我非常感恩太太一直支持我所喜欢的事业和兴趣,也很感恩读书时候父母对我的带领和支持。他们一直都是我坚实的后盾。AI科技大本营:大家都在谈论,30+的程序员以后要如何发展?到了 35 岁以后,会面临职业瓶颈期?你是如何看待这一问题的?是否也有过这些担忧呢?唐源:我觉得这个还是要看个人了,如果在这之前有很深的技术积累,也有精力的话,之后其实可以自由选择是否继续专注写代码或者做管理,做管理也是个不错的选择,可以带动更多人一起做事情,更快更好地做出自己期待的产品。我在这方面倒是没有太多的担忧,可能是还没到那个年纪还感受不到这些吧,不过在开源社区有不少朋友都是年纪比较大还在继续写代码的,比如 Python 语言的创始人 Guido van Rossum 60多岁了还在努力为 Python 社区做贡献,再比如说日本的 Masako Wakamiya 60 多岁的时候才开始接触电脑,到了80多岁了还在写手机游戏,所以只要自己喜欢,身体也能支撑的话,什么年纪都是能写代码的。再说每个人追求的东西不一样,不一定都是想要一直往上晋升的,晋升后的压力和工作内容也不一定适合每个人,所以这些最好是顺其自然、水到渠成比较好,“职业瓶颈期”这个说法是不一定适用于每个人的。AI科技大本营:前一段时间,大家都在讨论和回首「2017→2019」,在这几年的经历中,有什么是让你印象深刻的吗?可以与大家分享让你记忆深刻的故事与感想?唐源:过去这两年体会比较深的就是有了宝宝加入我们这个小家庭以后,我一直在学习平衡家庭和工作的功课。我的感受是在平衡工作与陪家人的时间这方面是很需要智慧的,我还在学习中。自从宝宝出生以后,我和太太感受到了养宝宝的不易,家里没有长辈长期帮助我们,所以很多事情都是亲力亲为。在宝宝一岁以前我和太太经常因为照顾宝宝非常疲劳,不过能够看着宝宝每天的变化也是非常惊喜的,宝宝给我们带来的快乐也是工作和其他不能给予的。有了宝宝让我的工作和生活更丰富,也鼓励我更认真地做自己喜欢做的事。这个过程让我深刻体会到苦难是化了妆的祝福,我们相信孩子是来自上帝的恩赐,借着经历的辛劳得到了更大的祝福。采访嘉宾:唐源,现任蚂蚁金服技术专家,目前专注于建立 AI 基础架构和自动机器学习平台。 一直积极参与开源软件的开发,是多个开源软件的作者,XGBoost 和 Apache MXNet 的 PMC 成员, TensorFlow、ElasticDL、以及 Kubeflow 的 Committer。同时也是畅销书 《TensorFlow实战》的作者,这本书是第一本 TensorFlow 的中文教材,并且已被翻译成多种语言。曾在本科学习期间成为创业公司 DataNovo 的核心创始成员,研究专利数据挖掘、无关键字现有技术搜索、策略推荐等。美国 Uptake 数据科学家,带领团队建立用于多个物联网领域的数据科学引擎进行条件和健康监控,同时建立公司的预测模型引擎,现已被用于航空、能源等大型机械领域。本文中,唐源提到了诸多开源项目,为了方便大家学习,他特别整理了这些开源项目地址,本文篇幅所限,不做一一列举,详细可前往他的个人博客。 https://terrytangyuan.github.io/
(*本文为AI科技大本营原创文章,转载请微信联系 1092722531)