王益分布式机器学习讲座~Random Notes (1)

这篇具有很好参考价值的文章主要介绍了王益分布式机器学习讲座~Random Notes (1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 并行计算是什么?并行计算框架又是什么

并行计算是一种同时使用多个计算资源(如处理器、计算节点)来执行计算任务的方法。通过将计算任务分解为多个子任务,这些子任务可以同时在不同的计算资源上执行,从而实现加速计算过程并提高计算效率。

并行计算框架是一种软件工具或平台,用于管理和协调并行计算中的任务分发、数据传输、同步与通信等操作。它提供了一套编程模型和接口,以便开发者可以方便地利用并行计算资源来编写并行化的代码。常见的并行计算框架包括MPI(Message Passing Interface)、OpenMP(Open Multi-Processing)、CUDA(Compute Unified Device Architecture)等

1 为什么并行计算框架MPI无法在大数据中入流?

MPI和当时很火的MapReduce是并行计算框架的两个极端,MPI允许进程在任意一个时刻通信,非常灵活,而MapReduce在任何时候都不许通信,mapper worker或者reduce worker是无法通过写程序的方式与其他的同伙worker来通信,所有的数据交换都只是发生在mapper phase和reduce phase之间的shuffle phase的,完全由mapreduce的runtime来操作,对于用户是完全封闭的

2 算法使用MPI和MapReduce框架来进行并行的区别是什么?

几乎任何算法都可以使用MPI框架来并行,而绝大部分复杂的算法是无法套进MapReduce当中的,这是因为复杂算法要求频繁的数据交换、数据合并、不同性质的计算任务的协调运行,所以对进程通信要求高。

3 一个大的计算任务,大概是启动多少个进程?

1万到10万个进程

4 如果一个计算任务失败了,需要重做哪些操作?

所有的I/O操作、所有的通信操作(与这个进程通信的所有进程都要kill掉,然后重启,由于数据依赖,就会导致所有的进程都要kill再重启)。

5 1万个进程只要运行五分钟,基本上就会有至少一个进程挂掉,为什么会出现挂掉的情况呢?

因为优先级高的进程会直接抢占掉优先级低的进程,把资源给优先级高的先用。个人理解,如果系统资源越丰富,就越不需要这种pre-exmption,挂掉的概率就会降低。并不是因为硬件或者软件的故障造成的,是这种进程管理策略导致的必然结果。

注:一般论文中的所使用的集群都是专门针对那个特定任务的,其中所提出的优化通信的方法:平衡CPU和GPU、平衡内存和CPU、平衡网卡和磁盘等在实际情况中都是不适用的,这是因为在实际的云计算平台中,可能提供给你的机器资源是假的,也就是可能是一些docker container或者virtual machine,因而根本无法控制或者甚至无法得知对应的网卡的状态。

进而,所有基于这些假设的论文都是无法在工业上发挥实际价值的。

6 Scalable的机器学习系统更重要的是数据模型,还是工程技法?

是后者。Good System = Good algorithm + Good Architecture (王益认为这占据了接近90%的重要性)

7 长尾数据在计算机工业上为什么比一般的数据更重要?

长尾数据是指那些在统计分布中位于尾部、出现频率较低的数据。
王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习

在计算机工业中,长尾数据比一般的数据更重要的原因有以下几个:

潜在商机: 长尾数据可能包含一些独特的、非传统的需求和市场机会。通过挖掘长尾数据,企业可以发现新的产品、服务和市场细分,从而提供更有针对性的解决方案。

个性化和定制化产品: 长尾数据的出现频率较低意味着个体间存在差异性。通过深入了解长尾数据,企业可以更好地理解不同用户的需求和偏好,从而提供个性化和定制化的产品和服务。

创新和发展: 长尾数据可能包含独特的洞察和研究价值,涉及新的技术、概念或想法。通过研究和分析长尾数据,企业可以获得新的思路和灵感,从而推动创新和发展。

8 分布式操作系统和分布式计算框架有什么区别和联系?有哪些分布式操作系统?有哪些分布式计算框架?

区别:分布式操作系统:主要关注整个分布式系统的资源管理、进程调度和通信等方面,提供了一个统一的操作系 统接口;分布式计算框架则:更注重于分布式计算的任务调度、数据分发和结果整合等方面;

依赖关系:分布式计算框架需要基于分布式操作系统来提供底层的资源管理和调度功能。

操作系统有:

Google的Google File System(GFS)和Google的Bigtable:这两个系统构成了Google的分布式基础架构。
Apache Hadoop和Apache Mesos:这些系统提供了分布式文件系统、资源管理和任务调度等功能。

计算框架有:

Apache Spark:一个快速的通用分布式计算系统,支持内存计算和大规模数据处理。
Apache Hadoop MapReduce:一个基于分布式文件系统的计算模型,适合大规模数据处理。
Apache Flink:一个分布式流处理和批处理计算框架,支持容错和低延迟处理。

9 构建大规模机器学习系统中遇到的Pitfall有哪些?

王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习
1)一般所认为的数据噪音就包含了长尾数据,但是长尾数据其实是有很多价值的,去掉之后数据其实失去了完整性和实际性

2)论文中的数据模型基本上是建立在这样的一个数据分布假设上**(指数族分布):高斯钟形分布 和 拉普拉斯分布(双指数分布)**,而没有考虑长尾数据

例子1:SBD(Singular Bounded Decomposition)是一种矩阵分解算法,看上去不涉及概率问题,但是其其实是要求输入数据要满足高斯分布,不然分解结果中的component就是无用且混乱的principal component

例子2:广告系统的广告点击率模型最常见的是Logistic Regression, 其目标函数是:
王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习
将预测出来的概率值和对应的label(0或者1)求距离,距离之和最小为优化的目标;此时频率出现高的数据对该目标优化的方向有着更大的影响,长尾数据对参数的优化影响较小,所以模型没法针对长尾数据进行相应的调整

4)现在很多的并行计算框架比如Spark希望能够保证两边的好处,既能支持各种复杂的算法,也能支持fault recovery,但是其实也同时获得了MPI和MapReduce两边的坏处

Pregel是一种图计算框架,用于并行处理大规模图数据,它是由Google提出的,用于分布式计算的系统。它处理fault recovery的方法是:每隔一段时间出现一个server process stack,所有进程把这段时间接收到的信息都在磁盘上checkpoint一个版本,这样的话虽然依旧需要重启所有的进程,但是只需要把它们拉回到最近一次的checkpoint就可以了,不用从头完全重启。这是一个很直观的很通用的彻底的方法,但是容易出现out of memory。为什么呢?如果process stack的通信量不是很大,可以把process缓冲到memory里,到时候再check in到磁盘上;但是如果通信量很大,那么这个缓冲区buffer就都会overflow了,也就是out of memory了。所以像pagerank这样通信量小的算法可以用pregel来进行并行,而像RDA这样通信量大的算法就不可以

尽量不要把分布式操作系统和集群管理系统混合在一起,就像hadoop 1.0做的那样。为什么呢?
因为混合使用可能导致功能重叠和管理冲突,进而影响系统的效率和可靠性

谷歌很多的大规模机器学习系统都专门写了一个对应的并行计算框架

8)语言的问题:Java or Python or C++的代码会很长,而分布式系统的bug本身就很难定位,非go写的程序代码更加不好定位错误了

下面这段Go代码的逻辑是:如果有100个机器,可能有5台罢工,剩下的95台机器中任何一个有结果都应该立即返回,确保用户能第一时间收到。

王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习
对应的javascript版本的代码是(JS不是一个低端语言,是一个有着c/c++外皮的lisp的实现,lisp是人类历史上描述能力最强的编程语言,是所有语言之母,但是它没有那么强的宏的功能):timeout和rpcResp都是callback,return这个全局变量保证了只有第一个Call的机器才能执行clearTimeout和use这两个操作;setTimeout(timeout, 1)表示在1s后才会执行timeout这个回调函数
王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习

10 如何平衡零碎的业务和技术上的大杀器?

王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习
软件服务在单机上很好卖,但是在分布式系统上不好卖,因为你需要去部署它,甚至有时候需要针对集群的特点去调试它。

框架很难适应所有的业务场景。

ML as a Platform 自动化平台,不受用户欢迎;ML as service,

11 总结:full stack knowledge

王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习
王益分布式机器学习讲座~Random Notes (1),分布式,AI system,分布式,并行计算,机器学习文章来源地址https://www.toymoban.com/news/detail-527865.html

到了这里,关于王益分布式机器学习讲座~Random Notes (1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式机器学习(Parameter Server)

    分布式机器学习中,参数服务器(Parameter Server)用于管理和共享模型参数,其基本思想是将模型参数存储在一个或多个中央服务器上,并通过网络将这些参数共享给参与训练的各个计算节点。每个计算节点可以从参数服务器中获取当前模型参数,并将计算结果返回给参数服务器

    2024年02月06日
    浏览(35)
  • 机器学习分布式框架ray tune笔记

    Ray Tune作为Ray项目的一部分,它的设计目标是简化和自动化机器学习模型的超参数调优和分布式训练过程。Ray Tune简化了实验过程,使研究人员和数据科学家能够高效地搜索最佳超参数,以优化模型性能。 Ray Tune的主要特点包括: 超参数搜索空间规范 : Ray Tune允许您使用多种方

    2024年02月15日
    浏览(42)
  • 机器学习分布式框架ray运行TensorFlow实例

    使用Ray来实现TensorFlow的训练是一种并行化和分布式的方法,它可以有效地加速大规模数据集上的深度学习模型的训练过程。Ray是一个高性能、分布式计算框架,可以在集群上进行任务并行化和数据并行化,从而提高训练速度和可扩展性。 以下是实现TensorFlow训练的概括性描述

    2024年02月15日
    浏览(50)
  • 机器学习分布式框架ray运行xgboost实例

            Ray是一个开源的分布式计算框架,专门用于构建高性能的机器学习和深度学习应用程序。它的目标是简化分布式计算的复杂性,使得用户能够轻松地将任务并行化并在多台机器上运行,以加速训练和推理的速度。Ray的主要特点包括支持分布式任务执行、Actor模型、

    2024年02月15日
    浏览(43)
  • 联邦学习:密码学 + 机器学习 + 分布式 实现隐私计算,破解医学界数据孤岛的长期难题

      这联邦学习呢,就是让不同的地方一起弄一个学习的模型,但重要的是,大家的数据都是自己家的,不用给别人。 这样一来,人家的秘密就不会到处乱跑(数据不出本地),又能合力干大事。   <没有联邦学习的情况> 在没有联邦学习的情况下,医院面临的一个主要问题

    2024年01月23日
    浏览(49)
  • 第十二届“中国软件杯”大赛:A10-基于机器学习的分布式系统故障诊断系统——baseline(一)

    在分布式系统中某个节点发生故障时,故障会沿着分布式系统的拓扑结构进行传播,造成自身节点及其邻接节点相关的KPI指标和发生大量日志异常。本次比赛提供分布式数据库的故障特征数据和标签数据,其中特征数据是系统发生故障时的KPI指标数据,KPI指标包括由feature0、

    2024年02月11日
    浏览(46)
  • JMeter分布式集群---部署多台机器进行性能压力测试

    有些时候,我们在进行压力测试的时候,随着模拟用户的增加,电脑的性能(CPU,内存)占用是非常大的,为了我们得到更加理想的测试结果,我们可以利用jmeter的分布式来缓解机器的负载压力,分布到多台机器同时运行。 1.Jmeter分布式执行原理: 1、Jmeter分布式测试时,选择

    2024年02月11日
    浏览(40)
  • 什么是分布式系统,如何学习分布式系统

    正文 虽然本人在前面也写过好几篇分布式系统相关的文章,主要包CAP理论,分布式储存与分布式事务,但对于分布式系统,并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统是“入门容易,深入难”,我之前的学习也只算是管中

    2024年02月13日
    浏览(41)
  • 分布式学习笔记

    Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。 Availability(可用性):用户访问集群中的任意健康节点,必须得到相应,而不是超时或拒绝。 Partition tolerance (分区容忍性):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点

    2024年02月20日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包