机器学习本质上是一系列的数值计算。当需要计算的数据量很大或者计算模型很大时,就需要设计一个合适的平台来进行这种计算。机器学习系统就是针对此方面的研究,目的在于开发一类特殊的系统,用于支持和部署机器学习模型。MLSys 会议正是来解决机器学习和计算机系统之间的交叉问题。首届会议于 2018 年在斯坦福举办,吸引了学界和业界的广泛关注,会议主要研究(1)设计支持机器学习的软件系统;(2)设计硬件系统;(3)设计系统以满足精度以外的其他需求,诸如隐私,安全,公平性等。
在本篇提前看中,我们从不同的角度选择三篇文章。其中,第一篇文章对机器学习系统制定了一套具备一般性的工业衡量标准,第二篇文章从模型部署层面对机器学习模型进行加速,主要解决瓶颈是特征计算的问题,第三篇文章则针对一个特定应用场景——大量依赖隐私数据的机器学习任务设计了一个权衡隐私传输与模型效果的系统。
论文列表:
- MLPerf Training Benchmark
- WILLUMP: A Statistically-Aware End-To-End Optimizer ForMachine Learning Inference
- Privacy-Preserving Bandits
MLPerf Training Benchmark
论文链接:https://arxiv.org/pdf/1910.01500.pdf
Github 链接:https://github.com/mlperf/training
引言
日趋复杂的机器学习算法和庞大的数据量对真正运行模型的系统提出了一系列的挑战,在这篇文章的工作之前,业界尚未存在一套针对机器学习系统具备工业级别的衡量标准。然而,纵观各个领域的发展,这样的一套标准不仅能起到具有说服力的比较效果,更能促进创新,推动科研和工业界的发展。由此,来自谷歌,百度,斯坦福大学,哈佛大学等众多业界和学界的研究人员共同合作,克服了在衡量机器学习系统的各种独特难题,定义了一套衡量基准 MLPerf。
该论文总结分析了衡量训练机器学习的系统的各种挑战,针对各种机器学习任务(如:图像分类,目标检测,机器翻译,强化学习等)给出不同的衡量标准,并附有详细的使用指南。
设计难点
一个训练机器学习的系统的工作流程抽象而言就是:系统输入端接受选定的数据集,优化器,模型,然后在系统上运行该模型直到模型质量(比如:图片分类的精确度)达到预期水平。选择一个系统,便要在训练后的模型质量和系统各方面的表现之间做出权衡。
那么,衡量训练机器学习的系统相较于一般的计算机系统,有哪些独特的挑战呢?
- 系统优化对系统表现与模型质量的不同影响。系统层面的优化可能在短期提高系统的表现性能,却会最终伤害到训练的模型的质量。这就要求,系统必须运行完整个训练过程才能判断模型是否达标,而不能只根据短时间的吞吐量进行优劣评估。
- 并行化训练规模的双重影响。在大型分布式计算场景中,为了增加数据并行度和系统利用率,常常使用大的批量规模(batchsize)。这反过来要求调整模型的优化参数来保证模型性能,比如学习率(learning rate)。而这些参数的调整却可能对模型训练时间带来负面影响。简言之就是,大批量规模减少了每次训练的时间,却增加了所需的训练次数。
- 模型中的随机性引起的系统表现的差异。即使是相同的模型和超参数,在不同的训练会话(session)中也可能需要不同的迭代次数以达到相同的准确度。这些差异为可信地比较系统表现带来了挑战。
- 不同的软件环境的影响。不同软件框架,不同的数学计算表达,编程界面等诸多因素都可能影响一个系统的表现。