MLI: An API for Distributed Machine Learning
Evan R. Sparksa Ameet Talwalkara Virginia Smitha Jey Kottalama Xinghao Pana Joseph Gonzaleza Michael J. Franklina Michael I. Jordana Tim Kraskab aUniversity of California, Berkeley bBrown University {sparks, ameet, vsmith, jey, xinghao, jegonzal, franklin,
Abstract
MLI is an Application Programming Interface designed to address the challenges of building Machine Learning algorithms in a distributed setting based on data-centric computing. Its primary goal is to simplify the development of high-performance, scalable, distributed algorithms. Our initial results show that, relative to existing systems, this interface can be used to build distributed implementations of a wide variety of common Machine Learning algorithms with minimal complexity and highly competitive performance and scalability.
中文速览
机器学习研究者习惯用MATLAB或R写算法原型,但这些代码难以扩展到大规模分布式场景;而现有的分布式系统要么接口太底层、要么依赖复杂的自动优化器,导致ML研究者既难上手又容易"翻译失真"。为此,作者提出了MLI这一面向分布式机器学习的应用编程接口(API),其核心是两个抽象对象——用于数据加载和特征提取的MLTable,以及在数据分区上进行线性代数运算的LocalMatrix,同时配套提供Optimizer、Algorithm和Model等标准接口,让开发者能像写MATLAB一样简洁地表达算法,同时保留对通信与并行模式的掌控,无需复杂的自动优化器。MLI基于Spark实现,实验表明,用它实现的逻辑回归和矩阵分解在性能上大幅领先Mahout,扩展性与Vowpal Wabbit、GraphLab等专用底层系统相当。这项工作的意义在于填补了"算法原型"与"工业级分布式实现"之间的鸿沟,让ML研究者能够亲自写出既简洁又高效可扩展的分布式算法,减少"翻译中的损耗"。
原文 arXiv:1310.5426;中英对照 + 大白话阅读 https://aha.fim.ai/paper/1310.5426v2