论文导读会议精选:SysML2018,SysML2019

Posted 大饼博士X

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文导读会议精选:SysML2018,SysML2019相关的知识,希望对你有一定的参考价值。

先简单介绍一下SysML会议,2018年新成立的一个聚焦在机器学习系统、软件、硬件等综合领域研究的一个学术会议。由一堆学术界和工业界大佬抱团组建。从18年发布的一篇Machine Learning System(机器学习系统)白皮书可以看到。

在白皮书中,机器学习系统的研究方向定义为在现实世界中设计和实现一类系统,这类系统用于支持和部署机器学习模型。随着机器学习模型的快速迭代,旧的系统已经不能为机器学习的应用提供最优的平台,并且这个成为了机器学习方法落地及大规模应用的阻碍之一。这类系统的研究包含三个层面:硬件系统,软件系统,以及以精确度以外的标准(能耗,抗攻击新,公平性等)为目标的机器学习模型的支持体系。计算机系统和机器学习的交叉诞生了 SysML 这个会议。会议已经在 Stanford 举行了两次,在圈内受到了不小的关注。(本段引用[1])

本文主要用于记录该会议论文的导读和笔记,以备日后查阅。本文会不定期add更行,所以会慢慢变长。


1、Accelerating Model Search with Model Batching

Stanford的论文,动机非常简单:现在有很多极度消耗GPU算力的场景,比如AutoML的NAS和Hyperparameter tuning,但是单GPU往往是利用率很低的( not saturated),特别是对一些small models,以及RNN类型的网络。这些网络本身在单GPU下训练的时候利用率就很低,而现在的实际在搜网络结构或者超参的时候往往都是一个GPU训一个model。

因此作者就提出了2个技术:在单卡上用multi streams 并行执行多个model,以此来喂饱GPU;以及配套的,需要这些model是共享数据预处理的,因此采用共享的数据预处理(CPU处理以此,发给多个model),这一点也很重要,否则预处理也称为瓶颈就没有意义了。

ModelBatch has two key components:

  • Shared preprocessing: Preprocessing performed on the CPU, and
    shared among the different models. After preprocessing, processed
    tensors are moved to the GPU asynchronously; this communication is
    overlapped with compute using double buffering
  • Parallel model training: Performed on the GPU on a per-model basis,
    contains operations like convolutions, matrix multiplications, and
    pooling. Kernels launched in parallel using CUDA streams

效果非常直观,能喂饱GPU就能提升性能,特别在推理中的效果比训练更好。未来工作作者也简单讨论了下:

  1. 包括RNN类网络的并行
  2. 在不相同model训练场景下如何用该技术?(因为模型的结束时间会差很多,这个怎么调整呢?我想想应该是用异步启动,前面的model结束后可以新起model来补充GPU利用率)
  3. 分布式训练中能不能用modelbatch?有一个情况是,我们可以天然把通信藏在多个模型的训练计算中,通信虽然有delay,但是其他model还在跑计算,所以实际上并没有完全浪费。

2、待补充。

参考资料

[1] 机器学习 + 系统 : 一个新的方向,https://zhuanlan.zhihu.com/p/61786615

以上是关于论文导读会议精选:SysML2018,SysML2019的主要内容,如果未能解决你的问题,请参考以下文章

ACM SIGIR 2022 | 美团技术团队精选论文解读

学界 | NLP年度盛宴EMNLP/CoNLL 2018最精彩论文精选(摘要+评论)

城市大脑英文论文在2018 IEEE CCSWD会议发表

近期必读 ICLR 2021 图神经网络相关论文

精选 || 深度学习与流式计算在电能质量分析评估中的机遇与挑战

近期必读的6篇顶会WWW2020推荐系统相关论文-Part3