CN116643877A - 算力资源调度方法、算力资源调度模型的训练方法和系统 - Google Patents

算力资源调度方法、算力资源调度模型的训练方法和系统 Download PDF

Info

Publication number
CN116643877A
CN116643877A CN202310486015.2A CN202310486015A CN116643877A CN 116643877 A CN116643877 A CN 116643877A CN 202310486015 A CN202310486015 A CN 202310486015A CN 116643877 A CN116643877 A CN 116643877A
Authority
CN
China
Prior art keywords
scheduling
data
model
power resource
training
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
Application number
CN202310486015.2A
Other languages
English (en)
Inventor
张家珲
郑丹丹
刘园柳
伍科宇
何晓光
宋征轩
魏博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202310486015.2A priority Critical patent/CN116643877A/zh
Publication of CN116643877A publication Critical patent/CN116643877A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书提供的算力资源调度方法、算力资源调度模型的训练方法和系统,在获得本地设备在当前状态下的状态数据后,将状态数据输入至算力资源调度模型,以得到当前状态下的调度数据,所述调度数据中包括目标调度操作的操作数据,以及,基于操作数据,执行目标调度操作,以在本地设备进行算力资源调度;该方案可以提升算力资源调度的调度效率。

Description

算力资源调度方法、算力资源调度模型的训练方法和系统
技术领域
本说明书涉及算力资源调度领域,尤其涉及一种算力资源调度方法、算力资源调度模型的训练方法和系统。
背景技术
不同设备的芯片类型、内存大小上往往存在一些差异,使得不同设备的算力差别很大。设备在执行任务时,尤其是对于算力不足的设备,通过调度算力资源,可以有效减少设备执行任务时的链路耗时。
目前,对于不同的设备,可以基于先验经验手动调整算力分配,但是,算力资源调度的参数空间大,遍历这些参数往往需费时费力,导致算力资源调度的效率较低,因此,需要提供一种调度效率更高的算力资源调度方法。
发明内容
本说明书提供一种调度效率更高的算力资源调度方法、算力资源调度模型的训练方法和系统。
第一方面,本说明书提供一种算力资源调度方法,包括:获得所述本地设备在当前状态下的状态数据;将所述状态数据输入至算力资源调度模型,以得到所述当前状态下的调度数据,所述调度数据包括目标调度操作的操作数据;以及基于所述操作数据,执行所述目标调度操作,以在所述本地设备进行算力资源调度。
在一些实施例中,所述状态数据包括算力配置数据、设备状态数据或运行状态数据中的至少一种。
在一些实施例中,所述目标调度操作包括线程调整或所述本地设备中至少一个应用模型的模型加载类型的调整中的至少一个。
在一些实施例中,所述线程调整包括线程数调整或所述至少一个应用模型中每一应用模型的并行线程数调整中的至少一个。
在一些实施例中,所述操作数据包括操作标识、操作参数或操作时序中的至少一种。
在一些实施例中,所述将所述状态数据输入至目标调度模型,以得到所述当前状态下的调度数据,包括:将所述状态数据输入至所述算力资源调度模型,以得到所述当前状态下每一预设调度操作的调度评分,所述调度评分表征执行对应的所述预设调度操下所述本地设备执行目标任务的预测链路耗时;以及基于所述调度评分,在所述每一预设调度操作中选取出至少一个调度操作,以得到所述当前状态下的调度数据。
在一些实施例中,所述在所述每一预设调度操作中选择出至少一个调度操作,以得到所述当前状态下的调度数据,包括:基于所述调度评分,在预设调度操作集合中选取出至少一个候选调度操作,得到候选调度操作集合,所述预设调度操作集合包括所述每一预设调度操作;基于预设业务指标和所述状态数据,对所述本地设备进行状态评估,得到评估结果;以及基于所述评估结果,在所述候选调度操作集合中选取出目标调度操作,并确定所述目标调度操作的操作数据,以得到所述调度数据,所述目标调度操作包括所述本地设备执行所述目标任务下的全局链路耗时满足预设耗时条件下的至少一个候选调度操作。
在一些实施例中,所述在预设调度操作集合中选取出至少一个候选调度操作,得到候选调度操作集合,包括:基于所述调度评分,对所述预设调度操作集合中的所述每一预设调度操作进行排序;以及基于排序结果,在所述预设调度操作集合中选取出预设排序范围对应的至少一个预设调度操作,得到所述候选调度操作集合。
在一些实施例中,所述目标任务包括生物识别、交互、营销或运行中的至少一种。
在一些实施例中,所述基于所述操作数据,执行所述目标调度操作,以在所述本地设备进行算力资源调度之后,还包括:获得所述本地设备的目标状态数据,所述目标状态数据包括在执行所述目标调度操作之后的所述本地设备的状态数据;以及获得所述本地设备在执行目标任务下的链路实际耗时,并将所述目标调度操作对应的目标调度评分、所述状态数据、所述目标状态数据和所述链路实际耗时进行打包,得到历史调度参数。
在一些实施例中,所述将所述目标调度操作对应的目标调度评分、所述状态数据、所述目标状态数据和所述链路实际耗时进行打包,得到历史调度参数之后,还包括:确定所述历史调度参数的数量大于第一预设数量阈值,基于所述历史调度参数,对所述算力资源调度模型进行更新;以及将更新后的算力资源调度模型作为所述算力资源调度模型。
第二方面,本说明书还提供一种算力资源调度模型的训练方法,包括:获得存储在远程服务器的初始调度模型和测试数据,并将所述测试数据输入至所述初始调度模型,以得到所述本地设备的测试反馈数据;将所述测试反馈数据发送至所述远程服务器,并接收所述远程服务器返回的通用调度模型,所述通用调度模型包括所述远程服务器基于至少一个所述本地设备的测试反馈数据对所述初始调度模型进行训练后得到的调度模型;以及对所述通用调度模型进行更新,得到所述本地设备对应的算力资源调度模型。
在一些实施例中,所述将所述测试数据输入至所述初始调度模型,以得到所述本地设备的测试反馈数据,包括:在仿真测试环境下,将所述测试数据输入至所述初始调度模型,得到预测调度数据,所述仿真测试环境包括模拟异常情况的测试环境;执行预设调度操作集合中的预设调度操作,以得到至少一个目标调度操作对应的操作反馈数据;以及将所述预测调度数据和所述操作反馈数据作为所述本地设备的测试反馈数据。
在一些实施例中,所述执行预设调度操作集合中的预设调度操作,以得到至少一个目标调度操作对应的操作反馈数据,包括:在所述预设调度操作集合中选取出候选调度操作,并执行所述候选调度操作,以得到所述候选调度操作的初始操作反馈数据;返回执行所述在所述预设调度操作集合中选取出候选调度操作的步骤,直至所述预设调度操作集合中的预设调度操作全部选取时为止,得到所述预设调度操作集合中每一预设调度操作对应的初始操作反馈数据;以及基于所述初始操作反馈数据和所述预设调度操作集合,确定出至少一个目标调度操作和所述至少一个目标调度操作对应的操作反馈数据。
在一些实施例中,所述执行所述候选调度操作,以得到所述候选调度操作的初始操作反馈数据,包括:获得所述本地设备的第一状态数据,所述第一状态数据包括所述本地设备在执行所述候选调度操作之前的状态数据;执行所述候选调度操作,并获得所述本地设备的第二状态数据,所述第二状态数据包括所述本地设备在执行所述候选调度操作之后的状态数据;以及基于所述第一状态数据和所述第二状态数据,确定所述候选调度操作的初始操作反馈数据。
在一些实施例中,所述对所述通用调度模型进行更新,得到所述本地设备对应的算力资源调度模型,包括:获得所述本地设备的本地训练数据;基于所述本地设备的设备场景,确定所述本地设备的更新时间;以及基于所述更新时间和所述本地训练数据,对所述通用调度模型进行训练,得到所述算力资源调度模型。
在一些实施例中,所述获得所述本地设备的本地训练数据,包括:确定接收到目标任务的第一执行请求,并获得所述本地设备在当前状态下的第三状态数据;将所述第三状态数据输入至所述通用调度模型,以得到当前调度数据,并基于所述当前调度数据,确定所述当前状态下的当前调度操作;以及执行所述当前调度操作,以得到所述当前调度操作对应的当前操作反馈数据,并返回执行所述确定接收到目标任务的第一执行请求的步骤,直至所述当前操作反馈数据的数量大于第二预设数量阈值时为止,以得到所述本地训练数据。
在一些实施例中,所述对所述通用调度模型训练,得到所述算力资源调度模型,包括:基于所述更新时间和所述本地训练数据,对所述通用调度模型训练;确定接收到目标任务的第二执行请求,停止所述通用调度模型的训练,并存储所述通用调度模型的训练中间数据;以及确定所述目标任务执行完成时,基于所述训练中间数据,对所述通用调度模型进行训练,得到所述算力资源调度模型。
第三方面,本说明书还提供另一种算力资源调度模型的训练方法,应用于与至少一个本地设备进行通信连接的远程服务器,包括:将初始调度模型和测试数据发送至所述至少一个本地设备,以便所述至少一个本地设备中每一本地设备基于所述测试数据生成测试反馈数据;接收所述每一本地设备返回的所述测试反馈数据,并基于所述测试反馈数据,对所述初始调度模型进行训练,以得到所述每一本地设备对应的通用调度模型;以及将所述通用调度模型发送至所述每一本地设备,以便所述每一本地设备对所述通用调度模型进行更新,得到所述每一本地设备的算力资源调度模型。
在一些实施例中,所述对所述初始调度模型进行训练,以得到所述每一本地设备对应的通用调度模型,包括:基于所述测试反馈数据,对所述初始调度模型进行训练,得到初始通用调度模型;确定所述每一本地设备的调度模型格式,并基于所述调度模型格式,对所述初始通用调度模型进行格式转换,得到所述每一本地设备对应的候选通用调度模型;以及对所述候选通用调度模型进行知识蒸馏,以得到所述每一本地设备对应的通用调度模型。
第四方面,本说明书还提供一种算力资源调度系统,包括:至少一个存储介质,存储有至少一个指令集,用于进行算力资源调度;以及至少一个处理器,同所述至少一个存储介质通信连接,其中,当所述算力资源调度系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行本说明书第一方面所述的算力资源调度方法。
第五方面,本说明书还提供一种算力资源调度模型的训练系统,包括:至少一个存储介质,存储有至少一个指令集,用于进行算力资源调度模型的训练;以及至少一个处理器,同所述至少一个存储介质通信连接,其中,当所述算力资源调度模型的训练系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行第二方面或第三方面的算力资源调度模型的训练方法。
由以上技术方案可知,本说明书提供的算力资源调度方法、算力资源调度模型的训练方法和系统,在获得本地设备在当前状态下的状态数据后,将状态数据输入至算力资源调度模型,以得到当前状态下的调度数据,所述调度数据中包括目标调度操作的操作数据,以及,基于操作数据,执行目标调度操作,以在本地设备进行算力资源调度;由于该方案可以通过算力资源调度模型基于状态数据,自动遍历所有参数空间并进行决策,从而得到当前状态下匹配的目标调度操作的操作数据,因此,可以提升算力资源调度的调度效率。
本说明书提供的算力资源调度方法、算力资源调度模型的训练方法和系统的其他功能将在以下说明中部分列出。根据描述,以下数字和示例介绍的内容将对那些本领域的普通技术人员显而易见。本说明书提供的算了资源调度方法和系统的创造性方面可以通过实践或使用下面详细示例中所述的方法、装置和组合得到充分解释。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本说明书的实施例提供的一种算力资源调度系统的应用场景示意图;
图2示出了根据本说明书的实施例提供的一种计算设备的硬件结构图;
图3示出了根据本说明书的实施例提供的一种算力资源调度方法流程图;
图4示出了根据本说明书的实施例提供的一种算力资源调度模型的训练方法的流程图;
图5示出了根据本说明书的实施例提供的另一种算力资源调度模型的训练方法的流程图;
图6示出了根据本说明书的实施例提供的端侧的算力资源调度模型训练的流程图;
图7示出了根据本说明书的实施例提供的端云协同的算力资源调度模型训练的流程图;
图8示出了根据本说明书的实施例提供的刷脸支付场景下的本地设备与远程服务器交互的示意图;以及
图9示出了根据本说明书的实施例提供的Q-Learning结构的示意图。
具体实施方式
以下描述提供了本说明书的特定应用场景和要求,目的是使本领域技术人员能够制造和使用本说明书中的内容。对于本领域技术人员来说,对所公开的实施例的各种局部修改是显而易见的,并且在不脱离本说明书的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用。因此,本说明书不限于所示的实施例,而是与权利要求一致的最宽范围。
这里使用的术语仅用于描述特定示例实施例的目的,而不是限制性的。比如,除非上下文另有明确说明,这里所使用的,单数形式“一”,“一个”和“该”也可以包括复数形式。当在本说明书中使用时,术语“包括”、“包含”和/或“含有”意思是指所关联的整数,步骤、操作、元素和/或组件存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或组的存在或在该系统/方法中可以添加其他特征、整数、步骤、操作、元素、组件和/或组。
考虑到以下描述,本说明书的这些特征和其他特征、以及结构的相关元件的操作和功能、以及部件的组合和制造的经济性可以得到明显提高。参考附图,所有这些形成本说明书的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在限制本说明书的范围。还应理解,附图未按比例绘制。
本说明书中使用的流程图示出了根据本说明书中的一些实施例的系统实现的操作。应该清楚地理解,流程图的操作可以不按顺序实现。相反,操作可以以反转顺序或同时实现。此外,可以向流程图添加一个或多个其他操作。可以从流程图中移除一个或多个操作。
为了方便描述,本说明书将对以下描述将会出现的术语进行如下解释:
算力调度:对设备(机具)的线程数、模型GPU/CPU状态进行配置调整,降低设备链路耗时;
端侧自主学习:在端侧低算力设备上对深度学习模型进行训练与推理。
在一些交互场景下,不同设备的芯片类型、内存大小存在一些差异,使得不同设备的算力差别很大。对于算力不足的机具,例如在CPU/内存等资源不富裕的情况下,线程池的总数和算法并行线程数、以及每个模型是在CPU还是在GPU上运行对计算速度的影响很大,且不同设备适用的算力分配方案差别较大。若采用不适宜的算力资源调度方案,会导致交互链路耗时过长甚至崩溃。因此通过算力资源的合理调度,可以有效减少长尾设备的交互链路耗时,避免设备升级带来的巨大消耗。
目前,算力资源调度的常见方案主要是基于先验的手动调整算力资源的分配,通过发版前为不同设备手动调节线程数、模型加载到CPU或GPU等参数,从而实现算力资源的调度。但是,参数空间大,遍历一遍费时费力。线程池总数从几个到几百个不等,算法模型的数量有多个,可形成上千种组合,而且,不同设备、算法链路资源供需情况不一,需要单独调整,另外,耗时受设备运行时的任务并行度、资源占用和发热降频等多重因素的影响,与发版前的静态测试存在较大的差异,从而导致算力资源调度的效率较低。
针对上述技术问题,本说明书的发明人提出如下技术构思:获得本地设备在当前状态下的状态数据,通过算力资源调度模型,对线程池总数并行线程数、模型加载单元等大量参数进行智能调整,获取到针对当前的本地设备匹配的目标调度操作,执行目标调度操作,从而实现算力资源的调度,因此,可以提升算力资源调度的调度效率。
图1示出了根据本说明书的实施例提供的一种算力资源调度系统100的应用场景示意图。算力资源调度系统(以下简称系统100)可以应用于任意场景的算力资源调度,比如,刷脸支付场景下的算力资源调度或各类交互场景下的算力资源调度,等等。如图1所示,系统100可以包括用户110、客户端120、服务器130以及网络140。
用户110可以包括触发在本地设备进行算力资源调度的用户,用户110可以在客户端120上进行算力资源调度。
客户端120可以包括响应于用户110的算力资源调度操作执行算力资源调度的本地设备。在一些实施例中,所述算力资源调度方法可以在客户端120上执行。此时,客户端120可以存储有执行本说明书描述的算力资源调度方法的数据或指令,并可以执行或用于执行所述数据或指令。在一些实施例中,客户端120可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。如图1所示,客户端120可以与服务器130进行通信连接。在一些实施例中,服务器130可以与多个客户端120进行通信连接。在一些实施例中,客户端120可以通过网络140与服务器130交互,以接收或发送消息等。在一些实施例中,客户端120可以包括移动设备、平板电脑、笔记本电脑、机动车辆的内置设备或类似内容,或其任意组合。在一些实施例中,所述移动设备可包括智能家居设备、智能移动设备、虚拟现实设备、增强现实设备或类似设备,或其任意组合。在一些实施例中,所述智能家居装置可包括智能电视、台式电脑等,或任意组合。在一些实施例中,所述智能移动设备可包括智能手机、个人数字辅助、游戏设备、导航设备等,或其任意组合。在一些实施例中,所述虚拟现实设备或增强现实设备可能包括虚拟现实头盔、虚拟现实眼镜、虚拟现实手柄、增强现实头盔、增强现实眼镜、增强现实手柄或类似内容,或其中的任何组合。例如,所述虚拟现实设备或所述增强现实设备可能包括谷歌眼镜、头戴式显示器、VR等。在一些实施例中,所述机动车中的内置装置可包括车载计算机、车载电视等。在一些实施例中,客户端120可以是具有定位技术的设备,用于定位客户端120的位置。
在一些实施例中,客户端120可以安装有一个或多个应用程序(APP)。所述APP能够为用户110提供通过网络140同外界交互的能力以及界面。所述APP包括但不限于:网页浏览器类APP程序、搜索类APP程序、聊天类APP程序、购物类APP程序、视频类APP程序、理财类APP程序、即时通信工具、邮箱客户端、社交平台软件等等。在一些实施例中,客户端120上可以安装有目标APP。所述目标APP能够为客户端120获得本地设备在当前状态下的状态数据,并基于状态数据,确定出本地设备对应的目标调度操作,并执行目标调度操作,以完成本地设备的算力资源调度。在一些实施例中,所述用户110还可以通过所述目标APP触发本地设备的算力资源调度请求。所述目标APP可以响应于所述算力资源调度请求,执行本说明书描述的算力资源调度方法。所述算力资源调度方法将在后面的内容中详细介绍。
服务器130可以是提供各种服务的服务器,例如对客户端120获得的状态数据进行处理,从而得到本地设备的目标调度操作的操作数据,或者,还可以为执行目标调度操作的服务器。在一些实施例中,所述算力资源调度方法可以在服务器130上执行。此时,服务器130可以存储有执行本说明书描述的算力资源调度方法的数据或指令,并可以执行或用于执行所述数据或指令。在一些实施例中,服务器130可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。服务器130可以与多个客户端120通信连接,并接收客户端120发送的数据。
网络140用以在客户端120和服务器130之间提供通信连接的介质。网络140可以促进信息或数据的交换。如图1所示,客户端120和服务器130可以同网络140连接,并且通过网络140互相传输信息或数据。在一些实施例中,网络140可以是任何类型的有线或无线网络,也可以是其组合。比如,网络140可以包括电缆网络,有线网络、光纤网络、电信通信网络、内联网、互联网、局域网(LAN)、广域网(WAN)、无线局域网(WLAN)、大都市市区网(MAN)、广域网(WAN)、公用电话交换网(PSTN)、蓝牙网络TM、ZigBeeTM网络、近场通信(NFC)网络或类似网络。在一些实施例中,网络140可以包括一个或多个网络接入点。例如,网络140可以包括有线或无线网络接入点,如基站或互联网交换点,通过该接入点,客户端120和服务器130的一个或多个组件可以连接到网络140以交换数据或信息。
应该理解,图1中的客户端120、服务器130和网络140的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端120、服务器130和网络140。
需要说明的是,所述算力资源调度方法可以完全在客户端120上执行,也可以完全在服务器130上执行,还可以部分在客户端120上执行,部分在服务器130上执行。
其中,一种算力资源调度模型的训练系统的应用场景示意图可以参考图1所示,算力资源调度模型的训练系统可以训练出算力资源调度模型,通过算力资源调度模型在系统100中实现对本地设备进行算力资源调度,具体内容可以参考前文所述,在此就不再一一赘述。
图2示出了根据本说明书的实施例提供的一种计算设备200的硬件结构图。计算设备200可以执行本说明书描述的算力资源调度方法和/或算力资源调度模型的训练方法。所述算力资源调度方法和/或算力资源调度模型的训练方法在本说明书中的其他部分介绍。执行所述算力资源调度方法的计算设备与执行所述算力资源调度模型的训练方法的计算设备可以是同一个计算设备200,也可以是两个独立的计算设备200。所述计算设备200可以是120客户端,也可以是服务器130,也可以是客户端120和服务器130的组合。当所述算力资源调度方法和/或算力资源调度模型的训练方法在客户端120上执行时,计算设备200可以是客户端120。当所述算力资源调度方法和/或算力资源调度模型的训练方法在服务器130上执行时,计算设备200可以是服务器130。当所述算力资源调度方法和/或算力资源调度模型的训练方法可以部分在客户端120上执行,部分在服务器130上执行时,计算设备200可以是客户端120和服务器130。
如图2所示,计算设备200可以包括至少一个存储介质230和至少一个处理器220。在一些实施例中,计算设备200还可以包括通信端口240和内部通信总线210。同时,计算设备200还可以包括I/O组件250。
内部通信总线210可以连接不同的系统组件,包括存储介质230、处理器220和通信端口240。
I/O组件250支持计算设备200和其他组件之间的输入/输出。
通信端口240用于计算设备200同外界的数据通信,比如,通信端口240可以用于计算设备200同网络140之间的数据通信。通信端口240可以是有线通信端口也可以是无线通信端口。
存储介质230可以包括数据存储装置。所述数据存储装置可以是非暂时性存储介质,也可以是暂时性存储介质。比如,所述数据存储装置可以包括磁盘232、只读存储介质(ROM)234或随机存取存储介质(RAM)236中的一种或多种。存储介质230还包括存储在所述数据存储装置中的至少一个指令集。所述指令是计算机程序代码,所述计算机程序代码可以包括执行本说明书提供的算力资源调度方法和/或算力资源调度模型的训练方法的程序、例程、对象、组件、数据结构、过程、模块等等。
至少一个处理器220可以同至少一个存储介质230以及通信端口240通过内部通信总线210通信连接。至少一个处理器220用以执行上述至少一个指令集。当计算设备200运行时,至少一个处理器220读取所述至少一个指令集,并且根据所述至少一个指令集的指示,执行本说明书提供的算力资源调度方法和/或算力资源调度模型的训练方法。处理器220可以执行的算力资源调度方法和/或算力资源调度模型的训练方法包含的所有步骤。处理器220可以是一个或多个处理器的形式,在一些实施例中,处理器220可以包括一个或多个硬件处理器,例如微控制器,微处理器,精简指令集计算机(RISC),专用集成电路(ASIC),特定于应用的指令集处理器(ASIP),中心处理单元(CPU),图形处理单元(GPU),物理处理单元(PPU),微控制器单元,数字信号处理器(DSP),现场可编程门阵列(FPGA),高级RISC机器(ARM),可编程逻辑器件(PLD),能够执行一个或多个功能的任何电路或处理器等,或其任何组合。仅仅为了说明问题,在本说明书中计算设备200中仅描述了一个处理器220。然而,应当注意,本说明书中计算设备200还可以包括多个处理器220,因此,本说明书中披露的操作和/或方法步骤可以如本说明书所述的由一个处理器220执行,也可以由多个处理器220联合执行。例如,如果在本说明书中计算设备200的处理器220执行步骤A和步骤B,则应该理解,步骤A和步骤B也可以由两个不同处理器220联合或分开执行(例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一和第二处理器共同执行步骤A和B)。
图3示出了根据本说明书的实施例提供的一种算力资源调度方法300的流程图。如前,计算设备200可以执行本说明书的算力资源调度方法300。具体地,处理器220可以读取存储在其本地存储介质中的指令集,然后根据指令集的规定,执行本说明书的算力资源调度方法300。如图3所示,方法300可以包括:
S320:获得本地设备在当前状态下的状态数据。
其中,当前状态可以包括触发进行算力资源调度时本地设备所处的状态。
其中,状态数据可以包括表征本地设备状态的数据,比如,可以包括算力配置数据、设备状态数据或运行状态数据中的至少一种。所述算力配置数据可以包括线程数分配数据、应用模型或算法的加载类型(加载在CPU或GPU)。所述设备状态数据可以包括芯片类型、当前状态下的CPU占用率或内存占用率,等等。所述运行状态数据可以包括应用模型或算法输出和耗时等数据。
其中,获得本地设备在当前状态下的状态数据的方式可以有多种,具体可以如下:
例如,处理器220可以通过本地设备中集成的各类组件获得本地设备在当前状态下的实时数据,并在实时数据统计出预设状态类型对应的统计量,从而得到状态数据,或者,可以接收本地设备发送的当前状态下的状态数据,或者,还可以接收本地设备的管理平台或管理服务器发送的本地设备在当前状态下的状态数据,等等。
其中,各类组件可以集成在本地设备上。组件的类型可以有多种,比如,可以包括交互组件或运行组件中的一种。以本地设备的应用场景为刷脸支付为例,交互组件的类型就可以有多种,比如,可以包括刷脸组件、收银组件或者营销组件中的至少一种。所述运行组件可以包括本地设备在执行任务中维持本地设备运行的组件,比如,可以包括CPU、GPU或者内存组件,等等。
其中,实时数据可以包括环境数据、链路配置的数据、设备状态的实时数据、应用模型或算法状态的实时数据,等等。所述应用模型或算法可以包括为本地设备在执行任务需要的模型或算法。
S340:将状态数据输入至算力调度模型,以得到当前状态下的调度数据。
其中,调度数据可以包括目标调度操作的操作数据。目标调度操作可以包括线程调整或本地设备中至少一个应用模型的模型加载类型的调整中的至少一个。所述应用模型可以包括本地设备在执行任务时需要的模型,比如,以本地设备的场景为刷脸支付为例,应用模型的类型可以有多种,比如,可以包括人脸识别模型、检测模型或支付模型,等等。所述线程调整可以包括线程数调整或者至少一个应用模型中每一应用模型的并行线程数调整中的至少一个。
其中,所述操作数据可以包括操作标识、操作参数或操作时序中的至少一种。所述操作标识可以标注对应的调度操作。操作参数可以包括调度操作中的参数,比如,以调度操作包括将线程数减少1个,则对应的操作参数就可以为1或-1。操作时序可以包括目标调度操作中包括多个调度操作时,每一个调度操作的时序。需要说明的是,目标调度操作包括多个调度操作时,多个调度操作可以并行执行,也可以串行执行,在串行执行中就需要包括每个调度操作的操作时序。
其中,算力资源调度模型可以包括对本地设备的算力资源进行调度的模型。
其中,将状态数据输入至算力调度模型,以得到当前状态下的调度数据的方式可以有多种,具体可以如下:
例如,处理器220可以将状态数据输入至算力资源调度模型,以得到当前状态下每一预设调度操作的调度评分,以及基于调度评分,在每一预设调度操作中选取出至少一个调度操作,以得到当前状态下的调度数据。
其中,调度评分可以表征执行对应的预设调度操作下本地设备执行目标任务时的预测链路总耗时。比如,以预设调度操作为操作A,目标任务为刷脸支付为例,在执行操作A之后,本地设备进行刷脸支付时,整个链路的耗时相对于不执行操作A时的耗时变化的总和,譬如,执行操作A时,本地设备在进行刷脸支付时整个链路的总耗时为50ms,未执行操作A时,本地设备在进行刷脸支付时整个链路的总耗时为70ms,则调度评分就可以为20,或者,执行操作A时,本地设备在进行刷脸支付时整个链路的总耗时为70ms,未执行操作A时,本地设备在进行刷脸支付时整个链路的总耗时为50ms,则调度评分就可以为-20,等等。通过调度评分就可以判断执行对应的调度操作是否有效。
其中,基于调度评分,在每一预设调度操作中选取出至少一个调度操作的方式可以有多种,比如,处理器220可以基于调度评分,在预设调度操作集合中选取出至少一个候选调度操作,得到候选调度操作集合,基于预设业务指标和状态数据,对本地设备进行状态评估,得到评估结果,以及基于评估结果,在候选调度操作集合中选取出目标调度操作,并确定目标调度操作的操作数据,以得到调度数据。
其中,预设调度操作集合可以包括每一预设调度操作。在预设调度操作集合中选取出至少一个候选调度操作的方式可以有多种,比如,处理器220可以基于调度评分,对预设调度操作集合中的每一预设调度操作进行排序,以及基于排序结果,在预设调度操作集合中选取出预设排序范围对应的至少一个预设调度操作。
其中,基于调度评分,对预设调度操作集合中的每一预设调度操作进行排序的方式可以有多种,比如,处理器220可以基于调度评分,按照从大至小或者从小至大的排序方式对预设调度操作集合中的每一预设调度操作进行排序,得到排序结果,或者,还可以基于调度操作的操作类型,对预设调度操作集合进行分类,得到多个类别的预设调度操作子集合,基于调度评分,对多个类别的预设调度操作子集合中每一预设调度操作子集合进行排序,得到排序结果,所述排序结果包括多个类型中每一类别对应的子排序结果,等等。
处理器220在对预设调度操作集合中的每一预设调度操作进行排序之后,便可以基于排序结果,在预设调度操作集合中选取出预设排序范围对应的至少一个预设调度操作,得到候选调度操作集合。预设排序范围可以包括最优解和次优解对应的排序范围,比如,以最优解为调度评分最高的调度操作,次优解为调度评分第二高的调度操作为例,预设排序范围就可以包括调度评分最高的前两位的调度操作。需要说明的是,最优解可以包括一个或者多个调度评分对应的调度操作,次优解同样可以包括一个或者多个调度评分对应的调度操作。通过预设排序范围实现探索非最优的调度操作的能力,从而可以避免决策结果陷入局部最优解,实现决策的全局最优解。
其中,预设业务指标可以包括预先设定的评估本地设备在执行任务下的状态评价指标。预设业务指标的类型可以有多种,比如,可以包括系统流畅度、系统延迟或者设备业务性能,等等。评估结果可以表征包括本地设备在当前状态下是否可以执行目标任务或者执行目标任务的性能,等。评估结果可以包括本地设备在当前状态下执行目标任务的状态等级、完成时间或者消耗的计算资源,等等。所述状态等级可以包括多个等级,比如,以包括三个等级为例,第一等级可以表征可以在预设第一时间内执行目标任务,第二等级可以表征在预设第二时间内执行目标任务,第三等级可以表征在预设第三时间内执行目标任务,预设第一时间、预设第二时间和预设第三时间的时间长度不同。完成时间或者消耗的计算资源也类似。通过评估结果,从而可以确定出本地设备在当前状态下执行目标任务的困难程度或者困难类型,等等。基于预设业务指标和状态数据,对本地设备进行状态评估的方式可以有多种,比如,处理器220可以基于状态数据,确定预设业务指标对应的当前指标数据,并将当前指标数据与预设业务指标的预设数据阈值进行对比,以得到评估结果,或者,还可以获得预设业务指标对应的评价条件,验证状态数据是否满足评价条件,从而得到评估结果,等等。
处理器220在得到候选调度操作集合和评估结果之后,便可以基于评估结果,在候选调度操作集合中选取出目标调度操作,并确定目标调度操作的操作数据,从而得到调度数据。目标调度操作包括本地设备执行目标任务下的全局链路上满足预设耗时条件下的至少一个候选调度操作。在目标调度操作包括多个候选调度操作时,此时目标调度操作就可以包括一个调度操作序列。基于评估结果,在候选调度操作集合中选取出目标调度操作的方式可以有多种,比如,处理器220可以基于评估结果,在候选调度操作集合中选取出至少一个候选调度操作,使得本地设备在执行目标任务下的全局链路耗时满足预设耗时条件,从而将至少一个候选调度操作作为目标调度操作,或者,还可以基于评估结果,在候选调度操作集合中选取出全局最优解对应的至少一个候选调度操作,从而得到目标调度操作,所述全局最优解可以包括执行至少一个候选调度操作之后,本地设备在执行目标任务下的所有链路的总耗时最短或者小于预设时间阈值。
其中,目标任务可以包括生物识别、交互、营销或运行中的至少一种。所述生物识别可以包括基于用户的生物特征进行识别,比如,可以包括人脸识别、生物检测或者其他类型的生物特征的识别,等等。所述交互可以包括用户与本地设备之间的各类交互,比如,可以包括支付、查询、交易、互动或者其他类型的交互,等等。所述营销可以包括本地设备显示营销信息,并通过营销信息与用户或用户终端进行营销互动,或者,可以包括本地设备向用户对应的用户终端发送营销信息,或者,还可以包括用户通过本地设备参与营销活动或营销业务,等等。所述运行可以包括本地设备在运行过程中的一些运行任务,比如,可以包括启动应用模型、调度各类应用组件或者其他与运行相关的任务,等等。本地设备在执行目标任务时,可以通过目标任务对应的组件进行完成,因此,本地设备可以包括或集成生物识别组件、交互组件、营销组件或运行组件,等等。
处理器220在选取出目标调度操作之后,便可以确定目标调度操作的操作数据,从而得到调度数据。确定目标调度操作的操作数据的方式可以有多种,比如,处理器220确定目标调度操包括一个候选调度操作,获得所述候选调度操作的操作数据和操作标识,从而得到调度数据,或者,确定目标调度操作包括多个候选调度操作,基于调度操作的操作类型和调度评分,确定多个候选调度操作中每一候选调度操作的操作时序,从而得到目标调度操作的操作数据,将操作数据作为调度数据,等等。
S360:基于操作数据,执行目标调度操作,以在本地设备进行算力资源调度。
例如,处理器220可以基于操作数据,执行目标调度操作,从而使得目标调度操作中的至少一个调度操作在目标任务对应的链路中生效,从而实现对本地设备进行算力资源调度。
其中,目标调度操作的操作类型可以包括线程数的增加或减少、各个应用模型的并行线程数据的调整或者调整应用模型的加载类型。所述调整应用模型的加载类型的方式可以有多种,比如,处理器220可以根据gpuMASK(一种加载类型调整的配置参数)配置将应用模型重新加载到对应的计算单元上,这里的计算单位可以包括GPU或CPU中的一种,即可以将应用模型的加载类型从加载至GPU调整为加载至CPU,或者,还可以将应用模型的加载类型从加载至CPU调整为加载至GPU,等等。另外,目标调度操作中的操作数据可以为执行调度操作的具体参数数据,比如,以目标调度操作为线程数的增加或减少为例,这里的操作数据就可以包括线程数增加或减少的具体数量,譬如,可以包括增加1个、2个、或者N个,N为大于0的整数;还可以包括减少1个、2个、或者N个,N为大于0的整数,等等。
其中,需要说明的是,对本地设备的算力资源调度的方式可以通过在本地设备内执行目标调度操作,或者,还可以将目标调度操作转换为针对本地设备的控制指令,在本地设备执行控制指令,从而实现对本地设备的算力资源进行调度,等等。
处理器220在执行目标调度操作,以对本地设备进行算力资源调度之后,本地设备的设备状态便可以发生变化。因此,在基于操作数据,执行目标调度操作,以在本地设备进行算力资源调度之后,还可以包括:处理器220可以获得本地设备的目标状态数据,获得本地设备在执行目标任务下的链路实际耗时,并将目标调度操作对应的目标调度评分、状态数据、目标状态数据和链路实际耗时进行打包,得到历史调度参数。
其中,目标状态数据可以包括执行目标调度操作之后的本地设备的状态数据。获得本地设备的目标状态数据的方式与获得当前状态下的状态数据的方式类似,详见上文所述,在此就不再一一赘述。
其中,历史调度参数可以包括对本地设备进行算力资源调度前后的数据。历史调度参数可以通过记忆模块来生成,比如,可以包括按照时间戳、原状态(状态数据)、采取的Action(目标调度操作)、新状态(目标状态数据)、得分(预测的调度评分和实际链路耗时)等格式进行打包,从而得到历史调度参数。处理器220在生成历史调度参数之后,还可以将其写入数据库或文件系统,还可以回传至数据平台(DataHub),为算子资源调度模型的输入提供接口,从而实现在端侧对算力调度资源进行更新。因此,处理器220将所述目标调度操作对应的目标调度评分、状态数据、目标状态数据和链路实际耗时进行打包,得到历史调度参数之后,还可以基于历史调度参数对算力资源调度模型进行更新,更新的方式可以有多种,比如,处理器220可以确定历史调度参数的数量大于第一预设数量阈值,基于历史调度参数,对算力资源调度模型进行更新,以及将更新后的算力资源调度模型作为算力资源调度模型。
其中,确定历史调度参数的数量大于预设第一数量阈值,便可以说明在端侧累计到一定数量的历史调度参数。处理器220便可以基于历史调度参数,生成算力资源调度模型的本地训练样本,基于本地训练样本,对算力资源调度模型进行更新,从而得到更新后的算力资源调度模型。
其中,基于历史调度操作,生成算力资源调度模型的本地训练样本的方式可以有多种,比如,处理器220可以直接将历史调度参数作为本地训练样本,此时,历史调度参数中的实际链路耗时就可以为标注的调度评分的标签,或者,还可以在历史调度参数中提取出状态数据作为数据样本,将目标调度操作和目标调度操作对应的实际链路耗时作为数据标签,从而得到本地训练样本,等等。
处理器220在获得本地训练样本之后,便可以将本地训练样本输入至算力资源调度模型,得到预测调度评分和预测调度操作,基于预测调度评分和预测调度操作,确定算力资源调度模型的本地损失信息,基于本地损失信息,对算力资源调度模型进行收敛,从而得到更新后的算力资源调度模型。处理器220便以将更新后的算力资源模型调度模型。另外,需要说明的是,在历史调度参数累计到一定数量之后,便可以对算力资源调度模型进行更新,更新的步骤可以持续在本地设备的运行全过程,从而不断完善算力资源调度模型,进而可以实现本地设备越用越好用的目的。
在一些实施例中,算力资源调度模型可以直接从第三方获取,也可以自行训练得到。自行训练过程可以包括端云协同训练,即远程服务器与至少一个本地设备进行协同训练,从而得到训练后的算力资源调度模型。因此,针对端侧的本地设备,可以提供一种算力资源调度模型的训练方法400,如前,计算设备200可以执行本说明书的算力资源调度模型的训练方法400。具体地,处理器220可以读取存储在其本地存储介质中的指令集,然后根据指令集的规定,执行本说明书的算力资源调度模型的训练方法400。如图4所示,方法400可以包括:
S420:获得存储在远程服务器的初始调度模型和测试数据,并将测试数据输入至初始调度模型,以得到本地设备的测试反馈数据。
其中,初始调度模型可以包括未经训练的原始的用于算力资源调度的调度模型,或者,还可以包括未完成训练的用于算力资源调度的调度模型,等等。
其中,测试数据可以包括在本地设备测试初始调度模型的数据。以本地设备的应用场景为刷脸支付为例,测试数据就可以包括本地设备在执行目标任务下各个系统参数和刷脸视频。另外,需要说明的是,初始调度模型和测试数据构成了测试包,所述测试包具备端侧回放能力,即可以通过下发测试数据,在本地设备模拟执行目标任务,进而通过初始调度模型进行算力资源调度,并获得本地设备的反馈数据,从而得到初始调度模型的训练数据。不同的本地设备对应的测试数据可以相同,也可以不同。
其中,测试反馈数据可以包括基于测试数据和初始调度模型对本地设备进行算力资源调度之后,本地设备执行目标任务时的反馈数据,或者,还可以包括基于测试数据和初始调度模型对本地设备进行算力资源调度后产生的数据。
其中,获得存储在远程服务器的初始调度模型和测试数据的方式可以有多种,比如,处理器220可以直接接收远程服务器发送的初始调度模型和测试数据,或者,可以向远程服务器发送测试请求,并接收远程服务器返回的测试请求对应的测试包,测试包中可以包括初始调度模型和测试数据,或者,还可以接收第三方发送的存储在远程服务器的初始调度模型和测试数据,等等。
处理器220在获得存储在远程服务器的初始调度模型和测试数据之后,便可以将测试数据输入至初始调度模型,以得到本地设备的测试反馈数据,比如,处理器220可以在仿真测试环境下,将测试数据输入至初始调度模型,得到预测调度数据,执行调度操作集合中的预设调度操作,以得到至少一个目标调度操作对应的操作反馈数据,以及将预测调度数据和操作反馈数据作为本地设备的测试反馈数据。
其中,仿真测试环境包括模拟异常情况的测试环境,比如,测试环境下可以制造CPU或内存紧张的情况,从而可以更加贴合线上的实际链路。预测调度数据可以包括预测的目标调度操作对应的操作数据。得到预测调度数据与得到调度数据的方式类似,详见上文所述,在此就不再一一赘述。
其中,操作反馈数据可以包括执行预设调度操作后本地设备的反馈数据,或者,还可以执行预设调度操作后的状态数据,等等。执行预设调度操作集合中的预设调度操作,以得到至少一个目标调度操作对应的操作反馈数据的方式可以有多种,比如,处理器220可以在预设调度操作集合中选取出候选调度操作,并执行候选调度操作,以得到候选调度操作的初始操作反馈数据,返回执行在预设调度操作集合中选取出候选调度操作的步骤,直至预设调度操作集合中的预设调度操作集合全部选取出时为止,得到预设调度操作集合中每一预设调度操作对应的初始操作反馈数据,以及基于初始操作反馈数据和预设调度操作集合,确定出至少一个目标调度操作和至少一个目标调度操作对应的操作反馈数据。
其中,在预设调度操作集合中选取出候选调度操作的方式可以有多种,比如,处理器220可以在预设调度操作集合中执行无放回的随机选取一个预设调度操作作为候选调度操作,或者,可以对预设调度操作集合中的预设调度操作进行分类,得到多个类别的预设调度操作子集合,然后,在预设调度操作子集合中随机选取出一个预设调度操作作为候选调度操作,或者,还是按照预设排序规则,对预设调度操作集合中的预设调度操作进行排序,并基于排序结果,在预设调度操作集合中选取出一个预设调度操作作为候选调度操作,等等。
处理器220在选取出候选调度操作之后,便可以执行候选调度操作,以得到候选调度操作的初始操作反馈数据。执行候选调度操作,以得到候选调度操作的初始操作反馈数据的方式可以有多种,比如,处理器220可以获得本地设备的第一状态数据,执行候选调度操作,并获得本地设备的第二状态数据,基于第一状态数据和第二状态数据,确定候选调度操作的初始操作反馈数据。
其中,第一状态数据可以包括本地设备在执行候选调度操作之前的状态数据。第二状态数据可以包括本地设备在执行候选调度操作之后的状态数据。基于第一状态数据和第二状态数据,确定候选调度操作的初始操作反馈数据的方式可以有多种,比如,处理器220可以将第一状态数据和第二状态数据进行对比,以得到候选调度操作的初始操作反馈数据,或者,可以直接将第一状态数据和第二状态数据作为候选调度操作的初始操作反馈数据,或者,还可以在第一状态数据中提取出预设操作参数对应的原始数据,在第二状态数据中提取出预设操作参数对应的响应数据,确定原始数据和响应数据之间的数据差值,并将数据差值作为候选调度操作的初始操作反馈数据,等等。
处理器220在得到预设调度操作集合中每一预设调度操作对应的初始操作反馈数据之后,便可以基于初始操作反馈数据和预设调度操作集合,确定出至少一个目标调度操作和至少一个目标调度操作对应的操作反馈数据。确定出至少一个目标调度操作以及对应的操作反馈数据的方式可以有多种,比如,处理器220可以在预设调度操作集合中选取出至少一个预设调度操作集合,得到目标调度操作,并将目标调度操作对应的初始操作反馈数据进行融合,得到目标调度操作对应的操作反馈数据,返回执行在预设调度操作集合中选取出至少一个预设调度操作集合的步骤,直至得到至少一个目标调度操作和至少一个目标调度操作的操作反馈数据,或者,还可以基于预设组合规则,在预设调度操作集合中选取出至少一个预设调度操作进行组合,从而得到目标调度操作,并将目标调度操作对应的初始操作反馈数据进行融合,得到目标调度操作对应的操作反馈数据,返回执行在预设调度操作集合中选取出至少一个预设调度操作集合的步骤,直至得到至少一个目标调度操作和至少一个目标调度操作的操作反馈数据,等等。
其中,以选取候选调度操作的方式为随机选取为例,处理器220便可以执行当前状态-随机的预设调度操作-新状态的流程,从而可以得到各类调度策略(目标调度操作)的反馈数据,将这些反馈数据作为至少一个目标调度操作对应的操作反馈数据。至少一个目标调度操作中每一目标调度操作可以包括在随机的预设调度操作选取的一个或多个预设调度操作。以目标调度操作包括多个预设调度操作为例,则该目标调度操作对应的操作反馈数据可以包括执行多个预设调度操作之后所有的反馈数据,或者,还可以包括多个预设调查操作对应的反馈数据进行融合后的数据,等等。
S440:将测试反馈数据发送至远程服务器,并接收远程服务器返回的通用调到模型。
其中,通用调度模型包括远程服务器基于至少一个本地设备的测试反馈数据对初始调度模型进行训练后得到调度模型。
其中,将测试反馈数据发送至远程服务器的方式可以有多种,具体可以如下:
例如,处理器220可以通过数据回流的方式直接将测试反馈数据发送至远程服务器,或者,可以向远程服务器发送训练请求,该训练请求携带测试反馈数据的存储地址,以便远程服务器基于存储地址获得测试反馈数据,或者,还可以第三方服务器发送测试反馈数据,以便第三方服务器将测试反馈数据发送至远程服务器,等等。
其中,远程服务器在接收到至少一个本地设备发送的测试反馈数据之后,便可以通过处理器220基于测试反馈数据对初始调度模型进行训练,从而得到通用调度模型。针对云侧的远程服务器,还可以提供另一种算力资源调度模型的训练方法500,如前,计算设备200可以执行本说明书的算力资源调度模型的训练方法500。具体地,处理器220可以读取存储在其本地存储介质中的指令集,然后根据指令集的规定,执行本说明书的算力资源调度模型的训练方法500。如图5所示,方法500可以包括:
S520:将初始调度模型和测试数据发送至至少一个本地设备,以便至少一个本地设备中每一本地设备基于测试数据生成测试反馈数据。
其中,将初始调度模型和测试数据发送至至少一个本地设备的方式可以有多种,具体可以如下:
例如,处理器220可以直接初始调度模型和测试数据发送至至少一个本地设备,或者,可以获得测试数据集合,基于至少一个本地设备中每一本地设备的设备类型,在测试数据集合中选取出每一本地设备对应的测试数据,并将初始调度模型和测试数据发送至对应的本地设备,或者,可以向至少一个本地设备发送测试请求,测试请求中包括初始调度模型和测试数据的存储地址,以便至少一个本地设备基于存储地址获得初始调度模型和测试数据,或者,还可以将初始调度模型和测试数据打包成测试包,并将测试包发送至第三方服务器,以便第三方服务器将测试包发送至至少一个本地设备,等等。
至少一个本地设备中的每一本地设备在接收到初始调度模型和测试数据之后,便可以通过处理器220基于测试数据生成测试反馈数据,处理器220基于测试数据生成测试反馈数据的方式参见上文所述,在此就不再一一赘述。
S540:接收每一本地设备返回的测试反馈数据,并基于测试反馈数据,对初始调度模型进行训练,以得到每一本地设备对应的通用调度模型。
其中,通用调度模型可以包括跨设备的算力资源调度的通用性模型。
处理器220接收每一本地设备返回的测试反馈数据的方式可以参见上文所述,在此就不再一一赘述。
处理器220在接收到每一本地设备返回的测试反馈数据之后,便可以基于测试反馈数据,对初始调度模型进行训练,从而得到每一本地设备对应的通用调度模型。基于测试反馈数据对初始调度模型进行训练的方式可以有多种,比如,处理器220可以基于测试反馈数据,对初始调度模型进行训练,得到初始通用调度模型,确定每一本地设备的调度模型格式,并基于调度模型格式,对初始通用调度模型进行格式转换,得到每一本地设备对应候选通用调度模型,以及对候选通用调度模型进行知识蒸馏,以得到每一本地设备对应的通用调度模型。
其中,基于测试反馈数据,对初始调度模型进行训练的方式可以有多种,比如,处理器220可以基于测试反馈数据,生成跨设备的目标训练样本,基于目标训练样本,采用多种训练框架,对初始调度模型进行训练,从而得到初始通用调度模型。
其中,多种训练框架可以包括Gym的训练框架(一种强化学习的训练框架)、集成DQN(一种深度强化学习)等训练算法对应的训练框架或者底层调用Pytorch(一种神经网络框架)等深度学习框架中的至少一种。
其中,远程服务器对初始调度模型的训练方式可以包括离线训练或在线训练中的一种。
其中,调度模型格式可以包括本地设备中的引擎支持的调度模型的格式。不同的本地设备可以包括相同的调度模型格式,也可以包括不同的调度模型格式。调度模型格式的类型可以有多种,比如,可以包括xNN(一种端侧的学习引擎支持的模型格式)或者其他转用的端侧学习引擎支持的模型格式。所述学习引擎可以包括超轻量的端侧学习引擎,该学习引擎可以具备基本的前向推理和梯度反传能力,支持基本的全连接、relu(一种激活函数)等Op(神经元)。
处理器220在对初始通用调度模型进行格式转换后,并可以对转换后的候选通用调度模型进行知识蒸馏,从而可以得到轻量化的通用调度模型,将轻量化的通用调度模型作为对应的本地设备的通用调度模型。对候选通用调度模型进行知识蒸馏的方式可以有多种,比如,处理器220可以获得轻量化的学生模型,将候选通用调度模型作为教师模型,基于教师模型对学生模型进行知识蒸馏,从而得到对应的本地设备的通用调度模型,或者,还可以对候选通用调度模型进行自蒸馏,从而得到对应的本地设备的通用调度模型,等等。
S560:将通用调度模型发送至每一本地设备,以便每一本地设备对通用调度模型进行更新,得到每一本地设备的算力资源调度模型。
其中,将通用调度模型发送至每一本地设备的方式可以有多种,具体可以如下:
例如,处理器220可以直接将通用调度模型发送至每一本地设备,或者,可以向对应的本地设备发送更新请求,所述更新请求包括通用调度模型的存储地址,以便本地设备基于存储地址获得对应的通用调度模型,或者,还可以向第三方服务器发送每一本地设备对应的通用调度模型,以便第三方服务器向每一本地设备发送对应的通用调度模型,等等。
本地设备在接收到通用调度模型之后,便可以通过处理器220对通用调度模型进行更新,从而得到每一本地设备的算力资源调度模型。因此,针对端侧的本地设备,算力资源调度模型的训练方法400还可以包括:
S460:对通用调度模型进行更新,得到本地设备对应的算力资源调度模型。
例如,处理器220可以获得本地设备的本地训练数据,基于本地设备的设备场景,确定本地设备的更新时间,以及基于更新时间和本地训练数据,对通用调度模型进行训练,得到算力资源调度模型。
其中,本地训练数据可以包括通过通用调度模型进行算力资源调度后积累的本地训练样本。获得本地设备的本地训练数据的方式可以有多种,比如,处理器220可以确定接收到目标任务的第一执行请求,并获得本地设备在当前状态下的第三状态数据,将第三状态数据输入通用调度模型,以得到当前调度数据,并基于当前调度数据,确定当前状态下的当前调度操作,执行当前调度操作,以得到当前操作从挨揍对应的当前操作反馈数据,并返回执行确定接收到目标任务的第一执行请求的步骤,直至当前操作反馈数据的数量大于第二预设数量阈值时为止,得到本地训练数据。
其中,确定接收到目标任务的第一执行请求,就可以表明本地设备需要执行目标任务,此时,就可以对本地设备进行算力资源调度,从而可以降低本地设备在执行目标任务时的链路总耗时。另外,第三状态数据就可以包括执行目标任务前的本地设备的状态数据。
其中,处理器220将第三状态数据输入至通用调度模型,以得到当前调度数据,并基于当前调度数据确定当前调度操作过程可以参见上文所述,在此就不再一一赘述。
处理器220在确定当前调度操作之后,便可以执行当前调度操作,以得到当前调度操作对应的当前操作反馈数据。处理器220得到当前调度操作对应的当前操作反馈数据的方式与得到操作反馈数据的方式类似,详见上文所述,在此就不再一一赘述。
处理器220在得到当前操作反馈数据之后,便可以返回执行确定接收到目标任务的第一执行请求的步骤,从而可以积累当前操作反馈数据,直至当前操作反馈数据大于第二预设数量阈值时为止,以得到本地训练数据。基于当前操作反馈数据,确定本地训练数据的方式详见上文所述,在此就不再一一赘述。
其中,设备场景可以包括本地设备所处的场景,设备场景的类型可以有多种,比如,可以包括学校、公司、公共交通、写字楼、工厂、旅游景点、酒店、居民小区或者工业园区,等等。基于本地设备的设备场景,确定本地设备的更新时间的方式可以有多种,比如,处理器220可以获得本地设备的设备地址,基于设备地址,确定本地设备的设备场景,基于设备场景,确定本地设备对应的空闲时间,将空间时间作为更新时间,或者,还可以获得本地设备的设备地址,基于设备地址,确定本地设备的设备场景,在预设更新时间集合中选取出设备场景对应的更新时间,等等。
其中,空闲时间可以包括本地设备未执行目标任务的时间或设备场景对应的闲时。比如,以设备场景为中小学为例,该设备场景对应的闲时就可以包括放学后的时间、学生上课的时间或者学校放假的时间,等等。不同设备场景对应的空闲时间可以相同,也可以不同,比如,对于大部分场景下,空闲时间可以包括深夜或凌晨,又比如,对于景点来说,空闲时间就可以包括工作日,但是对于写字楼来说,空闲时间就可以包括休息日,等等。
处理器220在获得本地训练数据和确定更新时间之后,便可以基于更新时间和本地训练数据,对通用调度模型进行训练,得到算力资源模型。对通用调度模型进行训练的方式可以有多种,比如,处理器220可以在更新时间,基于本地训练数据,对通用调度模型进行更新,从而得到算力资源调度模型。对通用调度模型的更新方式与对算力资源调度模型更新的方式类似,详见上文所述,在此就不再一一赘述。
其中,在本地设备对通用调度模型进行更新时,本地设备还可以执行目标任务,比如,处理器220可以基于更新时间和本地训练数据,对通用调度模型进行训练。在训练还未完成的情况下,确定接收到目标任务的第二执行请求,停止通用调度模型的训练,并存储通用调度模型的训练中间数据,以及确定目标任务执行完成时,基于训练中间数据,对通用调度模型进行训练,得到算力资源调度模型。
其中,训练中间数据可以包括停止训练时刻对应的通用调度模型的训练数据。不同的停止训练时刻对应的训练中间数据可以相同,也可以不同。在本地设备中,应用过程(通过通用调度模型进行算力资源调度并执行目标任务)的优先级可以大于训练过程(对通用调度模型进行训练或更新)。
其中,需要说明的是,因为设备数据安全和隐式问题,端侧的部分本地设备的数据无法回流至远程服务器,且为了使得通用调度模型更适用于当前的本地设备,本地设备就可以在端侧将实时数据作为本地训练数据对通用调度模型进行优化训练,从而得到本地设备对应的算力资源调度模型。因此,本地设备可以向远程服务器返回当前操作反馈数据,并接收远程服务器返回的通用调度模型,然后,在闲时,通过本地训练数据对通用调度模型进行优化更新,从而得到适配与本地设备的算力资源调度模型,或者,本地设备还可以直接获得存储在远程服务器的通用调度模型,然后,在闲时,通过本地训练数据对通用调度模型进行优化更新,从而得到适配与本地设备的算力资源调度模型,等等。端侧的本地设备对应的算力资源调度模型的训练流程可以如图6所示,可以包括获得通用调度模型,然后,执行初始策略(目标调度操作)获得反馈,基于反馈积累本地训练数据,在闲时对通用调度模型进行训练,最后将训练好的通用调度模型更新为本地设备对应的算力资源调度模型。随着本地训练数据规模的积累,算力资源调度模型还可以不断优化以适配当前的本地设备,实现越用越好用的目的。
其中,需要说明的是,对初始调度模型的训练,从而得到本地设备的算力资源调度模型的整个过程可以看作是一个端云协同的训练过程,具体可以如图7所述,可以包括云侧的远程服务器搭建仿真测试环境,将初始调度模型和测试数据下发至每一本地设备,本地设备在获得测试数据(原始输入),本地设备执行各类策略(至少一个目标调度操作)获得操作反馈数据,然后,积累本地训练样本,至少一个本地设备中每一本地设备将本地训练数据导出至远程服务器,远程服务器可以离线基于本地训练样本大规模训练初始调度模型,从而得到通用调度模型,然后,将通用调度模型下发至每一本地设备(也可以包括未返回本地训练样本的本地设备),本地设备基于本地的实时数据作为本地训练数据对通用调度模型进行更新,从而得到本地设备的算力资源调度模型。
其中,本地设备可以包括自主学习平台,自主学习平台具备增强学习、端侧智能决策和云端知识蒸馏能力,通过增强学习,完成算力分配参数的自动调整,以适应不同本地设备和不同场景,实现本地设备越用越好用的目的。以本地设备的应用场景为刷脸支付为例,远程服务器可以向本地设备下发初始调度模型或通用调度模型,本地设备将操作反馈数据或当前操作反馈数据进行数据回流至远程服务器,具体可以如图8所示。本地设备可以包括刷脸、收益、营销和运行组件(ABCP),还可以包括记忆模块、端侧学习引擎和决策模块,所述记忆模块还可以包括端侧实时数据采集子单元和ABCP数据采集单元,端侧学习引擎可以包括通用调度模型和/或算力资源调度模型。远程服务器可以实现模型管理、数据管理和知识蒸馏,等等。远程服务器还可以包括人货场模型,人货场模型用于接收本地设备发送的刷脸支付请求进行交易或交互处理。
其中,需要说明的是,刷脸、收银、营销、运行等组件提供了海量的数据来源,从回流到云端的海量数据中选取出所需的系统状态、算法状态等信息,用于远程服务器的通用调度模型的训练,使其具备实时算力决策能力;对每一个端侧的本地设备,将通用调度模型下发至端侧的本地设备,并通过远程服务器的知识蒸馏使本地设备具备云侧的模型算力决策能力,同时为了使通用调度模型对当前的本地设备更适用,在端侧积累样本并实时训练,使得通用调度模型的性能进一步提升,进而得到本地设备对应的算力资源调度模型。
其中,还需要说明的是,端侧的自主学习平台可以采用Q-Learning(一种强化学习的算法)结构,可以如图9所示,具体可以包括感知模块(Perception)、记忆模块(Memory)、打分模块(Cost)和决策模块(Actor),具体可以如下:
(1):感知模块:感知模块可以被配置为进行环境感知、链路配置感知、设备状态感知和算法(应用模型)状态感知,从而能可以获取当前系统的状态,包括参数配置(线程数分配、模型加载类型等)、设备状态(芯片类型、CPU占用率、内存占用率等)、端侧算法输出和耗时等信息,并进行统计量的计算。所述统计量可以包括均值、方差或者其他类型的统计量。感知模块可以集成在ABCP组件中,或者,ABCP组件中可以包括感知模块。
(2)记忆模块:记忆模块可以被配置为存储状态序列、操作序列和收益序列。所述状态序列可以包括原状态的状态数据和新状态的状态数据,所述操作序列可以包括采取的Action(目标调度操作),所述收益序列可以包括得分(调度评分)和/或链路实际总耗时。记忆模块可以按照(时间戳、原状态、采取的Action、新状态、得分)的格式打包历史数据,将其写入数据库或文件系统,回传给DataHub,为通用调度模型或算力资源调度模型的输入提供接口。
(3)打分模块:打分模块可以被配置为分析设备状态、分析算法性能和分析收益。打分模块可以根据业务指标对系统状态进行评估,并使用初始调度模型/通用调度模型/算力资源调度模型等策略模型对当前状态下所有可能采取的Action(调度操作)进行得分预测,其中策略模型的输入为原状态的状态数据,输出结果为所有Action(调度操作)对应的各自得分(调度评分),在刷脸支付任务下,得分体现为链路的总耗时。打分模块可以集成在端侧学习引擎中,另外,初始调度模型/通用调度模型/算力资源调度模型等策略模型也可以存储在端侧学习引擎中。
(4)决策模块:决策模块可以被配置为决策本地设备操作、配置调整和异常告警。决策模块可以根据打分模块的结果,选择合适的Action(调度操作)或者Action序列,具备探索非最优Action的能力,避免决策结果陷入局部最优解;同时具备执行决策的通路,使得Action在实际链路中生效。调度操作可以包括线程数的增加或者减少、各个模型并行线程数的调整、动态加载模型的能力,即根据gpuMask配置将模型重新加载到对应的计算单元上。另外,决策模块中还可以包括动作执行单元,通过动作执行单元执行合适的Action或者Action序列,从而实现在刷脸支付任务下,对本地设备的算力资源进行调度。
其中,本方案可以自动遍历所有参数空间,同时灵活支持新的参数的添加与现有参数的删除,能够在短时间内积累大量样本,快速在巨大的参数空间中找出最优解,省去了人工挑选参数的大量工作。初始调度模型/通用调度模型/算力资源调度模型等策略模型可以有多个本地设备数据支持,支持跨设备的算力调度,对于新接入的本地设备以及新的场景也具有较强的泛化能力,当算法链路资源供需发生变化或新设备接入时无需对本地设备的算力分配单独调整,可以省时省力地实现本地设备的大规模铺设。另外,端侧的自主学习平台并不是训好模型就固定不变,而是在端侧继续实时优化,采集到的数据完全符合实际链路的分布情况,且根据当前的本地设备的系统状态智能调整算力分配方案,在最小化工作量的同时,能够得到特异于当前的本地设备的最优算力调度策略(目标调度操作),最后,本地设备中的自主学习平台可以提供一个跨设备的算力调度方案,并可以不断完善自身策略模型,实现各个本地设备越用越好用的目的。
综上所述,本说明书提供的算力资源调度方法300、算力资源调度模型的训练方法400/500和系统100,在获得本地设备在当前状态下的状态数据后,将状态数据输入至算力资源调度模型,以得到当前状态下的调度数据,所述调度数据中包括目标调度操作的操作数据,以及,基于操作数据,执行目标调度操作,以在本地设备进行算力资源调度;由于该方案可以通过算力资源调度模型基于状态数据,自动遍历所有参数空间并进行决策,从而得到当前状态下匹配的目标调度操作的操作数据,因此,可以提升算力资源调度的调度效率。
本说明书另一方面提供一种非暂时性存储介质,存储有至少一组用来进行算力资源调度方法300、算力资源模型的训练方法400/500的可执行指令。当所述可执行指令被处理器执行时,所述可执行指令指导所述处理器实施本说明书所述的算力资源调度方法300、算力资源模型的训练方法400/500的步骤。在一些可能的实施方式中,本说明书的各个方面还可以实现为一种程序产品的形式,其包括程序代码。当所述程序产品在计算设备200上运行时,所述程序代码用于使计算设备200执行本说明书描述的算力资源调度方法300、算力资源模型的训练方法400/500的步骤。用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)包括程序代码,并可以在计算设备200上运行。然而,本说明书的程序产品不限于此,在本说明书中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在计算设备200上执行、部分地在计算设备200上执行、作为一个独立的软件包执行、部分在计算设备200上部分在远程计算设备上执行、或者完全在远程计算设备上执行。
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者是可能有利的。
综上所述,在阅读本详细公开内容之后,本领域技术人员可以明白,前述详细公开内容可以仅以示例的方式呈现,并且可以不是限制性的。尽管这里没有明确说明,本领域技术人员可以理解本说明书需求囊括对实施例的各种合理改变,改进和修改。这些改变,改进和修改旨在由本说明书提出,并且在本说明书的示例性实施例的精神和范围内。
此外,本说明书中的某些术语已被用于描述本说明书的实施例。例如,“一个实施例”,“实施例”和/或“一些实施例”意味着结合该实施例描述的特定特征,结构或特性可以包括在本说明书的至少一个实施例中。因此,可以强调并且应当理解,在本说明书的各个部分中对“实施例”或“一个实施例”或“替代实施例”的两个或更多个引用不一定都指代相同的实施例。此外,特定特征,结构或特性可以在本说明书的一个或多个实施例中适当地组合。
应当理解,在本说明书的实施例的前述描述中,为了帮助理解一个特征,出于简化本说明书的目的,本说明书将各种特征组合在单个实施例、附图或其描述中。然而,这并不是说这些特征的组合是必须的,本领域技术人员在阅读本说明书的时候完全有可能将其中一部分设备标注出来作为单独的实施例来理解。也就是说,本说明书中的实施例也可以理解为多个次级实施例的整合。而每个次级实施例的内容在于少于单个前述公开实施例的所有特征的时候也是成立的。
本文引用的每个专利,专利申请,专利申请的出版物和其他材料,例如文章,书籍,说明书,出版物,文件,物品等,可以通过引用结合于此。用于所有目的全部内容,除了与其相关的任何起诉文件历史,可能与本文件不一致或相冲突的任何相同的,或者任何可能对权利要求的最宽范围具有限制性影响的任何相同的起诉文件历史。现在或以后与本文件相关联。举例来说,如果在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关的术语、描述、定义和/或之间存在任何不一致或冲突时,使用本文件中的术语为准。
最后,应理解,本文公开的申请的实施方案是对本说明书的实施方案的原理的说明。其他修改后的实施例也在本说明书的范围内。因此,本说明书披露的实施例仅仅作为示例而非限制。本领域技术人员可以根据本说明书中的实施例采取替代配置来实现本说明书中的申请。因此,本说明书的实施例不限于申请中被精确地描述过的实施例。

Claims (22)

1.一种算力资源调度方法,应用于本地设备,包括:
获得所述本地设备在当前状态下的状态数据;
将所述状态数据输入至算力资源调度模型,以得到所述当前状态下的调度数据,所述调度数据包括目标调度操作的操作数据;以及
基于所述操作数据,执行所述目标调度操作,以在所述本地设备进行算力资源调度。
2.根据权利要求1所述的算力资源调度方法,其中,所述状态数据包括算力配置数据、设备状态数据或运行状态数据中的至少一种。
3.根据权利要求1所述的算力资源调度方法,其中,所述目标调度操作包括线程调整或所述本地设备中至少一个应用模型的模型加载类型的调整中的至少一个。
4.根据权利要求3所述的算力资源调度方法,其中,所述线程调整包括线程数调整或所述至少一个应用模型中每一应用模型的并行线程数调整中的至少一个。
5.根据权利要求1所述的算力资源调度方法,其中,所述操作数据包括操作标识、操作参数或操作时序中的至少一种。
6.根据权利要求1所述的算力资源调度方法,其中,所述将所述状态数据输入至目标调度模型,以得到所述当前状态下的调度数据,包括:
将所述状态数据输入至所述算力资源调度模型,以得到所述当前状态下每一预设调度操作的调度评分,所述调度评分表征执行对应的所述预设调度操下所述本地设备执行目标任务的预测链路耗时;以及
基于所述调度评分,在所述每一预设调度操作中选取出至少一个调度操作,以得到所述当前状态下的调度数据。
7.根据权利要求6所述的算力资源调度方法,其中,所述在所述每一预设调度操作中选择出至少一个调度操作,以得到所述当前状态下的调度数据,包括:
基于所述调度评分,在预设调度操作集合中选取出至少一个候选调度操作,得到候选调度操作集合,所述预设调度操作集合包括所述每一预设调度操作;
基于预设业务指标和所述状态数据,对所述本地设备进行状态评估,得到评估结果;以及
基于所述评估结果,在所述候选调度操作集合中选取出目标调度操作,并确定所述目标调度操作的操作数据,以得到所述调度数据,所述目标调度操作包括所述本地设备执行所述目标任务下的全局链路耗时满足预设耗时条件下的至少一个候选调度操作。
8.根据权利要求7所述的算力资源调度方法,其中,所述在预设调度操作集合中选取出至少一个候选调度操作,得到候选调度操作集合,包括:
基于所述调度评分,对所述预设调度操作集合中的所述每一预设调度操作进行排序;以及
基于排序结果,在所述预设调度操作集合中选取出预设排序范围对应的至少一个预设调度操作,得到所述候选调度操作集合。
9.根据权利要求6所述的算力资源调度方法,其中,所述目标任务包括生物识别、交互、营销或运行中的至少一种。
10.根据权利要求1所述的算力资源调度方法,其中,所述基于所述操作数据,执行所述目标调度操作,以在所述本地设备进行算力资源调度之后,还包括:
获得所述本地设备的目标状态数据,所述目标状态数据包括在执行所述目标调度操作之后的所述本地设备的状态数据;以及
获得所述本地设备在执行目标任务下的链路实际耗时,并将所述目标调度操作对应的目标调度评分、所述状态数据、所述目标状态数据和所述链路实际耗时进行打包,得到历史调度参数。
11.根据权利要求10所述的算力资源调度方法,其中,所述将所述目标调度操作对应的目标调度评分、所述状态数据、所述目标状态数据和所述链路实际耗时进行打包,得到历史调度参数之后,还包括:
确定所述历史调度参数的数量大于第一预设数量阈值,基于所述历史调度参数,对所述算力资源调度模型进行更新;以及
将更新后的算力资源调度模型作为所述算力资源调度模型。
12.一种算力资源调度模型的训练方法,应用于本地设备,包括:
获得存储在远程服务器的初始调度模型和测试数据,并将所述测试数据输入至所述初始调度模型,以得到所述本地设备的测试反馈数据;
将所述测试反馈数据发送至所述远程服务器,并接收所述远程服务器返回的通用调度模型,所述通用调度模型包括所述远程服务器基于至少一个所述本地设备的测试反馈数据对所述初始调度模型进行训练后得到的调度模型;以及
对所述通用调度模型进行更新,得到所述本地设备对应的算力资源调度模型。
13.根据权利要求12所述的算力资源调度模型的训练方法,其中,所述将所述测试数据输入至所述初始调度模型,以得到所述本地设备的测试反馈数据,包括:
在仿真测试环境下,将所述测试数据输入至所述初始调度模型,得到预测调度数据,所述仿真测试环境包括模拟异常情况的测试环境;
执行预设调度操作集合中的预设调度操作,以得到至少一个目标调度操作对应的操作反馈数据;以及
将所述预测调度数据和所述操作反馈数据作为所述本地设备的测试反馈数据。
14.根据权利要求13所述的算力资源调度模型的训练方法,其中,所述执行预设调度操作集合中的预设调度操作,以得到至少一个目标调度操作对应的操作反馈数据,包括:
在所述预设调度操作集合中选取出候选调度操作,并执行所述候选调度操作,以得到所述候选调度操作的初始操作反馈数据;
返回执行所述在所述预设调度操作集合中选取出候选调度操作的步骤,直至所述预设调度操作集合中的预设调度操作全部选取时为止,得到所述预设调度操作集合中每一预设调度操作对应的初始操作反馈数据;以及
基于所述初始操作反馈数据和所述预设调度操作集合,确定出至少一个目标调度操作和所述至少一个目标调度操作对应的操作反馈数据。
15.根据权利要求14所述的算力资源调度模型的训练方法,其中,所述执行所述候选调度操作,以得到所述候选调度操作的初始操作反馈数据,包括:
获得所述本地设备的第一状态数据,所述第一状态数据包括所述本地设备在执行所述候选调度操作之前的状态数据;
执行所述候选调度操作,并获得所述本地设备的第二状态数据,所述第二状态数据包括所述本地设备在执行所述候选调度操作之后的状态数据;以及
基于所述第一状态数据和所述第二状态数据,确定所述候选调度操作的初始操作反馈数据。
16.根据权利要求12所述的算力资源调度模型的训练方法,其中,所述对所述通用调度模型进行更新,得到所述本地设备对应的算力资源调度模型,包括:
获得所述本地设备的本地训练数据;
基于所述本地设备的设备场景,确定所述本地设备的更新时间;以及
基于所述更新时间和所述本地训练数据,对所述通用调度模型进行训练,得到所述算力资源调度模型。
17.根据权利要求16所述的算力资源调度模型的训练方法,其中,所述获得所述本地设备的本地训练数据,包括:
确定接收到目标任务的第一执行请求,并获得所述本地设备在当前状态下的第三状态数据;
将所述第三状态数据输入至所述通用调度模型,以得到当前调度数据,并基于所述当前调度数据,确定所述当前状态下的当前调度操作;以及
执行所述当前调度操作,以得到所述当前调度操作对应的当前操作反馈数据,并返回执行所述确定接收到目标任务的第一执行请求的步骤,直至所述当前操作反馈数据的数量大于第二预设数量阈值时为止,以得到所述本地训练数据。
18.根据权利要求16所述的算力资源调度模型的训练方法,其中,所述对所述通用调度模型训练,得到所述算力资源调度模型,包括:
基于所述更新时间和所述本地训练数据,对所述通用调度模型训练;
确定接收到目标任务的第二执行请求,停止所述通用调度模型的训练,并存储所述通用调度模型的训练中间数据;以及
确定所述目标任务执行完成时,基于所述训练中间数据,对所述通用调度模型进行训练,得到所述算力资源调度模型。
19.一种算力资源调度模型的训练方法,应用于与至少一个本地设备进行通信连接的远程服务器,包括:
将初始调度模型和测试数据发送至所述至少一个本地设备,以便所述至少一个本地设备中每一本地设备基于所述测试数据生成测试反馈数据;
接收所述每一本地设备返回的所述测试反馈数据,并基于所述测试反馈数据,对所述初始调度模型进行训练,以得到所述每一本地设备对应的通用调度模型;以及
将所述通用调度模型发送至所述每一本地设备,以便所述每一本地设备对所述通用调度模型进行更新,得到所述每一本地设备的算力资源调度模型。
20.根据权利要求19所述算力资源调度模型的训练方法,其中,所述对所述初始调度模型进行训练,以得到所述每一本地设备对应的通用调度模型,包括:
基于所述测试反馈数据,对所述初始调度模型进行训练,得到初始通用调度模型;
确定所述每一本地设备的调度模型格式,并基于所述调度模型格式,对所述初始通用调度模型进行格式转换,得到所述每一本地设备对应的候选通用调度模型;以及
对所述候选通用调度模型进行知识蒸馏,以得到所述每一本地设备对应的通用调度模型。
21.一种算力资源调度系统,包括:
至少一个存储介质,存储有至少一个指令集,用于进行算力资源调度;以及
至少一个处理器,同所述至少一个存储介质通信连接,
其中,当所述算力资源调度系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行权利要求1-11中任一项所述的算力资源调度方法。
22.一种算力资源调度模型的训练系统,包括:
至少一个存储介质,存储有至少一个指令集,用于进行算力资源调度模型的训练;以及
至少一个处理器,同所述至少一个存储介质通信连接,
其中,当所述算力资源调度模型的训练系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行权利要求12-20中任一项所述的算力资源调度模型的训练方法。
CN202310486015.2A 2023-04-28 2023-04-28 算力资源调度方法、算力资源调度模型的训练方法和系统 Pending CN116643877A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310486015.2A CN116643877A (zh) 2023-04-28 2023-04-28 算力资源调度方法、算力资源调度模型的训练方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310486015.2A CN116643877A (zh) 2023-04-28 2023-04-28 算力资源调度方法、算力资源调度模型的训练方法和系统

Publications (1)

Publication Number Publication Date
CN116643877A true CN116643877A (zh) 2023-08-25

Family

ID=87638998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310486015.2A Pending CN116643877A (zh) 2023-04-28 2023-04-28 算力资源调度方法、算力资源调度模型的训练方法和系统

Country Status (1)

Country Link
CN (1) CN116643877A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785482A (zh) * 2024-02-26 2024-03-29 广州尚航信息科技股份有限公司 一种算力网络的算力调度系统及方法
CN118093210A (zh) * 2024-04-29 2024-05-28 浙江鹏信信息科技股份有限公司 基于模型蒸馏的异构算力调度方法、系统及可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785482A (zh) * 2024-02-26 2024-03-29 广州尚航信息科技股份有限公司 一种算力网络的算力调度系统及方法
CN117785482B (zh) * 2024-02-26 2024-05-24 广州尚航信息科技股份有限公司 一种算力网络的算力调度系统及方法
CN118093210A (zh) * 2024-04-29 2024-05-28 浙江鹏信信息科技股份有限公司 基于模型蒸馏的异构算力调度方法、系统及可读存储介质

Similar Documents

Publication Publication Date Title
US10725827B2 (en) Artificial intelligence based virtual automated assistance
CN109375601A (zh) 基于数据驱动建模与仿真优化的流水线规划方法及设备
CN109669452A (zh) 一种基于并行强化学习的云机器人任务调度方法和系统
JP7118726B2 (ja) ワークフローエンジンフレームワーク
CN105408919A (zh) 查询响应设备
Cai et al. Real-time scheduling simulation optimisation of job shop in a production-logistics collaborative environment
CN112001585A (zh) 多智能体决策方法、装置、电子设备及存储介质
CN110222924B (zh) 多方式的城市轨道交通车站客流控制系统及控制方法
CN110390415A (zh) 一种基于用户出行大数据进行出行方式推荐的方法及系统
US11321634B2 (en) Minimizing risk using machine learning techniques
CN113287124A (zh) 用于搭乘订单派遣的系统和方法
CN111949795A (zh) 工单自动分类方法及装置
CN109947532A (zh) 一种教育云平台中的大数据任务调度方法
CN116643877A (zh) 算力资源调度方法、算力资源调度模型的训练方法和系统
CN116450312A (zh) 面向流水线并行训练的调度策略确定方法及系统
EP4009233A1 (en) Feature prediction method and system, and engine
CN114862209A (zh) 运力调度方法、装置、电子设备及存储介质
CN106127365A (zh) 定量遥感产品在线交互式自主生产方法
CN115599524A (zh) 一种基于流数据和批数据协同调度处理的数据湖系统
US11868808B2 (en) Automatic driving simulation task scheduling method and apparatus, device, and readable medium
US20200074340A1 (en) Systems and methods for accelerating model training in machine learning
WO2021229625A1 (ja) 学習装置、学習方法および学習プログラム
CN112514352A (zh) 更新调度规则的方法、设备、系统、存储介质和终端
WO2021229626A1 (ja) 学習装置、学習方法および学習プログラム
Zhang et al. Dynamic decision-making for knowledge-enabled distributed resource configuration in cloud manufacturing considering stochastic order arrival

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