System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及人工智能(artificial intelligence,ai),尤其涉及一种故障处理方法、装置、调度器、芯片、计算机可读存储介质以及计算机程序产品。
技术介绍
1、随着ai技术的不断发展,越来越多的行业和领域采用ai模型(为了便于描述,有些情况下也简称为模型)实现业务的智能化、自动化。例如,电子商务行业中,越来越多商家采用基于ai模型构建的ai客服代替人工客服,提供售前、售后咨询服务。又例如,社交网络中,平台采用ai模型代替人工审核用户发布的内容,以节省人力成本。
2、ai模型是指基于ai技术构建的、用于对未知数据进行预测的数学模型。例如,ai模型可以是基于神经网络构建的目标检测模型、图像分类模型。ai模型通常需要通过大量数据进行训练。为了提高ai模型的训练效率,分布式训练方法应运而生。
3、分布式训练方法是将训练任务分散到多个训练节点执行,多个训练节点并行训练模型。其中,执行训练任务是利用数据集训练模型,获得模型的参数(例如为权重)的过程。多个训练节点可以采用同步更新机制更新模型的参数。同步更新机制是指将各个训练节点获得的梯度进行累加计算均值,基于该均值更新模型的参数。当个别训练节点、训练算法或者网络出现故障时,整个分布式训练任务就会中断。随着训练节点的增加,中断可能性越来越高,因此,需要提供一种故障处理机制,以便恢复训练任务。
4、目前,业界主流的故障处理方案需要较长时间恢复训练任务,效率较低,难以满足业务需求。
技术实现思路
1
2、第一方面,本申请提供一种故障处理方法。该方法应用于训练系统。训练系统包括主机侧的第一芯片和设备侧的多个第二芯片,第一芯片和多个第二芯片用于协同执行训练任务。训练任务包括第一子任务和多个第二子任务,第二子任务的执行依赖于第一子任务的执行结果。
3、具体地,第一芯片执行第一子任务,当发生故障,第一芯片在所述设备侧状态正常的第二芯片停止执行第二子任务之前保存故障文件。然后第一芯片向设备侧重调度的芯片同步所述故障文件,以便于重调度的芯片继续执行第二子任务。
4、该方法中,当发生故障时,设备侧的第二芯片可以停止执行第二子任务,主机侧的第一芯片可以不停止执行第一子任务。如此可以复用主机侧第一子任务的执行结果(例如是编译结果,包括但不限于计算图的编译结果),恢复训练任务,缩短了恢复训练任务的时间,提高了恢复训练任务的效率。
5、在一些可能的实现方式中,所述故障包括可恢复的芯片故障或不可恢复的节点故障。该方法支持根据不同故障类型实现细粒度的恢复方案,基于该细粒度的恢复方案可以尽可能地提升恢复训练任务的效率。
6、在一些可能的实现方式中,故障为可恢复的芯片故障,设备侧重调度的芯片包括复位后状态恢复正常的第二芯片。如此可以实现在原节点恢复训练任务,无需额外申请新的节点资源,提高资源利用率。
7、在一些可能的实现方式中,训练系统包括训练节点,训练节点包括第一芯片和多个第二芯片,即训练系统可以是单机多卡架构。故障为多个第二芯片中的目标芯片故障。基于此,第一芯片向设备侧重调度的芯片同步所述故障文件时,可以向复位后状态恢复正常的目标芯片同步故障文件。如此实现了单个训练节点发生可恢复的芯片故障时,在原节点恢复训练任务。
8、在一些可能的实现方式中,故障为不可恢复的节点故障,设备侧重调度的芯片包括新加入的第三芯片。如此可以实现在新节点恢复训练任务,以尽可能缩短训练任务的中断时间,提高训练任务的恢复效率。
9、在一些可能的实现方式中,训练系统包括第一训练节点和第二训练节点,每个训练节点包括至少一个第一芯片和至少一个第二芯片。即训练系统可以是多机多卡架构。其中,第一训练节点发生不可恢复的节点故障,第三芯片归属于新加入的第三训练节点。相应地,第一训练节点的第一芯片可以保存第一子任务的执行结果,第三训练节点的第一芯片可以加载第一子任务的执行结果。
10、该方法通过对第一子任务的执行结果进行缓存,然后在新节点加载缓存的执行结果,从而实现执行结果的复用,由此可以提高了恢复训练任务的效率。
11、在一些可能的实现方式中,第一子任务可以是编译子任务(例如是编译计算图)。第一芯片不停止执行第一子任务,可以实现免编译,或者第一训练节点的第一芯片缓存编译结果,新加入的第三训练节点的第一芯片加载第一训练节点的第一芯片缓存的编译结果,可以实现复用编译结果。如此,缩短了恢复训练任务的时间,提高了恢复训练任务的效率。
12、在一些可能的实现方式中,第一芯片可以从内存获取所述故障文件,通过集群通信接口向所述设备侧重调度的芯片同步所述故障文件。如此无需重新反序列化,缩短同步时间,提高故障恢复效率。
13、在一些可能的实现方式中,子任务以进程或线程方式执行。本申请的故障处理方法可以实现设备侧的进程或线程退出,主机侧的进程或线程可以不退出,主机侧无需重新申请资源,以重复执行相同的子任务,进一步缩短了恢复训练任务的时间,提高了恢复训练任务的效率。
14、第二方面,本申请提供一种故障处理方法。该方法应用于调度器,所述调度器用于训练系统发生故障时进行故障处理,所述训练系统包括主机侧的第一芯片和设备侧的多个第二芯片,所述第一芯片和所述多个第二芯片用于协同执行训练任务,所述训练任务包括第一子任务和多个第二子任务,所述第二子任务的执行依赖于所述第一子任务的执行结果,所述方法包括:
15、对所述训练系统进行故障检测;
16、当检测到发生故障,通知所述第一芯片在所述设备侧状态正常的第二芯片停止执行所述第二子任务之前保存故障文件,所述故障文件用于被所述第一芯片同步至所述设备侧重调度的芯片。
17、该方法在调度器检测到发生故障时,通知第一芯片在设备侧状态正常的第二芯片停止执行第二子任务之前保存故障文件,设备侧的第二芯片可以停止执行第二子任务,主机侧的第一芯片可以不停止执行第二子任务。如此可以复用主机侧第一子任务的执行结果来恢复训练任务,缩短了恢复训练任务的时间,提高了恢复训练任务的效率。
18、在一些可能的实现方式中,故障为可恢复的芯片故障,调度器还可以对所述设备侧的故障芯片进行复位。设备侧重调度的芯片包括复位后状态恢复正常的第二芯片。该方法支持根据不同故障类型实现细粒度的恢复方案。对于可恢复的芯片故障,可以在线进行热复位来恢复,并通过正常芯片同步故障文件进行训练状态的恢复。
19、在一些可能的实现方式中,训练系统包括训练节点,训练节点包括第一芯片和多个第二芯片。故障为多本文档来自技高网...
【技术保护点】
1.一种故障处理方法,其特征在于,应用于训练系统,所述训练系统包括主机侧的第一芯片和设备侧的多个第二芯片,所述第一芯片和所述多个第二芯片用于协同执行训练任务,所述训练任务包括第一子任务和多个第二子任务,所述第二子任务的执行依赖于所述第一子任务的执行结果,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述故障包括可恢复的芯片故障或不可恢复的节点故障。
3.根据权利要求1或2所述的方法,其特征在于,所述故障为可恢复的芯片故障,所述设备侧重调度的芯片包括复位后状态恢复正常的第二芯片。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述训练系统包括训练节点,所述训练节点包括第一芯片和多个第二芯片,所述故障为所述多个第二芯片中的目标芯片故障;
5.根据权利要求1或2所述的方法,其特征在于,所述故障为不可恢复的节点故障,所述设备侧重调度的芯片包括新加入的第三芯片。
6.根据权利要求5所述的方法,其特征在于,所述训练系统包括第一训练节点和第二训练节点,每个训练节点包括至少一个第一芯片和至少一个第二芯片,所述第一训练节
7.根据权利要求1至6任一项所述的方法,其特征在于,所述第一芯片向所述设备侧重调度的芯片同步所述故障文件,包括:
8.根据权利要求1至7任一项所述的方法,其特征在于,所述子任务以进程或线程方式执行。
9.一种故障处理方法,其特征在于,应用于调度器,所述调度器用于训练系统发生故障时进行故障处理,所述训练系统包括主机侧的第一芯片和设备侧的多个第二芯片,所述第一芯片和所述多个第二芯片用于协同执行训练任务,所述训练任务包括第一子任务和多个第二子任务,所述第二子任务的执行依赖于所述第一子任务的执行结果,所述方法包括:
10.根据权利要求9所述的方法,其特征在于,所述故障为可恢复的芯片故障,所述方法还包括:
11.根据权利要求9或10所述的方法,其特征在于,所述训练系统包括训练节点,所述训练节点包括第一芯片和多个第二芯片,所述故障为所述多个第二芯片中的目标芯片故障,所述故障文件用于被所述第一芯片同步至复位后状态恢复正常的所述目标芯片。
12.根据权利要求9所述的方法,其特征在于,所述故障为不可恢复的节点故障,所述设备侧重调度的芯片包括新加入的第三芯片,所述方法还包括:
13.根据权利要求12所述的方法,其特征在于,所述训练系统包括第一训练节点和第二训练节点,每个训练节点包括至少一个第一芯片和至少一个第二芯片,所述第一训练节点发生所述不可恢复的节点故障;
14.根据权利要求9至13任一项所述的方法,其特征在于,所述子任务以进程或线程方式执行。
15.一种故障处理装置,其特征在于,所述装置部署于训练系统的主机侧的第一芯片,所述第一芯片和所述训练系统的设备侧的多个第二芯片用于协同执行训练任务,所述训练任务包括第一子任务和多个第二子任务,所述第二子任务的执行依赖于所述第一子任务的执行结果,所述装置包括:
16.根据权利要求15所述的装置,其特征在于,所述故障包括可恢复的芯片故障或不可恢复的节点故障。
17.根据权利要求15或16所述的装置,其特征在于,所述故障为可恢复的芯片故障,所述设备侧重调度的芯片包括复位后状态恢复正常的第二芯片。
18.根据权利要求15至17任一项所述的装置,其特征在于,所述训练系统包括训练节点,所述训练节点包括第一芯片和多个第二芯片,所述故障为所述多个第二芯片中的目标芯片故障;
19.根据权利要求15或16所述的装置,其特征在于,所述故障为不可恢复的节点故障,所述设备侧重调度的芯片包括新加入的第三芯片。
20.根据权利要求19所述的装置,其特征在于,所述训练系统包括第一训练节点和第二训练节点,每个训练节点包括至少一个第一芯片和至少一个第二芯片,所述第一训练节点发生所述不可恢复的节点故障,所述第三芯片归属于新加入的第三训练节点,所述装置还包括部署于所述第一训练节点中第一芯片的执行结果保存模块和部署于所述第三训练节点中第一芯片的执行结果加载模块;
21.根据权利要求15至20任一项所述的装置,其特征在于,所述文件同步模块具体用于:
22.根据权利要求15至21任一项所述的装置,其特征在于,所述子任务以进程或线程方式执行。
23.一种调度器,其特征在于,所述调度器用于训练系统发生故障时进行故障处理,所述训练系统包括主机侧的第一芯片和设备侧的多个第二芯片,所述第一...
【技术特征摘要】
1.一种故障处理方法,其特征在于,应用于训练系统,所述训练系统包括主机侧的第一芯片和设备侧的多个第二芯片,所述第一芯片和所述多个第二芯片用于协同执行训练任务,所述训练任务包括第一子任务和多个第二子任务,所述第二子任务的执行依赖于所述第一子任务的执行结果,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述故障包括可恢复的芯片故障或不可恢复的节点故障。
3.根据权利要求1或2所述的方法,其特征在于,所述故障为可恢复的芯片故障,所述设备侧重调度的芯片包括复位后状态恢复正常的第二芯片。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述训练系统包括训练节点,所述训练节点包括第一芯片和多个第二芯片,所述故障为所述多个第二芯片中的目标芯片故障;
5.根据权利要求1或2所述的方法,其特征在于,所述故障为不可恢复的节点故障,所述设备侧重调度的芯片包括新加入的第三芯片。
6.根据权利要求5所述的方法,其特征在于,所述训练系统包括第一训练节点和第二训练节点,每个训练节点包括至少一个第一芯片和至少一个第二芯片,所述第一训练节点发生所述不可恢复的节点故障,所述第三芯片归属于新加入的第三训练节点,所述方法还包括:
7.根据权利要求1至6任一项所述的方法,其特征在于,所述第一芯片向所述设备侧重调度的芯片同步所述故障文件,包括:
8.根据权利要求1至7任一项所述的方法,其特征在于,所述子任务以进程或线程方式执行。
9.一种故障处理方法,其特征在于,应用于调度器,所述调度器用于训练系统发生故障时进行故障处理,所述训练系统包括主机侧的第一芯片和设备侧的多个第二芯片,所述第一芯片和所述多个第二芯片用于协同执行训练任务,所述训练任务包括第一子任务和多个第二子任务,所述第二子任务的执行依赖于所述第一子任务的执行结果,所述方法包括:
10.根据权利要求9所述的方法,其特征在于,所述故障为可恢复的芯片故障,所述方法还包括:
11.根据权利要求9或10所述的方法,其特征在于,所述训练系统包括训练节点,所述训练节点包括第一芯片和多个第二芯片,所述故障为所述多个第二芯片中的目标芯片故障,所述故障文件用于被所述第一芯片同步至复位后状态恢复正常的所述目标芯片。
12.根据权利要求9所述的方法,其特征在于,所述故障为不可恢复的节点故障,所述设备侧重调度的芯片包括新加入的第三芯片,所述方法还包括:
13.根据权利要求12所述的方法,其特征在于,所述训练系统包括第一训练节点和第二训练节点,每个训练节点包括至少一个第一芯片和至少一个第二芯片,所述第一训练节点发生所述不可恢复的节点故障;
14.根据权利要求9至13任一项所述的方法,其特征在于,所述子任务以进程或线程方式执行。
15.一种故障处理装置,其特征在于,所述装置部署于训练系统的主机侧的第一芯片,所述第一芯片和所述训练系统的设备侧的多个第二芯片用于协同执行训练任务,所述训练任务包括第一子任务和多个第二子任务,所述第二子任务的执行依赖于所述第一子任务的执行结果,所述装置包括:
16.根据权利要求15所述的装置,其特征在于,所述故障包括可恢复的芯片故障或不可恢复的节点故障。
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。