这里是「王喆的机器学习笔记」的第三十三篇文章。今天我们开启一个新的模块——「AI大咖谈」,在这个模块我会跟一线互联网公司的推荐、搜索、广告团队的Tech Lead们聊一聊技术发展,业界动态,职业选择等等大家感兴趣的话题。
今天我要对话的是现微博广告核心技术负责人詹盈。他最近出版了他的新书《算法与数据中台:基于 Google Facebook与微博实践》,前几天跟他聊起写这本书的始末,我也就近水楼台先得月,邀请他成为我们这一期的AI大咖。
先来一段大咖的简介镇楼。
詹盈本科毕业于南京大学,后赴美攻读计算机博士学位。回国前先后就职于 Facebook 信息流推荐部门以及 Google 云计算部门,目前负责新浪微博的核心广告平台。长期致力于机器学习算法、算法工程平台和大规模个性化系统等方向的技术研究以及团队管理工作,对推荐系统、计算广告、大数据和云计算等相关业务领域有着长期深入的工作经验和成功实践。
今天跟詹盈聊了不少跟算法数据中台,算法工程师职业发展,AI行业的话题,说实话我几乎完全赞同他的观点,我相信自己感兴趣的话题应该也是业界其他算法工程师感兴趣的话题,废话不多说,我们就看一下詹盈对我问题的回答。
1. 你如何看待AutoML和算法数据中台的关系?
就我个人理解, AutoML 的基本愿景是将建模的核心环节( 特征工程、模型结构、超参优化等)进行自动化甚至智能化的塑造。因此,AutoML不仅仅是算法数据中台这个庞然大物中的一个核心组成部分,也正是需要把 AutoML 置身到中台当中,才能让它享受到中台所具备的强大算力。但就目前而言,AutoML 虽然已经在部分场景中有了不错的发挥,在是它的潜能还未得到完全的释放,特别是在大规模的工业级应用中,它所带来的资源消耗对比产生的收益是不具备性价比的。我个人比较相信的是,随着专用芯片以及软硬协同设计的不断发展,单位资源消耗必将大幅度降低,AutoML 则会进一步产生更大的价值,并且在许多场景中达到超越人类专家的水平。
2. 你觉得TensorFlow, Pytorch这些通用的机器学习平台,他们的线上服务模块做的怎么样,有没有解决model serving问题的最佳实践?
总所周知,TensorFlow 和 Pytorch 是最为流行的机器学习框架,并且各大公司也在这俩个框架的基础上进行了平台化建设,把机器学习研发的全生命周期(主要包括样本拼接,数据处理,模型训练与评估,模型在线推理,AB测试等)进行了统一管理。在所有的平台化方案中,最为知名的案例包括了 Google-TFX, Facebook-FBLearner,阿里-PAI平台,Uber-米开朗基罗等。我本人领导的所微博算法工程团队也是在对 Tensorflow 二次开发的基础上来构建了 WBL 机器学习平台,并特别地针对具有大规模稀疏特征和在线学习需求的业务场景进行了深度优化。具体的实践方案大家可以参考我的书《算法与数据中台》中的机器学习平台章节。
具体到 model-serving 这个技术主题,我个人觉得不存在所谓的“银弹”,因为不同业务场景下的请求并发量、模型体量和建模方案千差万别。一般来说,如果纯粹是基于 Tensorflow 的建模,那么 tf-serving 是一个相对可靠和快速的模型上线方案,它在大部分中小体量的业务中已经足够。更进一步,如果业务需要支持不同的模型框架或者流量较大,那么一个可行的方案是构建一个基于 C++ 的模型推理服务( predict-service),并且把 tensorflow-framework,xgboost,liblinear 等重要的框架进行集成后并暴露一个通用的API 推理接口( thrift/grpc、restful 均可),并在有必要的情况下做到分布式的模型在线推理。在更最为复杂的模型上线场景下(例如 Youtube 视频推荐、 Instagram 发现流、某短视频推荐流等),模型体量可能达到 TB,甚至数十TB级别。这些深度神经网络模型通常包含了海量的 embedding 向量,并且 embedding 向量的生产方式(频率、粒度、时机)都是需要依据业务需要来进行调整的。在这种情况下,定制化的实时样本拼接服务、模型在线训练框架、模型在线推理平台、 embedding 分布式存储平台都是必不可少的组成部分,它们组成了完整的建模闭环。这种极端庞大的模型架构带来了很大的工程架构挑战,当然,这些工作对于热爱技术的同学而言也有着强烈的吸引力。
3. 在算法数据中台日趋强大的前提下,你觉得现在算法工程师的最大价值在哪里?是调参?业务理解?工程开发?还是其他的什么?
仅就我个人的理解,算法工程师,不是算法研究者,所以他们首先是得一个合格的工程师。因此工程师的必备素质和技能是需要被熟练掌握的,这其中代码能力和基本的工程设计能力是必不可少的。否则算法工程师的职业生涯将会是极为短暂,因为他们很难在工程架构上的可行性和性价比上做出合理的判断。在这个基础上,算法工程师需要掌握足够的数据分析能力,并站在对于业务和产品的精准理解,以及对数据的精益洞察的基础上,来进行针对性的业务建模实践(包括特征的选择、网络结构的优化等等)。我想强调的是,算法工程师需要始终以业务目标和产品需要为导向,不能好高骛远,更不能眼高手低。
随着算法数据中台的不断发展和日益强大,算法工程师的工作应该说是更加高效和便捷了,诸如工业级的数据分析,模型训练,模型调参和模型上线都有专业的架构团队和平台进行支撑。因此,算法工程师更是需要站在这些“巨人”的肩膀上来对业务和产品进行更深层次的思考,而不再需要纠结或者受限于基础工具和底层架构。总结来看,除了基本的建模能力外,对业务的精准理解,以及敏锐的产品意识,反而是算法工程师需要不断修炼的能力,因此我也常常笑到,优秀算法工程师很多时候也得充当“半个”优秀的产品经理。
4. 你如何看待算法和工程之间的关系,有的算法工程师认为不做模型就是没有前途,你认同吗?
很巧的是,我在微博第一个任务就是负责从零搭建“算法工程团队”,团队里既有资深架构师,也有算法工程师。我们经过一年左右的努力,将微博广告系统中的所有核心目标进行了业务建模,并全量上线了基于大规模离散特征的 DNN 实时模型,这个工作带来了巨大的业务收益。特别地,这些技术上的进步也极大地促使了微博广告从一个以CPM 展示广告为主的广告平台升级成为了以 OCPM 效果广告为主的广告平台。在这个过程中,我看到的是算法和工程双方同学的协作和磨合。从这个真实的示例来看,算法和工程从来就不是对立的关系,而是互相成就的关系。没有强大的工程能力,漂亮的理论和算法在工业级的应用场景面前都是纸上谈兵、空中楼阁;而没有对业务和数据的精准理解以及相应的算法建模经验,工程架构的潜力也很难得释放,特别是在诸如推荐和广告等个性化的业务系统中。
至于部分算法工程师同学所谓的“不做模型就是没有前途”这一论断,我是不敢苟同的。正如在上一个问题中所提到的,建模能力、数据分析能力、业务理解以及产品意识都是算法工程师是的核心战斗力。当然,建模能力可能更加技术驱动一些,这对于刚接触机器学习不久的同学来说更有吸引力。但是后面几个能力往往能产生更为巨大的业务收益,特别是如今,深度学习模型本身在大部分经典业务场景上的红利期已经渐进尾声。
5. 有人说这是一个算法职位已经疯狂内卷的年头,你认同吗?你觉得现在进入算法岗,最大的机会在哪?
这个问题和之前俩个问题是一脉相承的,前面我也根据自己的理解和经验谈到了算法工程师的核心素质,或者说是核心战斗力。如果说只满足于基础的数据处理、建模和调参,确实,随着算法数据中台的不断完善,很多低水平的重复劳动已经显得没有太大意义。但是,市场上仍然极度缺乏“高端”的算法人才,这类算法工程师不仅仅满足于基本的建模和调参,他们对于业务和产品有较为深刻的理解,并且在实践中能够拥有足够的数据分析能力去指导建模方案的完善,并确确实实地带来了客观的业务收益。这一类高端的算法人才,是真的稀缺的,还远达不到“内卷”的程度。
6. 你曾经就职于Google, Facebook,现在负责微博的广告核心技术平台,你觉得中美科技公司的文化上,技术理念上最大的差异在哪里?你觉得从数据中台技术的角度考虑,中美科技巨头之间还有差距吗?
这是个非常棒的问题。
结合个人的工作经历,以及和身边其他有相似经历的朋友的探讨中得出的感受来看,我认为中美互联网科技公司在技术文化和技术理念上是存在一定程度区别的。其中我个人感受最深的是美国科技巨头对于技术基础设施的重视程度,无论是 Google 还是 Facebook,都及其重视基础架构方向的工作,并持之以恒地投入了相当的人力和物力进行建设,这些努力不断地带来了创新性的成果,并也极大的促进了开源生态的进步。举例来说,谷歌的 TI(Tech Infrastructure)部门是整个谷歌最庞大且人才密度最高的部门,该部门主要负责构建谷歌的底层技术栈、通用的基础服务和大数据服务,但几乎从不直接负责具体的业务。例如 Google Search, Youtube ,AdWords 等核心业务系统,以及 Google Cloud 上的各种云服务都是基于这些通用的底层服务而进行高效的构建和迭代的。由此可见,在谷歌内部,技术中台、大数据中台、算法中台这些理念都是谷歌技术基因的一部分,是与生俱来的,是自然形成的,不需要任何行政上的指引,这个特点在 Facebook 里也得到了很好的延续。
以上感悟仅算是一家之言,并且这个差异的存在不仅仅是中美互联网公司之间的区别,在很大程度上,这也是不同体量、成长背景、市场环境下互联网公司之间的一些技术理念上的区别。客观来看,虽然国内各大厂商近年来也逐步加大了研发投入,但是美国科技巨头依然在包括大数据技术和机器学习技术在内的各类底层核心技术领域中占有不小的优势,特别是在原创性上。当然,我也注意到了例如阿里巴巴和百度等国内互联网巨头在核心技术上的不懈努力和飞跃性的进步,这是非常令人鼓舞的。
7. 最后说说你的书吧,我深知 “算法数据中台” 是一个很火热的业界话题,你的书的特点是什么?你希望你的读者通过这本书获得什么?
从个人的角度来讲,我会把《算法与数据中台:基于 Google Facebook 微博实践》这本书的特点概括到如下俩个方面:
1)该书对机器学习算法中台和大数据中台的技术体系、应用生态、以及倆者的密切联系进行了完整讲解和深入讨论。这一点是非常有区别于过往那些只专注于技术中台或者数据中台的书籍的。我们相信,只能通过将算法中台和数据中台的建设进行统筹规划,才能促进倆者的发展和应用。
2)该书基于在 Google、Facebook、微博、滴滴 等行业巨头的实际工作经历,对诸如信息流推荐、计算广告以及网约车平台等经典互联网场景进行了真实的案例剖析,并阐述了算法与数据中台是如何服务于这些业务的。这些真实的经验和案例具有较高的可借鉴性和启发性,我们认为这一点也是本书中相当稀缺的内容和资源。
中台建设是一个大家耳熟能详的话题,并且许多读者已经对中台,特别是机器学习中台和数据中台有了属于自己的认知和理解,我们希望读者通过对本书的阅读,能够进一步获得新的体会甚至借鉴。首先是帮助读者对相关技术领域形成一个全景式的认知并构建一个相对完备的知识体系,这些领域包括了机器学习的理论和技术、分布式计算系统,大数据生态以及分布式数据库系统等等。其次是帮助读者了解一些中美知名互联网公司的工程实践和优秀案例,这非常有助于大家进行形象化地理解和比较,并找到能够因地制宜的可复用经验。最后呢,我们也非常希望读者能够带着疑问甚至批判性的眼光来进行阅读,并能够给我们反馈所感所悟,从而促成更多的思想碰撞和技术交流。
我的评论
我想专栏的大部分读者应该都是机器学习相关行业的同行,我就站在算法工程师的角度占个沙发,抢先评论一下对詹盈的访谈。简单说就四个字,“我 全 赞 同”。我甚至可以在读到一些金句时会心一笑,也借此把他们列出再与大家分享:
AutoML不仅仅是算法数据中台的一个核心组成部分,也正是需要把 AutoML 置身到中台当中,才能让它享受到中台所具备的强大算力。
model-serving 没有“银弹”,因为不同业务场景下的请求并发量、模型体量和建模方案千差万别。
算法工程师,不是算法研究者,所以他们首先是得一个合格的工程师。
优秀算法工程师很多时候也得充当“半个”优秀的产品经理。
这类算法工程师不仅仅满足于基本的建模和调参,他们对于业务和产品有较为深刻的理解,并且在实践中能够拥有足够的数据分析能力去指导建模方案的完善,并确确实实地带来了客观的业务收益。
无法赞同“不做模型就是没有前途”这一论断,建模能力、数据分析能力、业务理解以及产品意识都是算法工程师是的核心战斗力
高端的算法人才,是真的稀缺的,还远达不到“内卷”的程度。
美国科技巨头依然在包括大数据技术和机器学习技术在内的各类底层的远传核心技术领域中占有不小的优势,特别是在原创性上
最后,再次友情推荐一下詹盈的新书,也算大咖能接收这次访谈的回馈。。要想切实提高自己的技术水平,技术格局,还得到书中找答案,补充细节。
算法与数据中台:基于Google、Facebook与微博实践
这里是「王喆的机器学习笔记」的第三十三篇文章。如果觉得「AI大咖谈」能让你有所收获,欢迎点赞反馈,让我有动力邀请更多业界大咖们闲聊。
最后欢迎关注同名微信公众号:王喆的机器学习笔记(wangzhenotes),跟踪计算广告、推荐系统、个性化搜索等机器学习领域前沿。
—END—
扫码关注我们
认为文章有价值的同学,欢迎关注「王喆的机器学习笔记」(wangzhenotes),跟踪计算广告、推荐系统、个性化搜索等机器学习领域前沿。