掌桥专利:专业的专利平台
掌桥专利
首页

调度网络训练方法、任务调度方法及相关设备

文献发布时间:2024-01-17 01:26:37


调度网络训练方法、任务调度方法及相关设备

技术领域

本申请涉及人工智能(artificial intelligence, AI)领域,特别涉及一种调度网络训练方法、任务调度方法及相关设备。

背景技术

功耗是终端设备的重要评价指标之一,也是用户挑选终端设备的重要选择点。以终端设备为手机为例,手机功耗大体现在手机容易发热发烫、卡顿、闪退、耗电快、续航差等方面。

终端设备可以安装有多个应用,终端设备可以响应于用户操作开启指定应用,以满足用户的使用需求。在满足用户对于应用运行性能要求的前提下,当前终端设备的应用的线程参数(例如迁核参数)主要依赖相关人员凭借经验进行预先设定,设定之后一般不会进行更改,不同的线程参数配置会带来不同的功耗。由于线程参数的可调节空间很大,凭借人工经验几乎不能确保得到的是最优的低功耗配置参数。因此,在满足用户性能要求的情形下,如何降低终端设备功耗是一大待解决的问题。

发明内容

本申请提供了一种调度网络训练方法、任务调度方法及相关设备,通过强化学习训练得到任务调度网络并使用任务调度网络对应用进行不同使用场景的调度(例如线程参数设定),可解决人工凭借经验设定应用的线程参数导致终端设备功耗较高的问题,提升终端设备续航能力。

第一方面,本申请实施提供一种调度网络训练方法,应用于网络训练设备,该方法包括:接收终端设备采集的训练数据,终端设备部署有第一神经网络,网络训练设备部署有第二神经网络,终端设备基于第一神经网络采集与运行的预设应用关联的设备状态数据作为训练数据;基于训练数据对第二神经网络进行强化学习训练,得到用于对预设应用进行调度的任务调度网络;将任务调度网络的网络参数发送给终端设备。

采用上述技术方案,通过在终端设备与网络训练设备部署神经网络,终端设备基于部署的神经网络进行训练数据的采集,网络训练设备基于训练数据进行神经网络的强化学习训练,训练得到的神经网络的网络参数(例如,权重与偏置)发送至终端设备进行神经网络更新,如此反复执行,实现训练得到用于对应用进行调度的任务调度网络,任务调度网络可用于对应用进行不同使用场景的调度,应用调度可以是指设定应用的线程参数,例如在CPU核心之间进行迁移的参数,可解决人工凭借经验设定应用的线程参数导致终端设备功耗较高或无法得到最优的低功耗参数配置问题,最大程度降低终端设备运行该应用期间的功耗,提升终端设备续航能力。

在一种可能的实现方式中,基于训练数据对第二神经网络进行强化学习训练,包括:对训练数据进行预处理,预处理包括规划化处理和/或函数映射变换处理;基于预设的批次大小将预处理后的训练数据划分为多个批次数据,及每次输入一个批次数据至第二神经网络,进行强化学习训练。

采用上述技术方案,通过对训练数据进行规划化处理,可以实现在网络训练前将每条训练数据进行关联,且可使得训练得到的任务调度网络以实现在采集这些训练数据期间的功耗最小化为训练目标,通过对训练数据进行函数映射变换处理,可以避免奖励收敛在较高的性能点位,实现在预设应用的性能达标的情形下,最大程度降低终端设备的功耗,且可以实现拉大各条训练数据之间的参数数据的差异,解决神经网络对训练数据之间存在较小的差异不够敏感的问题,有助于提升神经网络的性能,通过对预处理后的训练数据划分为多个批次数据,可以加快网络的训练速度与收敛速度。

在一种可能的实现方式中,训练数据包括多组,多组训练数据中的每组训练数据均包括多个参数数据,规划化处理包括对每组训练数据中的多个参数数据进行规范处理,使得多组训练数据中的属于同一个类型的参数数据符合高斯分布。

采用上述技术方案,由于训练数据包括多个参数数据,通过对各个参数数据进行规范处理,可以使得多组训练数据中的同一参数数据符合高斯分布,可降低网络运算复杂性,且使得训练得到的任务调度网络以实现在采集这些训练数据期间的功耗最小化为训练目标。

在一种可能的实现方式中,函数映射变换处理包括将训练数据中的指定的参数数据代入预设函数,得到变换后的参数数据。

采用上述技术方案,通过使用预设的函数对训练数据中的指定的参数数据进行函数映射变换处理,可以实现拉大各条训练数据之间的参数数据的差异,解决神经网络对训练数据之间存在较小的差异不够敏感的问题,有助于提升神经网络的性能,且可以避免奖励收敛在较高的性能点位,实现在预设应用的性能达标的情形下,最大程度降低终端设备的功耗。

在一种可能的实现方式中,第二神经网络基于依序的n个训练回合进行强化学习训练,n为大于1的正整数,对于第i个训练回合,i为小于或等于n的正整数,基于训练数据对第二神经网络进行强化学习训练,得到用于对预设应用进行调度的任务调度网络,包括:若i

采用上述技术方案,通过在网络训练设备上对神经网络进行n个训练回合的强化学习训练得到任务调度网络,终端设备基于每次训练得到的神经网络进行训练数据的采集,可解决在性能有限的终端设备进行网络训练效率不佳,且由于进行强化学习训练会额外增加设备功耗,导致训练阶段的设备状态可能无法和推理阶段的设备状态匹配的问题,影响网络的推理性能。

在一种可能的实现方式中,第二神经网络基于依序的n个训练回合进行强化学习训练,包括:对第二神经网络进行初始化,及将第二神经网络的初始化网络参数发送给终端设备;基于依序的n个训练回合对初始化的第二神经网络进行强化学习训练。

采用上述技术方案,通过在网络训练设备上对神经网络进行初始化,并将初始化网络参数发送给终端设备,使得在网络训练之前网络训练设备上的神经网络与终端设备上的神经网络保持一致,进而后续网络训练设备可以基于终端设备采集的训练数据进行强化学习训练,以及将训练得到的网络参数发送给终端设备进行更新,实现两者部署的神经网络一致性。

第二方面,本申请实施例提供一种任务调度方法,应用于终端设备,终端设备部署有上述调度网络训练方法训练得到的任务调度网络,任务调度方法包括:在开启预设应用的情形下,基于任务调度网络对预设应用的线程进行调度,对预设应用的线程进行调度包括设定预设应用的线程在CPU核心的迁移参数。

采用上述技术方案,通过在终端设备上部署任务调度网络,可实现在预设应用开启的情形下,对预设应用进行调度,应用调度可以是指设定应用线程的迁核参数(在不同算力的CPU核心上迁移的参数),迁核参数可包括sched_upmigrate参数与sched_downmigrate参数,而不同算力的CPU核心功耗不同,可实现在预设应用的性能达标的情形下,最大程度降低终端设备运行该应用期间的功耗,提升终端设备续航能力。

在一种可能的实现方式中,终端设备还包括任务调度网络更新功能,任务调度方法还包括:在任务调度网络更新功能处于开启的情形下,基于任务调度网络采集与预设应用关联的训练数据,及将采集的训练数据上传至网络训练设备;接收网络训练设备发送的网络更新参数,及基于网络更新参数对任务调度网络进行更新。

采用上述技术方案,由于不同用户具有不同的设备使用习惯,终端设备的老化程度不同,设备性能可能存在一定的差异,而各个终端设备在出厂前部署的是相同的任务调度网络,通过任务调度网络更新功能可以实现在终端设备出厂后根据用户需求主动发起任务调度网络的远程更新,实现任务调度网络的设备定制,可提升任务调度的准确性。

第三方面,本申请实施例提供一种任务调度方法,应用于终端设备与网络训练设备,终端设备部署有第一神经网络,网络训练设备部署有第二神经网络,任务调度方法包括:终端设备启动预设应用,及基于第一神经网络采集与预设应用关联的训练数据;终端设备将采集的训练数据发送给网络训练设备;网络训练设备基于训练数据对第二神经网络进行强化学习训练,得到用于对预设应用进行调度的任务调度网络;网络训练设备将任务调度网络的网络参数发送给终端设备;终端设备基于网络训练设备发送的网络参数对第一神经网络进行更新,得到任务调度网络。

采用上述技术方案,通过在终端设备与网络训练设备部署神经网络,终端设备基于部署的神经网络进行训练数据的采集,网络训练设备基于训练数据进行神经网络的强化学习训练,训练得到的神经网络的网络参数(权重与偏置)发送至终端设备进行神经网络更新,如此反复执行,实现训练得到用于对应用进行调度的任务调度网络,任务调度网络可用于对应用进行不同使用场景的调度,应用调度可以是指设定应用的线程参数,例如在CPU核心之间进行迁移的参数,可解决人工凭借经验设定应用的线程参数导致终端设备功耗较高或无法得到最优的低功耗参数配置问题,最大程度降低终端设备运行该应用期间的功耗,提升终端设备续航能力。

在一种可能的实现方式中,网络训练设备基于训练数据对第二神经网络进行强化学习训练,包括:网络训练设备对训练数据进行预处理,预处理包括规划化处理和/或函数映射变换处理;网络训练设备基于预设的批次大小将预处理后的训练数据划分为多个批次数据,及每次输入一个批次数据至第二神经网络,进行强化学习训练。

采用上述技术方案,通过对训练数据进行规划化处理,可以实现在网络训练前将每条训练数据进行关联,且可使得训练得到的任务调度网络以实现在采集这些训练数据期间的功耗最小化为训练目标,通过对训练数据进行函数映射变换处理,可以避免奖励收敛在较高的性能点位,实现在预设应用的性能达标的情形下,最大程度降低终端设备的功耗,且可以实现拉大各条训练数据之间的参数数据的差异,解决神经网络对训练数据之间存在较小的差异不够敏感的问题,有助于提升神经网络的性能,通过对预处理后的训练数据划分为多个批次数据,可以加快网络的训练速度与收敛速度。

在一种可能的实现方式中,训练数据包括多组,多组训练数据中的每组训练数据均包括多个参数数据,规划化处理包括对每组训练数据中的多个参数数据进行规范处理,使得多组训练数据中的属于同一个维度的参数数据符合高斯分布。

采用上述技术方案,由于训练数据包括多个参数数据,通过对各个参数数据进行规范处理,可以使得多组训练数据中的同一参数数据符合高斯分布,可降低网络运算复杂性,且使得训练得到的任务调度网络以实现在采集这些训练数据期间的功耗最小化为训练目标。

在一种可能的实现方式中,函数映射变换处理包括将训练数据中的指定的参数数据代入预设函数,得到变换后的参数数据。

采用上述技术方案,通过使用预设的函数对训练数据中的指定的参数数据进行函数映射变换处理,可以实现拉大各条训练数据之间的参数数据的差异,解决神经网络对训练数据之间存在较小的差异不够敏感的问题,有助于提升神经网络的性能,且可以避免奖励收敛在较高的性能点位,实现在预设应用的性能达标的情形下,最大程度降低终端设备的功耗。

在一种可能的实现方式中,第二神经网络基于依序的n个训练回合进行强化学习训练,n为大于1的正整数,对于第i个训练回合,i为小于或等于n的正整数,网络训练设备基于训练数据对第二神经网络进行强化学习训练,得到用于对预设应用进行调度的任务调度网络,包括:若i

采用上述技术方案,通过在网络训练设备上对神经网络进行n个训练回合的强化学习训练得到任务调度网络,终端设备基于每次训练得到的神经网络进行训练数据的采集,可解决在性能有限的终端设备进行网络训练效率不佳,且由于进行强化学习训练会额外增加设备功耗,导致训练阶段的设备状态可能无法和推理阶段的设备状态匹配的问题,影响网络的推理性能。

在一种可能的实现方式中,第二神经网络基于依序的n个训练回合进行强化学习训练,包括:网络训练设备对第二神经网络进行初始化,及将第二神经网络的初始化网络参数发送给终端设备;终端设备基于第二神经网络的初始化网络参数对第一神经网络进行初始化;网络训练设备基于依序的n个训练回合对初始化的第二神经网络进行强化学习训练。

采用上述技术方案,通过在网络训练设备上对神经网络进行初始化,并将初始化网络参数发送给终端设备,使得在网络训练之前网络训练设备上的神经网络与终端设备上的神经网络保持一致,进而后续网络训练设备可以基于终端设备采集的训练数据进行强化学习训练,以及将训练得到的网络参数发送给终端设备进行更新,实现两者部署的神经网络一致性。

在一种可能的实现方式中,对预设应用进行调度包括设定预设应用的线程在CPU核心的迁移参数。

采用上述技术方案,在预设应用开启的情形下,通过任务调度网络对预设应用进行调度,应用调度可以是指设定应用线程的迁核参数(在不同算力的CPU核心上迁移的参数),迁核参数可包括sched_upmigrate参数与sched_downmigrate参数,而不同算力的CPU核心功耗不同,可实现在预设应用的性能达标的情形下,最大程度降低终端设备运行该应用期间的功耗,提升终端设备续航能力。

在一种可能的实现方式中,终端设备还包括任务调度网络更新功能,任务调度方法还包括:在任务调度网络更新功能处于开启的情形下,终端设备基于自身部署的任务调度网络采集与预设应用关联的训练数据,及将采集的训练数据上传至网络训练设备;网络训练设备基于终端设备上传的训练数据对自身部署的任务调度网络进行强化学习训练,得到更新的任务调度网络;网络训练设备将更新的任务调度网络的网络更新参数发送至终端设备;终端设备基于网络更新参数对自身部署的任务调度网络进行更新。

采用上述技术方案,由于不同用户具有不同的设备使用习惯,终端设备的老化程度不同,设备性能可能存在一定的差异,而各个终端设备在出厂前部署的是相同的任务调度网络,通过任务调度网络更新功能可以实现在终端设备出厂后根据用户需求主动发起任务调度网络的远程更新,实现任务调度网络的设备定制,可提升任务调度的准确性。

第四方面,本申请实施例提供一种网络训练设备,包括存储器和处理器,其中,存储器用于存储计算机可读指令;处理器用于读取计算机可读指令并实现第一方面及其可选的实现方式提供的方法。

第五方面,本申请实施例提供一种终端设备,包括存储器和处理器,其中,存储器用于存储计算机可读指令;处理器用于读取计算机可读指令并实现第二方面及其可选的实现方式提供的方法。

第六方面,本申请实施例提供一种计算机存储介质,存储有计算机可读指令,且计算机可读指令在被处理器执行时实现第一方面及其可选的实现方式提供的方法,或者实现第二方面及其可选的实现方式提供的方法。

第七方面,本申请实施例提供一种计算机程序产品,计算机程序产品中包含计算机可读指令,当该计算机可读指令被处理器执行时实现第一方面及其可选的实现方式提供的方法,或者实现第二方面及其可选的实现方式提供的方法。

第八方面,本申请实施例提供一种神经网络部署系统,包括终端设备和网络训练设备,网络训练设备用于执行第一方面及其可选的实现方式提供的方法,终端设备用于执行第二方面及其可选的实现方式提供的方法。

上述第四方面、第五方面、第六方面、第七方面及第八方面所获得的技术效果与第一方面或第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种人工智能主体框架的示意图;

图2为本申请实施例提供的一种人工智能系统的示意图;

图3为本申请实施例提供的强化学习系统的示意图;

图4为本申请实施例提供的神经网络的训练过程示意图;

图5为本申请实施例提供的调度网络训练方法的流程示意图;

图6与图7为本申请实施例提供的策略网络的奖励与训练回合的关系示意图;

图8为本申请实施例提供的任务调度方法的另一种流程示意图;

图9为本申请实施例提供的任务调度方法的又一种流程示意图;

图10为本申请实施例提供的终端设备的结构示意图;

图11为本申请实施例提供的终端设备的另一种结构示意图;

图12为本申请实施例提供的一种任务调度的场景示意图;

图13为本申请实施例提供的另一种任务调度的场景示意图;

图14为本申请实施例提供的又一种任务调度的场景示意图;

图15为本申请实施例提供的网络训练设备的结构示意图;

图16为本申请实施例提供的网络训练设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,“示例性”、“或者”、“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性”、“或者”、“例如”等词旨在以具体方式呈现相关概念。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请中的技术领域的技术人员通常理解的含义相同。本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。应理解,本申请中除非另有说明,“/”表示或的意思。例如,A/B可以表示A或B。本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B三种情况。“至少一个”是指一个或者多个。“多个”是指两个或多于两个。例如,a、b或c中的至少一个,可以表示:a,b,c,a和b,a和c,b和c,a、b和c七种情况。应当理解的是,本文的流程图中所示步骤的顺序可以改变,某些也可以省略。

为便于理解本申请各实施例,首先结合图1对人工智能系统的总体工作流程进行描述。如图1所示,为一种人工智能主体框架示意图,该主体框架描述了人工智能系统的总体工作流程,适用于通用的人工智能领域的需求。

下文将从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。

“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。

“IT 价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。

(1)基础设施

基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台上的分布式计算系统中的智能芯片进行计算。

(2)数据

基础设施的上一层的数据用于表示人工智能领域的数据来源。数据包括图形、图像、语音、文本,还包括传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。

(3)数据处理

数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。

其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。

推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。

决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。

(4)通用能力

 对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。

(5)智能产品及行业应用

智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。

调度问题在计算机中可以是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态(在负载均衡中),允许多位用户有效地同时共享系统资源,或达到指定的服务质量。

本申请实施可以应用于图2所示的人工智能系统。如图2所示,该人工智能系统包括终端设备和服务器,终端设备和服务器通过通信链路连接。

其中,终端设备可以是任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、虚拟现实(virtual reality,VR)设备、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。在图2中,以终端设备为手机为例,终端设备的CPU包括多个CPU核心,CPU核心可按照算力划分为小核、中核、大核、超大核等。基于神经网络的优势,可以在图2所示的终端设备上部署神经网络,部署有神经网络的终端设备可以基于该神经网络进行任务调度。本申请实施例的任务调度中的任务可以是指进程或线程,任务调度可以是指调整任务(进程/线程)的迁核参数(sched_migrate参数),迁核参数为将任务(进程/线程)在不同类型的CPU核心上进行迁移的参数,本申请实施例通过任务调度达到满足性能要求的前提下,降低终端设备的功耗。sched_migrate参数可以包括sched_upmigrate参数和sched_downmigrate参数,sched_upmigrate参数保存有将任务从当前的CPU核心迁移到相对算力更大的CPU核心上的概率,sched_downmigrate参数保存有将任务从当前的CPU核心迁移到相对算力更小的CPU核心上的概率,调整任务(进程/线程)的迁核参数即可为调整任务(进程/线程)的sched_upmigrate参数和sched_downmigrate参数。

现有的各个应用进程/线程的迁核参数的设定规则在操作系统开发阶段已进行预先设定,一旦设定好之后,迁核参数的设定规则不会再发生变动,以相机应用为例,终端设备在出厂前已针对不同的拍照/录像模式为相机应用的线程的迁核参数设置了一个经验值,这个经验值在终端设备出厂后不会再发生变动,人为设置的经验值不能覆盖全部的使用场景,且即使对单一场景也很难是全局最优解。本申请的终端设备基于训练得到的任务调度网络为线程设定迁核参数,不仅可以实现全场景的覆盖,且可在满足性能要求的前提下,最大程度降低终端设备的功耗。

作为一种示例,神经网络可以采用强化学习算法进行训练,强化学习算法可以是深度Q网络(deep Q-network,DQN)算法,深度确定性的策略梯度(deep deterministicpolicy gradient,DDPG)算法,近端策略优化(proximal policy optimization,PPO)算法,柔性动作-评价(soft actor-critic,SAC)算法等,本申请实施例对训练神经网络采用的强化学习算法不作限定,可选地,服务器可基于PPO算法训练神经网络,得到任务调度网络。

作为一种示例,终端设备和服务器可以部署有同一神经网络(比如一个随机选择的神经网络,本申请实施例对此不作限定),可通过对神经网络进行N轮强化学习训练(N可以为大于1的正整数),得到任务调度网络,每轮训练可以包括多次的迭代训练过程。例如,第一轮强化学习训练可以是:终端设备基于神经网络收集第一组训练数据,并将第一组训练数据发送给服务器,服务器基于第一组训练数据对神经网络进行强化学习训练,得到第一中间网络,服务器将第一中间网络的网络参数发送给终端设备,网络参数可以包括权重与偏置,终端设备可以基于服务器发送的网络参数配置神经网络,得到第一中间网络。第二轮强化学习训练可以是:终端设备基于第一中间网络收集第二组训练数据,并将第二组训练数据发送给服务器,服务器基于第二组训练数据对第一中间网络进行强化学习训练,得到第二中间网络,服务器将第二中间网络的网络参数发送给终端设备,终端设备基于网络参数配置第一中间网络,得到第二中间网络。第N轮强化学习训练可以是:终端设备基于第N-1中间网络收集第N组训练数据,并将第N组训练数据发送给服务器,服务器基于第N组训练数据对第N-1中间网络进行强化学习训练,得到第N中间网络,服务器将第N中间网络的网络参数发送给终端设备,终端设备基于网络参数配置第N-1中间网络,得到第N中间网络。N轮强化学习训练结束,第N中间网络作为任务调度网络,终端设备可以基于任务调度网络进行任务调度,以最大程度降低终端设备的功耗,提升终端设备的续航能力。

作为一种示例,终端设备安装有相机应用,相机应用支持多种拍摄模式(例如,人像、拍照、夜景、录像、电影、专业等模式),训练数据为相机应用运行期间采集的数据,当终端设备启动相机应用进行拍照或者录像时,终端设备可以基于部署的任务调度网络对当前拍摄模式下的相机进程或线程进行调度,以最大程度降低拍照或者录像期间的终端设备功耗。

任务调度网络的训练可以在终端设备出厂前完成,例如,利用终端设备样机进行训练数据的采集,并借助服务器完成任务调度网络的训练,训练得到的任务调度网络再部署至各个待出厂的终端设备,后续用户使用终端设备的过程中,终端设备可以基于任务调度网络进行任务调度,以最大程度降低终端设备的功耗,提升终端设备的续航能力。

此外,不同类型的终端设备对任务调度网络的需求不同,例如,不同的终端设备,由于底层硬件差异,相同的神经网络的计算时延不同。其中,该类型不同既可以指终端设备的种类不同,例如终端设备为智能手机和平板电脑;也可以指同一种类终端设备的机型不同,因此,服务器可以基于终端设备的类型、应用场景以及其他可能的限制条件为终端设备训练合适的任务调度网络。

由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。

(1)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以x

其中,s=1、2、……n,n为大于1的自然数,W

(2)深度神经网络

深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。

虽然DNN看起来很复杂,但是就每一层的工作来说,可以通过如下线性关系表达式进行表征:

需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。

(3)卷积神经网络

卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

(4)损失函数

在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

(5)强化学习

强化学习是通过智能体(Agent)和环境(Environment)的相互作用,不断学习最优策略,做出序列决策,并获得最大回报的过程。通俗言之,强化学习是学习“做什么(即如何把当前的情景映射成动作)才能使得数值化的收益信号最大化”。智能体不会被告知应该采取什么动作,而是必须自己通过尝试去发现哪些动作会产生最丰厚的收益。强化学习是通过“试探”寻找更优解的过程。智能体必须开发已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间(即从错误中学习)。在强化学习中,智能体用于根据环境反馈的状态(State)和奖励(Reward)学习下一个合适的动作(Action),以获得最大化长期总收益;环境用于接收智能体执行的动作,对动作进行评价并转换为奖励反馈给智能体,奖励包括正向奖励和负向奖励;奖励函数用于对智能体执行的动作进行评价,计算智能体执行的动作的奖励值的函数;策略为从状态到动作的映射,策略定义了智能体在下一步选择要执行的动作的方式。

(6)马尔可夫决策过程

马尔可夫决策过程(Markov decision processes,MDP)是强化学习的常见模型,是一种基于离散时间随机控制的分析决策问题的数学模型。其假设环境具有马尔可夫性质,即环境的未来状态的条件概率分布仅依赖于当前状态,决策者通过周期性地观察环境的状态,根据当前环境的状态做出决策(也可称为动作),与环境交互后得到下一步的状态及奖励。

其中,本申请实施例中的神经网络主要是指深度神经网络。

基于MDP的强化学习可包括两种类别:基于环境状态转移建模和无环境(modelfree)模型。前者需要对环境状态转移进行建模,通常依靠经验知识或者数据拟合建立。后者则不需要对环境状态转移建模,而是根据自身在环境中的探索学习不断提升。由于强化学习所关注的真实环境往往比建立的模型更加复杂而难以预测,所以基于无环境模型的强化方法往往更利于实现和调整。

图3是一种强化学习系统的示意图。如图3所示,强化学习系统主要包含四个元素:智能体、环境状态、动作与奖励,其中,智能体的输入为状态,输出为动作。强化学习系统还包括决策策略(即策略函数)及价值函数,该决策策略与价值函数可以是由公式表征的算法,也可以是神经网络。价值函数用于预测状态或者动作的长期回报值。

目前强化学习中智能体的训练过程为:通过智能体与环境进行多次交互,获得每次交互的动作、状态、奖励;将这多组(动作,状态,奖励)作为训练数据,对智能体进行一次训练。采用上述过程,对智能体进行下一轮次训练,直至满足收敛条件。其中,获得一次交互的动作、状态、奖励的过程为:将环境当前状态s (t)130输入至智能体110,获得智能体输出的动作a(t)140,根据环境120在动作a(t)作用下的相关性能指标,计算本次交互的奖励r(t)160。至此,获得本次交互的状态s(t)130、动作a(t)140与奖励r(t)160。记录本次交互的状态s(t)130、动作a(t)140与奖励r(t)160,以备后续用来训练智能体。还记录环境在动作a(t)作用下的下一个状态s(t+1)150,以便实现智能体与环境的下一次交互。

在每个时刻t,决策者所观察到的状态s(t),在所做动作a(t)的影响下,会转移到下一状态s(t+1),并反馈奖励r(t)。其中,s(t)表示状态函数,a(t)表示动作函数,r(t)表示奖励值,t表示时间。

作为一个示例,强化学习的训练方法的实现步骤如下:a

训练终止条件一般是指智能体训练时步骤a

完成训练的智能体,进入推理阶段可以执行如下步骤:b

在实际使用时,上述智能体的训练步骤和推理步骤还可以交替进行,即训练一段时间,到达训练终止条件后开始推理,当推理一段时间后,环境发生变化,原有训练好的策略可能不再适用或推理效果降低,为了提升推理效果,需要重新开始训练过程。

如图4所示,神经网络可以包含一个输入层(左侧),一个输出层(右侧),及多个隐藏层(中间),每层包含数个节点,称为神经元,其中相邻两层的神经元间两两相连。输入层输入的是终端设备的状态s(t),输出层输出的是终端设备的动作a(t),即如何设定应用线程sched_upmigrate参数和sched_downmigrate参数,实现设备功耗的最小化。

本申请实施例涉及的任务调度网络包括训练阶段和推理阶段,以下分别对训练阶段和推理阶段进行详细描述。

一、训练阶段

在本申请实施例中,训练阶段可以是指网络训练设备利用终端设备发送的训练数据对神经网络进行强化学习训练,得到任务调度网络的过程。网络训练设备可以是图2所示的服务器,也可以是计算机,或者服务器集群,本申请实施例对此不作限定。

如图5所示,为本申请实施例提供的一种调度网络训练方法,该方法可应用于网络训练设备中,该方法包括如下步骤:

步骤S51:接收终端设备采集的训练数据。

由于终端设备的硬件性能有限,在终端设备上进行强化学习训练的效率不高,且性能有限的终端设备不好部署用于进行强化学习训练的智能体与环境,且在终端设备进行强化学习训练会额外增加设备功耗,导致训练阶段的设备状态可能无法和推理阶段的设备状态匹配,导致训练得到的任务调度网络的性能不佳,而网络训练设备可以是硬件性能较强的服务器、服务器集群或者计算机,不仅可以满足强化学习训练的硬件要求,且可避免出现终端设备在训练阶段的设备状态无法和推理阶段的设备状态匹配的问题。

在一些实施例中,终端设备可以通过有线通信或者无线通信方式将采集到的训练数据发送给网络训练设备。终端设备采集的训练数据可以是指采集某个目标应用在运行期间(前台运行或者后台运行)的设备运行数据,进而后续可以基于该训练数据训练得到任务调度网络,并利用任务调度网络对目标应用的线程进行调度(例如调整线程的sched_migrate参数),以实现在终端设备运行目标应用的功耗最小化。目标应用可以根据实际需求进行指定,本申请实施例对此不作限定。

在一些实施例中,终端设备采集的训练数据还可以是指采集两个或两个以上的目标应用在运行期间的设备运行数据,进而后续可以基于该训练数据训练得到任务调度网络,并利用任务调度网络对这些目标应用的线程进行调度,以实现在终端设备运行这些目标应用的功耗最小化。在此种情形下,对于训练得到的任务调度网络而言,任务调度网络的输出包括每个目标应用的迁核参数。

例如,以终端设备包括摄像头,任务调度为针对终端设备安装的相机应用为例,终端设备采集的训练数据可以是指采集与相机应用关联的训练数据,与相机应用关联的训练数据可以是指在相机应用运行期间的设备运行数据,可选为仅开启相机应用的设备运行数据。例如,终端设备可以响应于用户的第一操作开启相机应用,终端设备还可以响应于用户的第二操作,进入用户指定的相机模式,终端设备采集的训练数据为在各个指定的相机模式下的每一帧预览图像、每张拍照图像、或者录制图像对应的训练数据。以相机模式为拍照模式为例,终端设备可以记录每一帧预览图像所对应的训练数据;以相机模式为录像模式为例,终端设备可以记录每一帧录制图像所对应的训练数据。

训练数据可以包括状态s(t)、动作a(t)及奖励r(t)。状态s(t)为在运行目标应用期间与终端设备功耗关联的参数,状态s(t)包含的参数可以根据目标应用进行设定,本申请实施例对此不作限定。以任务调度为针对相机应用为例,状态s(t)可以包括:有无人脸、各个CPU核心的使用率、帧率等。由于在拍照或录像时,当出现人脸时会引入人脸检测算法进行检测,有人脸出现的拍照或录像相比无人脸出现的拍照或录像的功耗要高,一般而言,有人脸出现的拍照或录像相比无人脸出现的拍照或录像的功耗要高60mAH。CPU核心的使用率表征了CPU核心的负载情形,不同算力的CPU核心对应的功耗不同,同一CPU核心,在不同的负载情形下对应的功耗也不相同。不同的帧率对应的功耗不同,一般而言,拍照预览时的帧率,或者录像时的帧率越高,功耗越大。动作a(t)为相机应用的线程的迁核参数,动作a(t)可以包括sched_upmigrate参数和sched_downmigrate参数,即每一帧图像所对应的sched_upmigrate参数和sched_downmigrate参数。由于任务调度网络是为了实现终端设备的功耗最小化,奖励r(t)可以为开启相机应用后的终端设备功耗。

假设终端设备进行一次训练数据的采集为录像1分钟,录像帧率为30FPS,1分钟的录像包括1800张图像帧,设定每张图像帧对应一条训练数据,每条训练数据均可以包括一组状态s(t)、动作a(t)及奖励r(t)。对于录像的第m张图像帧(m∈[1, 1800]),对应的训练数据中的状态s(t

在一些实施例中,网络训练设备与终端设备可以部署部署有同一个随机选定的神经网络,本申请实施例对部署的神经网络不作限定。网络训练设备可以对神经网络进行初始化,初始化可以是指对该神经网络中的参数进行初始化。初始化完成之后,网络训练设备可以将网络参数发送给终端设备,终端设备可以基于网络训练设备发送的网络参数完成神经网络的初始化。

例如,终端设备可以基于初始化的神经网络开启相机应用的录像功能,录像1分钟并采集1800条训练数据。终端设备将1800条训练数据一起推送到网络训练设备,网络训练设备基于这1800条训练数据对自身部署的神经网络进行强化学习训练,训练完成之后得到一个新的神经网络,网络训练设备将这个新的神经网络的网络参数发送给终端设备,然后终端设备可基于这个新的神经网络的网络参数更新自身部署的神经网络,及基于更新后的神经网络继续录像1分钟并采集1800条训练数据,终端设备将这1800条训练数据一起推送到网络训练设备进行下一轮的强化学习训练,训练完成后,网络训练设备又可以得到一个新的神经网络,网络训练设备又将这个新的神经网络的网络参数发送给终端设备,通过重复上述训练数据的采集、训练与网络参数的推送更新,直到奖励最大(录像1分钟的设备功耗最低)且收敛,结束强化学习训练,终端设备不再采集训练数据。

为了提升后续训练得到的任务调度网络对相机应用的线程进行调度的准确性,以实现在终端设备运行相机应用的功耗最小化,在进行录像或者拍照时,可尽可能覆盖到全部可能出现的场景,例如包括有出现人脸、无人脸出现、不同的自然景色等等,即尽可能覆盖用户平常拍照或录像可能会涉及到的场景或内容。例如,可以尽可能设置不同的背景墙进行拍照,为了尽可能覆盖到全场景的录像,还可以预先制作包含各种场景的视频,终端设备进行录像时,可以对着这些视频画面进行录制。

例如,以终端设备包括摄像头、麦克风与扬声器,任务调度为针对终端设备安装的即时通讯应用为例,终端设备采集的训练数据可以是指采集即时通讯应用在运行期间的设备运行数据。终端设备可以响应于用户的第一操作开启即时通讯应用,终端设备的用户可以通过即时通讯应用与其他用户进行会话聊天、语音通话、视频通话等。终端设备可以在会话聊天过程中,每隔第一预设时间采集一次训练数据,例如,在会话聊天的2分钟内每隔60ms采集一次训练数据,得到2000条训练数据。同样地,终端设备还可以在语音通话过程中,每隔第一预设时间采集一次训练数据,终端设备还可以在视频通话过程中,每隔第一预设时间采集一次训练数据。

以任务调度为针对即时通讯应用为例,状态s(t)可以包括:{有无开启麦克风,有无开启扬声器,有无开启摄像头,各个CPU核心的使用率}。开启麦克风,涉及拾音与拾音信号的处理,相比未开启麦克风的功耗要高,开启扬声器,涉及待播放声音的处理,相比未开启扬声器的功耗要高,开启摄像头,涉及视频图像帧的处理,相比未开启摄像头的功耗要高。CPU核心的使用率表征了CPU核心的负载情形,在不同的负载情形下对应的功耗不相同。动作a(t)为即时通讯应用的线程的迁核参数,动作a(t)可以包括sched_upmigrate参数和sched_downmigrate参数,即每次进行训练数据采集时所获取的即时通讯应用的线程的sched_upmigrate参数和sched_downmigrate参数。奖励r(t)为每次进行训练数据采集时所获取的终端设备功耗。

步骤S52:基于训练数据对神经网络进行强化学习训练。

在一些实施例中,可以预先在网络训练设备中构建强化学习训练架构,强化学习训练架构可以包括智能体、环境、策略网络、价值网络等。强化学习训练包括训练策略网络和价值网络,策略网络用于与环境交互,在价值函数的指导下用于策略梯度学习一个更好的策略(从状态到动作的映射),价值网络用于通过策略网络与环境交互收集的数据学习一个价值函数,该价值函数用于判断在当前状态什么动作是好的,什么动作不是好的,进而帮助策略网络进行策略更新。网络训练设备将最终训练得到的策略网络的网络参数发送给终端设备,以实现将最终训练得到的策略网络部署到终端设备。策略网络和价值网络可以使用多层感知机(multilayer perceptron,MLP)实现,多层感知机包括一个输入层、一个输出层及多个隐藏层。隐藏层的神经元个数可以设置为8个、16个、或者32个等。对于越简单的任务,神经元个数越少。举例而言,如果状态s(t)包括四个参数,动作a(t)包括两个参数(sched_upmigrate参数和sched_downmigrate参数),sched_upmigrate参数和sched_downmigrate参数的参数值范围为0-100(概率值为0%-100%),即输出层输出的是sched_upmigrate参数从0-100的概率,以及sched_downmigrate参数从0-100的概率。

作为一种示例,任务调度网络的大致获取过程可以包括:在网络训练设备配置好强化学习训练架构(智能体、环境、策略网络、价值网络);在终端设备配置好网络接口以及策略网络,网络接口用于接收从网络训练设备传入的网络参数(权重和偏置);在网络训练设备对策略网络与价值网络进行初始化,并将初始化的策略网络的网络参数发送给终端设备,终端设备基于网络参数初始化自身部署的策略网络;终端设备开启目标应用,且基于策略网络每隔预设时间设置一次目标应用的线程的迁核参数(sched_upmigrate参数和sched_downmigrate参数),及收集训练数据(即状态s(t)、动作a(t)及奖励r(t));终端设备将训练数据发送至网络训练设备,以使得网络训练设备可以基于训练数据进行强化学习训练;网络训练设备更新策略网络和价值网络的网络参数;网络训练设备将更新的策略网络的参数发送给终端设备;终端设备基于网络参数更新自身部署的策略网络;终端设备基于更新的策略网络再次每隔预设时间设置一次目标应用的线程的迁核参数(sched_upmigrate参数和sched_downmigrate参数),及再次收集训练数据(即状态s(t)、动作a(t)及奖励r(t));终端设备将再次训练数据发送至网络训练设备…如此反复,直到策略网络收敛,结束训练,即实现任务调度效果最佳,设备功耗最小。

以目标应用为相机应用,一次采集的训练数据包括1800条训练数据(1分钟视频录制,帧率为30FPS)为例,终端设备将1800条训练数据发送给网络训练设备,每条训练数据的格式为{s

预处理可以包括规划化处理和/或函数映射变换处理,规划化处理可以是指对训练数据中的各个参数数据(例如,s

例如,规划化处理可以是将参数数据减掉均值并除以标准差,使其分布服从均值为0方差为1的高斯分布,处理算式可以表示为:y=(x-mean(x))/std(x),y为某个参数数据经规划化处理得到的值,x为该参数数据在处理前的值,mean(x)为基于1800条训练数据计算得到的参数数据的均值,std(x)为基于1800条训练数据计算得到的参数数据的标准差。通过规范化处理,可以实现综合每条训练数据以训练得到终端设备在采集这些训练数据期间的功耗最小化,例如基于1分钟录制采集得到的1800条训练数据进行训练,结束训练的任务调度网络实现的是终端设备在1分钟视频录制期间的功耗最小化,即功耗最小化的维度不是单个录制的图像帧。

函数映射变换处理可以是指基于预设函数对训练数据中的指定的参数数据进行变换处理,预设函数可以根据实际训练需求进行设定,本申请实施例对此不作限定,例如预设函数为指数函数。以帧率fr为例,如果fr<29.8,则fr对应的奖励为负数,如-10;如果29.8=30.1,则fr对应的奖励为0.5*exp(-abs(16*(fr-29.8)))+(1-0.5),其中exp()为以自然常数e为底的指数函数,abs()为绝对值函数。

由于本申请是在不影响性能的前提下实现功耗最小化,对于奖励而言,需要考量两个方面:功耗越大,奖励越低(惩罚越大),功耗越小,奖励越高;对于不满足性能要求的状态,给予一个小的奖励,满足性能要求的状态s(t)给一个大的奖励,但在满足性能时,性能越强,功耗会越大,此时性能带来的奖励需设定小于功耗带来的惩罚,避免奖励收敛在较高的性能点位。通过对奖励进行函数映射变换,可以使得收敛的奖励满足上述两个方面的要求。

由于各条训练数据之间的参数数据差异不大,待训练的策略网络可能会对于较小的数据差异不够敏感,通过函数映射变换处理还可以实现拉大各条训练数据之间的参数数据的差异,有助于提升策略网络的性能。

在一些实施例中,网络训练设备还可以将训练数据划分为多个批次(batch),进行策略网络训练时,以一个batch的训练数据输入至神经网络进行强化学习训练,以更新网络参数,batch的大小可以根据实际需求进行设定,本申请实施例对此不作限定,例如batch可以设定为100或者200。假设batch设定为100,1800条训练数据即可以划分为18个batch,一轮的强化学习训练可进行18次的网络参数更新。

作为一个示例,以使用DQN算法进行强化学习训练为例,DQN 算法的具体流程如下:

1). 用随机的网络参数ω初始化策略网络Q

2). 复制相同的参数ω

3). 初始化经验回放池R;

4). 迭代执行多个训练回合(episode),直至目标损失L收敛,每个episode可以是指基于终端设备一次收集的训练数据(例如,1800条训练数据)进行训练的过程,每个episode可以包括:

获取环境的初始状态s

根据当前的策略网络Q

执行动作a

将(s

若R中数据足够,从R中采样N个数据{(s

对每个数据,用价值网络Q

最小化目标损失L,及基于目标损失L更新策略网络Q

作为一个示例,以使用PPO算法进行强化学习训练为例,策略网络的损失还可以通过现有的PPO-截断(PPO-Clip)方式计算得到,通过PPO-Clip方式计算损失,可以保障新的参数和旧的参数的奖励差距不会太大。例如,若计算得到某个动作的价值高于平均,进行处理后使其不超过1+

计算损失时,1800条训练数据是可以被反复使用的,比如使用1800条训练数据(1800条训练数据按照采集时间先后顺序排列的)训练20轮,也即让策略网络基于1800条训练数据训练20次,使得策略网络的网络可一直进行更新;完成20轮的训练之后,这些训练数据就可以被网络训练设备丢弃,网络训练设备可将训练好的策略网络的网络参数发送给终端设备,终端设备可基于接收到的网络参数对自身部署的策略网络进行更新,及基于更新的策略网络重新收集新的训练数据,比如还是收集1800条训练数据,然后把这1800条训练数据发送给网络训练设备,这1800条训练数据同样可以训练20轮。通过一直反复迭代训练,最后损失会越来越小,奖励会越来越高并收敛,收敛后的策略网络即为需要的任务调度网络。

如图6所示,经过训练得到的策略网络的奖励与训练回合(episode)的关系图,奖励的范围为0-200。图7为对图6的关系图进行平滑处理得到的奖励与训练回合(episode)的关系图,如图7所示,奖励会越来越高并收敛。

步骤S53,将训练后的神经网络的网络参数发送给终端设备。

在一些实施例中,网络训练设备基于终端设备发送的训练数据完成一轮的强化学习训练,在完成一轮的强化学习训练之后,网络训练设备可以将经过该轮训练后的神经网络的网络参数发送给终端设备,网络参数可以包括权重与偏置。终端设备可以基于接收到的网络参数更新自身的神经网络,即等同于终端设备部署的神经网络也完成了一轮的强化学习训练。

终端设备在完成网络参数的更新之后,终端设备还可以基于更新后的神经网络再次采集训练数据,采集的训练数据又可传输至网络训练设备,即网络训练设备再次执行步骤S51~S53,终端设备可以基于接收到的网络参数再次更新自身的神经网络。终端设备重复基于更新后的神经网络进行训练数据的采集,网络训练设备重复执行上述步骤S51~S53,直到奖励最大且收敛或者完成N轮的迭代训练之后停止,即终端设备不再采集训练数据,网络训练设备不再进行神经网络的强化学习训练,终端设备中完成最后一次网络参数更新的神经网络作为任务调度网络。

即任务调度网络的训练过程可以分为多轮的迭代训练,每轮的迭代训练可以是指执行一次步骤S51~S53,每轮的迭代训练的训练数据可以包括多条训练数据,多条训练数据又可以被划分为多个batch,以每个batch的训练数据进行一次网络参数的更新,即每轮的迭代训练可以包括多次的网络参数的更新,每轮迭代训练的最后一次更新的网络参数可以发送给终端设备。

举例而言,以针对相机应用进行调度为例,任务调度网络的训练过程包括多轮的迭代训练,任务调度网络的训练过程可以概括为:终端设备基于初始化的神经网络录制一分钟视频,视频帧率为30FPS,即录制一分钟视频可采集得到1800条训练数据,录制结束之后,终端设备将这1800条训练数据推送到网络训练设备进行训练;网络训练设备基于这1800条训练数据对初始化的神经网络进行强化学习训练,例如网络训练设备可以将这1800条训练数据分为18个batch,以对初始化的神经网络进行强化学习训练,训练结束之后,网络训练设备可以得到第一中间网络,网络训练设备可以将第一中间网络的网络参数发送给终端设备;终端设备将网络参数更新至初始化的神经网络,同样可得到第一中间网络,终端设备基于第一中间网络录制一分钟视频,又可采集得到1800条训练数据,及将这1800条训练数据推送到网络训练设备进行下一轮的迭代训练,通过重复这个训练过程,直到奖励最大且收敛,结束训练,得到可对相机应用进行调度的任务调度网络。

网络训练设备在上述训练阶段,得到部署在终端设备的任务调度网络。下面描述模型应用的过程,也即终端设备基于任务调度网络进行推理的过程。

二、推理阶段

在本申请实施例中,请参阅图8,图8为本申请实施例提供的任务调度方法的另一种流程示意图。本申请实施例提供的任务调度方法可以应用在终端设备中,任务调度方法可以包括如下步骤:

步骤S81,在开启目标应用的情形下,确定任务调度功能是否开启。

目标应用可以是指支持通过任务调度网络进行任务调度的应用。终端设备的任务调度功能可以为默认开启状态或者由用户选择是否开启。默认开启状态可以是指在终端设备出厂前将任务调度功能设置为默认开启,不支持用户进行任务调度功能的关闭。若任务调度功能为由用户选择是否开启,可以在终端设备的设置界面中配置一个“任务调度功能”图标,用户可以通过点击该“任务调度功能”图标实现开启任务调度功能或者关闭任务调度功能。

若任务调度功能处于开启状态,终端设备可以基于任务调度网络对目标应用的线程进行调度,以实现运行目标应用的功耗最小化。若任务调度功能处于关闭状态,终端设备不会基于任务调度网络对目标应用的线程进行调度。

步骤S82,在任务调度功能处于开启的情形下,基于任务调度网络对目标应用的线程进行调度。

在任务调度功能处于开启的情形下,终端设备可以基于任务调度网络对目标应用的线程进行调度。对于任务调度网络而言,输入的参数包括运行目标应用的状态数据,状态数据可以转换为矩阵数据输入至任务调度网络,输出的参数包括目标应用的线程的迁核参数(sched_upmigrate参数和sched_downmigrate参数),输出的参数同样以矩阵数据的形式呈现,例如任务调度网络可以包括两个输出通道,两个输出通道分别对应sched_upmigrate参数和sched_downmigrate参数。

终端设备可以基于任务调度网络输出的sched_upmigrate参数的值和sched_downmigrate参数的值实时对目标应用的线程的当前的sched_upmigrate参数的值和sched_downmigrate参数的值进行修改,即将目标应用的线程的当前的sched_upmigrate参数的值和sched_downmigrate参数的值设定为任务调度网络输出的值,实现对目标应用的线程的调度。

例如,目标应用为相机应用,当前用户正在使用相机应用进行拍照,在拍照预览阶段,终端设备可以获取拍照预览阶段的每一图像帧对应的状态数据,状态数据可以包括有无人脸、各个CPU核心的使用率、帧率等,并将状态数据输入至任务调度网络,基于任务调度网络的输出调整相机应用的线程的sched_upmigrate参数和sched_downmigrate参数。

在一些实施例中,终端设备在使用过程中,不同用户具有不同的使用习惯,终端设备的老化程度不同,即同一型号的终端设备在不同用户间使用过一段时长之后,设备性能可能存在一定的差异,而各个终端设备在出厂前部署的是相同的任务调度网络。为了实现任务调度的个性化定制,提升任务调度的准确性,还可以在终端设备出厂后,允许用户选择是否更新任务调度网络(例如在终端设备的设置界面增设用于开启或者关闭远程更新任务调度网络的图标),如果用户选择更新任务调度网络,则可以在用户使用目标应用期间,采集目标应用的训练数据,训练数据可以在终端设备空闲(例如,终端设备锁屏期间/或夜间的某个时段)时上传到云端服务器,云端服务器可以是指上述的网络训练设备,通过在云端服务器继续基于终端设备上传的训练数据对任务调度网络进行训练,及将重新训练得到的任务调度网络的网络参数发送给终端设备,终端设备基于网络参数更新自身部署的任务调度网络。

请参阅图9,图9为本申请实施例提供的任务调度方法的另一种流程示意图。本申请实施例提供的任务调度方法可以应用在终端设备中,任务调度方法可以包括如下步骤:

步骤S91,在开启目标应用的情形下,确定任务调度功能是否开启。

本申请实施例的步骤S91与前述实施例的步骤S81类似,为了避免重复,此处不再赘述。

步骤S92,在任务调度功能处于开启的情形下,基于任务调度网络对目标应用的线程进行调度。

本申请实施例的步骤S92与前述实施例的步骤S82类似,为了避免重复,此处不再赘述。

步骤S93,在任务调度网络更新功能处于开启的情形下,采集目标应用的训练数据,及将采集的训练数据上传至网络训练设备。

终端设备的用户可以选择开启或者关闭任务调度网络更新功能,若任务调度网络更新功能处于开启状态,终端设备可以在目标应用运行期间采集目标应用的训练数据,及将采集的训练数据上传至网络训练设备。训练数据的采集方式可以参见上文描述,为了避免重复,此处不再赘述。

本申请实施例对步骤S93与步骤S91的执行顺序不作限定,步骤S93与步骤S91可以并列执行,也可以先执行步骤S93,在执行步骤S91,或者先执行步骤S91,在执行步骤S93。

步骤S94,接收网络训练设备发送的网络更新参数,及基于接收到的网络更新参数对任务调度网络进行更新。

网络训练设备存储有终端设备出厂前部署的任务调度网络,网络训练设备在接收到终端设备上传的训练数据之后,可以对任务调度网络进行强化学习训练,重新训练得到一个新的任务调度网络,并可将该新的任务调度网络的网络参数(即网络更新参数)传递至终端设备,终端设备可以基于接收到的网络更新参数对自身部署的任务调度网络的网络参数进行更新,实现任务调度网络的定制化,可提升任务调度的准确性,提升终端设备的续航能力。

请一并参阅图10,图10为本申请一实施例提供的终端设备的结构示意图。

终端设备100包括确定模块101、调度模块102、采集模块103以及更新模块104。

确定模块101,用于在开启目标应用的情形下,确定任务调度功能是否开启。

调度模块102,用于在任务调度功能处于开启的情形下,基于任务调度网络对目标应用的线程进行调度。

采集模块103,用于在任务调度网络更新功能处于开启的情形下,采集目标应用的训练数据,及将采集的训练数据上传至网络训练设备。

更新模块104,用于接收网络训练设备发送的网络参数,及基于接收到的网络参数对任务调度网络进行更新。

需要说明的是,终端设备中各模块/单元之间的信息交互、执行过程等内容,与本申请中图8、9的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例还提供了一种终端设备,请参阅图11,图11为本申请实施例提供的终端设备的一种结构示意图,其中,终端设备100上可以部署有图10对应实施例中所描述的任务调度网络,用于实现图10对应实施例中终端设备的功能。具体的,终端设备100包括:接收器111、发射器112、处理器113和存储器114(其中终端设备100中的处理器113的数量可以一个或多个,图11中以一个处理器为例),其中,处理器113可以包括应用处理器1131和通信处理器1132。在本申请的一些实施例中,接收器111、发射器112、处理器113和存储器114可通过总线或其它方式连接。

存储器114可以包括只读存储器和随机存取存储器,并向处理器113提供指令和数据。存储器114的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器114存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。

处理器113控制终端设备的操作。具体的应用中,终端设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本申请实施例图8或图9揭示的方法可以应用于处理器113中,或者由处理器113实现。处理器113可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器113中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器113可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器113可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器114,处理器113读取存储器114中的信息,结合其硬件完成上述方法的步骤。

接收器111可用于接收输入的数字或字符信息,以及产生与终端设备的相关设置以及功能控制有关的信号输入,接收器111还可以包括摄像头等拍照模组。发射器112可用于通过第一接口输出数字或字符信息;发射器112还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器12还可以包括显示屏等显示设备。

本申请实施例中,在一种情况下,应用处理器1131,用于执行图8或图9对应实施例中终端设备的功能。需要说明的是,对于应用处理器1131执行图8或图9对应实施例中终端设备的功能的具体实现方式以及带来的有益效果,均可以参考图8或图9对应的方法实施例中的叙述,此处不再一一赘述。

下面以本申请提供的任务调度网络应用于对应用线程进行调度为例,介绍本申请实施例中任务调度网络应用场景示例。图12为本申请实施例提供的一种对相机应用的线程进行调度的场景示意图。图13为本申请实施例提供的一种对即时通讯应用的线程进行调度的场景示意图。图14为本申请实施例提供的一种对相机应用的线程与即时通讯应用的线程进行调度的场景示意图。

如图12所示,终端设备100中部署有相机应用121,相机应用121可以是终端设备100出厂时自带的拍摄应用或通过网络下载的第三方拍摄应用。云服务器122中部署有网络训练服务123。其中网络训练服务123用于基于训练数据训练得到本申请实施例提供的任务调度网络124,训练数据由终端设备100或者终端设备样机采集并上传给云服务器122,训练数据为采集相机应用121在运行期间的动作、状态以及奖励数据。终端设备100可与云服务器122通信,使得云服务器122训练得到的任务调度网络124可部署至终端设备100中,例如,终端设备100与云服务器122可部署有同一个神经网络,云服务器122可将神经网络的初始化网络参数以及后续基于训练数据更新的网络参数发送给终端设备100,终端设备100可基于云服务器122发送的网络参数更新自身部署的神经网络,得到任务调度网络124。

具体地,用户需使用终端设备100进行拍照时,终端设备100可以响应于用户操作启动相机应用121。终端设备100启动相机应用121之后,相机应用121可响应于用户的操作,进行图像拍摄或者视频录制,终端设备100可以实时获取相机应用121运行期间的状态数据(例如,包括有无出现人脸,各个CPU核心的使用率,帧率等),并将状态数据输入至任务调度网络124,及基于任务调度网络124的输出设定相机应用121的线程的迁核参数(sched_upmigrate参数和sched_downmigrate参数),实现在使用相机应用121期间,终端设备功耗的最小化。

如图13所示,终端设备100中部署有即时通讯应用131,即时通讯应用131可以是终端设备100出厂时自带的即时通讯应用或通过网络下载的第三方即时通讯应用。云服务器132中部署有网络训练服务133。其中网络训练服务133用于基于训练数据训练得到本申请实施例提供的任务调度网络134,训练数据可由终端设备100或者终端设备100的样机采集并上传给云服务器132,训练数据为采集即时通讯应用131在运行期间的动作、状态以及奖励数据。终端设备100可与云服务器132通信,使得云服务器132训练得到的任务调度网络134可部署至终端设备100中,例如,终端设备100与云服务器132可部署有同一个神经网络,云服务器132可将神经网络的初始化网络参数以及后续基于训练数据更新的网络参数发送给终端设备100,终端设备100可基于云服务器132发送的网络参数更新自身部署的神经网络,得到任务调度网络134。

具体地,用户需使用终端设备100进行会话聊天/语音通话/视频通话时,终端设备100可以响应于用户操作启动即时通讯应用131。终端设备100启动即时通讯应用131之后,即时通讯应用131还可响应于用户的操作,进入会话窗口,在会话窗口中进行会话聊天/语音通话/视频通话,终端设备100可以实时获取即时通讯应用131运行期间的状态数据(例如,包括有无开启麦克风,有无开启扬声器,有无开启摄像头,各个CPU核心的使用率等),并将状态数据输入至任务调度网络134,及基于任务调度网络134的输出设定即时通讯应用131的线程的迁核参数(sched_upmigrate参数和sched_downmigrate参数),实现在使用即时通讯应用131期间,终端设备功耗的最小化。

如图14所示,终端设备100中部署有相机应用141与即时通讯应用142,相机应用141与即时通讯应用142可以是终端设备100出厂时自带的应用或通过网络下载的第三方应用。云服务器143中部署有网络训练服务144。其中网络训练服务144用于基于训练数据训练得到本申请实施例提供的任务调度网络145,训练数据由终端设备100或者终端设备样机采集并上传给云服务器143,训练数据为采集相机应用141与即时通讯应用142两者同时运行期间的动作、状态以及奖励数据。终端设备100可与云服务器143通信,使得云服务器143训练得到的任务调度网络145可部署至终端设备100中,例如,终端设备100与云服务器143可部署有同一个神经网络,云服务器143可将神经网络的初始化网络参数以及后续基于训练数据更新的网络参数发送给终端设备100,终端设备100可基于云服务器143发送的网络参数更新自身部署的神经网络,得到任务调度网络145。

具体地,用户先后开启了相机应用141与即时通讯应用142,终端设备100可以实时获取相机应用141与即时通讯应用142两者运行期间的状态数据(例如,包括有无开启麦克风,有无开启扬声器,有无开启摄像头,有无出现人脸,各个CPU核心的使用率,帧率等),并将状态数据输入至任务调度网络145,及基于任务调度网络145的输出设定相机应用141的线程的迁核参数与即时通讯应用142的线程的迁核参数,实现在同时使用相机应用141与即时通讯应用142期间,终端设备功耗的最小化。

请一并参阅图15,图15为本申请实施例提供的网络训练设备的结构示意图。

网络训练设备200包括接收模块201、训练模块202及发送模块203。

接收模块201,用于接收终端设备采集的训练数据。

训练模块202,用于基于训练数据对神经网络进行强化学习训练。

发送模块203,用于将训练后的神经网络的网络参数发送给终端设备。

需要说明的是,网络训练设备中各模块/单元之间的信息交互、执行过程等内容,与本申请中图5对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

请一并参阅图16,图16为本申请实施例提供的网络训练设备的一种结构示意图。

网络训练设备200可用于实现图15对应的网络训练设备的功能或图5对应的各个方法实施例。具体的,网络训练设备200由一个或多个服务器或者计算机实现,网络训练设备200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)210(例如,一个或一个以上处理器)和存储器211,一个或一个以上存储应用程序212或数据213的存储介质214(例如一个或一个以上海量存储设备)。其中,存储器211和存储介质214可以是短暂存储或持久存储。存储在存储介质214的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络训练设备中的一系列指令操作。更进一步地,中央处理器210可以设置为与存储介质214通信,在网络训练设备200上执行存储介质214中的一系列指令操作。

网络训练设备200还可以包括一个或一个以上电源215,一个或一个以上有线或无线网络接口216,一个或一个以上输入输出接口217,和/或,一个或一个以上操作系统218,例如Windows Server

本申请实施例中,在一种情况下,中央处理器210,用于实现图15对应实施例中的网络训练设备的功能或图5对应的方法实施例。需要说明的是,对于中央处理器210执行图15对应实施例中网络训练设备的功能的具体实现方式以及带来的有益效果,均可以参考图5对应的方法实施例中的叙述,此处不再一一赘述。

本申请实施例中,在另一种情况下,中央处理器210,用于实现图15对应实施例中的网络训练设备的功能。需要说明的是,对于中央处理器210执行图15对应实施例中网络训练设备的功能的具体实现方式以及带来的有益效果,均可以参考图5对应的实施例中的叙述,此处不再一一赘述。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如上述实施例中网络训练设备所执行的步骤,或者,执行如上述终端设备所执行的步骤。

本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如上述网络训练设备所执行的步骤,或者,执行如上述终端设备所执行的步骤。

本申请实施例中还提供一种神经网络部署系统,包括终端设备和服务器,服务器用于执行如上述实施例中网络训练设备所执行的步骤,终端设备用于执行如上述实施例中终端设备所执行的步骤。

相关技术
  • 任务调度的方法、设备及系统、计算机设备
  • 数据任务调度方法及数据任务调度系统
  • 一种蓝光设备操作任务调度的方法
  • 一种任务调度方法、装置、设备和存储介质
  • 智能体训练方法、跨域异构环境任务调度方法及相关装置
  • 智能体训练方法、跨域异构环境任务调度方法及相关装置
技术分类

06120116211017