精华内容
下载资源
问答
  • 机器学习架构图
    千次阅读
    2019-12-31 10:20:09

    摘抄自:《深度学习之Pytorch物体检测实战》一书

    更多相关内容
  • 本文主要对比各种常见的分布式机器学习框架原理,包括数据分布式,参数服务器,Ring-Allreduce 架构和数据流。 1.数据分布式机器学习(例如spark-mllib): Spark 是使用 scala 实现的基于内存计算的大数据...

    创作不易,欢迎关注,点赞,收藏!

    本文主要对比各种常见的分布式机器学习框架原理,包括数据分布式,参数服务器,Ring-Allreduce 架构和数据流图。

    1.数据分布式机器学习(例如spark-mllib):

    Spark 是使用 scala 实现的基于内存计算的大数据开源集群计算环境.提供了 java,scala, python,R 等语言的调用接口.

    Spark 的主要特点还包括:

    - (1)提供 Cache 机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的 IO 开销;

    - (2)提供了一套支持 DAG 图的分布式并行计算的编程框架,减少多次计算之间中间结果写到 Hdfs 的开销;

    - (3)使用多线程池模型减少 Task 启动开稍, shuffle 过程中避免不必要的 sort 操作并减少磁盘 IO 操作。(Hadoop 的 Map 和 reduce 之间的 shuffle 需要 sort)

    Spark 系统架构: - 应用程序(Application): 基于Spark的用户程序,包含了一个Driver Program 和集群中多个的Executor; - 驱动(Driver): 运行Application的main()函数并且创建SparkContext; - 执行单元(Executor): 是为某Application运行在Worker Node上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上,每个Application都有各自独立的Executors; - 集群管理程序(Cluster Manager): 在集群上获取资源的外部服务(例如:Local、Standalone、Mesos或Yarn等集群管理系统); - 操作(Operation): 作用于RDD的各种操作分为Transformation和Action.

    整个 Spark 集群中,分为 Master 节点与 worker 节点,,其中 Master 节点上常驻 Master 守护进程和 Driver 进程, Master 负责将串行任务变成可并行执行的任务集Tasks, 同时还负责出错问题处理等,而 Worker 节点上常驻 Worker 守护进程, Master 节点与 Worker 节点分工不同, Master 负载管理全部的 Worker 节点,而 Worker 节点负责执行任务.   Driver 的功能是创建 SparkContext, 负责执行用户写的 Application 的 main 函数进程,Application 就是用户写的程序. Spark 支持不同的运行模式,包括Local, Standalone,Mesoses,Yarn 模式.不同的模式可能会将 Driver 调度到不同的节点上执行.集群管理模式里, local 一般用于本地调试.   每个 Worker 上存在一个或多个 Executor 进程,该对象拥有一个线程池,每个线程负责一个 Task 任务的执行.根据 Executor 上 CPU-core 的数量,其每个时间可以并行多个 跟 core 一样数量的 Task.Task 任务即为具体执行的 Spark 程序的任务.

    根据上述spark架构可知,spark采用数据分布式+同步的模式,优点是社区完善,配套方案完善,缺点是对异步和模型分布式不支持,很多前沿的算法spark不支持,而且spark的本质-数据分布式对很多算法的性能有天然上限。

    2.基于参数服务器架构的Multiverso。

    PS架构包括内功和外功两个部分,所谓的外功,就是把计算资源分为两个部分,参数服务器节点和工作节点:

    参数服务器节点用来存储参数,工作节点部分用来做算法的训练。内功就是对应的,把机器学习算法也分成两个方面,即参数和训练。

    参数部分即模型本身,有一致性的要求,参数服务器也可以是一个集群,对于大型的算法,比如DNN,CNN,参数上亿的时候,自然需要一个集群来存储这么多的参数,因而,参数服务器也是需要调度的。

    训练部分自然是并行的,不然无法体现分布式机器学习的优势。因为参数服务器的存在,每个计算节点在拿到新的batch数据之后,都要从参数服务器上取下最新的参数,然后计算梯度,再将梯度更新回参数服务器。

    参数服务器既可实现数据分布式,也可实现模型分布式,同时支持异步和同步,也可实现大规模的参数更新。

    但是传统线性表架构的参数服务器在参数更新和通信上也存在很多问题,比如大规模数据训练的时候突然机器宕机,会造成整个系统宕机,通信卡顿等,此时可以引入环状结构。

    3. Ring-Allreduce 架构

    Ring-Allreduce 算法最早由 Baidu Silicon Valley AI Lab (SVAIL) 在2017年2月提出,并应用在其PaddlePaddle平台上,同年8月,SVAIL将其提交到tensorflow的contrib package中。

    也是在同年8月,Uber发布了基于Ring-Allreduce算法和OpenMPI通信的Horovod架构。

    Ring-Allreduce 的命名中Ring意味着设备之间的拓扑结构为环形,Allreduce则代表着没有中心节点,架构中的每个节点都是梯度的汇总计算节点。

    此种算法各个节点之间只与相邻的两个节点通信,并不需要参数服务器。因此,所有节点都参与计算也参与存储。

    使用 Ring-Allreduce 算法进行分布式训练基本过程如下:

    1. 每个设备根据各自的训练数据分别进行梯度的计算,得到梯度

    2. 将每个设备上的梯度向量切分成长度大致相等的 N 个分片(其中分片数N与设备数量相等)

    3. ScatterReduce 阶段:通过 N-1 轮梯度传输和梯度相加,在每个设备上的梯度向量都有一小部分为所有设备中该分片梯度之和 (图③)

    4. AllGather 阶段:通过 N-1 轮梯度传输,将上个阶段计算出的每个梯度向量分片之和广播到其他设备(图④)

    5. 在每个设备上合并分片梯度,并根据梯度更新每个设备上的模型

    大致计算一下Ring-Allreduce的通信消耗时间, 同样假设:

    • 假设模型的总参数量为 X

    • PS的数量为1, Worker的数量为 N

    • 设备间数据最大传输速度为 B

    其中每个设备需要传输 2(N-1) 次信息,并且每次发送 X/N 数据,因此完成一个batch iteration数据传输所需要的耗时为 2(N-1)*X/NB = 2X(N-1)/NB,可以看到当N逐渐增加时,数据传输所消耗的时间趋近于常数 2X/B。相比PS架构,Ring Allreduce架构是带宽优化的,因为集群中每个节点的带宽都被充分利用。对比于PS-Worker架构的耗时2(X·N)/B, Ring-Allreduce的参数传递耗时并不会随着设备的增加而线性增长,这是该架构性能优于PS-Worker的最大原因。

    此外,在深度学习训练过程中,计算梯度采用BP算法,其特点是后面层的梯度先被计算,而前面层的梯度慢于前面层,Ring-allreduce架构可以充分利用这个特点,在前面层梯度计算的同时进行后面层梯度的传递,从而进一步减少训练时间。

    后来,TensorFlow官方也在1.11版本中支持了allreduce的分布式训练策略CollectiveAllReduceStrategy,可以与tf.estimator配合使用。

    Horovod的实际性能对比测试可以看下图:

    ​可以看出Horovod在分布式训练的GPU设备的拓展能力对比TensorFlow有着很大的提高,在GPU设备达到一定规模的后其效率将是TensorFlow原生PS-Worker架构的两倍以上。

    4.基于数据流图的tensorflow:

    TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief [1] 。

    Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPUTPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究 [1-2] 。

    TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API) [2] 。自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码 [2] 。

    什么是数据流图(Data Flow Graph)?

    数据流图由点(node)和边(edge)组成。

    其中,节点通常以圆、椭圆或方框表示,代表对数据的运算或某种操作。边是节点之间的连接,用带箭头的线表示,指向节点的边表示输入,从节点引出的边表示输出。输入可以是来自其他数据流图,也可以表示文件读取、用户输入。所以在本质上,TensorFlow的数据流图就是一系列链接在一起的函数构成,每个函数都会输出若干个值(0个或多个),以供其它函数使用。

    除了上面两个概念,以下几个也很重要:

    图(Graph):图描述了计算的过程,TensorFlow使用图来表示计算任务。

    张量(Tensor):TensorFlow使用tensor表示数据。每个Tensor就是一个多维的数组。

    操作(op):operation的缩写,一个op就是某节点上的一个操作,输入0个或多个Tensor,执行计算,产生输出0个或多个Tensor。

    会话(Session):图必须在称之为“会话”的上下文中执行。会话将图的op分发到诸如CPU或GPU之类的设备上执行。

    变量(Variable):运行过程中可以被改变,用于维护状态。

    基于数据流图架构的tensorflow能够根据巧妙结合数据分布式,模型分布式,并结合进了环状分布式架构,可以根据不同的算法自己设计数据流图进行训练测试。但是tensorflow作为一个开源架构有些笨重,开发者可以借鉴其设计理念自己定制开发轻量级版本。

    5.几种模式的区别:

    ​各种框架对比图, angel是腾讯开源的参数服务器框架,spark是mapreduce流派的代表,tensorflow和pytorch是数据流图的代表。

    ​参考:《分布式机器学习:算法,理论与实践》刘铁岩

    展开全文
  • 两个分别从两种角度对机器学习和深度学习的整体框架进行了梳理,见下。特此记录下来,与大家分享,也为了指导自己后续的学习。

    两个图分别从两种角度对机器学习和深度学习的整体框架进行了梳理,见下图。特此记录下来,与大家分享,也为了指导自己后续的学习。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 1、深度学习框架: 2、神经网络要解决的问题 2.1、基于网络功能函数的定义(网络模型的选择,激励函数的选择,优化方法的选择)–&amp...

    前言,AI知识图谱

    人工智能分为强人工智能弱人工智能
    强人工智能是通过计算机来构造复杂的、拥有与人类智慧同样本质特性的机器,它有着我们所有的感知(甚至比人更多),我们所有的理性,可以像我们一样思考,也就是电影里面的机器人。
    弱人工智能 (ANI) 是指擅长于单个方面的人工智能。垃圾邮件的自动识别,iPhone的助手siri,Pinterest上的图像分类,Facebook的人脸识别都属于弱人工智能,也就是我们现在大多是在从事的领域。
    在这里插入图片描述

    一,人工智能,机器学习,深度学习关系

    人工智能是追求目标,机器学习是实现手段,深度学习是其中一种方法。
    在这里插入图片描述

    二,机器学习框架图

    这里写图片描述

    三,机器学习应用领域

    在这里插入图片描述

    ,

    4,深度学习框架图:

    这里写图片描述

    五,人工智能应用领域

    在这里插入图片描述
    在这里插入图片描述

    六:中国的人工智能发展

    人工智能企业可以在应用层、技术层、基础上进行区分。

    应用层的中国人工智能公司按照领域划分包括:

    机器人:Geek+、 Rokid、图灵机器人、优必选。

    自动驾驶:百度、天瞳威视、地平线机器人、驭势科技。

    无人机:大疆、亿航、Hover Camera、零度智控。

    语音助手:百度、出门问问。

    商业智能:永洪科技、Data KM。

    消费者服务:AiKF。

    产业应用:碳云智能、Maxent、今日头条、学霸君。

    技术层的中国人工智能公司按照领域划分包括:

    语音识别&自然语言处理

    思必驰、百度、科大讯飞、出门问问、捷通华生、腾讯、三角兽、云知声。

    机器学习&深度学习:深鉴科技、中科视拓。

    人工智能平台:达闼科技、第四范式。

    计算机视觉:依图科技、格灵深瞳、旷视科技、商汤科技。

    基础层的中国人工智能公司按照领域划分包括:

    传感器:ICE DRINK、LeiShen、SLAMTEC、北醒光子。

    AI 芯片:寒武纪科技、地平线机器人。

    七,人工智能未来企业排行榜

    在这里插入图片描述

    **

    欢迎扫码关注我的微信公众号

    https://github.com/yeyujujishou19
    **
    在这里插入图片描述

    展开全文
  • 机器学习、深度学习、python基础、数学基础、学习分类、项目构建流程、最常用的学习框架悉数列出 。 如有不足请留言补充,也可关注我微信号,留言即可。请大家扫描二维码关注我的微信公众号。本公众号每天均...
  • 机器学习推荐系统架构图

    千次阅读 2016-09-24 21:40:27
    勾勒一幅
  • 腾讯云机器学习平台TI-ONE

    千次阅读 2020-01-06 17:30:14
    据《中国ICT人才生态白皮书》研究分析,2018年底,我国人工智能人才缺口已突破100万,到2020年,这一数字将攀升到226万。...作为该计划中唯一的机器学习平台,腾讯云智能钛TI-ONE走进高校课堂,受到了老师和同学们的...
  • 整理的深度学习、机器学习领域的所有关键知识点,帮你理清其中关系,经典 源自收费服务
  • 机器学习建模流程

    千次阅读 2022-02-20 10:56:13
    机器学习建模流程 俗话说,“ 巧妇难为无米之炊”。在机器学习中,数据和特征便是“米”,模型和算法则是“巧妇”。没有充足的数据、合适的特征,再强大的模型结构也无法得到满意的输出。正如一句业界经典的话所 ...
  • TME机器学习平台基于kubeflow做开源改造和产品化,先来看看技术层面kubeflow对机器学习的各个技术环节的附能 先简单介绍一下各组件的功能。下面以大项目背景为例简介的,可以在下面的部署中了解更细致的组件内容。 ...
  • 机器学习模型结构

    千次阅读 2018-11-09 10:41:57
  • 机器学习分类.jpg

    2019-08-01 16:26:48
    关于python机器学习分类的路线图/机器学习分类架构图
  • 机器学习开发框架

    千次阅读 2021-11-12 09:28:02
    机器学习开发框架本质上是一种编程库或工具,目的是能够让开发人员更容易、更快速地构建机器学习模型。 机器学习开发框架封装了大量的可重用代码,可以直接调用,目的是避免“重复造轮子”,大幅降低开发人员的开发...
  • 机器学习流程知识结构

    千次阅读 2020-03-08 10:23:39
  • 首先来一张:   人工智能: 人工智能(ArtificialIntelligence),英文缩写为AI。是计算机科学的一个分支。人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也...
  • 机器学习画图神器来啦!

    千次阅读 2021-01-09 22:28:12
    去年 5 月,机器之心曾向大家推荐一款名为 ML Visuals 的机器学习画图模板,该项目受到广泛关注,迄今已收获 2.2K Star。ML Visuals 专为解决神经网络画图问题设计,最近,这一模板进行了更新。 项目地址:...
  • #资源达人分享计划#
  • 机器学习,指的是计算机系统无需遵照显式的程序指令,而只是依靠暴露在数据中来提升自身性能的能力。其核心在于,机器学习是从数据中自动发现模式,模式一旦被发现便可用于做预测。语音识别技术,主要是关注自动且...
  • 联邦学习可以归为是分布式机器学习的一种应用,做分布式的同学应该都知道,很多分布式的架构都是谷歌开源出来的,有天然优势。而谷歌首先把联邦学习用在哪呢?就是谷歌的输入法,叫Gboard。 那么,现在我们来看一下...
  • 13种主流机器学习的框架

    万次阅读 2017-09-05 15:53:39
    1. Apache Spark MLlib ...Hadoop 已经成为可供使用的机器学习工具,这得益于其不断增长的算法库,这些算法可以高速度应用于内存中的数据。 早期版本的Spark 增强了对MLib的支持,MLib是主要面
  • 人工智能是追求目标,机器学习是实现手段,深度学习是其中一种方法。 1 机器学习 机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以...
  • 700 页的机器学习笔记火了!作者尽力注解了其中的每个公式,从而充分、清晰地表达了众多数学概念。
  • 【学习笔记】自动化机器学习

    千次阅读 2021-10-17 12:00:37
    自动化机器学习要解决的问题是,针对特定的一类或若干类机器学习任务,在没有人类专家干预且计算资源有限的条件下,自动化地构造机器学习算法流程。机器学习算法流程包括根据数据建立算法模型、算法效果评估、不断...
  • #资源达人分享计划#
  • 滴滴机器学习平台架构演进之路

    千次阅读 2019-03-28 21:37:57
    现在很多互联网公司都有自己的机器学习平台,冠以之名虽然形形色色,但就平台所要解决的问题和技术选型基本还是大同小异。 所谓大同是指大家所要处理的问题都相似,技术价格和选型也差不太多,比如都会使用 GPU ...
  • 机器学习基本概念

    千次阅读 2018-09-21 22:26:40
    本文首先介绍机器学习的基本流程,然后针对机器学习涉及的数据、算法和评估这三个方面用到的基础概念进行介绍。 1.机器学习流程  机器学习是一个数据流转、分析以及得到结果的过程,它的整个流程大致可以分为六个...
  • 机器学习入门要学习什么内容呢?

    千次阅读 热门讨论 2021-07-19 17:00:58
    随着人工智能的发展,从事机器学习、数据挖掘等相关工作,包括推荐算法工程师、数据挖掘工程师、机器学习工程师,填补人工智能领域人才稀缺就业前景非常好,因此学习机器学习的人越来越多。不过这一方面的要求也很高...
  • 机器学习与组合优化问题实例,研究对象是 Graph Matching 。
  • 通过配置参数,针对导入的数据集进行机器学习分类、回归、聚类等模型的数据分析、清洗建模过程代码的生成。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 195,592
精华内容 78,236
关键字:

机器学习架构图