本文从 OpML2019 中选择了两篇提前发布在 arXiv 上面的文章进行分析。由于会议限制只有在会议开办(5 月 20 号)以后才公布文章,所以目前公开的只有这两篇文章。本文将着重讨论这两篇文章:
MPP:Model Performance Prediction
TonY:An Orchestrator for Distributed Machine Learning Jobs
论文 1:MPP:Model Performance Prediction
链接:https://arxiv.org/pdf/1902.08638.pdf
1)作者简介:
本篇文章的作者皆来自 ParallelM。ParallelM(https://www.parallelm.com)是一家帮助工业界在生产环境使用机器学习算法的公司。其突出产品 MCenter 是一个帮助工业界使用、管理生产过程中机器学习算法的软件。MCenter 可以直接导入写好的机器学习算法,将数据链接,即可在算法可能出现问题的时候进行预警。内置的管理系统可允许算法迭代并且根据管理规定筛选算法。因此,工业界亟需能够判别机器学习系统工作性能的算法,而本文正是介绍了这一算法。由于是公司产品,所以文章并没有给出源代码的链接。
2)文章背景介绍:
机器学习模型在工业界有着广泛的应用。一般来说,研发者会针对一个工业问题使用许多的模型进行预测,并将表现最优秀的模型用于生产。然而,机器学习模型的表现好坏多由训练数据与生产过程中收到的数据决定,模型的泛化力不同,根据收到的数据不同,预测效果也好坏不一。因此,如何选择适合的模型、如何预测模型是否会失效、模型的准确度如何,都是工业生产过程中遇到的问题。
同时,生产中的数据多根据外界环境的变化而有敏锐的改变,因此最适合某一刻工业生产的机器学习模型也需要不断更新。而这一过程如果由人力来操作是复杂的、笨重的、迟缓的,因此最好是由自动化的算法实现。工业生产中的数据往往没有标注,因此传统的将预测结果和标注对比的方式并不能预测生产过程中机器学习模型的准确度。而本文推崇的 MPP(Model Performance Prediction)算法,可以解决这一生产中的实际问题。
3)文章概述:
文章提出了 MPP 算法用于跟踪产业中使用的机器学习模型算法的准确度,并将预测的准确度打分。预测的过程包括分类和回归,主要的打分目标为准确度和 RMSE 误差。算法将原机器学习算法的误差值作为训练目标,用于预测生产过程中使用的机器学习算法是否还有准确的效能。结果显示 MPP 算法有较好的预测能力。因此,MPP 算法有潜力防止灾难性预测值的出现并帮助数据科学家们对生产数据进行深度解析。
4)文章详解:
使用一个模型来预测另一个模型的准确度在 2013 年已由 Sheridan [1] 提出,Sheridan 使用了一个随机森林来预测另一个随机森林在特定场景下的符合度。2014 年 Balasubramanian et. al. [2] 在书中提出使用共型预测因子(Conformal Predictions)框架测量机器学习算法的置信度。2019 年,Ghanta et. al. [3] 发明了指标来测量了训练数集和测试数集之间数据规律的差异。这些工作都为本文的 MPP 算法的奠定基础。
工作原理:
MPP 算法的训练数据集由原机器学习算法的预测误差数据组成。原机器学习算法在训练数据集上进行训练,在测试数据集上进行原算法的预测,并产生与标签值的误差,此误差将输入 MPP 算法作为标签,MPP 算法的特征可包括但不限于原机器学习算法的特征、原算法输出的概率、或原机器学习模型的特征值(例如随机森林的树的个数)等。MPP 模型对两种问题进行了预测,分类问题和回归问题。对于分类问题,MPP 将输出二分类的答案,即分类准确(1)和不准确(0)。对于回归问题,算法定义了一个阀值,凡是在原机器学习算法的标签值±ε 之内即为准确(1),反之输出不准确(0)。阀值通过 Null model 计算,Null model 是一个由随机生成样本组成的模型,模型一些样本是由样本分布决定,另一些是包含了随机生成变量的样本,用来在参数不确定的情况下模拟一个随机的过程。
算法效果:
文章使用了多个数据集对 MPP 算法的效能进行测试,测试结果展示在表 1 和表 2 中。表 1 展示的是在分类问题上 MPP 的效能,第一列 Primary Algorithm Error 显示的是原本的机器学习算法分类得出的错误率,第二列是由 MPP 算法预测出的错误率,第三列是两者之间的误差。从表中我们可以看出,MPP 算法在一些数据集上有很强的预测性,可以较为准确的测量出机器学习算法的错误率。
本文用到的数据集由以下几个组成:Samsung、Yelp、Census、Forest、Letter。Samsung 的数据集来自文献 [4],数据来自 30 位 19-48 岁腕式智能手机用户的日常活动,由手机内部的惯性探测器记录。数据记录的活动包括站立、坐、躺、行走、上楼梯、下楼梯等组成。原始数据记录的内容包括重力加速度、身体加速度、身体角速度等,数据集将原始数据进行特征映射从而分类出人类活动的内容。Yelp 的数据集来自 [5],是一个公开给机器学习社区实验的数据集。数据集包括 Yelp 上面的图片以及用户的评价的文字信息,原文没有详解分类信息的内容是图片还是评价。Census 数据集来自 [6],数据是由 Barry Becker 在 1996 年从 1994 年的人口普查数据中提取出来关于 16 到 100 岁之间的人口的年龄、工作类型、受教育程度等信息,目标是预测某人年薪是否在 50k 以上。Forest 数据集来自 [7],数据集采集了北科罗拉多州的卢瑟福国家公园的森林覆盖种类,此处的森林有较少的人为入侵。数据集将森林 30x30 米的块状区域,覆盖种类由美国森林服务部(USFS)的资源信息系统(RIS)决定,特征变量包括是否野生区域、土壤种类等组成,数据来自美国地理普查(USGS)和美国美国森林服务部。Letter 数据来自 [8],数据集包括英语 26 个大写字母的黑白图片,图片包括 20 种不同的字体,并将 20 种字体随机扭曲,形成 20000 个独特的图片数据,特征数据以 1-15 衡量图片的统计动量、边的个数等,目标是辨识图片是哪个英文字母。
表 1:MPP 在分类问题上的效能(摘自原文)
同样在回归问题的效能上,文章也做了分析,结果在表 2 中可见。对于大部分数据集(除 Turbine 外),MPP 算法都有较好的预测功能。回归问题使用了不同的数据集,包括 Facebook、Songs、Blog、Turbine、和 Video。Facebook 数据集由 [9] 获取,数据集包括了用户在 Facebook 上评论的信息,目标是预测在 Facebook 状态发出后的 H 小时之内,会收到多少的评论信息。Songs 数据集由 [10] 获取,数据包括自 1922 年至 2011 年的商业歌曲的音频特征,目标是预测歌曲是在那一年发布的。Blog 数据集来自 [11],数据集通过博客的文字数据预测会有多少条评论数据。Turbine 数据集来自 [12],数据集通过软件模拟的涡轮数据预测涡轮所需的维修程度。Video 数据集来自 [13],数据集使用视频的特征数据用来推断视频所需的转码时间,且预测不需要输入解码器的种类。
表 2: MPP 在回归问题上的效能(摘自原文)
5)文章亮点:
文章提供了一种非常新颖的机器学习的应用,即使用机器学习模型预测原机器学习模型的准确度。虽然在算法层面上并没有新的技术,仅仅是将标签数据集更改为原机器学习算法的误差,但是在思路上还是非常原创的、新颖的。
文章所提出的内容有潜力解决生产中的实际问题。虽然现在有大量的文献在发明使用新的机器学习算法,但是如何将这些算法落地实用至工业界,在从学术成果转化到实操上,还有很多问题。其中算法能否保持在测试数据上的准确度就是一个问题。本文的 MPP 算法为机器学习算法的应用上了双保险,保证了机器学习算法在数据变化的时候可以提前预知,从而帮助使用机器学习的公司进行更加精确的数据管理。
文章非常切合 ParallelM 公司的运营目标,即为正在运行中的机器学习算法提供管理维护的服务。通过新的机器学习算法 MPP 预测的值,可以帮助运行机器学习的公司更好地掌控自己算法的准确度。
6)分析师见解:
其一,文章虽然给出了关于原算法错误率与 MPP 预测错误率之间的绝对误差,但是没有详细地解释绝对误差的大小对一个工业系统所造成的影响是什么,多大的误差会影响一个工业流程的正常运行。例,在表 1 中的分类问题的误差中,使用 Census 数据集,误差已经达到 0.15,这个误差是否太大文中没有具体讨论,只是给了相应的数字。当然,如果要判别多大的误差是可以接受的,则需要很详细的内容扩充,也需要很强大的理论支持,文章由于篇幅的限制没有深入讨论也是可以理解的。
其二,文章对训练数据的规模大小没有详细的说明。因为工业界的数据有可能规模也不小,MPP 算法对规模大小的敏锐度文章并没有说明。
其三,文章所提出的算法在工业界的应用是一个预警系统的前身,所谓的预警系统,即是能够在原机器学习算法计算出错误的预测前提出警告。如果要实现这一功能,算法的速度非常重要,MPP 算法能否在原机器学习算法给出错误预测前即给出预警还是不知道的,从训练的复杂度来看,MPP 算法的复杂度也许和原机器学习算法是相当的,如果不能在速度上占优,则很难成为预警器。
其四,如何选择 MPP 算法的输入特征文中并没有详细的讨论,仅仅是提出了一些可能被用作特征的值,对于 MPP 算法使用了哪些特征而得到较好的结果文中并没有讨论。
可以理解的是,由于文章是会议文章,有篇幅限制,且在研究这个想法的初级阶段,所以没有进行详细讨论。如果由更多论文在以上四个层面进行分析,将更有助于理解这一新颖的技术。
论文 2:TonY:An Orchestrator for Distributed Machine Learning Jobs
链接:https://arxiv.org/pdf/1904.01631.pdf
1)作者简介:
所有的作者均来自于领英(LinkedIn)公司。领英是世界上最大的职业网络平台,功能包括人脉链接、工作匹配、信息发布等。领英拥有 6.1 亿的用户,用户横跨世界上 200 多个国家,因此,领英的数据库是巨大的,处理起数据是困难的,并且需要并行计算。
2)文章背景介绍:
最近的几十年中,由于网络数据的大规模累计,计算机科技已经进入大数据时代,传统的大数据处理系统,包括 MapReduce、Hadoop、Spark,已经可以允许 PB 级别的数据被存储并使用与机器学习。LinkedIn 公司的许多网站功能都是由机器学习算法支持的,包括朋友推荐(People You May Know),求职推荐(Job Recommendations),新闻(News Feed),和学习建议(Learning Recommendations)。这些算法背后的数据已经累计到非常大的规模。最简单地,在一个机器上处理数据会受到单台机器容量的限制,因此单机很难运算 PB 级别的数据。如果要大规模化训练数据,需要将数据分散到几个机器上,即并行运算。
大多数机器学习框架提供并行运算的 API,但需要在每个主机上复制程序、设置环境变量,然后在每个主机上开启训练程序。这个杂乱的过程会带来一些挑战:
资源竞争:当机器学习算法工程师竞争一个管理不善的计算机池中的机器时,他们会争夺同一个内存、CPU、GPU。在分配算力和内存不当的时候,会产生运行错误,导致项目失败。
配置繁琐且易出错:设置分布式训练需要将配置复制到所有主机,验证配置成功、更新配置是个繁琐艰难的过程。
缺乏监控:程序运行时,由于分配在不同的主机上,很难监控全局进展。
缺乏容错能力:瞬态错误很难调试,需要手动启动
本文针对这些挑战与缺陷设计了开源系统 TonY,这是一个与集群调度器交互以启动和管理分布式训练作业的协调器。
3)文章概述:
TonY(distributed Tensorflow on Hadoop YARN)是一款由 LinkedIn 开发的分布式机器学习调度处理器,很好地解决了在分布式运算中常见的如资源分配不合理、配置困难等问题。
4)文章详解:
TonY 架构:
TonY 由用于向调度程序提交作业的客户端和在调度程序中运行的应用程序组成。用户使用客户端提交他们的机器学习项目,然后由 TonY 的调度程序分配资源、设置配置,并以分布式方式启动机器学习项目。客户端接口是通用的,因此可支持向多个调度程序提交项目。在无需用户更新算法或向客户端提交代码的情况下,调度程序可以自行更改配置并实现资源重新分配。作为初级的算法实现,本文使用了 Hadoop YARN、分布式 Tensorflow 运行此项目,这些是 LinkedIn 常用的数据处理工具。图一展示了 TonY 程序的架构。
图 1: TonY 的架构
TonY 客户端:
客户端是 TonY 提供的调配分布式机器学习项目的库,用户将所需要用到的资源写进 XML 文件,例如 Tensorflow 用户可以写参数服务器实例数量、每实例所需内存和 GPU 数量。用户也可以改变基础调配程序的配置、提供机器学习程序的路径、Docker 镜像、集群上运行的虚拟环境等。
TonY 集群应用:
TonY 客户端会将用户输入的配置、程序、虚拟环境进行打包提交给集群调度器。调度器会根据不同的需要配置 GPU 或 CPU 容器。在每个容器里面由任务执行器分配端口与调度器交互,调度器收到所有任务执行器的信息后将设置全局集群参数、发送给各个执行器,并开始执行任务。执行器将监督任务进程并在结束时候向调度器报告。整个过程中 UI 会将进度报告给用户。如果出现任务失败,TonY 系统可以自动停止剩下的任务,并重新设置容器,还原配置,然后自失败的节点开始继续训练模型。
5)文章亮点:
文章是领英公司在分布式数据处理系统上的一个新产品,作为例子使用了公司内部常使用的 Tensorflow 以及 Hadoop YARN 进行调配。此产品在资源分配上是先进的,处理了很多分布式运行机器学习算法时所遇到的问题。
此产品在使用上是简洁的,用户只需一次性输入配置要求,TonY 会自行和调度器交互保证分配到合适的资源。
文章所描述的程序的另一优点是它是开源的,所以其他的机器学习项目也可以使用此程序进行分布式运算时候的管理,希望在开源的情况下,系统能够进一步被完善。
6)分析师见解:
因为文章没有给出代码链接,所以在算法的实现上没有太多点评,我们完全可以假设由 LinkedIn 这样的大公司开发出的代码是高效的。关于实操起来这个系统是否好用,需要推广后由各个用户来反馈。
这个系统目前还在进一步的更新中,新的系统将能够收集有关项目性能和资源利用率的指标,并在 UI 中进行汇总分析,并提出提高性能及资源利用率的新配置。如果这一功能达成,我们可以期待会有更多的用户开始使用 TonY 进行项目管理。然而,这个调度系统是否能够被广泛的商业化还依赖于更多的宣传和性能的提高。
分析师简介:剑桥大学人工智能领域在读博士生,主要攻克方向为人工智能的优化算法。是一位在人工智能领域的探索者,希望永远保持小队长的心态,对世界好奇,对人工智能乐观,带领大家一起探索人工智能这个蓬勃发展的领域。
第一篇论文引用:
[1.]Robert P. Sheridan. Using random forest to model the domain applicability of another random forest model. Journal of Chemical Information and Modeling, 53(11):2837–2850, 2013.
[2.]Vineeth Balasubramanian, Shen-Shyang Ho, and Vladimir Vovk. Conformal Prediction for Reliable Ma- chine Learning: Theory, Adaptations and Applications. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1st edition, 2014.
[3.]Sindhu Ghanta, Sriram Subramanian, Lior Khermosh, Swaminathan Sundararaman, Harshil Shah, Yakov Gold- berg, Drew Roselli, and Nisha Talagala. Ml health: Fit- ness tracking for production models. arXiv:1902.02808, 2019.
[4.]Davide Anguita, Alessandro Ghio, Luca Oneto, Xavier Parra, and Jorge L. Reyes-Ortiz. A public domain dataset for human activity recognition using smart- phones. 21th European Symposium on Artificial Neu- ral Networks, Computational Intelligence and Machine Learning, ESANN, pages 1–15, 2013.
[5.]Yelp Dataset. https://www.yelp.com/dataset_ challenge/, 2013.
[6.]Ronny Kohavi and Barry Becker. UCI machine learn- ing repository. "https://archive.ics.uci.edu/ ml/datasets/Census+Income, 1996.
[7.]Jock A. Blackard, Denis J. Dean, and Charles W. Anderson. UCI machine learning repository. https:// archive.ics.uci.edu/ml/datasets/Covertype (http://archive.ics.uci.edu/ml/datasets/Covertype), 1998.
[8.]David J. Slate. UCI machine learning repository. https://archive.ics.uci.edu/ml/datasets/Letter+Recognition, 1991.
[9.]Kamaljot Singh. Facebook comment volume prediction. International Journal of Simulation- Systems, Science and Technology- IJSSST V16, January 2016.
[10.]T. Bertin-Mahieux. UCI machine learning repository. http://archive.ics.uci.edu/ml/datasets/ YearPredictionMSD, 2011.
[11.]K. Buza. Feedback prediction for blogs. in data analysis, machine learning and knowledge discovery. Springer International Publishing, pages 145–152, 2014.
[12.]Andrea Coraddu, Luca Oneto, Alessandro Ghio, Stefano Savio, Davide Anguita, and Massimo Figari. Machine learning approaches for improving condition based maintenance of naval propulsion plants. Journal of En- gineering for the Maritime Environment, –(–):–, 2014.
[13.]T. Deneke, H. Haile, S. Lafond, and J. Lilius. Video transcoding time prediction for proactive load balancing. In Multimedia and Expo (ICME), 2014 IEEE Interna- tional Conference on, pages 1–6, July 2014.