推荐一些机器学习系统MLSys中的值得研究的方向

简介: MLsys不能算是一种方向,而是一种思路。比如对于system研究者来说,可以把ML作为我们开发的系统要适配的一种benchmark,就像transaction对于数据库、某种文件场景对于File System的意义一样。这样一想可做的空间就宽广多了

MLsys不能算是一种方向,而是一种思路。比如对于system研究者来说,可以把ML作为我们开发的系统要适配的一种benchmark,就像transaction对于数据库、某种文件场景对于File System的意义一样。这样一想可做的空间就宽广多了。

下面简单推荐一些坑比较少得方向,希望大家可以适应这个潮流。

1. 分布式机器学习(Distributed DNN Training)

这个又可以分为两个方面:from ML / system perspective。

ML

从ML的角度做,主要是发明或改进分布式训练算法,保证在分布式加速的同时,仍然能达到原来的学习效果(loss/accuracy)。因此很多工作也被投在像ICML、NIPS这种专业ML会议上。主要用到的方法包括优化(optimization)和统计学习理论(statistical learning theory)。

还有一类工作涉及到如何把单机算法改造成分布式[ch9],比如同步/异步SGD等。这里主要涉及到的问题是如何降低分布式环境下的通信开销,提高加速比。

System

还有一个就是从System的角度做。从分布式计算的角度来看,可以把相关工作分为以下几类

  1. 对于计算量太大的场景(计算并行),可以多线程/多节点并行计算,多节点共享公共的存储空间。常用的一个算法就是同步随机梯度下降(synchronous stochastic gradient descent),含义大致相当于K个(K是节点数)mini-batch SGD
  2. 对于训练数据太多,单机放不下的场景(数据并行,也是最主要的场景),需要将数据划分到多个节点上训练。每个节点先用本地的数据先训练出一个子模型,同时和其他节点保持通信(比如更新参数)以保证最终可以有效整合来自各个节点的训练结果,并得到全局的ML模型。
  3. 对于模型太大的场景,需要把模型(例如NN中的不同层)划分到不同节点上进行训练。此时不同节点之间可能需要频繁的sync。这个叫做模型并行。
  4. Pipeline Parallelism:这是去年(SOSP19 PipeDream)才出现的概念。Pipeline Parallelism相当于把数据并行和模型并行结合起来,把数据划分成多个chunk,也把训练模型的过程分成了Forward Pass和Backward Pass两个stage。然后用流水线的思想进行计算。

大致涉及以下几个点:

  • 分布式ML系统设计
  • Edge Computing
  • 大量计算资源的Scheduling / device placement
  • communication相关

2. 深度学习模型压缩/加速

对DL model进行压缩主要考虑两个角度:减少计算量(例如conv层的计算量) / 内存占用(NN的参数数量)。不仅要考虑ML上的metric,也要考虑system层面的performance(例如latency / throughput / 功耗。有时候这些比ML模型的accuracy还重要)

2.1 通过Quantized(量化)降低计算精度要求

量化的含义是将卷积层(the weights and / or activations of a CNN)通常要用到的32位浮点数用更低位的数来表示,如int32, int16, int8等等,来降低资源占用(float32无论是计算还是存储都是很吃资源的..)。量化之后无疑会损失一部分精度,但神经网络对噪声并不是特别敏感,因此控制好量化的程度之后对ML任务的影响可以很小。

2.2 新硬件 / DL Acclerator

在纯硬件方面针对DL workload的工作也有很多,这里来看几个parallel相关的技术。最近Data-Level Parallelism不仅在深度学习中,在其他一些领域(比如数据库)也有了越来越多的应用。

CPU、SIMD、VLIW、GPU、系统结构、专用硬件等。

2.3 矩阵算子优化

神经网络中的很多运算本质上就是对矩阵运算,因此可以用一些矩阵乘法优化方案来加速。

3. 深度学习框架/系统设计

和Distributed Training的区别是这里更关注一些工程上的东西(框架设计、API设计等等)

几个关键要素:

  • 支持各种算子(op) 和 tensor (data)
  • 计算图的定义方式(动态 v.s. 静态)
  • Auto Diff
  • Optimizer(例如Adam)
  • 各种加速和优化的库:cudnn, openblas,mkl等

4. 用ML优化传统的system问题

用ML去优化一个传统system问题中,一些需要人工经验调整、或者说可以从历史情况learn到一些东西的模块。比如数据库参数操作系统页表数据库索引等等。一个模块可以被ML化的前提是它必须是empirical的,参考它在页表(OS的工作集原理)、数据库(DBA是个很吃经验的活...)中的应用。

基本就这4个方向,如果想做这些东西,需要掌握一定基础知识点才能更好的入门及应用。

  • 工程基础:C/C++、OO programming。阅读源码是个很好的学习方式
  • OS
  • 分布式系统
  • 编译原理。特别是编译器优化技术、LLVM、memory optimization。Parser之类不喜欢也可以不看
  • Computer Architecture。另外还需要了解:1.GPU架构,例如显存分配机制、CPU与GPU交互。 2.CPU、存储系统相关的新技术。 3.有条件可以了解下深度学习专用硬件。
  • 常见的并行计算框架,例如MPI/OpenMP/CUDA
  • 机器学习基础
  • 常见的分布式机器学习算法、DL模型压缩、模型加速方法(根据具体方向而定)

这里需要注意的是,如果想研究的比较有深度,有时间多阅读一下别人的源码,比较有利于个人能力的提升,多动手记的比较牢靠一点。

机器学习是个很大的领域,也是个很成功的领域:从纯学术角度来说,这个领域“坑”大,维度很广,不管是算法、理论,还是模型、系统,有非常多值得探索和研究的问题;从工业应用来说,这个领域相比其他某些领域与工业和实际应用贴的更近,所以这个领域的成果相比其他一些领域也更容易被部署到开发过程和产品中。

机器学习是一个多维度(multi-dimensional)的研究领域,也是一个跨领域(cross-domain)的研究领域,上到理论证明,算法设计,下到模型设计、应用、系统设计和研究。

这种学习如果想出成果,还是离不开老师和同事们的协助,有那种氛围比较容易解决问题,不用自己一个人钻牛角尖,这里有一些名校及比较好的老师推荐一下:

牛X的名校

北美:业界当然是Google Brain和MSR最有影响力。CMU的Catalyst,除了大家比较熟悉的陈天奇(TVM,XGBoost,MXNet),Zhihao Jia的研究也很promising(TASO),另外两位senior的老师都已经很有名了。

欧洲:MSR Cambridge。ETH Systems Group几位AP做MLSys,拓展宽一些的话,Arch背景的Onur Mutlu和HPC背景的Torsten Hoefler都很厉害有MLSys的项目。PARSA at EPFL。德国马普所软件系统所MPI-SWS实力也很强。


国内:工业界里面MSRA的系统和网络组可能是做的最好的,字节、阿里、亚马逊ASAIL也都在特定领域里面有一些影响。

硬核的老师

1.UTK,Jack Dongarra的ICL。代表作大家耳熟能详,起草了BLAS,LAPACK,open MPI。包括大家今天以dag为基础的tensorflow,其实icl早就有相应的包给大规模hpc系统了(PARSEC,类似还有斯坦福的legion)。这个实验室,发paper一般,学校一般,但是做东西极其底层和硬核,一直是我非常尊敬的实验室之一。

2.Berkeley James Demmel和他在新加坡国大的学生You Yang。James做的比较偏算法一些,最近几年跟尤洋弄大batch分布式机器学习挺火热的。

3.斯坦福的keith winstein。serverless computing那些应用做的非常有意思.


找到有相近价值观的人共同推动这个领域的发展,因为现在机器学习已经不单单是个算法问题,很多创新横跨算法系统乃至结合硬件设计,那么有不少好工作很容易在各自领域遭遇敌意。比如系统领域喜欢改变领域mindset的相对通用的topic,对于前沿算法带来的新系统设计带着偏见;


对于比较喜欢ML的同学,我还是比较推荐大家可以考虑使用已有的系统提升各种ML算法,非深度学习算法是个性价比很高的事情,因为这个方向对于很多工业界都有很重要的里程碑意义,主要是因为这个东西做的人比较少,毕竟它不仅仅需要了解一些系统知识,更重要的你需要对机器学习算法的深刻理解。最后祝大家都能学有所成,乘风破浪。

本期内容就分享到这里,我们下期见!

目录
相关文章
|
11天前
|
机器学习/深度学习 存储 数据采集
利用机器学习优化数据中心冷却系统
【4月更文挑战第26天】 在数据中心管理和运营中,冷却系统的能效是关键成本因素之一。随着能源价格的上涨和对环境可持续性的关注增加,开发智能、高效的冷却策略显得尤为重要。本文将探讨如何应用机器学习(ML)技术来优化数据中心的冷却系统。通过收集和分析温度、湿度、服务器负载等多维数据,我们构建了预测模型来动态调整冷却需求,实现节能并保持最佳的操作条件。实验结果表明,使用ML优化后的冷却系统能够在不牺牲性能的前提下显著降低能耗。
|
1月前
|
机器学习/深度学习 搜索推荐 算法
基于机器学习的用户行为分析与个性化推荐系统
传统的用户行为分析和推荐系统常常受限于规则的刻板和模型的简单,无法准确捕捉用户的个性化需求。本文基于机器学习技术,探讨了一种更加灵活、精准的用户行为分析与个性化推荐系统设计方法,通过深度学习模型结合大数据分析,实现了对用户行为的更细致把握和更个性化的推荐服务。
|
2月前
|
机器学习/深度学习 存储 运维
利用机器学习优化数据中心冷却系统
在数据中心运营成本中,冷却系统的能源消耗占据了显著比例。随着数据中心规模不断扩大,传统的冷却管理方法逐渐显得不足以应对复杂多变的热负荷。本文提出了一种基于机器学习的方法,旨在优化数据中心的冷却系统性能。通过收集历史运行数据和实时环境参数,构建预测模型来动态调整冷却策略,实现能源消耗与散热效率之间的最佳平衡。实验结果表明,该方法可以有效降低能耗,并保持数据中心内环境的稳定性。
15 1
|
13天前
|
机器学习/深度学习 自然语言处理 搜索推荐
探索机器学习在个性化推荐系统中的应用
【4月更文挑战第23天】 随着大数据和人工智能技术的迅猛发展,机器学习已成为推动个性化推荐系统革新的关键动力。本文将深入探讨如何通过机器学习算法提升推荐系统的精准度和用户体验。首先,概述了推荐系统的工作原理及其重要性;随后,详细分析了几种主流的机器学习技术以及它们在构建个性化推荐系统中的应用实例;最后,讨论了当前面临的挑战及未来的发展趋势。
|
8天前
|
机器学习/深度学习 自然语言处理 Linux
【专栏】Linux 中的机器学习:Whisper——自动语音识别系统
【4月更文挑战第28天】本文探讨了在Linux环境下,先进自动语音识别系统Whisper的运用与实现高效ASR。Whisper基于PyTorch,支持多语言识别,具有高准确性和实时性。文中介绍了安装配置Whisper的步骤,包括安装依赖、下载代码、配置环境变量及编译安装。通过数据准备、模型训练和识别,可实现语音识别功能。Whisper适用于语音助手、翻译等领域,随着技术发展,其应用前景广阔。
|
7天前
|
机器学习/深度学习 数据采集 安全
基于机器学习的网络安全威胁检测系统
【4月更文挑战第30天】 随着网络技术的迅猛发展,网络安全问题日益凸显。传统的安全防御机制在应对复杂多变的网络攻击时显得力不从心。为了提高威胁检测的准确性和效率,本文提出了一种基于机器学习的网络安全威胁检测系统。该系统通过集成多种数据预处理技术和特征选择方法,结合先进的机器学习算法,能够实时识别并响应各类网络威胁。实验结果表明,与传统方法相比,本系统在检测率、误报率以及处理速度上均有显著提升,为网络安全管理提供了一种新的技术手段。
|
9天前
|
机器学习/深度学习 存储 监控
利用机器学习优化数据中心冷却系统
【4月更文挑战第28天】 在数据中心的运营成本中,冷却系统的耗电占据了显著比例。随着能源价格的上涨以及环境可持续性的重视,寻求高效的冷却策略变得尤为重要。本文将探讨如何应用机器学习算法来优化数据中心的冷却系统性能。通过分析历史温度数据、服务器负载和外部环境因素,机器学习模型能够预测数据中心内的热分布,并实时调整冷却设备的工作状态,以达到节能的目的。我们的研究显示,采用这种智能调节方法可以显著降低能耗,同时保持或甚至提升冷却效果。
15 1
|
12天前
|
机器学习/深度学习 数据挖掘 数据中心
利用机器学习优化数据中心能效的策略研究
【4月更文挑战第24天】在数据中心管理和运营中,能效优化是一个长期存在的挑战,它直接关系到成本控制和环境影响的减轻。随着人工智能技术的不断进步,特别是机器学习(ML)方法的广泛应用,为解决数据中心能效问题提供了新的途径。本文旨在探讨如何通过机器学习技术对数据中心的能源消耗进行建模、预测和优化,以实现更高的能效。我们首先分析了数据中心能耗的主要组成部分,然后提出了一种基于机器学习的能效优化框架,并详细阐述了关键技术和方法。最后,通过实验验证了所提出策略的有效性,并讨论了未来的研究方向。
|
17天前
|
机器学习/深度学习 运维 监控
利用机器学习优化数据中心能效的研究
【4月更文挑战第19天】在数据中心的运营成本中,能源消耗占据了显著比例。随着能源价格的不断攀升与环境保护意识的加强,如何降低数据中心的能耗已成为研究的热点。本文提出了一种基于机器学习的方法来优化数据中心的能效。通过分析历史运行数据,构建预测模型,并结合实时监控,动态调整资源分配策略以达到节能目的。实验结果表明,该方法能有效减少能源开销,同时保证服务质量。
|
19天前
|
机器学习/深度学习 资源调度 调度
利用机器学习优化数据中心能效的策略研究
【4月更文挑战第18天】 在数据中心的运营成本中,能源消耗占据了显著比例。为了降低这一开销同时减少环境影响,本文提出一套基于机器学习技术的数据中心能效优化策略。通过分析数据中心的能耗模式和环境变量,构建了一个预测模型来动态调整资源分配,实现能源使用的最大效率。与传统方法相比,本研究提出的策略在保证服务质量的前提下,能有效降低能耗,并具备自我学习和适应的能力。