CN113312211A - 一种确保分布式学习系统的高可用性方法 - Google Patents
一种确保分布式学习系统的高可用性方法 Download PDFInfo
- Publication number
- CN113312211A CN113312211A CN202110590071.1A CN202110590071A CN113312211A CN 113312211 A CN113312211 A CN 113312211A CN 202110590071 A CN202110590071 A CN 202110590071A CN 113312211 A CN113312211 A CN 113312211A
- Authority
- CN
- China
- Prior art keywords
- parameter
- parameters
- node
- fault
- recovery
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1492—Generic software techniques for error detection or fault masking by run-time replication performed by the application software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明通过深度学习领域的方法,实现了一种确保分布式学习系统的高可用性方法。利用计算节点上已经存在的参数的副本进行容错,并通过主动复制将每个参数补全到多个副本。具体分为两个阶段,无故障训练阶段和故障恢复阶段,无故障训练阶段通过主动的选择性参数复制方法,将参数通过网络从服务器节点复制到计算节点;所述故障恢复阶段,采用故障恢复流程,通过启动一个具有恢复替换、参数恢复和恢复计算三个步骤的恢复协调器来协调故障,以存活的计算节点中的参数,提出最新的参数恢复参数服务器丢失的参数,之后恢复整个训练过程。该方法实现了针对不同的一致性模型,可以达到低容错开销甚至0容错开销;当系统在容错范围时,能够保证计算进度不丢失的效果。
Description
技术领域
本发明涉及深度学习领域,尤其涉及一种确保分布式学习系统的高可用性方法。
背景技术
随着机器学习算法的逐渐发展,其训练方法也在不断更新发展。近年来,作为键值存储的参数服务器被广泛应用于分布式训练过程,通过共享内存的形式,可以使得不同计算节点能够容易地访问全局共享模型参数。基于参数服务器的机器学习系统针对不同一致性模型实现了高效的训练性能。
然而,在训练大规模复杂模型的过程,参数服务器可能会发生故障。研究表明,针对不同模型和规模,故障发生率在7.8%到24.7%。现有针对参数服务器系统的容错技术主要有两种机制:副本(replication)机制和检查点(checkpoint)机制。其中,副本机制在训练过程中,在参数更新的同时通过网络将更新的参数复制到备份服务器,由于其复制粒度很细,在故障恢复时可以实现无损容错,即不丢失中间计算结果,但是由于会大幅增加网络流量,不适用于带宽受限的分布式环境。检查点机制现在被大多数参数服务器系统所采用。检查点机制周期性地将全局参数写入持久化存储中,通过延长检查点周期可以降低无故障运行时的容错开销,但是当故障发生时需要回滚到上一个检查点,这会丢失自上一个检查点以来的训练进度。
特别的,近来基于参数服务器的机器学习训练趋向于利用大规模云计算实现训练加速(等效于使用少量机器进行长时间训练),如有论文可以在2分钟的时间完成Resnet50模型的训练,甚至短于一次检查点周期,使得检查点机制在这种场景下失效。
因此,在分布式机器学习训练过程中,急需一种低开销甚至无开销同时无损的容错机制。
在基于参数服务器架构中,分为参数服务器节点和计算节点,其中参数服务器节点保存有全局共享参数,节点负责在每次迭代中从参数服务器取回参数,然后根据本地数据计算出相应的梯度,然后将梯度发送到服务器。计算节点在这个过程中,计算节点实际上保存有参数副本,基于这一观察,这些本地参数可被用于故障恢复。但这一直觉性的恢复机制面临两个挑战:
1.参数稀疏性问题:部分机器学习算法的全局参数访问具有稀疏性,因此,无法保证每一个参数在参数服务器节点和计算节点中的总副本数量。
2.参数老化问题:当前很多系统采用放松的一致性模型,如老化同步模型(StaleSynchronous Parallel,SSP)和Eager SSP,不同于同步并行模型(Bulk SynchronousParallel,BSP),这种模型的部分计算节点的本地参数可能是过时的版本,不能用于恢复最新的参数,通常这种一致性模型会定义一个老化阈值staleness,即最快的计算节点不能快于最慢的计算节点staleness个clock。对于计算节点,clock为逻辑时钟,从0开始,计算节点每完成一次迭代将自己的clock加一,其中服务器时钟定义为所有计算节点clock的最小值,服务器时钟又称为全局时钟全局clock。
发明内容
为此,本发明首先提出一种确保分布式学习系统的高可用性方法,核心在于利用计算节点上已经存在的参数的副本进行容错,并通过主动复制将每个参数补全到K个副本,其中K为用户指定的容错能力参数。具体分为两个阶段,无故障训练阶段和故障恢复阶段,所述无故障训练阶段,通过主动的选择性参数复制方法,将参数通过网络从服务器节点复制到计算节点,以应对参数稀疏性问题和参数老化问题,使得每个参数有K个足够新的副本,至多容忍K-1个节点故障;所述故障恢复阶段,采用故障恢复流程,通过启动一个具有恢复替换、参数恢复和恢复计算三个步骤的恢复协调器来协调故障,以存活的计算节点中的参数,提出最新的参数恢复参数服务器丢失的参数,之后恢复整个训练过程。
所述选择性参数复制方法为:当计算节点从参数服务器请求参数的时候,服务器节点在向其发送请求的参数后记录计算节点的ID和此时参数的版本,即全局clock,然后在参数服务器进入下一次clock的时候,对每个参数的副本数量和老化程度进行计数,如果存在老化程度在全局clock-staleness的副本数量N不足K的时候,参数服务器主动选择K-N个过于老化或者不含该参数的计算节点,将参数复制到这些节点并在发送后记录这些计算节点的ID和版本。
所述恢复替换步骤具体为:启动新的服务器节点和计算节点来替换故障的服务器节点和计算节点,同时协调器会向存活的参数服务器和计算节点广播故障节点信息;当故障发生后,存活服务器节点,对于SSP(Stale Synchronous Parallel)一致性模型,将故障计算节点发送的请求从延迟请求中移除,对于Eager SSP一致性模型,需要同时从参数的订阅列表中移除故障计算节点;对于存活计算节点,暂停访问服务器节点,直到新的参数服务器节点启动。
所述参数恢复步骤具体为:若有参数服务器节点发生故障,则每个存活计算节点都检查本地的参数副本并将属于原故障服务器节点的参数的ID和版本发送到新的服务器节点;新的服务器节点收到计算节点发来的参数ID和版本后,对于每个参数,记录拥有最新版本的计算节点ID,最新版本的计算节点有多个时,只取其中一个,并在收到所有计算节点的数据后,向每个计算节点发送需要的参数ID;存活计算节点收到新的服务器节点发送的参数ID后,计算节点将对应的参数打包发送到服务器节点;当新的服务器节点收到所有存活节点发送的参数后,完成恢复;当有计算节点发来的参数更新或者参数请求,且该参数尚未恢复,则延迟响应该请求,直到该参数完成恢复再响应,否则正常响应。
所述恢复计算步骤具体为:所有新的计算节点完成启动并加入到训练过程,同时新的服务器节点启动,则恢复计算。
本发明所要实现的技术效果在于:
本发明提出一个面向大规模集群训练的低开小无损分布式学习系统的高可用确保技术。即:
1.利用计算节点的参数副本并通过轻量级主动的选择性复制方法确保每个参数至少有K个足够新的副本,容忍K-1个节点故障,其中足够新指参数老化程度不超过staleness。
2.当故障发生时,系统将从存活的计算节点中选择服务器丢失参数的最新参数副本来丢失的参数恢复到一个尽可能新的状态。
该技术具有以下优势:
1.针对不同的一致性模型,可以达到低容错开销甚至0容错开销。
3.当故障节点小于K时,能够保证计算进度不丢失。
附图说明
图1参数服务器架构;
图2选择性参数复制算法;
图3存活节点移除故障计算节点的延迟请求和参数订阅信息;
具体实施方式
以下是本发明的优选实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于此实施例。
本发明提出了一种确保分布式学习系统的高可用性方法,核心在于利用计算节点上已经存在的参数的副本进行容错,并通过主动复制将每个参数补全到K个副本,其中K为用户指定的容错能力参数。具体分为两个阶段,分别是无故障训练阶段和故障恢复阶段,在无故障训练阶段。在无故障训练阶段,通过主动的选择性参数复制方法,将参数通过网络从服务器节点复制到计算节点,使得每个参数有K个足够新的副本,其至多容忍K-1个节点故障。在故障恢复阶段,通过存活的计算节点,将其中的参数提出一份最新的参数尽可能地恢复参数服务器丢失的参数。之后恢复整个训练过程。
选择性参数复制方法
在无故障训练阶段,每个参数服务器节点都会追踪并记录本服务器上的参数都分布在哪些计算节点上和相应的版本,具体来讲,当计算节点从参数服务器请求参数的时候,服务器节点在向其发送请求的参数后记录计算节点的ID和此时参数的版本,即全局clock。然后在参数服务器进入下一次clock的时候,对每个参数的副本数量和老化程度进行计数,如果存在老化程度在全局clock-staleness的副本数量N不足K的时候,参数服务器主动选择K-N个过于老化或者不含该参数的计算节点,将参数复制到这些节点并在发送后记录这些计算节点的ID和版本。具体算法见图2。
通过该方法则可以确保每个参数都有至少K个足够新的副本。一般大部分参数都有足够的副本,只有非常少甚至没有参数需要主动复制,所以额外的性能开销很小甚至为0。对于大部分采用BSP(Bulk Synchronous Parallel)一致性模型的机器学习算法,每个计算节点步调一致,所以不存在参数老化性问题,而大多数深度学习算法每个计算节点均保存有一份完整的全局参数,不存在稀疏性的问题,这种情况下,参数服务器不需要主动将任何参数复制到计算节点,故而开销为0。而对于如LDA(Latent Dirichlet Allocation)这种稀疏性算法,我们观察到99%的参数都至少有3个副本,当采用放松的一致性模型时,90%的参数副本都足够新,同时在实验中我们未观测到可引起注意的容错开销。
故障恢复方法
当发生故障时,本方法会启动一个恢复协调器(Coordinator)来协调故障恢复,共分为三个阶段。
(1)替换阶段
在替换阶段,我们会启动新的服务器节点和计算节点来替换故障的服务器节点和计算节点,同时协调器会向存活的参数服务器和计算节点广播故障节点。
参数服务器,对于SSP(Stale Synchronous Parallel)一致性模型,其通过延迟响应超过staleness阈值的计算节点的参数请求来实现最快节点等待最慢节点。当最慢的节点赶上来的时候,参数服务器才会响应被延迟的请求。而对于Eager SSP一致性模型时,在每次全局clock步进的时候,会主动向订阅过参数(即曾经请求过该参数)的计算节点主动发送最新版本的参数。
当故障发生后,存活服务器节点,对于SSP(Stale Synchronous Parallel)一致性模型,需要将故障计算节点发送的请求从延迟请求中移除,对于Eager SSP一致性模型,则需要从参数的订阅列表中移除故障计算节点。具体算法见图3。
对于存活计算节点,会暂停访问服务器节点,直到新的参数服务器节点启动。
(2)参数恢复阶段
若没有参数服务器节点发生故障,则跳过这一阶段。
每个存活计算节点都会检查本地的参数副本并将属于原故障服务器节点的参数的ID和版本发送到新的服务器节点。
新的服务器节点收到计算节点发来的参数ID和版本后,对于每个参数,记录拥有最新版本的计算节点ID,最新版本的计算节点有多个时,只取其中一个,并在收到所有计算节点的数据后,向每个计算节点发送需要的参数ID。
存活计算节点收到新的服务器节点发送的参数ID后,计算节点将对应的参数打包发送到服务器节点。
当新的服务器节点收到所有存活节点发送的参数后,完成恢复。
在这个过程中,可能有计算节点发来的参数更新或者参数请求,若该参数尚未恢复,则延迟响应该请求,直到该参数完成恢复才响应,否则正常响应。这样在参数恢复阶段,新的服务器节点尽可能地不阻塞整个训练过程。
(3)恢复计算
当所有新的计算节点完成启动并加入到训练过程,同时新的服务器节点启动,则恢复计算。
Claims (5)
1.一种确保分布式学习系统的高可用性方法,其特征在于:利用计算节点上已经存在的参数的副本进行容错,并通过主动复制将每个参数补全到K个副本,其中K为用户指定的容错能力参数;具体分为两个阶段,无故障训练阶段和故障恢复阶段,所述无故障训练阶段,通过主动的选择性参数复制方法,将参数通过网络从服务器节点复制到计算节点,使得每个参数有K个足够新的副本,其至多容忍K-1个节点故障;所述故障恢复阶段,采用故障恢复流程,通过启动一个具有恢复替换、参数恢复和恢复计算三个步骤的恢复协调器来协调故障,以存活的计算节点中的参数,提出最新的参数恢复参数服务器丢失的参数,之后恢复整个训练过程。
2.如权利要求1所述的一种确保分布式学习系统的高可用性方法,其特征在于:所述选择性参数复制方法为:当计算节点从参数服务器请求参数的时候,服务器节点在向其发送请求的参数后记录计算节点的ID和此时参数的版本,即全局clock,然后在参数服务器进入下一次clock的时候,对每个参数的副本数量和老化程度进行计数,如果存在老化程度在全局clock-staleness的副本数量N不足K的时候,参数服务器主动选择K-N个过于老化或者不含该参数的计算节点,将参数复制到这些节点并在发送后记录这些计算节点的ID和版本。
3.如权利要求2所述的一种确保分布式学习系统的高可用性方法,其特征在于:所述恢复替换步骤具体为:启动新的服务器节点和计算节点来替换故障的服务器节点和计算节点信息,同时协调器会向存活的参数服务器和计算节点广播故障节点;当故障发生后,存活服务器节点,对于SSP一致性模型,将故障计算节点发送的请求从延迟请求中移除,对于基于SSP的Eager SSP一致性模型,同时从参数的订阅列表中移除故障计算节点;对于存活计算节点,暂停访问服务器节点,直到新的参数服务器节点启动。
4.如权利要求3所述的一种确保分布式学习系统的高可用性方法,其特征在于:所述参数恢复步骤具体为:若有参数服务器节点发生故障,则每个存活计算节点都检查本地的参数副本并将属于原故障服务器节点的参数的ID和版本发送到新的服务器节点;新的服务器节点收到计算节点发来的参数ID和版本后,对于每个参数,记录拥有最新版本的计算节点ID,最新版本的计算节点有多个时,只取其中一个,并在收到所有计算节点的数据后,向每个计算节点发送需要的参数ID;存活计算节点收到新的服务器节点发送的参数ID后,计算节点将对应的参数打包发送到服务器节点;当新的服务器节点收到所有存活节点发送的参数后,完成恢复;当有计算节点发来的参数更新或者参数请求,且该参数尚未恢复,则延迟响应该请求,直到该参数完成恢复再响应,否则正常响应。
5.如权利要求4所述的一种确保分布式学习系统的高可用性方法,其特征在于:所述恢复计算步骤具体为:所有新的计算节点完成启动并加入到训练过程,同时新的服务器节点启动,则恢复计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110590071.1A CN113312211B (zh) | 2021-05-28 | 2021-05-28 | 一种确保分布式学习系统的高可用性方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110590071.1A CN113312211B (zh) | 2021-05-28 | 2021-05-28 | 一种确保分布式学习系统的高可用性方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113312211A true CN113312211A (zh) | 2021-08-27 |
CN113312211B CN113312211B (zh) | 2023-05-30 |
Family
ID=77375764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110590071.1A Active CN113312211B (zh) | 2021-05-28 | 2021-05-28 | 一种确保分布式学习系统的高可用性方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312211B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936117A (zh) * | 2021-09-02 | 2022-08-23 | 华为技术有限公司 | 模型训练的方法、服务器、芯片以及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506357A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种高可用集群节点管理方法 |
CN105141456A (zh) * | 2015-08-25 | 2015-12-09 | 山东超越数控电子有限公司 | 一种高可用集群资源监控方法 |
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、系统和计算节点 |
CN110033095A (zh) * | 2019-03-04 | 2019-07-19 | 北京大学 | 一种高可用分布式机器学习计算框架的容错方法和系统 |
-
2021
- 2021-05-28 CN CN202110590071.1A patent/CN113312211B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506357A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种高可用集群节点管理方法 |
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、系统和计算节点 |
CN105141456A (zh) * | 2015-08-25 | 2015-12-09 | 山东超越数控电子有限公司 | 一种高可用集群资源监控方法 |
CN110033095A (zh) * | 2019-03-04 | 2019-07-19 | 北京大学 | 一种高可用分布式机器学习计算框架的容错方法和系统 |
Non-Patent Citations (3)
Title |
---|
CARBON ZHANG: "《干货 | 大规模机器学习框架的四重境界》", 《HTTPS://WWW.SOHU.COM/A/204293285_651893》 * |
MU LI 等: "《Scaling Distributed Machine Learning with the Parameter Server》", 《OSDI"14: PROCEEDINGS OF THE 11TH USENIX CONFERENCE ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION》 * |
SUPERXX07: "《ZooKeeper应用举例》", <HTTPS://BLOG.CSDN.NET/WEIXIN_30786657/ARTICLE/DETAILS/97141455> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936117A (zh) * | 2021-09-02 | 2022-08-23 | 华为技术有限公司 | 模型训练的方法、服务器、芯片以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113312211B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107544862B (zh) | 一种基于纠删码的存储数据重构方法和装置、存储节点 | |
US9773015B2 (en) | Dynamically varying the number of database replicas | |
US10114580B1 (en) | Data backup management on distributed storage systems | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
US10423643B2 (en) | System and method for supporting resettable acknowledgements for synchronizing data in a distributed data grid | |
US20170255529A1 (en) | Smart data replication recoverer | |
CN110389858B (zh) | 存储设备的故障恢复方法和设备 | |
WO2014210501A1 (en) | Asynchronous message passing for large graph clustering | |
CN113168404B (zh) | 用于在分布式数据库系统中复制数据的系统和方法 | |
CN112955874A (zh) | 在使用区块链的机器学习的去中心化模型构建中进行自修复的系统及方法 | |
WO2019020081A1 (zh) | 分布式系统及其故障恢复方法、装置、产品和存储介质 | |
EP3769218A1 (en) | Systems and methods for backing-up an eventually-consistent database in a production cluster | |
WO2017014814A1 (en) | Replicating memory volumes | |
CN110661841B (zh) | 微服务架构中分布式服务发现集群的数据一致性方法 | |
CN113312211B (zh) | 一种确保分布式学习系统的高可用性方法 | |
WO2021257263A1 (en) | Techniques for generating a consistent view of an eventually consistent database | |
CN111400065B (zh) | 一种分离全局zookeeper的pulsar消息异地多活方法及系统 | |
US10073746B2 (en) | Method and apparatus for providing distributed checkpointing | |
US9003018B2 (en) | System and method for data set synchronization and replication | |
JP2022503583A (ja) | 分散コンピューティング環境で分散調整エンジンを非破壊的にアップグレードする方法、装置およびシステム | |
Lin et al. | ReHRS: A hybrid redundant system for improving MapReduce reliability and availability | |
JP2023538167A (ja) | 分散データシステムにおいて書込み者を事前に選択する方法、装置及びシステム | |
Beineke et al. | Fast parallel recovery of many small in-memory objects | |
US11645014B1 (en) | Disaggregated storage with multiple cluster levels | |
Sun et al. | Non-redundant Distributed Database Allocation Technology Research |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |