机器学习 + 系统 : 一个新的方向

技术讨论 小白学CV ⋅ 于 2个月前 ⋅ 755 阅读

作者:SIY.Z
来源:知乎


斯坦福举行的新学术会议 SysML 发布了一份白皮书,确立了 “Machine Learning System(机器学习系统)” 这个方向的定义,问题和目标。这份白皮书同样是一个精彩的对机器学习在现实中应用的分析。
file

在白皮书中,机器学习系统的研究方向定义为在现实世界中设计和实现一类系统,这类系统用于支持和部署机器学习模型。随着机器学习模型的快速迭代,旧的系统已经不能为机器学习的应用提供最优的平台,并且这个成为了机器学习方法落地及大规模应用的阻碍之一。这类系统的研究包含三个层面:硬件系统,软件系统,以及以精确度以外的标准(能耗,抗攻击性,公平性等)为目标的机器学习模型的支持体系。

计算机系统和机器学习的交叉诞生了 SysML 这个会议。会议已经在 Stanford 举行了两次,在圈内受到了不小的关注。为了加深理解,我们先引入两个大背景:

大背景1 (业务和数据): 为什么我们需要一个新的会议?

记得两年前我曾经和 李博杰dalao 讨论过机器学习和系统的交叉,当时一个认识是“这是大公司的游戏”。这一方面是因为,工业界对于新技术的应用是谨慎的,而且往往进度落后于学术界。另一方面,做过面向现实问题的数据分析和机器学习的或多或少都有这样的感受:数据量是一个方面,但是数据质量同样重要。积累量足够大的优质数据需要大量时间和工程代价,需要厂家有意识地收集和管理数据,并且不停地更新用户许可协议。一年半前我曾经在某个公司的上海分部工作,其希望能够用机器学习方法有效利用其大规模数据。但是实际做的时候却发现问题很大,因为公司这些年积累的数据尽管有PB级别,但是大多数的来源是应用的日志,不时会出现数据缺失(日志丢失,早起型号手机功能缺失等等),数据错位,甚至数据格式都发生过改变,这就给数据分析带来了极大的困难。几年前只有某些非常前瞻性的公司的某些部门有意识地收集和整合高质量数据,因而机器学习方法可以落地。Michael I. Jordan 在 2018 年的 blog 中说, “人工智能革命直至现在都还没有开始”。

但是现在情况发生了改变。经过几年的坑,不少公司至少开始有意识地整理数据了,数据收集成了相当重要的一部分,而不是日志的副产物,逐渐增大的数据量给现在的系统带来了各种各样的麻烦;即使不收集数据的公司,也因为看到了好处而希望去做一做,但是前提是廉价和稳定。传统的方法是用 Hadoop 或者 Spark 进行数据处理,但是这些框架需要大量的资源(大量的冗余保证稳定),复杂的部署方式,而且功能上也不是足够灵活(比如很多不支持异步,计算模式限制于map-reduce,不支持GPU和RDMA),不能适应现在的机器学习流水线(如何和深度学习框架无缝结合?),没有考虑隐私保护,数据安全等现实中非常关键的问题。这些改变让学术界和工业界有了一个新的共识:我们需要一个新的社区来集中讨论和解决这些问题。

大背景2(硬件,体系结构):A New Golden Age?

18年6月,体系结构界的两个知名人物,John Hennessy & David Patterson (17' 图灵奖) 发表了标题为 A New Golden Age for Computer Architecture 的演说。众所周知,随着摩尔定律的终结,免费的午餐已经结束,我们已经不可能让同样一份代码不加改动,其性能每18个月就翻一倍。至于其他各种可能的计算机,比如量子计算机或者生物计算机(感觉后者已经差不多凉了),其同样面临者集成问题(这是所有的计算机绕不过去),也会有自己的“摩尔定律”,何况它们能够高效解决的问题只是一小部分。但是为什么 John Hennessy and David Patterson 还在说这是个 Golden Age (黄金时代) ?这里他们给出了一个例子:
file
使用专用语言和硬件,就可以达到63000倍的加速

从例子中看出,使用专用的编程语言和硬件,就可以将代码性能提高几个数量级,何况这些语言和硬件都是大规模商用的 (C语言+Intel 18 core),都不能完全称为“专用”。

由此可见,如果考虑“专用化”,我们仍然能够有巨大的性能提升,提升程度不亚于整个摩尔定律时代的提升的总和。

不过为什么“专用化”这么好,似乎却没有得到大量的应用?原因之一是,当“通用”不成为瓶颈的时候,工业界并不乐意使用专用的东西,除非真的“通用”已经不够了。典型的例子有两个:一个是MMX等向量指令的引入,当年Intel发现靠原来的指令集对音频视频进行解码已经力不从心,所以开发了这套复杂的向量指令集(他们可能没想到后来会被用来做科学计算);另外一个是GPU的引入,这是因为CPU真的已经无法在合理的能耗以及集成范围内处理日益精细化的3D游戏(他们也没想到后来会被用来做科学计算,但是老黄快了一步,搞出了CUDA,导致GPU科学计算几乎完全是NVIDIA的天下),甚至由于操作系统图形界面的精致化,连CPU都默认配上了核心显卡(这导致在一台超级计算机上玩4399小游戏都会卡(真实体验),晃动一下应用程序窗口都可以看到残影,这是因为其CPU一般不含核显)。

现在,我们有了一大类问题,可以做专用化,那就是机器学习。但是这个专用化不同于之前的几次,因为之前几次的目标就是为了特定的几个算法(音频解码,图形光栅化渲染管线),但是这次涉及到方方面面(算法,平台,云服务,存储,可视化,调试),所以带来的改变不会是增加一条指令,而是对计算机体系的一次更新。工业界在这种方面是相当有惰性的(想想Intel当年死磕CISC和超深指令流水搞到流片都流不出来了,结果被AMD暴打),需要学术界指引。RISC,多线程等几乎都起源于学术界,并且最终带来了工业界的革命,这也是为什么John Hennessy & David Patterson能够得到图灵奖。John Hennessy & David Patterson 当年以一个连小学生都会的公式为基石写了《计算机体系结构:量化研究方法》这一本几百页的书,成了体系结构的入门读物:
file

实际上,机器学习已经有了相当多的专用硬件,比如 Google 的 TPU,寒武纪和华为的 NPU等。随着摩尔定律的终结,一个必然会发生的事情是流片成本的降低:大家不再追求更小的制程,更高的主频,复杂的向前兼容性,对通用计算的复杂优化,诸如中国等国家必然逐步赶平最先进的制程,技术稳定后最先进的光刻机必然也是量产的,而不是像现在一年三五台。这些条件都为专用芯片的廉价制作铺平了道路。John Hennessy & David Patterson 提出的一个重大研究问题就是如何帮助芯片制造商降低流片成本。

随着硬件方面的提升,按照“软硬件协同设计”的思想,软件也必然要进行重大的改革。实际上目前软件的发展仍然落后于硬件,“一核有难八核围观” 的情况仍然在不断发生,对GPU和RDMA的充分支持仍然寥寥无几,更不用提那些非常影响体验的调试方式和层出不穷的bug。这些困难同时也是机遇,对于有野心的人而言,现在的困难重重的“终末之世”,正是黄金时代。

SysML 的发起者,组委会和赞助商

总之,看名单学术界和工业界都想积极入坑。这里罗列一下会议组织的“派系”:

领军人物

会议发起者及委员会中,有很多学术圈/工业界领军人物,包括但不限于 Michael I. Jordan, Yann LeCun, Fei-Fei Li, Eric Xing, Jeff Dean, Ion Stoica。

学术界

作为一个新方向,计算机方向的Top4校(Stanford,MIT,UC Berkeley,CMU)占了最大一块的人头。众多“第五”校(因为申请时这些学校中不少声称自己是第五)也不干示弱,如 University of Washington, University of Wisconsin-Madison, University of Texas at Austin, University of California San Diego, Cornell University, University of Maryland 等。加拿大的几个顶级学府和研究机构也参与进来,如 Univerrsity of Toronto, University of Montreal, Mila, Vector Institute。号称“欧洲最强CS院校“的ETH Zurich自然也在榜中。

工业界

Google, Microsoft, NVIDIA, Amazon, Intel, Facebook, IBM 等都在其列。今年的特别赞助商还有 Apple, DeepMind, TESLA 等。此外还有不少和Top4校有联系的新企业,如 Petuum, Databricks。

Machine Learning System 面对的问题和挑战

这一小节主要是学术界写的,以科研的角度分析来机器学习系统的问题和挑战,我翻译时做了修改和补充。

1、如何设计支持整个机器学习生命周期的软件系统?这些设计包括编程接口,数据预处理,对输出的解释分析,调试以及监控。一些具体的问题包括:

a) 如何方便用户在现代的机器学习工具栈上,通过一些新的“接口”(不一定是软件接口)快速地编程?这些“接口”包括操纵和标注训练数据,引入先验知识,或者定义新的损失函数。

b) 如何使得开发者能够在相对高的抽象层次上定义和测试机器学习模型,计算机体系结构,以及软件系统?

c) 如何支持高效的开发,监视,解释,调试,环境调整,参数调优,以及长期维护产品级的机器学应用?要考虑的部分除了模型和算法,还有数据 (采集,质量控制,清洗,存储,迭代),特征(特征工程,预处理流水线),标注(辅助标注工具,标注进度管理,众包管理),以及影响它们的一些输入变量(比如隐私的控制等)。

2、该如何为机器学习设计硬件系统?具体的问题包括:

a) 如何为训练和部署机器学习模型设计专用的、异构的硬件?这些硬件对新的运算操作以及数据访问模式友好。

b) 如何利用机器学习负载中的一些随机的本质,在精度,稳定性和置信度中达到平衡?

c) 如何设计用于机器学习训练和服务的分布式系统?

3、如何设计机器学习系统以满足精度以外的需求?这些需求包括能耗,内存使用,可访问性,经费开销,(服务)延迟,隐私,安全,公平性以及可解释性。一些具体的例子包括:

a) 如何设计满足功耗,延迟和内存约束的机器学习算法以及系统?

b) 机器学习系统如何支持全栈的隐私保护(包括对个人的,以及对公司的)和安全性(同样个人和公司都有需求)?目前有大量实验表明可以使用对抗样本恶意损害模型的预测能力,以及可以从公司提供的开放模型中抽取训练数据等公司内部信息。

c) 如何增加机器学习的可访问性,以方便更多不懂机器学习内部机制,也不懂计算机系统的人(尤其是特殊领域专家)加入到整个设计流程中。

除了上述的主题外,机器学习系统内部的问题还可以分为高层问题低层问题。高层问题解决的是接口,算法等高层设计,这部分更像程序语言和软件工程的交叉;低层问题解决的是硬件,调度,编译等低层优化,这部分更像软件系统和硬件系统的融合。研究高层问题低层问题的方法论包括但不限于理论分析,经验方法和应用驱动。在全栈解决方案中,这种问题划分方式是便于社区使用和反馈的,也方便传统和现代领域的结合。

另一个独立但高度相关的领域是机器学习对系统的方向作用:如何利用机器学习提升传统的系统性能。例子包括改进传统的数据结构,引入新的启发式设计,使用机器学习系统自动调优某些系统的参数。我们觉得机器学习系统的社区有足够的人才来支持此类研究。

最终,往大方向来看,机器学习系统是往下一个目标飞跃的起点。这个目标包括更大的规模和和更广泛的问题,远远超过目前“如何训练单个模型”这种简单目标。譬如,我们应该如何控制和管理生态系统?这类系统内部有着极其复杂的交互。我们该如何实现一个用以实现长期目标的系统(这个系统可能连续工作数十年甚至跨世纪来完成某个目标或者提供某种服务)?如何评测机器学习对于社会和市场的具体影响?如何在社会规模上共享和复用数据,同时满足隐私和法律要求?所有这些问题似乎都需要机器学习和系统的结合来完成。

全栈机器学习中涌现的瓶颈

这一小节从文风来看大抵来自工业界,总结了工业界在应用机器学习时遇到的问题。虽然机器学习在特定任务中超过了人类的表现,但是在现实世界的部署中却出现了诸多问题,这些问题很多是全栈、系统层面出现的问题,而不是算法层面的问题。一下是总结的部分问题:

  • 部署方面的考虑:随着机器学习逐渐被用到更广泛的,更关键(失败后果更严重)的领域,一些致命的问题逐渐暴露出来。这些问题包括针对对抗样本或者伪造欺诈的稳健性,(外部的)安全性问题(对环境造成损害的行为),内部的安全性和隐私问题(深谙机器学习原理的黑客攻击,数据暴露,敏感数据的使用),可解释性(特别是能够保证现实中合法可操作),公平性(不会因为用户评论自发对少数团体产生攻击性,不会因为追求效果间接使用“钓鱼”的方式恶意拟合预期的目标,排序公平性,不会因为过拟合目标导致“唯利是图”)。

  • 代价:最初的在ImageNet上训练的方案平均每次要花费2300美元,训练时长高达13天。远超 ImageNet 规模的数据(现在不少公司每天都可以采集这么多)的开销为上千元到数百万元不等。如何使用尽可能低的代价降低延迟和功耗是相当关键的问题。

  • 可访问性。随着越来越多的领域和人希望将机器学习应用到实际的产品中,机器学习系统需要对这些人群可用,即使他们没有机器学习和系统方向的博士学位。

这些诉求的共同点是,机器学习不应仅仅包含算法,它同样需要软件,硬件和整体系统的支持。当越来越多的机器学习系统被使用时,全栈解决方案会遇到越来越多的上述痛点,这些痛点表明了机器学习和现实应用的差距。

SysML: 我们来搞个系统和机器学习领域交叉的会议吧!

通过上面的分析机器学习和现实应用的差距很多发生在传统系统和机器学习中间的交叉领域。因此,我们搞了一个新的会议,全称是 Conference on Systems and Machine Learning (SysML),来解决这类交叉问题。并希望能够促进机器学习和其他交叉领域的互动。会议旨在在这些领域间建立新的连接,包括探讨最佳的系统设计方案,以及发展新的适用于现实世界中机器学习工作流的理论。

本会议建立在诸多前沿会议的分散的学术讨论上,这些会议包括 NeurIPS, ICML, OSDI 和 SIGMOD 等。SysML 将沿袭这些会议中高标准论文选入(嘿,NeurIPS 和 OSDI 明明难度差了好多,所以你朝谁来?)但是和传统的机器学习和系统会议不同,我们的委员会兼有系统和机器学习方向的人,他们将共同审议论文。我们也特别欢迎交叉领域的论文。同时本会议像那些成功的会议一样,将特别重视可复现性和快速迭代。然后是委员会大合照:
file

结语

(他们非要写这段可能是学术界习惯,毕竟摘要和引用都写了,看上去完全就是一个有 60 多个作者的论文)

大意是:问题多多,机遇多多,make the world a better place,希望会议茁壮成长。


原文:https://zhuanlan.zhihu.com/p/61786615


推荐阅读:
小样本学习(Few-shot Learning)综述
如何用 3 个月零基础入门「机器学习」?
提前批|深圳抖音图像图形算法三面面经 (已获意向书)

大白

成为第一个点赞的人吧 :bowtie:
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!