一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务执行方法及装置与流程

2023-02-10 18:07:53 来源:中国专利 TAG:

任务执行方法及装置
1.本公开要求于2021年07月16日提交的申请号为202110807311.9、发明名称为“一种机器学习方法以及装置”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。
技术领域
2.本技术涉及资源调度技术领域,特别涉及一种任务执行方法及装置。


背景技术:

3.近年来,越来越多的深度学习任务(deep learning task,dl task)采用深度神经网络(deep neural network,dnn)模型实现。然而,对于用于实现深度学习任务的人工智能系统,其不可避免地会需要执行并发的多个深度学习任务。如此以来,在人工智能系统有限的资源条件下,如何解决多个深度学习任务之间的资源争用问题,是目前亟待解决的问题。
4.相关技术中,可以对用于实现各个深度学习任务的深度神经网络模型进行压缩,然后使用压缩后的模型执行深度学习任务,以通过降低深度神经网络模型的计算需求的方式,减少深度学习任务使用的资源,从而达到减轻多个深度学习任务之间的资源争用情况。
5.但是,压缩后的深度神经网络模型的精度会降低,导致深度学习任务的实现效果受到影响。


技术实现要素:

6.本技术提供了一种任务执行方法及装置。本技术既能够从深度学习任务的调度方式上对深度学习任务的执行性能进行改进,还能够从用于实现深度学习任务的模型上对深度学习任务的执行性能进行改进,有效地提高了深度学习任务的执行性能。本技术提供的技术方案如下:
7.第一方面,本技术提供了一种任务执行方法,该方法包括:确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型;获取每个深度学习任务的执行策略,执行策略指示深度学习任务的调度方式和使用的模型变体,深度学习任务的模型变体基于用于实现深度学习任务的人工智能模型得到;基于每个深度学习任务的执行策略执行对应的深度学习任务。
8.在本技术提供的任务执行方法中,由于深度学习任务的执行策略指示所述深度学习任务的调度方式和使用的模型变体,其联合了对深度学习任务的调度方式和用于实现深度学习任务的模型,既能够从深度学习任务的调度方式上对深度学习任务的执行性能进行改进,还能够从用于实现深度学习任务的模型上对深度学习任务的执行性能进行改进,有效地提高了深度学习任务的执行性能。这样一来,能够使得待并发执行的多个深度学习任务能够在有限的资源条件下被更好地执行,使得资源能够更有效地被利用,既能够保证深度学习任务的实时性性能,又能保证深度学习任务的准确性性能,能够更好地保障用户体验。
9.由于执行策略指示深度学习任务的调度方式和使用的模型变体,则基于每个深度学习任务的执行策略执行对应的深度学习任务,可以包括:采用任一深度学习任务的执行策略指示的模型变体,按照任一深度学习任务的执行策略指示的调度方式,执行深度学习任务。
10.在一种可实现方式中,调度方式指示深度学习任务的执行优先级。由于用于实现深度学习任务的系统的资源有限,可以按照不同的执行优先级依次执行待并发执行的多个深度学习任务,从而保证该多个深度学习任务的实现性能。
11.进一步的,调度方式还指示与其他深度学习任务并行执行深度学习任务。其中,该其他深度学习任务可以为待并发执行的多个深度学习任务中的深度学习任务。通过并行执行深度学习任务,能够在满足深度学习任务的同时,提高对资源的利用率,如通过模型加速芯片等硬件资源实现深度学习任务时,可以提高对模型加速芯片等硬件资源的利用率。
12.可选的,其他深度学习任务基于深度学习任务和其他深度学习任务的资源占用情况确定。例如,在获取多个深度学习任务的执行策略的过程中,可以分别获取多个深度学习任务的资源占用情况,然后根据多个深度学习任务的资源占用情况,以较大化利用资源为原则,确定能够并行执行的深度学习任务。其中,深度学习任务的资源占用情况可以通过在预先执行深度学习任务的对资源利用情况进行测量得到。
13.可选的,深度学习任务可以包括多个子任务,在基于每个深度学习任务的执行策略执行对应的深度学习任务时,还可以分别针对深度学习任务包括的子任务执行。在一种可实现方式中,基于每个深度学习任务的执行策略执行对应的深度学习任务,包括:将每个深度学习任务划分为多个子任务;确定每个深度学习任务中每个子任务在多个深度学习任务包括的同类子任务中的优先级;基于每个深度学习任务的执行策略和子任务的优先级执行深度学习任务。
14.当分别针对深度学习任务包括的多个子任务执行深度学习任务时,能够根据子任务的优先级和深度学习任务的执行策略执行深度学习任务,更细化了深度学习任务的调度策略,进一步提高深度学习任务的执行性能。
15.在一种可实现方式中,深度学习任务的执行策略可以从多个候选执行策略中选择得到。例如,获取每个深度学习任务的执行策略,包括:对于任一深度学习任务,获取深度学习任务的多个候选执行策略,任两个候选执行策略指示的调度方式和模型变体中的至少一个不同;获取按照每个候选执行策略执行深度学习任务的性能数据;基于多个候选执行策略的性能数据,从多个候选执行策略中选择得到深度学习任务的执行策略。
16.其中,性能数据包括实时性数据,实时性数据用于指示深度学习任务的实时性,实时性是指深度学习任务是否能在规定期限内完成。实时性数据基于预训练的人工智能模型预测得到。
17.性能数据还包括准确性数据,准确性数据用于指示深度学习任务的准确性,准确性是指准确实现深度学习任务的概率。准确性数据基于候选执行策略指示的模型变体的精度得到。并且,在获取任意候选执行策略执行深度学习任务的准确性数据时,可以考虑多个深度学习任务的总体性能,比如考虑所有深度学习任务归一化准确性损失的总和,以便于达到整体最优性能。
18.可选的,任一候选执行策略执行深度学习任务的性能数据,可以通过按照该候选
执行策略执行深度学习任务测量得到。但如果对于每一个候选执行策略都通过实际执行来衡量性能,考虑到获取性能数据的代价会随着任务数量和模型变体个数呈指数型增长。因此,在本技术中,实时性数据可以基于预训练的人工智能模型(下面称为预测模型)预测得到,准确性数据可以基于候选执行策略指示的模型变体的精度得到。其中,可以采用实际测量的历史性能数据对预测模型进行训练,并采用经过训练的预测模型预测每个候选执行策略的实时性数据。
19.通过预测的方式得到实时性数据,一方面,可以大大加快获取实时性数据的速度,从而加快获取深度学习任务的执行策略的速度。另一方面,由于预测模型采用实际测量的历史性能数据进行训练,使得预测效果相比于现阶段的可调度分析等技术得到的实时性数据更贴近实际性能,有助于找到更有效的执行策略,从而更好地保障用户体验。
20.可选的,深度学习任务的执行策略指示的模型变体,基于对用于实现深度学习任务的人工智能模型进行压缩得到。其中,对人工智能模型进行压缩,能够通过压缩人工智能模型的结构减小实现深度学习任务的计算量,有助于对深度学习任务的灵活调度。可选的,在对人工智能模型进行压缩时,采用的压缩技术可以根据深度学习任务的任务特性决定。例如,对于图像处理类的深度学习任务,可以运用剪枝和量化等模型压缩技术进行模型压缩,对于语音处理类的深度学习任务,可以运用知识蒸馏等模型压缩技术进行模型压缩。
21.进一步的,对人工智能模型进行压缩后,还可以调整经过压缩的人工智能模型的权重参数,以便于恢复模型变体因为压缩损失的模型精度。其中,调整人工智能模型的权重参数可以在知识蒸馏技术的辅助下实现,以保证调整权重参数的人工智能模型的性能。
22.第二方面,本技术提供了一种任务执行装置,该装置包括:确定模块,用于确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型;获取模块,用于获取每个深度学习任务的执行策略,执行策略指示深度学习任务的调度方式和使用的模型变体,深度学习任务的模型变体基于用于实现深度学习任务的人工智能模型得到;执行模块,用于基于每个深度学习任务的执行策略执行对应的深度学习任务。
23.可选的,执行模块,具体用于:采用任一深度学习任务的执行策略指示的模型变体,按照任一深度学习任务的执行策略指示的调度方式,执行深度学习任务。
24.可选的,调度方式指示深度学习任务的执行优先级。
25.可选的,调度方式还指示与其他深度学习任务并行执行深度学习任务。
26.可选的,其他深度学习任务基于深度学习任务和其他深度学习任务的资源占用情况确定。
27.可选的,执行模块,具体用于:将每个深度学习任务划分为多个子任务;确定每个深度学习任务中每个子任务在多个深度学习任务包括的同类子任务中的优先级;基于每个深度学习任务的执行策略和子任务的优先级执行深度学习任务。
28.可选的,获取模块,具体用于:对于任一深度学习任务,获取深度学习任务的多个候选执行策略,任两个候选执行策略指示的调度方式和模型变体中的至少一个不同;获取按照每个候选执行策略执行深度学习任务的性能数据;基于多个候选执行策略的性能数据,从多个候选执行策略中选择得到深度学习任务的执行策略。
29.可选的,性能数据包括实时性数据,实时性数据基于预训练的人工智能模型预测得到。
30.可选的,性能数据包括准确性数据,准确性数据基于候选执行策略指示的模型变体的精度得到。
31.可选的,深度学习任务的执行策略指示的模型变体,基于对用于实现深度学习任务的人工智能模型进行压缩得到。
32.可选的,深度学习任务的执行策略指示的模型变体,基于对用于实现深度学习任务的人工智能模型进行压缩,及调整经过压缩的人工智能模型的权重参数得到。
33.第三方面,本技术提供了一种计算机设备,包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
34.第四方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算机设备上运行时,使得计算机设备执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
35.第五方面,本技术提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
附图说明
36.图1是本技术实施例提供的一种任务执行方法涉及的应用场景的示意图;
37.图2是本技术实施例提供的一种任务执行方法涉及的应用场景中计算机设备的部署示意图;
38.图3是本技术实施例提供的又一种任务执行方法涉及的应用场景的示意图;
39.图4是本技术实施例提供的一种任务执行方法的流程图;
40.图5是本技术实施例提供的一种获取深度学习任务的执行策略的方法流程图;
41.图6是本技术实施例提供的一种通过第一计算机设备、第二计算机设备和第三计算机设备合作获取深度学习任务的执行策略的原理示意图;
42.图7是本技术实施例提供的一种第二计算机设备获取执行策略的原理示意图;
43.图8是本技术实施例提供的一种按照子任务执行深度学习任务的方法流程图;
44.图9是本技术实施例提供的一种第三计算机设备执行深度学习任务的原理示意图;
45.图10是本技术实施例提供的一种任务执行装置的结构示意图;
46.图11是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
47.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
48.本技术实施例提供了一种任务执行方法。在该任务执行方法中,需要先确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型,然后,获取每个深度学习任务的执行策略,再基于每个深度学习任务的执行策略执行对应的深度学习任
务。
49.由于深度学习任务的执行策略指示所述深度学习任务的调度方式和使用的模型变体,其联合了对深度学习任务的调度方式和用于实现深度学习任务的模型,既能够从深度学习任务的调度方式上对深度学习任务的执行性能进行改进,还能够从用于实现深度学习任务的模型上对深度学习任务的执行性能进行改进,有效地提高了深度学习任务的执行性能。这样一来,能够使得待并发执行的多个深度学习任务能够在有限的资源条件下被更好地执行,使得资源能够更有效地被利用,既能够保证深度学习任务的实时性性能,又能保证深度学习任务的准确性性能,能够更好地保障用户体验。
50.图1是本技术实施例提供的一种任务执行方法涉及的应用场景的示意图。如图1所示,该应用场景包括:第一计算机设备10、第二计算机设备20和第三计算机设备30。第三计算机设备30与第一计算机设备10和第二计算机设备20均通过通信通路连接。第一计算机设备10、第二计算机设备20和第三计算机设备30中的一个或多个可以为一台独立的计算机设备,也可以为包括多台计算机的计算机集群。可选地,第三计算机设备30、第一计算机设备10和第二计算机设备20均可以通过显卡、ai计算芯片、物理机、裸金属服务器或云服务器等实现。
51.第一计算机设备10用于确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型,获取每个人工智能模型的多个模型变体,并向第二计算机设备20提供用于实现每个深度学习任务的人工智能模型的多个模型变体或其信息。模型变体的信息可以为模型变体的标识和准确度等。其中,人工智能模型的模型变体基于该人工智能模型得到。例如,人工智能模型的模型变体可以通过对该人工智能模型进行模型压缩得到。或者,人工智能模型的模型变体可以通过对该人工智能模型进行模型压缩,并调整经过模型压缩的人工智能模型的权重参数得到。
52.第二计算机设备20用于根据每个深度学习任务的性能要求,及用于实现每个深度学习任务的人工智能模型的多个模型变体或其信息,确定每个深度学习任务的执行策略,并向第三计算机设备30提供每个深度学习任务的执行策略。其中,任一深度学习任务的所述执行策略指示所述深度学习任务的调度方式和使用的模型变体。
53.第三计算机设备30用于基于第二计算机设备20提供的深度学习任务的执行策略,执行对应的深度学习任务。
54.需要说明的是,该实施场景包括第一计算机设备10、第二计算机设备20和第三计算机设备30仅为该实施场景的一种实现形态,实现该任务执行方法时可以根据需求对该实施场景的实现形态进行调整。例如,该第一计算机设备10、第二计算机设备20和第三计算机设备30的功能可以通过同一计算机设备实现,或者,该实施场景还可以包括更多个计算机设备,第一计算机设备10、第二计算机设备20和第三计算机设备30中一个或多个计算机设备的部分功能可以由该更多个计算机设备中的一个或多个实现,本技术实施例对其不做具体限定。
55.下面以图1所示的应用场景为例,对其部署方式进行举例说明。第一计算机设备10、第二计算机设备20和第三计算机设备30的部署方式较为灵活。第一计算机设备10、第二计算机设备20和第三计算机设备30可以采用分布式方式部署,或者采用集中式部署。例如,当第一计算机设备10、第二计算机设备20和第三计算机设备30均为显卡或ai计算芯片时,
第一计算机设备10、第二计算机设备20和第三计算机设备30可以分布式地部署在不同的主机上,或者,集中式地部署在同一主机上。或者,第一计算机设备10、第二计算机设备20和第三计算机设备30中的任意两个可以采用集中式部署,第一计算机设备10、第二计算机设备20和第三计算机设备30中的另外一个相对于该任意两个采用分布式部署。
56.并且,当第一计算机设备10、第二计算机设备20和第三计算机设备30采用分布式方式部署时,第一计算机设备10、第二计算机设备20和第三计算机设备30可以分布式地部署在同一资源环境中,也可以分布式地部署在不同的资源环境中。例如,中心云平台中部署有云服务提供商拥有的大量基础资源,如计算资源、存储资源和网络资源等,且该计算资源可以是大量的计算设备(例如服务器),则第一计算机设备10、第二计算机设备20和第三计算机设备30可以利用该中心云平台中部署的基础资源实现,即第一计算机设备10、第二计算机设备20和第三计算机设备30可以均部署在中心云平台中。又例如,边缘云平台中也部署有云服务提供商拥有的基础资源,则第一计算机设备10、第二计算机设备20和第三计算机设备30可以全部部署在边缘云平台。或者,第一计算机设备10、第二计算机设备20和第三计算机设备30可以部分部署在中心云平台,部分部署在边缘云平台。示例的,如图2所示,第一计算机设备10和第二计算机设备20部署在中心云平台,第三计算机设备30部署在边缘云平台。当第一计算机设备10、第二计算机设备20和第三计算机设备30中至少部分部署在边缘云平台时,由于边缘云平台距离用户较近,能够有效缓解数据隐私和网络传输延时的问题。
57.并且,当第一计算机设备10、第二计算机设备20和第三计算机设备30部署在云平台中时,如图3所示,本技术实施例提供的任务执行方法能够由云服务提供商在云平台1抽象成一种执行云服务提供给用户。用户在云平台1购买该执行云服务后,云平台1能够利用部署在云平台1的第一计算机设备10、第二计算机设备20和第三计算机设备30,向用户提供执行云服务。其中,购买执行云服务的方式可以包括:先预充值再根据最终资源的实际使用情况进行结算,或者,可以按提供执行云服务的时间结算。
58.在一种实现方式中,执行云服务可以为云平台提供的云服务中的一项独立的云服务。即用户可以在云平台独立地购买该执行云服务。此时,用户可以向云平台请求执行深度学习任务,云平台根据其接收到的待并发执行的多个深度学习任务,执行本技术实施例提供的任务执行方法,从而为用户提供执行深度学习任务的执行云服务。当执行云服务为一项独立的云服务时,能够降低执行云服务对业务的依赖程度,提高了执行云服务的购买和使用的灵活度。
59.在另一种实现方式中,执行云服务的功能可以作为其他服务的附加功能提供。例如,其他服务中的部分功能需要通过深度学习任务实现,此时,可以通过该执行云服务实现该部分功能。并且,执行云服务可以为其他服务的一项可选功能。用户在购买提供其他服务时,可以根据用户的业务需求选择是否购买该执行云服务,当用户购买该执行云服务时,在提供该其他服务的过程中可以采用云平台的资源为用户提供该执行云服务。为其中,该其他服务也可以为云服务,本技术实施例对其不做具体限定。
60.应当理解的是,以上内容是对本技术实施例提供的任务执行方法的应用场景的示例性说明,并不构成对于该事件分析方法的应用场景的限定,本领域普通技术人员可知,随着业务需求的改变,其应用场景可以根据应用需求进行调整,本技术实施例对其不做一一
列举。
61.下面对本技术实施例提供的任务执行方法的实现过程进行说明。如图4所示,该任务执行方法的实现过程可以包括以下步骤:
62.步骤401、确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型。
63.用于实现深度学习任务的系统(如人工智能系统)通常需要同时执行多个深度学习任务。例如,在云视频直播场景中,云视频处理边缘平台需要同时执行人脸识别、画质增强、美颜特效和换脸任务等多个深度学习任务。该需要同时执行的多个深度学习任务即为待并发执行的多个深度学习任务。该系统中的第一计算机设备能够确定待并发执行的多个深度学习任务,并根据该多个深度学习任务确定用于实现每个深度学习任务的人工智能模型。深度学习任务具有任务属性和任务需求,任务属性可以指示深度学习任务采用的人工智能模型,任务需求可以指示深度学习任务的实时性和准确性要求。例如,人脸识别的深度学习任务的实时性要求指示需要在50毫秒(ms)内完成,且任务按时完成率不低于10%,画质增强的深度学习任务需要在100ms内完成,且任务按时完成率不低于15%。其中,深度学习任务是通过执行深度学习算法实现一定功能的任务。本技术实施例中的深度学习任务可以是实时深度学习任务。实时深度学习任务是具有实时性能要求的深度学习任务。用于实现深度学习任务的人工智能模型可以为深度神经网络。深度神经网络是深度学习的一种框架,是具备至少一个隐层的神经网络。
64.步骤402、获取每个深度学习任务的执行策略。
65.其中,执行策略指示深度学习任务的调度方式和使用的模型变体。调度方式用于指示如何对用于实现深度学习任务的资源进行调度,以实现深度学习任务。在一种可实现方式中,调度方式可以指示深度学习任务的执行优先级。由于用于实现深度学习任务的系统的资源有限,可以按照不同的执行优先级依次执行待并发执行的多个深度学习任务,从而保证该多个深度学习任务的实现性能。
66.可选的,调度方式还可以指示与其他深度学习任务并行执行深度学习任务。其中,其他深度学习任务基于深度学习任务和其他深度学习任务的资源占用情况确定,且该其他深度学习任务可以为待并发执行的多个深度学习任务中的深度学习任务。在获取多个深度学习任务的执行策略的过程中,可以分别获取多个深度学习任务的资源占用情况,然后根据多个深度学习任务的资源占用情况,以较大化利用资源为原则,确定能够并行执行的深度学习任务。其中,深度学习任务的资源占用情况可以通过在预先执行深度学习任务的对资源利用情况进行测量得到。并且,指示并行执行多个深度学习任务的实现方式可以包括:将需要并行执行的多个深度学习任务分配到同一任务流中,使得处理其根据任务流的指示并行执行该多个深度学习任务。
67.例如,假设深度学习任务1的资源利用率为47%,深度学习任务2的资源利用率为49%,深度学习任务3的资源利用率为30%,深度学习任务4的资源利用率为67%,根据其可知将深度学习任务1和深度学习任务2并行执行时,两者的资源利用率之和约为96%,可知将深度学习任务3和深度学习任务4并行执行时,两者的资源利用率之和约为97%。通过按照这样的并行方式执行深度学习任务时,既能够较大化利用资源,又能够保证不会因资源争用影响任务的执行性能。因此,可以将深度学习任务1和深度学习任务2并行,将深度学习
任务3和深度学习任务4并行执行。
68.通过并行执行深度学习任务,能够在满足深度学习任务的同时,提高对资源的利用率,如通过模型加速芯片等硬件资源实现深度学习任务时,可以提高对模型加速芯片等硬件资源的利用率。
69.深度学习任务的模型变体可以基于用于实现深度学习任务的人工智能模型得到。在一种可实现方式中,深度学习任务的执行策略指示的模型变体,可以基于对用于实现深度学习任务的人工智能模型进行压缩得到。其中,对人工智能模型进行压缩,能够通过压缩人工智能模型的结构减小实现深度学习任务的计算量,有助于对深度学习任务的灵活调度。可选的,在对人工智能模型进行压缩时,采用的压缩技术可以根据深度学习任务的任务特性决定。例如,对于图像处理类的深度学习任务,可以运用剪枝和量化等模型压缩技术进行模型压缩,对于语音处理类的深度学习任务,可以运用知识蒸馏等模型压缩技术进行模型压缩。
70.并且,同一深度学习任务可以具有多个模型变体,执行策略指示的模型变体为该多个模型变体中的一个。该多个模型变体可以具有不同的大小、精度和时延,能够满足不同的任务需求。该多个模型变体可以通过对人工智能模型进行不同压缩程度的压缩得到。例如,对于一个原始大小为80兆比特(mb),精度为85.9%的视觉几何组网络(visual geometry group network,vgg)模型,可以通过压缩技术对其进行多个压缩程度的压缩操作,得到模型大小分别为71mb、60mb和52mb,精度分别为84.5%、83.6%和82%的三个模型变体。其中,多个模型变体的压缩程度可以根据应用需求确定。例如,可以按照默认或指定的程度差值依次对人工智能模型进行逐级压缩,得到人工智能模型的多个模型变体。或者,可以根据深度学习任务的任务需求自适应地确定多个模型变体的压缩程度。
71.在一些场景中,深度学习任务可以有多个等级的任务需求,则该深度学习任务在不同等级可以分别有多个模型变体。例如,在云视频直播场景中,用户可以在标清、高清和超清模式等多个模式中选择,以享受不同品质的服务,则对于该云视频直播场景的深度学习任务,可以分别针对该多个模式,为该深度学习任务设置每个模式下的最高精度损失容忍度,并在不超过每个模式下的最高精度损失容忍度的前提下,分别生成多个模型变体,以保障用户体验。
72.进一步的,对人工智能模型进行压缩后,还可以调整经过压缩的人工智能模型的权重参数,以便于恢复模型变体因为压缩损失的模型精度。也即是,学习任务的执行策略指示的模型变体,可以基于对用于实现深度学习任务的人工智能模型进行压缩,并调整经过压缩的人工智能模型的权重参数得到。其中,调整人工智能模型的权重参数可以在知识蒸馏技术的辅助下实现,以保证调整权重参数的人工智能模型的性能。并且,在获取模型变体的过程中,除了对人工智能模型进行压缩和调整权重参数,还可以对人工智能模型进行一些预处理,且预处理的方式可以根据应用需求确定,本技术实施例对其不做具体限定。
73.可选的,每个深度学习任务的执行策略可以从多个候选执行策略中选择得到。在一种可实现方式中,如图5所示,获取每个深度学习任务的执行策略的实现过程,可以包括:
74.步骤4021、对于任一深度学习任务,获取深度学习任务的多个候选执行策略。
75.其中,任两个候选执行策略指示的调度方式和模型变体中的至少一个不同。调度方式可以指示深度学习任务的执行优先级,则对于任一深度学习任务,可以将该深度学习
任务的执行优先级与该深度学习任务的不同模型变体进行组合,得到该深度学习任务的多个候选策略。并且,深度学习任务的优先级可以为深度学习任务的固有属性,如深度学习任务的优先级可以等于请求执行该深度学习任务的用户的优先级。
76.步骤4022、获取按照每个候选执行策略执行深度学习任务的性能数据。
77.其中,性能数据包括实时性数据和准确性数据。实时性数据用于指示深度学习任务的实时性,实时性是指深度学习任务是否能在规定期限内完成。准确性数据用于指示深度学习任务的准确性,准确性是指准确实现深度学习任务的概率。并且,在获取任意候选执行策略执行深度学习任务的准确性数据时,可以考虑多个深度学习任务的总体性能,比如考虑所有深度学习任务归一化准确性损失的总和,以便于达到整体最优性能。
78.可选的,任一候选执行策略执行深度学习任务的性能数据,可以通过按照该候选执行策略执行深度学习任务测量得到。但如果对于每一个候选执行策略都通过实际执行来衡量性能,考虑到获取性能数据的代价会随着任务数量和模型变体个数呈指数型增长。因此,在本技术实施例中,实时性数据可以基于预训练的人工智能模型(下面称为预测模型)预测得到,准确性数据可以基于候选执行策略指示的模型变体的精度得到。其中,可以采用实际测量的历史性能数据对预测模型进行训练,并采用经过训练的预测模型预测每个候选执行策略的实时性数据。
79.通过预测的方式得到实时性数据,一方面,可以大大加快获取实时性数据的速度,从而加快获取深度学习任务的执行策略的速度。另一方面,由于预测模型采用实际测量的历史性能数据进行训练,使得预测效果相比于现阶段的可调度分析等技术得到的实时性数据更贴近实际性能,有助于找到更有效的执行策略,从而更好地保障用户体验。
80.步骤4023、基于多个候选执行策略的性能数据,从多个候选执行策略中选择得到深度学习任务的执行策略。
81.获取深度学习任务的多个候选执行策略的性能数据后,可以将性能数据反映的具有最优性能的候选执行策略,确定为该深度学习任务的执行策略。需要说明的是,以上对步骤402的实现过程的说明,是以执行策略指示所述深度学习任务的执行优先级和使用的模型变体为例进行说明的,当该执行策略还指示其他内容(如与深度学习任务并行执行的其他深度学习任务)时,该步骤402的实现过程可以相应参考上述描述,此处不再赘述。
82.其中,该步骤4021至步骤4023的过程可以视为迭代优化过程,该迭代优化过程可以针对不同的模型变体分别按照不同的优先级执行深度学习任务,然后根据执行深度学习任务的准确性和实时性的结果,确定结果最好的模型变体与优先级的组合,从而得到深度学习任务的执行策略。其中,在该迭代优化过程中,当按照候选执行策略得到的深度学习任务的实时性和准确性的收益不在增加时,可以停止寻优,并将停止寻优时的候选执行策略确定为深度学习任务的执行策略。通过该迭代优化过程确定深度学习任务的执行策略,能够最小化所有深度学习任务的准确度损失比率,能够在保证深度学习任务的实现效果的基础上,减轻多个深度学习任务之间的资源争用情况,满足用户对深度学习任务的性能要求。
83.并且,该步骤402可以通过第一计算机设备和第二计算机设备合作实现。作为一种可实现方式,第一计算机设备10用于确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型,获取每个人工智能模型的多个模型变体,并向第二计算机设备20提供用于实现每个深度学习任务的人工智能模型的多个模型变体或其信息。第二
计算机设备20用于根据每个深度学习任务的性能要求,及用于实现每个深度学习任务的人工智能模型的多个模型变体或其信息,确定每个深度学习任务的多个候选执行策略,获取每个候选执行策略的性能数据,然后基于多个候选执行策略的性能数据,从多个候选执行策略中选择得到深度学习任务的执行策略。
84.或者,该步骤402可以通过第一计算机设备、第二计算机设备和第三计算机设备合作实现。作为一种可实现方式,第一计算机设备和第二计算机设备的功能,请相应参考步骤402同第一计算机设备和第二计算机设备合作实现时对应的描述。并且,在该实现方式中,第二计算机设备还用于向第三计算机设备提供多个候选执行策略,第三计算机设备用于获取多个候选执行策略的性能数据,并向第二计算机设备提供该多个候选执行策略的性能数据。
85.其中,图6为通过第一计算机设备、第二计算机设备和第三计算机设备合作实现步骤402的原理示意图。图7为第二计算机设备实现相关功能的原理示意图。如图6所示,第一计算机设备10获取多个深度学习任务及用于实现深度学习任务的人工智能模型后,可以生成每个人工智能模型的多个模型变体,并向第二计算机设备20提供用于实现每个深度学习任务的人工智能模型的多个模型变体或其信息。第二计算机设备20用于根据每个深度学习任务的性能要求,及用于实现每个深度学习任务的人工智能模型的多个模型变体或其信息,确定每个深度学习任务的多个候选执行策略,并向第三计算机设备30提供候选执行策略,使得第三计算机设备30向第二计算机设备反馈候选执行策略的性能数据。相应的,第二计算机设备20可以根据该性能数据在多个候选执行策略中确定深度学习任务的执行策略,并向第三计算机设备30提供每个深度学习任务的执行策略。第三计算机设备30用于基于第二计算机设备20提供的深度学习任务的执行策略,执行对应的深度学习任务。
86.其中,如图7所示,第二计算机设备20包括三个输入,包括初始化阶段的两个输入和在迭代寻优过程中的输入,初始化阶段的两个输入为:i.多个深度学习任务的实时性和准确性要求,这一部分可以由用户指定;ii.第一计算机的输出,即各个深度学习任务的多个模型变体。可选的,第二计算机设备20可以无需存储模型变体,而存储每个模型变体的信息(即如图7所示),如模型变体的准确度。第二计算机设备20在迭代寻优过程中的输入为第三计算机设备30提供的候选执行策略的性能数据。第二计算机设备20的输出为候选执行策略和最终确定的满足性能要求的执行策略。其中,如图7所示,迭代寻优执行策略的过程可以由第二计算机设备20中的执行策略迭代优化模块201执行。
87.应当理解的是,上述通过第一计算机设备和第二计算机设备合作实现步骤402,及通过第一计算机设备、第二计算机设备和第三计算机设备合作实现步骤402,仅为示例性的说明,实际实现时可以根据需求调整各个计算机设备实现的功能。并且,本技术实施例提供的任务执行方法的应用场景还可以有其他实现形式,且当应用场景为其他实现形式时,实现该步骤402的过程也可以根据需求做出相应的调整,本技术实施例对其不做一一例举。
88.步骤403、基于每个深度学习任务的执行策略执行对应的深度学习任务。
89.获取每个深度学习任务的执行策略后,即可基于每个深度学习任务的执行策略执行对应的深度学习任务。例如,采用任一深度学习任务的执行策略指示的模型变体,按照任一深度学习任务的执行策略指示的调度方式,执行深度学习任务。
90.可选的,深度学习任务可以包括多个子任务,在基于每个深度学习任务的执行策
略执行对应的深度学习任务时,还可以分别针对深度学习任务包括的子任务执行。在一种可实现方式中,如图8所示,该步骤403的实现过程包括:
91.步骤4031、将每个深度学习任务划分为多个子任务。
92.深度学习任务通常包括多个执行单元,该多个执行单元分别实现深度学习任务的不同功能。例如,深度学习任务可以包括前处理执行单元,中间处理执行单元和后处理执行单元。则可以按照深度学习任务包括的执行单元的属性,将深度学习任务划分为多个子任务。其中,执行单元的属性可以按照以下一种或多种进行区分:执行单元的执行主体和执行单元的任务性质。例如,可以按照执行单元的执行主体是cpu还是gpu,或者,按照执行单元的任务性质是神经网络推理还是非神经网络推理,将深度学习任务划分为多个子任务。例如,对于一个云视频直播任务,整个任务不单包括神经网络模型推理部分,还包括非神经网络推理部分。比如送礼物的任务部分属于神经网络模型推理部分,其需要根据视频流进行人脸识别,而人脸识别后的叠加礼物特效的任务部分属于非神经网络推理部分。当按照任务属性对该云视频直播任务进行划分时,可以将云视频直播任务分为神经网络推理部分和其他非神经网络推理部分,且神经网络推理部分可由云视频直播边缘服务器上的神经网络加速模块进行加速,其他非神经网络推理部分可以由边缘服务器上的中央处理器处理。
93.步骤4032、确定每个深度学习任务中每个子任务在多个深度学习任务包括的同类子任务中的优先级。
94.在将深度学习任务划分为多个子任务后,可以分别确定每个子任务的优先级,并按照多个深度学习任务中每个子任务的优先级,确定每个子任务在多个深度学习任务包括的同类子任务中的优先级,并按照每个子任务在多个深度学习任务包括的同类子任务中的优先级,对每一类子任务包括的多个子任务进行排队。其中,深度学习任务的子任务的优先级可以等于深度学习任务的优先级。并且,对每一类子任务包括的多个子任务进行排队,可以通过将每一类子任务包括的多个子任务加入对应类子任务的执行队列中实现。例如,深度学习任务1和深度学习任务2均包括使用cpu执行的子任务和使用gpu执行的子任务,且深度学习任务1的优先级高于深度学习任务2的优先级,则可以将深度学习任务1和深度学习任务2的使用cpu执行的子任务加入到cpu子任务队列中,且在该cpu子任务队列中,深度学习任务1使用cpu执行的子任务位于深度学习任务2使用cpu执行的子任务前面,将深度学习任务1和深度学习任务2的使用gpu执行的子任务加入到gpu子任务队列中,且在该gpu子任务队列中,深度学习任务1使用gpu执行的子任务位于深度学习任务2使用gpu执行的子任务前面。
95.步骤4033、基于每个深度学习任务的执行策略和子任务的优先级执行深度学习任务。
96.在确定每个深度学习任务的执行策略,及每个深度学习任务中每个子任务在多个深度学习任务包括的同类子任务中的优先级后,即可以按照每个深度学习任务的执行策略和子任务的优先级执行深度学习任务。当分别针对深度学习任务包括的多个子任务执行深度学习任务时,能够根据子任务的优先级和深度学习任务的执行策略执行深度学习任务,更细化了深度学习任务的调度策略,进一步提高深度学习任务的执行性能。
97.其中,该步骤403可以由第三计算机设备执行。图9为本技术实施例提供的一种第三计算机设备实现步骤403的原理示意图。如图9所示,第三计算机设备可以获取多个深度
学习任务,接收第一计算机设备提供的每个深度学习任务的多个模型变体,并接收第二计算机设备提供的每个深度学习任务的执行策略。第三计算机设备在执行任务深度学习任务时,一方面可以根据该深度学习任务的执行策略,在该深度学习任务的多个模型变体中选择执行策略指示的模型变体,另一方面可以将深度学习任务划分为子任务,并确认子任务在多个深度学习任务包括的同类子任务中的优先级,然后按照每个子任务的优先级,采用选择的模型变体执行对应的子任务,并输出执行深度学习任务的性能数据。其中,当执行策略还指示与深度学习任务并行执行的其他深度学习任务时,还可以按照其指示并行执行该深度学习任务和其他深度学习任务。可选的,第三计算机设备30的以上功能可以通过多个功能模块实现,如通过选择模块301按照执行策略在深度学习任务的多个模型变体中选择执行策略指示的模型变体,通过划分模块302将深度学习任务划分为子任务,通过队列模块303确认子任务在多个深度学习任务包括的同类子任务中的优先级,通过执行模块304按照优先级执行(或并行执行)深度学习任务,通过输出模块305输出执行深度学习任务的性能数据。
98.综上所述,在本技术实施例提供的任务执行方法中,由于深度学习任务的执行策略指示所述深度学习任务的调度方式和使用的模型变体,其联合了对深度学习任务的调度方式和用于实现深度学习任务的模型,既能够从深度学习任务的调度方式上对深度学习任务的执行性能进行改进,还能够从用于实现深度学习任务的模型上对深度学习任务的执行性能进行改进,有效地提高了深度学习任务的执行性能。这样一来,能够使得待并发执行的多个深度学习任务能够在有限的资源条件下被更好地执行,使得资源能够更有效地被利用,既能够保证深度学习任务的实时性性能,又能保证深度学习任务的准确性性能,能够更好地保障用户体验。
99.需要说明的是,本技术实施例提供的任务执行方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本技术的保护范围之内,因此不再赘述。
100.本技术实施例还提供了一种任务执行装置。如图10所示,该任务执行装置100包括:
101.确定模块101,用于确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型。
102.获取模块102,用于获取每个深度学习任务的执行策略,执行策略指示深度学习任务的调度方式和使用的模型变体,深度学习任务的模型变体基于用于实现深度学习任务的人工智能模型得到。
103.执行模块103,用于基于每个深度学习任务的执行策略执行对应的深度学习任务。
104.可选的,执行模块103,具体用于:采用任一深度学习任务的执行策略指示的模型变体,按照任一深度学习任务的执行策略指示的调度方式,执行深度学习任务。
105.可选的,调度方式指示深度学习任务的执行优先级。
106.可选的,调度方式还指示与其他深度学习任务并行执行深度学习任务。
107.可选的,其他深度学习任务基于深度学习任务和其他深度学习任务的资源占用情况确定。
108.可选的,执行模块103,具体用于:将每个深度学习任务划分为多个子任务;确定每个深度学习任务中每个子任务在多个深度学习任务包括的同类子任务中的优先级;基于每个深度学习任务的执行策略和子任务的优先级执行深度学习任务。
109.可选的,获取模块102,具体用于:对于任一深度学习任务,获取深度学习任务的多个候选执行策略,任两个候选执行策略指示的调度方式和模型变体中的至少一个不同;获取按照每个候选执行策略执行深度学习任务的性能数据;基于多个候选执行策略的性能数据,从多个候选执行策略中选择得到深度学习任务的执行策略。
110.可选的,性能数据包括实时性数据,实时性数据基于预训练的人工智能模型预测得到。
111.可选的,性能数据包括准确性数据,准确性数据基于候选执行策略指示的模型变体的精度得到。
112.可选的,深度学习任务的执行策略指示的模型变体,基于对用于实现深度学习任务的人工智能模型进行压缩得到。
113.可选的,深度学习任务的执行策略指示的模型变体,基于对用于实现深度学习任务的人工智能模型进行压缩,及调整经过压缩的人工智能模型的权重参数得到。
114.综上所述,在本技术实施例提供的任务执行装置中,由于深度学习任务的执行策略指示所述深度学习任务的调度方式和使用的模型变体,其联合了对深度学习任务的调度方式和用于实现深度学习任务的模型,既能够从深度学习任务的调度方式上对深度学习任务的执行性能进行改进,还能够从用于实现深度学习任务的模型上对深度学习任务的执行性能进行改进,有效地提高了深度学习任务的执行性能。这样一来,能够使得待并发执行的多个深度学习任务能够在有限的资源条件下被更好地执行,使得资源能够更有效地被利用,既能够保证深度学习任务的实时性性能,又能保证深度学习任务的准确性性能,能够更好地保障用户体验。
115.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应内容,在此不再赘述。
116.本技术实施例提供了一种计算机设备。该计算机设备包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本技术提供的任务执行方法或执行本技术提供的任务执行方法的任一步骤。例如,执行以下过程:确定待并发执行的多个深度学习任务,及用于实现每个深度学习任务的人工智能模型;获取每个深度学习任务的执行策略,执行策略指示深度学习任务的调度方式和使用的模型变体,深度学习任务的模型变体基于用于实现深度学习任务的人工智能模型得到;基于每个深度学习任务的执行策略执行对应的深度学习任务。并且,计算机设备通过执行存储器中的程序指令,执行本技术提供的任务执行方法的步骤的实现过程可以相应参考上述方法实施例中对应的描述。
117.图11是本技术实施例提供的一种计算机设备11的结构示意图。如图11所示,该计算机设备11包括存储器111、处理器112、通信接口113以及总线114。其中,存储器111、处理器112、通信接口113通过总线114实现彼此之间的通信连接。并且,该计算机设备11可以包括多个处理器112,以便于通过不同的处理器实现上述不同功能模块的功能。
118.存储器111可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器111可以存储可执行代码
序,当存储器111中存储的可执行代码被处理器112执行时,处理器112和通信接口113用于执行本技术实施例提供的任务执行方法。存储器111中还可以包括操作系统等其他运行进程所需的软件模块和数据等。
119.处理器112可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路。
120.处理器112还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的任务执行方法的部分或全部功能可以通过处理器112中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器112还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器111,处理器112读取存储器111中的信息,结合其硬件完成本技术实施例的任务执行方法。
121.通信接口113使用例如但不限于收发器一类的收发模块,来实现计算机设备11与其他设备或通信网络之间的通信。例如,通信接口113可以是以下器件的任一种或任一种组合:网络接口(如以太网接口)、无线网卡等具有网络接入功能的器件。
122.总线114可包括在计算机设备11各个部件(例如,存储器111、处理器112、通信接口113)之间传送信息的通路。
123.需要说明的是,当该计算机设备为客户端时,该计算机设备还包括显示屏,该显示屏用于显示程序开发平台的图形用户界面。
124.上述每个计算机设备11间通过通信网络建立通信通路。每个计算机设备11用于实现本技术实施例提供的任务执行方法的部分功能。任一计算机设备11可以为云数据中心中的计算机设备(例如:服务器),或边缘数据中心中的计算机设备等。
125.上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
126.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。提供程序开发平台的计算机程序产品包括一个或多个计算机指令,在计算机设备上加载和执行这些计算机程序指令时,全部或部分地实现本技术实施例提供的任务执行方法的流程或功能。
127.计算机设备可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质存储有提供程序开发平台的计算机程序指令。
128.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算机设备上运行时,使得计算机设备执行如本技术实施例提供的任务执行方法。
129.本技术实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术实施例提供的任务执行方法。
130.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
131.在本技术实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。
132.本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
133.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献