郑曌:从 ACM 世界冠军到技术 VP 的制胜之道
本文转载自 Gitee 微信公众号
本期嘉宾
**郑曌:**第四范式技术 VP 与 AI 基础软件的技术负责人、开源机器学习数据库 OpenMLDB 、AI 操作系统内核 OpenAIOS 项目的发起人,同时也是 LF AI & Data 基金会董事会成员、NextArch Foundation 下一代架构基金会 TOC 成员,在上海交通大学就读期间曾获编程界奥林匹克之称的 ACM 大赛世界冠军。
OpenMLDB:这是一个开源机器学习数据库,提供生产级数据及特征开发全栈 FeatureOps 解决方案。
吃完美国烤鸭,我决定回国投身 AI
非常感谢您能接受 Gitee 封面人物的访问,请您简单介绍一下自己和第四范式。
「郑曌:」 大家好,我是郑曌。我现在的一个角色是开源机器学习数据库 OpenMLDB 项目的发起人,也是第四范式技术 VP 、 AI 基础软件的技术负责人。
第四范式是一家聚焦在决策类 AI 领域的公司,致力于构建低门槛、自动化、稳定可负担的 AI 技术,帮助企业探索 AI 决策驱动的新模式,实现人工智能快速规模化转型落地,提升企业的决策能力。
据了解,您在读书期间曾赢得编程界「奥林匹克」ACM 比赛世界冠军,这对您现在产生了什么影响呢?
「郑曌:」 其实影响挺多的, 其中一个就是比赛结束之后我回答过很多次这个问题。 😃我之前分享感悟比较多,这次我想聊聊 ACM 比赛对我编程的影响。
参加 ACM 比赛让我养成了一些奇怪的习惯,比如把自己当「人肉编译器」和「执行器」去尝试模拟代码。因为 ACM 比赛挺特殊的一个地方在于,比赛是三个人共用一台机器解决一系列编程问题,打印机和纸管够,但机器和 IDE 不够分。
为了要在规定的时间内尽可能地编写多且高质量的代码 ,我尝试训练自己不用 Debug 和断点等模式去调试程序,尽可能对着打印在纸上的代码,在自己脑海中模拟编译和运行每个环节,做更加主动的思考和推演。这个习惯也从比赛一直伴随我到工作中,把代码打印出来阅读,在脑海中进行推敲和排查,这也为我节省了大量低效的开发和排查时间。
除了「技术动作」外,我觉得经典的单机算法、单机数据结构也给后来的工作带来不少的灵感。
譬如在编程比赛中经常遇到的数据结构 Skip-List 就被我们当作 OpenMLDB 核心的时序存算引擎、线段树被我们用做长时窗数据预计算的核心引擎、一致性 Hash 用来进行分布式 Sharding 、Hashed KV 则作为参数服务器的原型、最近邻优化 Embedding 召回、 LSM-Tree 作为传统数据库的核心底座等等,不胜枚举。
我们也了解到您从上海交通大学毕业后便加入 Google ,负责核心展示广告架构开发,这段经历对您有什么收获?
「郑曌:」 2011 年正好是工业界做推荐系统兴起的时候,Netflix 百万美金推荐系统大奖非常有名。
当时我从 MSRA 实习回来,陈天奇学长 (机器学习领域著名的青年华人学者之一,曾就读于上交大 ACM 班) 带着我和另外一个同学组队参加 KDD Cup 。我们花了两个月时间撸了一套 Feature-based 矩阵分解的 C++ 实现,最后有幸拿了 Yahoo 音乐推荐算法的季军。
也是从 2011 年开始,我开始关注一些工业级的系统设计。比如 Google 划时代 「三驾马车」 的论文,其中最让我着迷的还是 Map-Reduce 系统本身的设计。这也让我对工业级的系统产生了好奇与向往,从学校离开后,我飞去硅谷面试一圈,比较了几个 offer ,最终决定投奔心中工业级系统的殿堂去了。
在 Google 工作期间最大的收获,除了了解到一家以数据和 AI 为核心驱动业务经营的公司是如何运作的,以及亲身动手 Scale 大规模分布式系统之外,我也见到了众多系统领域的大神,在野球场一个「飞铲」把我的偶像 Jeff Dean 铲倒在地也是难忘的收获 😁
后来为什么选择回国呢?
「郑曌:」 2017 年夏天,当时我正在 Pinterest 折腾个性化搜索和推荐系统的重构。印象中应该是戴文渊学长 (第四范式创始人兼 CEO) 来湾区给 Facebook 做 AI 前沿发展报告。做完报告我们约着一起在 Stanford 旁边找了家烤鸭店,一边吐槽美国的烤鸭味道,一边聊起国内的 AI 发展。
文渊问我有没有兴趣把这些年看到的好的系统设计理念、好的组织设计理念、好的工程师文化带回国内,复制给更多的受众、更多的行业。我借着模糊的感觉告诉文渊这事儿值得搞。
吃完烤鸭后我仔细想了想,虽然不知道非互联网行业的情况如何,但 AI 走进大家的日常生活已然是个不可逆的趋势,落地千行百业这事儿还是值得去挑战一下的。后来我回国确认了团队的确是认真的在做这件事情,没在忽悠人,于是就拖家带口回国了。现在回想,很庆幸当时做了这个决定。
投稿顶级学术会议和做社区的初衷是殊途同「始」
我们来聊聊「OpenMLDB」这个项目吧,您一般怎样向外界介绍呢?
「郑曌:」 对不了解 AI 这个行业的同学, OpenMLDB 简单说,它是一个承接上游原始数据和下游算法工具的一个中间层基础软件,也有同行把它比作面向 AI 的 MySQL 数据库。
对了解 AI 这个行业的朋友来说,应该会更加熟悉 AI 的「三驾马车」:数据、算法、算力,其中数据供给的好坏是 AI 应用能否做出落地效果的关键因素。 OpenMLDB 是一个面向 AI 数据供给的基础软件,它为数据存取、样本拼接、特征开发、特征上线这些环节提供了敏捷、开放、开箱即用的工程实现。
去年八月,OpenMLDB 被国际数据库顶级会议 VLDB 2021 录用,请问您认为这对于 OpenMLDB 的意义是什么?
「郑曌:」 投稿顶级学术会议和做社区的初衷是类似的,本质都是把思考和方案开放出来,接受同行的评审,激发大家相互交流,再碰撞出新的思路,循环往复不断迭代。
OpenMLDB 完成 VLDB 的报告后,我们也收到来自学术界和工业界同行的讨论,比如机器学习领域是否也存在类似分布式系统的 CAP 理论、机器学习的数据开发如何更好结合云原生技术、数据冷启动灌入的系统瓶颈如何解决等等话题。这些思路给机器学习和数据库这两个领域之间的空白地带,提供了有意义的探索方向,而激发更多探索和突破,本身这也是 OpenMLDB 持续迭代的源动力。
论文中针对数据库的存储引擎性能做出了优化,是一次不小的创新,那么未来有想法将这些创新点应用到其他领域或者技术栈中吗?
「郑曌:」 我认为 「跨界」是一件有趣的事情,把一个方向的灵感带到另一个方向,会触发到不同的问题和不同的解法。
举个例子: 像数据的冷热存取,一般大家说 80% 的访问来自于 20% 的热数据,但是到了机器学习的场景下,情况就发生了变化,以许多推荐类场景为例,我们发现超过 90% 的数据访问来自于仅仅 1% 的热数据。这意味着对冷热分级存储来说、对机器学习场景下的数据供给来说,机器学习场景需要一个相比大数据场景下更为激进的合并和缓存设计。
提炼数据价值是 AI 工程落地中极其痛苦的过程
回顾过往,您在 AI 应用开发上遇到过最大的困难是什么?
「郑曌:」 数据价值无法发挥。前面也说了我的上两段工作经历分别是在 Google 和 Pinterest,主要从事推荐、广告、搜索方向基础架构的工作。
期间,我曾与一些机器学习和大数据开发者进行过交流,发现大家都感叹提炼数据价值是一个极其痛苦的过程。由于 AI 开发者绝大部分精力都被数据处理、数据校验等相关工作所消耗,「开发 1 星期、上线 6 个月」的情况几乎遍布了所有的工程团队,因此,很多团队也把人工智能戏称为「人工对数」。
对于「人工对数」的问题,业界有行之有效的处理方案吗?
「郑曌:」 事实上,为了能给数据工程师、算法工程师减轻「对数」的压力,许多头部互联网企业往往会花费上千个小时去构建一套基于数据和特征平台的工具链。
这样一套完整的机器学习数据系统往往需要 MySQL 、Kafka 、 Spark 、Flink 、Hbase/Cassandra/Redis 等一系列数据组件的组合和搭建,来解决诸如线上线下一致性、数据穿越、高并发低延迟、高可用等工程挑战。
然而对于更多的团队,尤其是对时间成本、迭代速度、维护成本较为敏感的团队,自研自建将意味着是一个漫长且无作业可抄的状态。
那面对这类压力与问题,您和您的团队一般如何解决?
「郑曌:」 在这个背景下,我们开始尝试对现状进行优化,尝试把提炼数据价值、定义特征这件事情变得轻松和简单。
具体的说,就是如何让数据开发这样一个角色将更多的精力聚焦到对数据的理解和选择上,而非对数据的访问、拼接和处理上,从而做到 Develop new models by only defining new data ,也就是让迭代和优化模型效果这个过程缩短到只需要聚焦在迭代数据和特征上。
经过三年的迭代,OpenMLDB 从实时交易欺诈识别、个性化营销推荐、推荐系统实时用户画像侧写、 AIOps 、物联网可预测性维护等场景中得到了许多反馈,产品的成熟度也得到了完善。
另一方面, OpenMLDB 作为一个底层基础软件,团队并不希望局限在通过商业售卖的渠道才能参与使用和反馈,我们更希望能够和用户有更紧密的连接和共创,一起产生更多的碰撞和创新。正所谓与其让程序员埋头自己琢磨如何提(偷)效(懒),不如大家集思广益一起提(偷)效(懒)。
于是,经过半年的内部准备,我们在 2021 年 6 月将这个项目开源,期待能与开发者同学们共创称手的数据工具。
DATA-MODEL-ROBOT 正在成为下一代程序员的编程范式
您最初是什么时候接触开源的?怎样评价过去与现在的开源生态与环境?
「郑曌:」 早在十年前我在学校里参与了一些开源的工作。
学生时代的时候,我面对的还是一个处于起步阶段的中国开源社区环境,当时市场上还没有其他的 AI 开源工具,像 Gitee 、 GitHub 这样的代码托管平台也还没有开始流行,更别提开源基金会去帮助开源项目成体系的规划和成长。
但是,今天的开源社区相比十年前有了非常大的变化,开发者受到了更多上下游生态的关注和支持。
面对当下的技术生态,您认为未来 AI 领域将会发生怎样的变化?
「郑曌:」 从一个长远的时间轴去看,我个人认为随着算法框架、模型结构越来越触手可得、越来越稳定、越来越自动化,模型不再是决定 AI 应用落地最主要的障碍。
新一代的程序逻辑也将从人编写 IF-THEN-ELSE 规则,进化成 INPUT-LEARN-PREDICT 的模式,程序能够从海量数据中进行学习和预测。相匹配的,新一代的技术团队也将从数据访问层-业务逻辑层-视图层的组织模式,演进为** DATA-MODEL-ROBOT **的组织模式。
其中,数据科学家、数据工程师这两个角色将会焕发新的活力,他们能够使用称手的工具来提高数据的正确性。与此同时,实现模型效果快速、高效的迭代和优化的工程师也将会变成软件 2.0 时代的「稀缺物种」。
非常感谢您的分享,请问您能不能给当下的程序员群体一些建议呢?
「郑曌:」 谈不上建议,但是程序员提升幸福感,应该是大家共同的期待。
我是这么看待幸福感的:如果幸福感可以进行拆解的话,幸福感 = (单位收益 - 单位投入成本) * 重复次数,这三项也分别对应了三个维度:高价值目标,高效的工具和方法,以及持续的产出。
首先要最大化单位收益,意味着要在工作过程中找到高价值的北极星目标,并清楚的知道自己正在做的事情意味着什么价值,当前的目标到底是优化哪个过程的哪个指标,譬如用户使用效率、开发效率、算力成本、维护成本、扩展成本、SLA 可用性等。同时这些指标的提升能够让多少用户受益、让多少开发者受益,这些价值的交付又能转化成多少激励、肯定与满足感。
其次,若想最小化单位投入,意味着需要学会“偷懒”,即找到称手的工具、打造自己的轮子,寻求社区小伙伴的建议与帮助,想方设法减少枯燥、冗余、无效的工作,用聪明的方式解决自己面对的问题。
最后也是最重要的,要最大化重复次数去放大价值的杠杆,让正向反馈、正向激励形成可复制的经验。同时沉淀与分享,互相的鼓励与交流,也会让一次性的价值输出变成持续性的价值沉淀,影响面从自己一个人拓展到更多群体,这样伴随而来的将是更大的反馈收益,而这也是开源生态最大的魅力。
如果请您用一句话来结束这个采访,您最想要对开发者说的是什么?
「郑曌:」 从 AlphaGo 到 AlphaCode , AI 开始走进每个人的日常生活,如果你希望开发出 AlphaGo 、AlphaCode 一样炫酷的 AI 技术。
如果你对 DATA-MODEL-ROBOT 的编程范式充满好奇和期待,非常期待,也非常欢迎大家加入一起探索这些有趣的挑战。
文章为受采访者独立观点,不代表官方立场
本文版权属 Gitee(Gitee.com)所有,转载或内容合作请联系 lizechen@oschina.cn , 未经授权不得转载、摘编或利用其它方式使用本文内容。违反上述声明者,将追究其相关法律责任。
评论