CN113168569A - 去中心化分布式深度学习 - Google Patents
去中心化分布式深度学习 Download PDFInfo
- Publication number
- CN113168569A CN113168569A CN201980078317.8A CN201980078317A CN113168569A CN 113168569 A CN113168569 A CN 113168569A CN 201980078317 A CN201980078317 A CN 201980078317A CN 113168569 A CN113168569 A CN 113168569A
- Authority
- CN
- China
- Prior art keywords
- node
- thread
- neighbor
- nodes
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Neurology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了用于由计算系统中的一个或多个处理器进行去中心化分布式深度学习的不同实施例。一个或多个机器学习模型的异步分布式训练可以通过以下方式来执行:为多个节点中的每个节点生成邻居节点的列表,并且根据权重管理操作来创建用于连续通信的第一线程,以及创建用于每个节点的梯度的连续计算的第二线程。在第一线程和第二线程之间共享一个或多个变量。
Description
技术领域
本发明总体上涉及计算系统,并且更具体地涉及用于使用计算处理器的计算系统中的去中心化(decentralized)分布式深度学习的不同实施例。
背景技术
计算系统可以在工作场所、在家或在学校中找到。由于信息技术的最新进步和互联网的日益普及,在机器学习中已经使用了各种各样的计算机系统。机器学习是用于允许计算机基于经验数据进化行为的人工智能的形式。机器学习可以利用训练示例来捕获它们的未知基础概率分布的感兴趣的特性。训练数据可以被视为示出观察变量之间的关系的示例。机器学习研究的主要焦点是自动学习以识别复杂模式(patterns)并且基于数据做出智能决策。
发明概述
提供了用于由计算系统中的一个或多个处理器进行去中心化分布式深度学习的不同实施例。在一个实施例中,仅通过示例的方式,提供了一种用于再次由处理器在计算系统中进行去中心化分布式深度学习的方法。一个或多个机器学习模型的异步分布式训练可以通过以下方式来执行:为多个节点中的每个节点生成邻居节点的列表,并且根据权重管理操作来创建用于连续通信的第一线程,以及创建用于每个节点的梯度的连续计算的第二线程。在第一线程和第二线程之间共享一个或多个变量。
附图说明
为了容易理解本发明的优点,将通过参考在附图中示出的具体实施例呈现以上简要描述的本发明的更具体的描述。应理解,这些附图仅描绘了本发明的典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图用另外的具体性和细节来描述和解释本发明,在附图中:
图1是示出根据本发明的实施例的示范性云计算节点的框图;
图2是示出根据本发明的实施例的示范性云计算环境的附加框图;
图3是描述根据本发明实施例的抽象模型层的附加框图;
图4是描绘根据本发明的另一实施例的深度学习系统的另外的框图;
图5是描绘根据本发明的方面的描绘不同用户硬件和计算组件的另外的框图;
图6是描述根据本发明的实施例的用于去中心化分布式深度学习的邻居列表的另外的框图;
图7A-7B是示出根据本发明的实施例的用于生成用于去中心化分布式深度学习的邻居列表的操作的图;
图8A-8B是描绘根据本发明的实施例的来自去中心化分布式深度学习的操作结果的曲线图;并且
图9是描绘可在其中实现本发明的各方面的根据本发明实施例的由处理器在计算环境进行去中心化分布式深度学习的示范性方法的流程图。
具体实施方式
本发明总体上涉及深度学习领域,并且更具体地涉及在深度学习实施中执行多缩减(reduction)。深度学习指的是基于对数据集的特征或表示(representations)的多个级别的学习的一类机器学习算法。当前的深度学习方法包括使用多层非线性处理单元的级联来进行特征提取和变换。特征提取是指接收测量数据的初始集合并且构建导出值(或特征)以促进后续学习和概括步骤的过程。在许多情况下,较高级特征从较低级特征导出以生成测量数据和导出特征的分层表示。
此外,深度学习算法基于分布式表示。分布式表示在观察到的(或测量的)数据是被组织到一个或多个层中的一个或多个因素的交互的结果的假设下操作。在概念上,深度学习引入了附加假设:交互以提供测量数据的因子(factors)的层表示抽象或编排的级别。在该假设下,多个层和层大小对应于不同的抽象量。
在深度学习系统中利用和创建的任何或所有数据可以通过一个或多个网络传输,并且随后可以受到所述一个或多个网络的任何限制。具体而言,对于大规模深度学习系统,任何网络通信都可能由于大量学习者(例如,工作者)、跨网络的数据交换频率和被交换的数据量而遭受瓶颈。应当注意,学习者/工作者可以是应用(例如,取得输入、执行一个或多个必要的计算和通信以迭代地生成更准确且高效的解决方案的一段代码)。在本专利申请的上下文中,权重管理线程和梯度计算线程都是学习者/工作者过程的一部分。此外,跨多层网络的通信可能很大程度上是低效的,因为网络中的最弱链路或节点将很大程度上决定网络将如何作为整体来执行。
另外,在训练深度学习系统时可能出现一个或多个挑战。在分布式云计算环境中,例如由于异构环境,计算设备可能在处理速度(例如,慢/快计算)、不均匀的网络连通性(例如,快/慢速网络链路、不同的网络差异等)和甚至不同级别的系统噪声方面变化。此外,由于分布式云计算环境的弹性,计算设备动态地变得可用。在神经网络(“NN”)训练中,同步训练是刚性的并且不受控制的异步通常导致低效或不准确的训练结果。由此,需要一种具有规律动作的分布式训练系统,以提高训练结果准确度,同时适应异构且弹性的计算环境,以便利用所有可用的计算资源。
由此,本发明提供计算系统中的去中心化分布式深度学习。一个或多个机器学习模型的异步分布式训练可以通过以下方式来执行:为多个节点中的每个节点生成邻居节点的列表,并且根据权重管理操作来创建用于连续通信的第一线程,以及创建用于每个节点的梯度的连续计算的第二线程。在第一线程(“线程1”)与第二线程(“线程2”)之间共享一个或多个变量。应当注意,机器学习和深度学习模型具有许多参数。训练过程是确定对参数的最佳/最优值分配,使得模型尽可能接近地匹配数据。这些模型参数也被称为权重(例如,权重参数)。例如,权重的示例管理/更新等式的例子是:
newweight=oldweight+learningrate*gradient, (1),
其中“梯度”是由梯度计算线程(例如,线程2)产生的内容,并且learningrate是选择/定义的值,该值可以小于该梯度。在一个方面中,第一线程(例如,线程1)的权重管理操作可以与具有下行链路框架能力的一个或多个应用编程接口(“API”)通信。例如,以下等式可用于线程1(权重管理):
W′=pullweights (2),
W=weightapply(W′,g) (3),
并且对于线程2(梯度计算):
g=calGrad(W) (4),
pushgradient(g) (5),
其中,W’等于pullweights,其中,W等于weightapply(W’,g),并且g是先前计算的梯度(例如,上一次/前一轮计算的梯度)。梯度计算可以是梯度(“g”)等于calGad(W)和pushgradient(g)的情况。
通过进一步解释,线程2等于等式“g=calGrad(W)”,其指示基于当前权重(模型参数)W,线程2将使用函数calGrad()计算梯度。然后,pushgradient(g)动作/操作将梯度g发送至线程1。线程1(例如,W=weightapply(W′,g))使用以上等式(1)执行weightapply动作/操作。线程1还执行W′=pullweights动作/操作以从其邻居列表中的下一邻居接收权重。线程1执行其权重与接收的邻居权重的平均值,以生成新的权重。这个新的权重被发送到线程2以供其计算。
在额外的方面,本发明通过分别在每个学习者(训练者)上进行计算和通信来提供机器学习模型的异步分布式训练。在一个方面,可以为每个学习者构建邻居列表。邻居列表满足连通性、传播、无死锁属性。为连续通信创建第一线程(例如,“线程1”),并且权重更新满足数据一致性属性。创建第二线程(例如,“线程2”)用于连续计算。共享变量、局部(local)梯度和权重因子可被共享以在线程1和线程2之间通信。故障检测操作可以用于检测远程节点/链路故障以维持进展。在一个方面,故障检测操作可以是超时操作,其中如果与邻居的通信在超时值之后没有返回,则操作继续到下一操作。另外,在额外方面中,数据一致性操作可为原子数据一致性操作。即,数据一致性操作通过在权重被发送和平均时限制(例如,不允许)在本地学习者处的任何权重更新操作来保持数据一致性。
应注意,可使用可涉及一个或多个数学运算(例如,执行变化率/计算运算、分析地或计算地求解微分方程或部分微分方程、使用加法、减法、除法、乘法、标准偏差、均值、平均值、百分比、使用统计分布的统计建模、通过找到组合变量的最小值、最大值或类似阈值等)的不同数学运算或函数来执行一个或多个计算。
通常,“优化”可以指代和/或被定义为“最大化”、“最小化”或达到一个或多个特定目标、目的、目标或意图。优化还可以指最大化对用户的益处(例如,最大化机器学习模型益处)。优化还可指进行情形、机会或资源的最有效或功能使用。
另外,“优化”不需要指最好的解决方案或结果,而是可指例如对于特定应用“足够好”的解决方案或结果。在一些实现方式中,目标是建议机器学习模型的“最佳”组合,但是可以存在可以导致产生更好结果的机器学习模型的组合的替代建议的各种因素。在此,术语“优化”可以指基于最小值(或最大值,取决于在优化问题中考虑什么参数)的这种结果。在额外的方面,术语“优化”和/或“优化”可以指被执行以便实现改进的结果(如减少的执行成本或增加的资源利用)的操作,而无论是否实际上实现最佳结果。类似地,术语“优化”可以指用于执行这种改进操作的部件,并且术语“优化”可以用于描述这种改进操作的结果。
预先理解的是,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是用于实现对可配置计算资源(例如,可配置计算资源)的共享池的方便、按需的网络访问的服务递送的模型。网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务),其可以以最小的管理努力或与服务提供者的交互被快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务的提供者的人类交互。
广泛的网络接入:能力在网络上是可用的并且通过标准机制来访问,所述标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被池化以使用多租户模型服务于多个消费者,其中不同的物理和虚拟资源根据需要被动态地指派和重新指派。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制或知识,但可能能够在较高抽象层级(例如,国家、州或数据中心)处指定位置。
快速弹性:可以快速且弹性地提供能力(在一些情况下,自动地)以快速缩小并且快速释放以快速放大。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量购买。
测量的服务:云系统通过利用适于服务类型(例如,存储、处理、带宽和活动用户账户)的某种抽象级别的计量能力来自动控制和优化资源使用。资源使用可以被监控、控制和报告,从而为所利用的服务的提供者和消费者两者提供透明度。
业务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用能力的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。
平台即服务(PaaS):向消费者提供的能力是在云基础结构上部署消费者创建或获取的应用,所述应用是使用提供者所支持的编程语言和工具来创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供消费者能够部署和运行可包括操作系统和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础结构,而是具有对操作系统、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
部署模型如下:
私有云:云基础结构仅为组织操作。它可由组织或第三方管理,并且可存在于场所内或场所外。
社区云:云基础结构由若干组织共享并且支持具有共享的关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可由组织或第三方管理,并且可存在于场所内或场所外。
公共云:使云基础结构对公众或大型产业组可用并且由销售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共的)的组成,这些云保持唯一实体但通过标准化或专有技术来绑定在一起,这些技术实现数据和应用便携性(例如,用于云之间的负载平衡的云突发)。
云计算环境是面向服务的,关注于状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图1,示出了云计算节点的示例的示意图。云计算节点10仅是合适的云计算节点的一个示例,并且不旨在对在此描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。
在云计算节点10中存在计算机系统/服务器12,其可与许多其他通用或专用计算系统环境或配置一起操作。可以适合于与计算机系统/服务器12-起使用的公知的计算系统、环境和/或配置的示例包括,但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机,手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品,网络PC、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实现,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储媒质两者中。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28、以及将包括系统存储器28的不同系统组件耦合到处理器16的总线18。
总线18表示若干类型的总线结构中的任一种总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线。
计算机系统/服务器12通常包括各种计算机系统可读媒质。这样的介质可以是可由计算机系统/服务器12访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器28可包括易失性存储器形式的计算机系统可读媒质,诸如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储媒质。仅通过举例的方式,可以提供存储系统34用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,可以提供用于读写可移动非易失性磁盘(例如,“软盘”)的磁盘驱动器以及用于读写诸如CD-ROM、DVD-ROM或其他光学介质之类的可移动非易失性光盘的光盘驱动器。在这样的实例中,每一个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,系统存储器28可以包括至少一个程序产品,该程序产品具有被配置为执行本发明的实施例的功能的程序模块的集合(例如,至少一个)。
具有一组(至少一个)程序模块42的程序/实用工具40以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以通过示例而非限制的方式存储在系统存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一者或其某一组合可包含联网环境的实施例。程序模块42通常执行本发明所描述的实施例的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14通信,例如键盘、定点设备、显示器24等;使得用户能够与计算机系统/服务器12交互的一个或多个设备;和/或使计算机系统/服务器12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由输入/输出(I/O)接口22发生。再者,计算机系统/服务器12可以经由网络适配器20与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)之类的一个或多个网络通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据归档存储系统等。
现在参见图2,描绘了说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或移动电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N)可与云计算节点10通信。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础结构、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应理解,图2中所示的计算装置54A-N的类型仅旨在是说明性的,且计算节点10和云计算环境50可经由任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。
现在参见图3,示出了由云计算环境50(图2)提供的一组功能抽象层。应预先理解,图3中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
设备层55包括物理和/或虚拟设备,其嵌入有和/或独立电子器件、传感器、致动器和其他对象以在云计算环境50中执行不同任务。设备层55中的每个设备将联网能力结合到其他功能抽象层,使得可以将从设备获得的信息提供给其他功能抽象层,和/或可以将来自其他抽象层的信息提供给设备。在一个实施例中,包括设备层55的不同设备可以并入统称为“物联网”(IoT)的实体网络。如本领域普通技术人员将理解的,这样的实体网络允许数据的互通、收集和传播以实现各种各样的目的。
如所示的设备层55包括传感器52、致动器53、具有集成处理的“学习”恒温器56、传感器和联网电子器件、相机57、可控家庭插座/插孔58、以及如所示的可控电开关59。其他可能的装置可以包括但不限于不同附加传感器装置、联网装置、电子装置(如远程控制装置)、附加致动器装置、所谓的“智能”电器(如冰箱或洗涤器/干燥机)、以及各种各样其他可能的互连物体。
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个实例中,管理层80可提供下文所描述的功能。资源供应81提供用于执行云计算环境内的任务的计算资源和其他资源的动态获取。计量和定价82在云计算环境内利用资源时提供成本跟踪,以及针对这些资源的消费的计费或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)计划和履行85提供云计算资源的预安排和采购,根据SLA预期该云计算资源的未来要求。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟教室教育交付93;数据分析处理94;事务处理95;以及,在本发明的所示实施例的上下文中,不同工作负载和功能96用于去中心化分布式深度学习。此外,用于去中心化分布式深度学习的工作负载和功能96可以包括诸如分析、实体和义务分析之类的操作,并且如将进一步描述的,可以包括用户和设备管理功能。本领域普通技术人员将认识到,用于去中心化分布式深度学习的工作负载和功能96还可以结合不同抽象层的其他部分来工作,例如硬件和软件层60、虚拟层70、管理层80和其他工作负荷90(例如数据分析处理94)中的那些,以完成本发明所示实施例的不同目的。
如前所述,所示实施例的机制提供用于计算环境中的去中心化分布式深度学习的新颖方法。在一个方面,每个学习者可以具有其自己的输入数据流和预定义的邻居列表,其中一个或多个规则用于创建邻居列表。应当注意,学习者是在节点上运行的过程。学习者过程可以具有同时运行的多个线程。可以创建第一线程(例如,“线程1”)和第二线程(例如,“线程2”)。第一线程可以执行权重管理操作。权重管理操作可以包括获得局部梯度以获得(神经网络“NN”的)经更新的局部权重。如果从第二线程接收到多于一个局部梯度,则接收所有局部梯度。局部梯度可以被设置为等于零以避免应用局部梯度多于一次,尤其是如果权重交换太快(例如,大于权重交换阈值)。可选择来自列表相邻者的下一相邻者。可在本地节点与所选邻居和权重之间交换权重以形成新的权重向量。
第二线程可执行梯度计算。梯度计算操作可以基于每个节点输入数据(例如,小批量)及其当前权重(例如,异步训练)来连续地计算每个节点的局部梯度。梯度计算操作可以将计算的局部梯度发送到第一线程。如果来自第一线程(例如,线程1)的新权重向量可用,那么可将新权重向量指派到当前权重,否则,维持当前权重。权重向量可通过应用更新等式而从本地结果更新。权重向量也可被更新为当前权重和来自远程邻居的权重的平均值。作为本发明的操作的要求,当权重被传输和平均时,在本地学习者处不允许权重更新。在第一线程(例如,线程1)正忙于与其他节点交换权重的情况下,第一线程中的局部梯度可放置在其用于下一轮的队列中。第二线程(例如,线程2)所使用的当前权重总是源自第一线程(例如,线程1)中的权重交换。
图4是描绘根据本发明的一些实施例的深度学习系统400的功能框图。如图所示,深度学习系统400包括计算系统410A、410B、410C和410D(例如,图1的计算系统12)以及多个网络420A、420B、420C和420D。深度学习系统400可以是使得能够在深度学习环境内提高通信效率的多维缩减系统。
计算系统410A、410B、410C和410D可以是台式计算机、膝上型计算机、专用计算机服务器、或本领域已知的任何其他计算机系统。在一些实施例中,计算系统410A、410B、410C和410D表示利用集群计算机和组件来充当单个无缝资源池的计算机系统。通常,计算系统410A、410B、410C和410D表示能够执行机器可读程序指令的任何电子设备或电子设备的组合。
如所描绘的,每个计算系统410A、410B、410C和410D分别包括图形处理单元(GPU)412A、412B、412C和412D。每一GPU 412A、412B、412C和412D是经设计以操纵和更改存储器以促进用于显示的图像的创建的电路。在至少一个实施例中,GPU412A、412B、412C和412D被配置为根据多维缩减(multidimensional reduction)方法来执行多维缩减算法。
网络420A、420B、420C和420D中的每一个可以是例如局域网(LAN)、诸如互联网的广域网(WAN)或两者的组合,并且包括有线、无线或光纤连接。通常,根据本发明的实施例,网络420A、420B、420C和420D可以是将支持计算系统410A、410B、410C和410D之间的通信的连接和协议的任何组合。在本发明的至少一个实施例中,网络420A、420B、420C和420D促进深度学习系统400内的计算系统410之间的数据传输。
现在转到图5,示出根据所示实施例的不同机制的示范性功能组件500的框图。在一个方面中,图1到4中所描述的组件、模块、服务、应用程序和/或功能中的一或多者可在图5中使用。示出了根据本发明的各个方面的去中心化分布式深度学习服务510,其结合处理单元(“处理器”)520来执行不同计算、数据处理和其他功能。去中心化分布式深度学习服务510可以由图1的计算机系统/服务器12和/或图4的深度学习系统400来提供。处理单元520可以与存储器530通信。去中心化分布式深度学习服务510可以包括机器学习组件540(例如,深度学习组件)、邻居节点组件550、和/或权重管理组件560、以及梯度计算组件570,其中每一个组件都可以彼此通信。
如本领域普通技术人员将认识到的,去中心化分布式深度学习服务510中的不同功能单元的描绘是为了说明的目的,因为功能单元可以位于去中心化分布式深度学习服务510内或者分布式计算组件内和/或之间的其他地方。在一个实施例中,仅通过示例的方式,去中心化分布式深度学习服务510可以模块化地构建用于深度学习问题的神经网络(“NN”)。
机器学习组件540与邻居节点组件550、权重管理组件560,以及梯度计算组件570一起,可以通过以下操作来执行一个或多个机器学习模型的异步分布式训练:为多个节点中的每个节点生成邻居节点列表,并且根据权重管理操作来创建用于连续通信的第一线程,以及通过在计算环境(例如,异质和/或弹性计算环境)中在第一线程和第二线程之间共享一个或多个变量来创建用于每个节点的梯度的连续计算的第二线程。机器学习组件540可执行故障检测操作以检测邻居节点列表中的多个节点或链路中的一个或多个的一个或多个故障。
更具体地,邻居节点组件550可识别深度学习网络中的本地节点的邻居节点列表。邻居节点组件550可以生成本地节点的邻居节点的列表。
权重管理部件560可以创建第一线程,并且将来自从第二线程获得的邻居节点列表的本地节点的梯度应用于1)获得所选择的节点的更新后的权重;2)将梯度设置为等于零值;3)从邻居节点列表中选择邻居节点;和/或4)与本地邻居节点交换权重;以及对所交换的权重求平均以生成加权向量。当一个或多个权重被传送并被平均以维持数据一致性时,权重管理组件560可限制权重在邻居节点列表中的所选节点处被更新。
梯度计算可以为每个节点定义第二线程的梯度的连续计算以包括:基于所选节点的输入数据连续地确定来自邻居节点列表的所选节点的梯度,将所选择的节点的所确定的梯度发送至所述第一线程,和/或将从所述第一线程接收的加权向量分配给所选择的节点的当前权重。
机器学习组件540可以维持邻居节点列表中包括的每个节点的多个所需属性。多个所需属性可包括其中邻居节点列表中包括的每个节点被连接的连接属性、传播属性、确保每个操作的连续进展的无死锁属性、以及数据一致性属性。
机器学习组件540可以在时间段期满之前未能从邻居节点接收到通信响应时跳过邻居节点列表(用于执行一个或多个操作)中的邻居节点。
将图6中示出的以下示例考虑为图1-5的前述功能的实现。图6描绘了用于去中心化分布式深度学习的邻居列表600的示例。每个学习者(例如,图6中的学习者1或“节点1”)具有其邻居的列表。即,仅作为示例,节点1可在一个方向上遍历(例如,看向它的左侧)并且可包括一个或多个节点,并且然后可以在另一方向上遍历(例如,看向它的右边)并且选择几个附加节点,然后返回到第一方向(例如,左)并且跳过几个节点,然后切换回替代方向(例如,右)并且跳过几个节点。照此,节点1的邻居列表可以是节点1-4、8、节点n-6、节点n-2、节点n-1和节点n。即,节点1的邻居列表可以是N(1)=(2,n,4,n-2,8,n-6,…,n+2^i,-(n-2+2^i),…直到i=floor(log_2(n))。
所选的邻居节点列表可具有一个或多个所需属性,所述属性包括1)连接属性,2)传播属性,3)无死锁属性,和4)数据一致性属性。即,多个所需的属性可以包括邻居节点列表中包括的每个节点被连接的连接属性、传播属性、用于确保每个操作的连续进展的无死锁属性、以及数据一致性属性。通过跳过定义/选择的数量的节点,节点1可以用所选数量的步距达到更远的距离。在跳过多个节点时,以所选数量的步距达到进一步距离是“传播”属性所指代的。应当注意,可以使用一个或多个替换操作来构建邻居列表。然而,本发明可以选择替代操作中的一个以达到所选数量的步骤中的最远数量的邻居节点。
使用图6的实例(其中N(邻居)等于8),节点1的邻居列表为:N(1)=(2,8,4,6),节点2的邻居列表为:N(2)=(3,9,5,7)=(3,1,5,7)。当N等于9时,节点1和节点9相同。节点3的邻居列表为:N(3)=(4,2,6,8)。此外,一般表达式可以是N(j)=j-1+N(1)。
因此,作为额外的示例,当j是奇数(例如,连接和传播)时,考虑节点“j”和节点“j”的邻居列表可以是j-1+N(1)。应注意,偶数编号不发起通信(例如,无死锁)。在一个方面中,死锁情形是节点A正等待从节点B听回,且同时节点B正等待从节点A听回,但节点A或节点B都不知道所述情形,因此它们两者都等待。如果节点A和节点B两者同时发起通信,则这可能发生。在此,本发明仅允许具有奇数索引(或基于用户偏好的“偶数”索引)的节点向具有偶数索引(或基于用户偏好的“奇数”索引)的节点发起通信。这避免了死锁情况。当权重被传输并且被平均到各个节点时,在本地学习者处不允许权重更新(例如,原子数据一致性)。
现在转到图7A-7B,描绘了用于使用8个节点(8-nodes)来生成用于去中心化分布式深度学习的邻居列表的操作700、755的示图。去中心化分布式深度学习可由图1的计算机系统/服务器12和/或图4和5的深度学习系统提供。
在一个方面中,用于8个节点(例如,节点1-8)的邻居列表可通过仅在一个方向上遍历而产生,从而导致邻居列表N(1)=:(2,4,8)。应注意,偶数索引节点(例如,节点2、4、6和8)不发起通信,因此仅奇数索引节点的邻居列表通信(例如,同步通信),其中N(3)=:(4,6,2),N(5)=:(6,8,4),且N(7):=(8,2,6)。这些邻居列表是通过每次顺时针移位2个步骤从N(1)建立的。在一个方面中,如本文中所使用的步骤表示用于选择待包含于此列表中的邻居的操作步骤(例如,看顺时针和逆时针两者,且图7A-7B仅看顺时针)。
现在假设每个节点保持一个数字,节点i保持一个数字xi。现在假设所有节点刚刚完成其计算并且准备好进行通信步骤交换xi。例如,节点1发送xi.给节点x1.,节点2向节点1发送x1。节点1计算x1和x2的平均值,并且节点2也计算x1和x2的平均值。同时,节点3和节点4交换x3和x3并计算平均值。节点5和节点6交换x5和x6并且计算平均值。节点7和节点8交换x7和x8并且计算平均值,这是使用以下等式:
如果所有通信(例如,从邻居接收权重和向邻居发送本地权重)同时发生并且消耗基本相同的时间量,然后,在每个节点完成之后,本发明提供节点1和节点2具有(x1+x2)/2,,节点3和节点4具有(x3+x4)/2,节点5和节点6具有(x5+x6)/2,节点7和节点8具有(x7+x8)/2,其数学上对应于:[x1_new1,x2_new1,x3_new1,x4_new1,x5_new1,x6_new1,x7_new1,x8_new1]=A{12,34,56,78}*[x1,x2,x3,x4,x5,x6,x7,x8],其中,A是对称的,随机矩阵,如矩阵710和圆圈712所示。
在附加步骤中,如圆圈722中所示,邻居项是(1,4),(3,6),(5,8),(7,2)。然后,在这些邻居之间的通信之后,圆圈722示出了[x1_new2,x2-new2,x3-new2,x4_new2,x5_new2,x6_new2,x7_new2,x8_new1],其等于(=)矩阵720,其中,A{14,36,58,72}[x1_new1,x2_new1,x3_new1,x4_new1,x5_new1,x6_new1,x7_new1,x8_new1]=A{14,36,58,72}*A{12,34,56,78}*[x1,x2,x3,x4,x5,x6,x7,x8],如矩阵720中所展示的。
在矩阵730中描绘了A{14,36,58,72}*A{12,34,56,78}的乘积,该矩阵展示了节点1和节点4获得x1,x2,x3,x4的平均权重。节点5和节点8获得x5,x6,x7,x8的平均权重。节点3和节点6获得x3,x4,x5,x6的平均权重。节点7和节点2获得x7,x8,x1,x2的平均权重,其中在节点配对列表圈732的椭圆中展示了节点对:节点1和节点4、节点5和节点8、节点3和节点6、以及节点7和节点2。
现在转到附加步骤,如图所B所示,邻居可以被选择为(1,8)、(3,2)、(5,4)、(7,6)。然后,在此步骤之后,所有节点具有x1,,...,x8的平均值,如在3个矩阵750、760和780的乘积中所展示的。即,A{18,32,54,76}等于矩阵750。矩阵760中描述A{14,36,58,72}*A[12,34,56,78}的乘积。矩阵780中描绘了A{18,32,54,76}*A{14,36,58,72}*A{12,34,56,78}的乘积。这意味着如果所有的通信大致花费相同的时间,则在3个步骤之后,可以实现x1,...,x8的完美混合。如果节点和链路具有不同的速度,则这些通信可能不在同步管理器中发生。节点的混合可以产生不同的结果。然而,只要执行类似的限制/经规范的操作来维持连接性、传播、无死锁以及数据一致性属性,就产生类似的和/或更高效/优化的结果(例如,训练结果)。
在一个方面,可以执行故障检测操作以确定邻居节点列表中的多个节点或链路中的一个或多个是否经历容错问题。例如,针对节点异常的故障检测操作可以针对慢节点、故障节点来执行,并且还辅助节点恢复。
慢速节点可以是慢速本地节点,其中计算时间超过定义的阈值或比其他计算时间更长,使得更少的局部梯度计算和/或权重更新被执行,但是深度学习系统仍在进行。
失效节点可以是远程失效节点,其中尚未接收到邻居的权重,并且失效检测操作将检测到失效并且跳过这个检测到的失效节点。
对于节点恢复,当本地节点从故障恢复时,恢复的节点可以从多个邻居节点中的一个节点请求当前权重以开始计算(例如,梯度g计算)。
类似地,针对节点异常的故障检测操作可以针对慢链路、故障链路来执行,并且还可以辅助链路恢复。
本地节点行为和远程节点行为的慢链路可以包括超过定义的时间阈值(例如,长交换时间)的权重交换时间,其可以产生多个突出的本地梯度,但是深度学习系统仍然在进行。
本地节点行为的故障链路可包括本地节点的计算未能全局地贡献于邻居节点列表。由此,需要修复出故障的链路以实现与邻居节点列表共享计算(例如,权重和梯度)。
远程节点行为的故障链路可包括远程节点未能接收本地节点的贡献。由此,需要修复到远程节点的故障链路以使得本地节点能够与来自邻居节点列表的远程节点共享计算(例如,权重和梯度)。在一个方面,可以执行链路恢复操作。当链路被修复时,本地节点继续正常操作并且深度学习系统可以继续进展。
在附加的方面中,当在定义的时间段到期之后没有接收到来自邻居的响应时,可以执行用于故障检测操作的超时操作。由此,邻居节点无法响应并继续使用故障检测操作来防止本地节点永久等待故障节点/链路。
图8A-8B是描绘来自去中心化分布式深度学习的操作结果的图表。在一个方面中,图1-7A-7B中描述的组件、模块、服务、应用和/或功能中的一或多者可用以说明图8中显示的操作结果。
即,图8A-8B展示在使用多个节点时对不同算法的单节点性能的加速。对角线表示完美的线性加速。AD-PSGD的算法在其他算法之中执行最有效/准确(例如,最佳)的算法。应注意的是,所使用的算法是随机梯度下降(“SGD”)、从高性能计算(“HPC”)用于计算全局平均值的AllReduce、去中心化并行SGD(“D-PSGD”)、弹性异步SGD(“EAMSGD”)、和异步去中心化随机梯度下降(“AD-PSGD”)算法。
如图8A所示,图810描绘了快速网络上的集中作业的通信速度的增加,并且图810描绘了通过使用通信操作(例如,线程1)来进行权重更新操作和通信以及使用计算设备(例如,线程2)来计算梯度来在慢速网络上的集中作业的通信速度的增加。
如图8B所示,图表830和840描绘了使用通信操作(例如,线程1)来执行权重更新操作和通信的异步操作以及使用计算设备(例如,线程2)来计算针对慢速计算过程设备的梯度以用于辅助和定位慢速学习者效果。即,在诸如AllReduce算法的同步方案中,快速学习者必须等待最慢的学习者,因此减慢整个训练过程。在本发明的异步方案中,图8B示出了即使具有非常慢的学习者,使用本发明的所示实施例的训练过程与其他方案相比不会减速那么多。
另外,图8B的图850和860示出了异步和去中心化,该异步化和去中心化利用通信操作(例如,线程1)来帮助在一对学习者内定位慢速网络链路,以进行权重更新操作以及通信和使用计算设备(例如线程2)以计算梯度。
现在转到图9,描绘了用于通过处理器在计算环境中进行去中心化分布式深度学习的方法900,其中可实现所示出的实施例的各方面。即,图9是根据本技术的示例的用于在计算环境中流水线化多方向缩减的附加示例方法900的流程图。功能900可以被实现为作为机器上的指令执行的方法,其中,所述指令被包括在至少一个计算机可读介质或一个非暂态机器可读存储介质上。功能900可以在框902中开始。
如在框904中,可为多个节点中的每个节点生成邻居节点列表。如在框906中,可根据权重管理操作来创建第一线程以用于连续通信。如在框908中,可创建第二线程以用于每一节点的梯度的连续计算。如在框910中,第一线程与第二线程之间有一个或一个以上变量。功能900可以结束,如在框912中。
在一个方面中,结合图9的至少一个框和/或作为图9的至少一个框的部分,900的操作可包含以下各项中的每一个。操作900可以将权重管理操作定义为包括(例如,通过执行以下中的每一个来执行权重管理操作):1)应用从获得的第二线程的邻居节点列表中选择的节点的梯度以获得选择的节点的更新的权重,2)将梯度设置为等于零值,3)从邻居节点列表中选择邻居节点,和/或4)与选择的邻居节点交换权重,并且对交换的权重取平均以生成加权向量。
900的操作可以针对节点中的每个节点定义第二线程的梯度的连续计算以包括(例如,通过执行以下各项中的一项或多项来执行连续计算):1)基于所选择的节点的输入数据连续地确定来自邻居节点列表的所选择的节点的梯度;2)将所确定的所选择的节点的梯度发送至第一线程;和/或3)将从第一线程接收的加权向量分配给所选择的节点的当前权重。
操作900可维持邻居节点列表中所包括的每个节点的多个所需属性,其中所述多个所需属性包括连接属性、传播属性、无死锁属性和数据一致性属性。即,多个所需的属性可以包括邻居节点列表中包括的每个节点被连接的连接属性、传播属性、用于确保每个操作的连续进展的无死锁属性、以及数据一致性属性。900中的操作可以检测邻居节点列表中的多个节点或链路中的一个或多个节点的一个或多个故障。
在一时间段期满之前未能从邻居节点接收到通信响应时,900的操作可跳过邻居节点列表中的邻居节点,和/或当一个或多个权重被传送和平均以维持数据一致性时限制权重在邻居节点列表中的所选节点处被更新。
本发明可以是系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储媒体(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。
计算机可读存储媒质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储媒质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储媒质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片)或具有记录在其上的指令的凹槽中的凸起结构),以及上述的任意合适的组合。如本文中所使用的计算机可读存储媒质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输媒质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储媒质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及常规的过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户”的计算机上执行、部分在用户”的计算机上执行、作为独立软件包执行、部分在用户”的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储媒质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储媒质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。在一些替代实现方式中,框中所标注的功能可以不以图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或者执行专用硬件与计算机指令的组合。
Claims (20)
1.一种用于由一个或多个处理器在计算环境中进行去中心化分布式深度学习的方法,包括:
通过为多个节点中的每个节点生成邻居节点列表并且根据权重管理操作创建用于连续通信的第一线程以及为每个节点的梯度的连续计算创建第二线程来执行一个或多个机器学习模型的异步分布式训练,其中一个或一个以上变量在所述第一线程与所述第二线程之间共享。
2.根据权利要求1所述的方法,进一步包括定义所述权重管理操作以包括:
应用从获得的第二线程的所述邻居节点列表中选择的节点的梯度以获得所述选择的节点的更新的权重;
将所述梯度设置为等于零值;
从所述邻居节点列表中选择邻居节点;或者
与所选择的邻居节点交换权重并对所交换的权重求平均以生成加权向量。
3.根据权利要求1所述的方法,进一步包括:为所述节点中的每个节点定义所述第二线程的所述梯度的所述连续计算以包括:
基于所选择的节点的输入数据,连续地确定来自所述邻居节点列表的所选择的节点的梯度;
将所选择的节点的所确定的梯度发送到所述第一线程;
将从所述第一线程接收的加权向量分配给所述所选择的节点的当前权重。
4.根据权利要求1所述的方法,进一步包括:由包括在所述邻居节点列表中的每个节点维护多个所需属性,其中,所述多个所需属性包括连接属性、传播属性、无死锁属性、以及数据一致性属性。
5.根据权利要求1所述的方法,还包括:检测所述邻居节点列表中的所述多个节点或链路中的一个或多个节点或链路的一个或多个故障。
6.根据权利要求1所述的方法,还包括:当在时间段到期之前未能从所述邻居节点接收到通信响应时,跳过所述邻居节点列表中的邻居节点。
7.权利要求1的方法,进一步包括:当一个或多个权重被发送并被平均以维持数据一致性时,限制权重在所述邻居节点列表中的所选节点处被更新。
8.一种用于计算环境中的去中心化分布式深度学习的系统,包括:
具有可执行指令的一个或多个计算机,所述可执行指令在被执行时使得所述系统:
通过为多个节点中的每个节点生成邻居节点列表并且根据权重管理操作创建用于连续通信的第一线程以及为每个节点的梯度的连续计算创建第二线程来执行一个或多个机器学习模型的异步分布式训练,其中一个或一个以上变量在所述第一线程与所述第二线程之间共享。
9.根据权利要求8所述的系统,其中,所述可执行指令进一步定义所述权重管理操作以包括:
应用从获得的第二线程的所述邻居节点列表中选择的节点的梯度以获得所述选择的节点的更新的权重;
将所述梯度设置为等于零值;
从所述邻居节点列表中选择邻居节点;或者
与所选择的邻居节点交换权重并对所交换的权重求平均以生成加权向量。
10.根据权利要求8所述的系统,其中,所述可执行指令进一步为所述节点中的每个节点定义所述第二线程的所述梯度的所述连续计算以包括:
基于所选择的节点的输入数据,连续地确定来自所述邻居节点列表的所选择的节点的梯度;
将所选择的节点的所确定的梯度发送到所述第一线程;
将从所述第一线程接收的加权向量分配给所述所选择的节点的当前权重。
11.根据权利要求8所述的系统,其中,所述可执行指令进一步维持所述邻居节点列表中所包括的每个节点的多个所需属性,其中,所述多个所需属性包括连接性属性、传播属性、无死锁属性、以及数据一致性属性。
12.根据权利要求8所述的系统,其中,所述可执行指令进一步检测所述邻居节点列表中的所述多个节点或链路中的一个或多个节点或链路的一个或多个故障。
13.根据权利要求8所述的系统,其中,所述可执行指令还在时间段到期之前未能从所述邻居节点接收到通信响应时跳过所述邻居节点列表中的邻居节点。
14.根据权利要求8所述的系统,其中,所述可执行指令当一个或多个权重被发送并被平均以保持数据一致性时,限制权重在所述邻居节点列表中的所选节点处被更新。
15.一种用于由处理器在计算环境中进行去中心化分布式深度学习的计算机程序产品,所述计算机程序产品包括其中存储有计算机可读程序代码部分的非瞬态计算机可读存储媒质,所述计算机可读程序代码部分包括:
可执行部分,所述可执行部分通过为多个节点中的每个节点生成邻居节点列表并且根据权重管理操作创建用于连续通信的第一线程以及为每个节点的梯度的连续计算创建第二线程来执行一个或多个机器学习模型的异步分布式训练,其中一个或一个以上变量在所述第一线程与所述第二线程之间共享。
16.根据权利要求15所述的计算机程序产品,进一步包括可执行部分,所述可执行部分定义所述权重管理操作以包括:
应用从获得的第二线程的所述邻居节点列表中选择的节点的梯度以获得所述选择的节点的更新的权重;
将所述梯度设置为等于零值;
从所述邻居节点列表中选择邻居节点;或者
与所选择的邻居节点交换权重并对所交换的权重求平均以生成加权向量。
17.根据权利要求15所述的计算机程序产品,进一步包括可执行部分,所述可执行部分为所述节点中的每个节点定义所述第二线程的所述梯度的所述连续计算以包括:
基于所选择的节点的输入数据,连续地确定来自所述邻居节点列表的所选择的节点的梯度;
将所选择的节点的所确定的梯度发送到所述第一线程;
将从所述第一线程接收的加权向量分配给所述所选择的节点的当前权重。
18.根据权利要求15所述的计算机程序产品,进一步包括可执行部分,所述可执行部分由包括在所述邻居节点列表中的每个节点维护多个所需属性,其中,所述多个所需属性包括连接属性、传播属性、无死锁属性、以及数据一致性属性。
19.根据权利要求15所述的计算机程序产品,进一步包括可执行部分,所述可执行部分:
检测所述邻居节点列表中的所述多个节点或链路中的一个或多个节点或链路的一个或多个故障;并且
当在时间段到期之前未能从所述邻居节点接收到通信响应时,跳过所述邻居节点列表中的邻居节点。
20.根据权利要求15所述的计算机程序产品,进一步包括可执行部分,该可执行部分当一个或多个权重被发送并被平均以维持数据一致性时,限制权重在所述邻居节点列表中的所选节点处被更新。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/206,274 | 2018-11-30 | ||
US16/206,274 US11521067B2 (en) | 2018-11-30 | 2018-11-30 | Decentralized distributed deep learning |
PCT/IB2019/059474 WO2020109891A1 (en) | 2018-11-30 | 2019-11-05 | Decentralized distributed deep learning |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113168569A true CN113168569A (zh) | 2021-07-23 |
Family
ID=70850132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980078317.8A Pending CN113168569A (zh) | 2018-11-30 | 2019-11-05 | 去中心化分布式深度学习 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11521067B2 (zh) |
JP (1) | JP7308003B2 (zh) |
CN (1) | CN113168569A (zh) |
DE (1) | DE112019004076T5 (zh) |
GB (1) | GB2593070A (zh) |
WO (1) | WO2020109891A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986149A (zh) * | 2021-12-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 一种系统故障处理方法、装置、设备及存储介质 |
CN115665174A (zh) * | 2022-12-13 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | 一种梯度数据的同步方法、系统、设备及存储介质 |
WO2024103463A1 (zh) * | 2022-11-18 | 2024-05-23 | 深圳先进技术研究院 | 弹性深度学习作业调度方法、系统及计算机设备 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11244243B2 (en) * | 2018-01-19 | 2022-02-08 | Hypernet Labs, Inc. | Coordinated learning using distributed average consensus |
US10878482B2 (en) | 2018-01-19 | 2020-12-29 | Hypernet Labs, Inc. | Decentralized recommendations using distributed average consensus |
US11521067B2 (en) * | 2018-11-30 | 2022-12-06 | International Business Machines Corporation | Decentralized distributed deep learning |
JP7230683B2 (ja) * | 2019-05-21 | 2023-03-01 | 富士通株式会社 | 演算処理装置、プログラム、及び演算処理装置の制御方法 |
CN112308233B (zh) * | 2019-08-02 | 2024-07-19 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、设备和计算机程序产品 |
KR20190106944A (ko) * | 2019-08-30 | 2019-09-18 | 엘지전자 주식회사 | 지능형 냉장고 및 그 제어 방법 |
US11651293B2 (en) * | 2020-07-22 | 2023-05-16 | International Business Machines Corporation | Hierarchical decentralized distributed deep learning training |
CN111858721B (zh) * | 2020-08-03 | 2023-07-21 | 南京大学 | 一种基于优先级编码的分布式计算方法 |
US20220129746A1 (en) * | 2020-10-27 | 2022-04-28 | International Business Machines Corporation | Decentralized parallel min/max optimization |
CN112364897B (zh) * | 2020-10-27 | 2024-05-28 | 曙光信息产业(北京)有限公司 | 分布式训练方法及装置、存储介质及电子设备 |
US11636280B2 (en) | 2021-01-27 | 2023-04-25 | International Business Machines Corporation | Updating of statistical sets for decentralized distributed training of a machine learning model |
CN113255933A (zh) * | 2021-06-01 | 2021-08-13 | 上海商汤科技开发有限公司 | 特征工程和图网络生成方法和装置、分布式系统 |
CN113692031B (zh) * | 2021-09-08 | 2024-04-19 | 中国海洋大学 | 船舶自组织网络中基于多维社区的路由方法 |
CN115277689B (zh) * | 2022-04-29 | 2023-09-22 | 国网天津市电力公司 | 一种基于分布式联邦学习的云边网络通信优化方法及系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070192863A1 (en) * | 2005-07-01 | 2007-08-16 | Harsh Kapoor | Systems and methods for processing data flows |
US9798781B2 (en) * | 2005-10-25 | 2017-10-24 | Angoss Software Corporation | Strategy trees for data mining |
US20120284067A1 (en) * | 2011-05-03 | 2012-11-08 | Intuit Inc. | Revenue-based impact analysis using multidimensional models of software offerings |
US8856328B2 (en) * | 2011-07-29 | 2014-10-07 | Cellco Partnership | Fail-open network techniques |
US9916538B2 (en) * | 2012-09-15 | 2018-03-13 | Z Advanced Computing, Inc. | Method and system for feature detection |
US9355088B2 (en) | 2013-07-12 | 2016-05-31 | Microsoft Technology Licensing, Llc | Feature completion in computer-human interactive learning |
US10339465B2 (en) * | 2014-06-30 | 2019-07-02 | Amazon Technologies, Inc. | Optimized decision tree based models |
US9672474B2 (en) | 2014-06-30 | 2017-06-06 | Amazon Technologies, Inc. | Concurrent binning of machine learning data |
US9699049B2 (en) * | 2014-09-23 | 2017-07-04 | Ebay Inc. | Predictive model for anomaly detection and feedback-based scheduling |
WO2016179303A1 (en) * | 2015-05-04 | 2016-11-10 | Kamama, Inc. | System and method of vehicle sensor management |
US10628740B2 (en) * | 2015-10-02 | 2020-04-21 | International Business Machines Corporation | Asynchronous stochastic gradient descent |
US20170169358A1 (en) | 2015-12-09 | 2017-06-15 | Samsung Electronics Co., Ltd. | In-storage computing apparatus and method for decentralized machine learning |
US10586173B2 (en) | 2016-01-27 | 2020-03-10 | Bonsai AI, Inc. | Searchable database of trained artificial intelligence objects that can be reused, reconfigured, and recomposed, into one or more subsequent artificial intelligence models |
US10255282B2 (en) * | 2016-03-04 | 2019-04-09 | Microsoft Technology Licensing, Llc | Determining key concepts in documents based on a universal concept graph |
JP6699891B2 (ja) | 2016-08-30 | 2020-05-27 | 株式会社東芝 | 電子装置、方法及び情報処理システム |
US10210594B2 (en) | 2017-03-03 | 2019-02-19 | International Business Machines Corporation | Deep learning via dynamic root solvers |
US20180322386A1 (en) | 2017-05-05 | 2018-11-08 | Intel Corporation | Fine-grain compute communication execution for deep learning frameworks |
US10891295B2 (en) * | 2017-06-04 | 2021-01-12 | Apple Inc. | Methods and systems using linear expressions for machine learning models to rank search results |
US20190108486A1 (en) * | 2017-10-05 | 2019-04-11 | Microsoft Technology Licensing, Llc | System and method for intelligent and automatic electronic communication support and routing |
CN108304918B (zh) | 2018-01-18 | 2020-08-28 | 中兴飞流信息科技有限公司 | 一种数据并行的深度学习的参数交换方法和系统 |
US11521067B2 (en) * | 2018-11-30 | 2022-12-06 | International Business Machines Corporation | Decentralized distributed deep learning |
-
2018
- 2018-11-30 US US16/206,274 patent/US11521067B2/en active Active
-
2019
- 2019-11-05 GB GB2105988.6A patent/GB2593070A/en not_active Withdrawn
- 2019-11-05 DE DE112019004076.6T patent/DE112019004076T5/de active Pending
- 2019-11-05 WO PCT/IB2019/059474 patent/WO2020109891A1/en active Application Filing
- 2019-11-05 JP JP2021526228A patent/JP7308003B2/ja active Active
- 2019-11-05 CN CN201980078317.8A patent/CN113168569A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986149A (zh) * | 2021-12-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 一种系统故障处理方法、装置、设备及存储介质 |
WO2024103463A1 (zh) * | 2022-11-18 | 2024-05-23 | 深圳先进技术研究院 | 弹性深度学习作业调度方法、系统及计算机设备 |
CN115665174A (zh) * | 2022-12-13 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | 一种梯度数据的同步方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020109891A1 (en) | 2020-06-04 |
GB202105988D0 (en) | 2021-06-09 |
US20200175370A1 (en) | 2020-06-04 |
JP7308003B2 (ja) | 2023-07-13 |
GB2593070A (en) | 2021-09-15 |
US11521067B2 (en) | 2022-12-06 |
DE112019004076T5 (de) | 2021-05-06 |
JP2022511716A (ja) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113168569A (zh) | 去中心化分布式深度学习 | |
US11836576B2 (en) | Distributed machine learning at edge nodes | |
US10884795B2 (en) | Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster | |
US10783437B2 (en) | Hybrid aggregation for deep learning neural networks | |
US10310908B2 (en) | Dynamic usage balance of central processing units and accelerators | |
CN110869909A (zh) | 应用机器学习算法来计算健康分数以进行工作负载调度的系统和方法 | |
CN110580197A (zh) | 大型模型深度学习的分布式计算架构 | |
US11055139B2 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
US11307885B1 (en) | Identifying optimized computing resources for running workloads | |
US20170098171A1 (en) | Asynchronous stochastic gradient descent | |
CN114667507A (zh) | 使用基于应用的剖析的机器学习工作负载的弹性执行 | |
US11676013B2 (en) | Job-launch time reduction by node pre-configuration | |
US11409564B2 (en) | Resource allocation for tuning hyperparameters of large-scale deep learning workloads | |
CN114930291A (zh) | 在多云环境中实现工作负载 | |
US20230177337A1 (en) | Multi-objective driven refactoring of a monolith application using reinforcement learning | |
Li et al. | A generic cloud platform for engineering optimization based on OpenStack | |
Heger | Optimized resource allocation & task scheduling challenges in cloud computing environments | |
CN110325984B (zh) | 在图形中进行层次社区检测的系统和方法 | |
US12026480B2 (en) | Software development automated assessment and modification | |
US11093229B2 (en) | Deployment scheduling using failure rate prediction | |
CN117461039A (zh) | 并行机器学习模型的公平同步比较 | |
CN116601604A (zh) | 基于成本和服务级别优化多平台即服务的工作负载的布置 | |
Cano et al. | ADARES: adaptive resource management for virtual machines | |
TWI822290B (zh) | 相關於用於訓練機器學習模型之聯合學習之電腦實施方法、電腦系統及電腦程式產品 | |
WO2022206197A1 (en) | Training and scoring for large number of performance models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |