2016年,网易杭州研究院(以下简称“杭研”)成立十周年之际,我们推出“十年·杭研大咖说”系列访谈文章,针对亲历杭研核心技术体系变迁的数位技术大牛发问,揭秘网易云背后的技术脉络、研发思想和技术人成长的故事。本期的受访嘉宾,是网易杭州研究院数据科学中心技术总监余利华。
随着人工智能技术成为热点,作为人工智能基础的数据科学愈发重要。作为杭研的核心技术方向之一,杭研数据科学经历了什么样的发展?技术体系怎么形成?支撑了哪些业务?团队如何建设?未来重心何在?在本文中,余利华解读了杭研数据科学实践心得与未来规划。
他介绍,网易的产品非常重视利用数据提高决策科学化和服务智能化,大数据平台、商业智能、机器学习等数据科学技术是每个产品都会用的技术,杭研数据科学中心不仅致力于开展前沿技术探索和共性技术研发,形成云服务输出给内外部客户,同时还整合网易各大产品数据,梳理网易数据资产,使网易的数据发挥更大价值。他认为,Google Dataflow、Flink等优秀的流计算系统的出现,预示实时计算时代的到来。
网易杭州研究院数据科学中心技术总监余利华
八年杭研路
请先介绍您在杭研的工作经历,参与过哪些系统的研发,目前主要负责哪些技术、产品线?
余利华:我一直专注于数据基础设施(Data Infrastructure),涵盖存储、检索、数据库以及大数据领域的平台系统。于2008年正式加入网易杭州研究院。
在网易期间,我参与了分布式文件系统、分布式块设备系统、分布式检索系统、MySQL存储引擎、网易云和猛犸大数据平台等项目。目前负责网易大数据平台系统研发,以及大数据云产品研发。
网易猛犸大数据平台
当初选择加入杭研,并在杭研工作这么长时间,最吸引您的因素是什么?
余利华:包括平台机会和平台环境两个方面的原因:
杭研十周年,您如何评价杭研的进步,以及您自己在杭研的收获?如果只能选择一件事,在这期间最能让您开心的是什么?
余利华:过去十年,杭研同时负责公共技术研发和新产品孵化两个职责,进步是非常大的,在公共技术方面孵化了网易云,在互联网产品方向孵化了云音乐、教育等优秀的互联网产品。
我参与过各种各样的平台系统研发,有幸认识很多优秀的同事,见证了一个个产品的成长,这就是我这些年在杭研的主要收获。至于在杭研开心的事情,其实有很多很多。但如果只能选择一件最开心的事,我认为是网易云的推出(点击观看网易云发布会实录)。我一直从事平台技术研发,网易云的推出为平台技术商业化提供了很好的途径。
杭研数据科学实践
数据科学随着近几年大数据和统计机器学习的进展受到了普遍的重视,在当前杭研技术体系中,数据科学处在什么样的地位?这种地位是如何形成的?
余利华:网易的产品非常重视利用数据提高决策科学化和服务智能化,大数据平台、商业智能、机器学习等数据科学技术是每个产品都会用的技术,所以数据科学在杭研技术中是一个核心技术方向。此外,随着人工智能技术成为热点,作为人工智能基础的数据科学也会更加重要。
能否介绍您的团队目前的工作?
余利华:未来是大数据的时代,作为一个非常重视数据的互联网公司,成立一个专门负责大数据的部门是大势所趋。就是在这样的背景下,我们也聚集大数据方面的人才成立了数据科学中心。
团队的目标分为两个方面:首先,开展前沿技术探索和共性技术研发,打造大数据、商业智能、机器学习平台产品,降低数据使用门槛,提高数据开发和计算效率。这些产品将以云服务方式提供给网易公司,以及网易云的客户使用。其次,整合网易各大产品数据,梳理网易数据资产,使网易的数据发挥更大价值。
团队在这两个方向已经取的初步成果:形成了以网易猛犸大数据平台和网易有数敏捷BI平台为核心的大数据工具栈;挖掘网易用户画像,并应用在广告、金融风控等领域,取得显著效果。
如何选择数据科学技术、工具来完成这两大类任务?
余利华:的确,当前这个阶段,数据科学的工具是太多了,而不是太少了。开发一个数据应用依赖大数据存储、查询、离线计算、实时计算、数据挖掘、可视化等等技术,每个技术都有很多选择,这不仅增加了学习门槛,而且导致了选择性困难。我们设想的方法是建立一个大数据平台,平台上集成我们认为比较好的系统和工具,打通账号和权限,打造数据集成工具让数据在各平台流转,使用图形化和SQL方式进行数据开发和数据分析,从而降低大数据的使用门槛。
您一直强调的共性技术商业化,能否透露重点要解决哪些问题?
余利华:预计我们的大数据云产品明年开始逐步上线,目标是让用户不需要掌握专业的Hadoop运维和数据开发知识,也能开发自己的大数据应用。例如用图形界面简单配置就可以方便地把分布在不同服务器上的日志收集起来、集中存储,并自动转换成标准的数据表,在这个表上,普通的后端开发人员也能用SQL和脚本直接做开发,不需要学习很多的东西。
大数据平台不是一个系统能够解决所有问题,不同的应用场景需要不同的系统,比如离线计算用HDFS/MapReduce,实时计算用Kafka/Storm或者Flink,机器学习用Spark,而Key-Value查询则用Hbase比较合适。 我们要为每种使用场景选择好用的大数据系统,并确保数据在各个产品之间的流转要很简单。 业务数据库的数据以及日志数据等各种形式的数据要能够进入到大数据系统来,并在各种大数据系统之间流转和计算,最终的计算结果能够反馈到业务中去。在数据流转过程中,要打通各个大数据系统的用户、权限,做好数据对接和数据格式转换, 同时兼顾实时性和效率问题。
另外,云端大数据平台区别于一般大数据平台的特性是“弹性”。比如AWS的EMR产品,被设计成存储和计算分离,两个维度可以独立扩展。存储和计算分离的第一个好处是计算集群可以随时启停,从而节省资源。大量业务都是晚上跑计算,白天看结果。那就晚上把集群拉起来处理数据,算完关掉。其次,计算能力扩容也相当容易。 譬如电商双11需要的计算量是平时的10倍,为了双11采购很多机器又不划算,利用云端大数据平台的扩容能力则能节省大量成本。这是云端特有的弹性,线下是做不到的。但是这种弹性要求存储系统和计算系统分离,中间的带宽要求非常大,要把性能做得好才能真正用起来。
做弹性扩展,支撑各个系统、各个业务的资源管理和调度,您如何处理?是否有应用容器技术的想法?
余利华:资源调度是集群计算模式的基础,我们现在线上使用的是广泛部署于生产环境中的Yarn。对于大数据领域的容器技术应用,我们正在考虑一个场景,在云端提供离线计算服务(类似EMR服务),是可以部署在容器集群里面的,比较好地实现资源弹性和性能的平衡。
如果要列举企业应用数据科学最容易陷入的误区,您认为哪些问题会名列前茅?如何规避?
余利华:很多企业把大数据等同于上一整套大数据平台解决方案,这是企业应用大数据中最大的误区。要规避这个问题,企业首先要从业务角度出发,想明白自己有什么数据、有多少数据、准备怎么使用数据。如果现在和未来的数据量都不大,也没有特别复杂的计算,可采用传统的数据库和BI解决方案,传统方案会更轻,容易维护。
如果数据比较大,可优先考虑大数据云服务,或者采购一些标准的开源大数据产品,因为采购这些产品和服务,比起维护一个大数据平台的团队来说还是能便宜不少。具体的选择要素包括:产品能否满足业务需求,产品是否成熟,社区是否完善,产品长期的发展趋势如何,以及企业能否掌控这个产品 – 有些产品比较复杂,团队可能后期无法维护系统 – 当然,如果能够买到产品背后有一些公司提供的服务,也是可以的。
如果企业数据量特别大,资金宽裕,且有很强IT研发能力,则可以建立一个大数据平台团队自建大数据平台,以便随时定制大数据解决方案。
对于自建大数据平台的方案有哪些需要注意的关键点?
余利华:自建大数据平台最关键的是要有一个团队,能够掌控整个平台。前面说过,大数据平台包含HDFS、Yarn、Spark、Hadoop等很多系统,各个公司想要完全掌控有一定难度,自建平台要能解决相关的问题,这就需要一个有经验的团队,包括运维人员和开发人员。
其次,根据需要选择一个比较好的开源软件发行版。
第三,大数据平台和内部业务系统要结合起来,要实现各个系统的数据和权限的打通。
数据科学家的养成
几乎所有的大数据公司都在说数据科学家是稀缺的,而像Hinton、LeCun那样的大牛也确实很少,那么杭研对数据科学团队成员素养和技能有什么要求,又是如何吸引和培养数据科学人才的?
余利华:围绕数据科学团队的两大目标,一是需要做数据资产的人才,这类人首先要会利用大数据平台产品来做开发(我们的平台降低了开发门槛),其次要具备数据分析的能力,第三是数据挖掘的能力,数据资产要提取一些标签属性,最好能有一些结合业务应用方面的想法。
还有一类是偏向于平台型的,对各种大数据系统的应用场景和实现要非常清楚。这需要掌握分布式系统的基本概念,了解分布式系统的各种模型,比如Spark、流计算模型,懂得如何设计一个容错、高可用、可扩展的系统,精通性能优化和问题诊断等。
我认为,杭研为人才成长提供了很好的舞台:
我们想在实时计算、数据仓库、BI等各个方向做出一些比较领先的产品,大数据基础设施、大数据人机交互、大数据应用架构、大数据产品等各方面人才都有很多发挥机会。而从数据资产角度来说,整合了很多内部数据,只要有数据处理能力和想法,也有机会去做很多事情。
您本人在数据基础设施做了很多工作,还曾负责视频技术研发,现在又做数据科学,能否分享如何快速进入一个相对陌生的技术领域并达到快速精通的程度?
余利华:其实要在一个陌生的领域做到精通是需要花很长时间,无法做到很“快速”。不过的确也有一些技巧可以参考:
回到数据科学领域,您有哪些权威著作推荐?如何在众多论文中选挑选论文精读?还有您关注的哪些优秀的开源软件?
余利华:权威的著作,如图灵奖获得者Michael Stonebreaker编辑的红宝书Readings in Database Systems(http://www.redbook.io/),可以作为综述性的入门读物。
论文方面,我倾向于挑选一些比较实用的成果,比如Google等大公司发表的,在内部有广泛实用的,发表在OSDI、SOSP、VLDB、FAST等计算机顶级会议/期刊上的;其次,要关注开源软件对应的论文,要用好这些软件,必须了解这些技术背后的原理;还可以追踪一些比较好的作者,如Michael Stonebreaker、Jeffery Dean(Google大神)、James Hamilton(AWS副总裁)。
在大数据系统的领域,过去十年Google的影响是比较大的,从HDFS、MapReduce、BigTable到最新的DataFlow,都值得关注。
优秀的开源软件现在有很多,大数据平台领域,如社区比较活跃的Spark、后起之秀Flink。我们现在如果要开发新的系统,往往也是基于一些开源软件来做。
杭研数据科学的未来
对于杭研未来以及杭研数据科学的发展,您有什么样的期待?在数据科学实践层面可能面临什么挑战?
余利华:网易云为技术商业化提供了非常好的途径,所以相比过去十年,杭研公共技术的未来更值得期待。希望我们能做出一些业内领先的技术贡献,并成为大数据和商业智能领先的服务提供商。
数据科学实践层面可能会面临很多机遇和挑战,这里举几个例子:
Google Dataflow以一种编程模型同时表达流计算和离线计算的需求
对于深度学习这个方向,您如何看待?
余利华:对于深度学习,网易偏向于为它找到比较好的应用场景,事实上我们也找到了智能客服、智能反垃圾等方面的应用。不过,我们数据科学中心的定位,会做深度学习平台提供给内外部的客户,不会涉及具体应用。