CN114168177B - 一种支持海量移动设备的个性化任务处理方法及设备 - Google Patents
一种支持海量移动设备的个性化任务处理方法及设备 Download PDFInfo
- Publication number
- CN114168177B CN114168177B CN202210126285.8A CN202210126285A CN114168177B CN 114168177 B CN114168177 B CN 114168177B CN 202210126285 A CN202210126285 A CN 202210126285A CN 114168177 B CN114168177 B CN 114168177B
- Authority
- CN
- China
- Prior art keywords
- task
- application
- information
- message
- machine learning
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种支持海量移动设备的个性化任务处理方法及设备。在本申请实施例中,一方面复用移动设备上应用与应用服务器之间的应用链路进行对应机器学习任务的个性化部署,不再建立和维护专门用于机器学习任务个性化部署的长连接,另一方面采用推拉结合的方式进行机器学习任务的个性化部署,这两方面结合,既能解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达,使得面向海量移动设备进行机器学习任务的个性化部署得以实现。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种支持海量移动设备的个性化任务处理方法及设备。
背景技术
在移动设备涉及的人工智能(Artificial Intelligence,AI)应用场景中,需要将机器学习任务部署到移动设备。在一些应用场景中,可以针对所有移动设备进行机器学习任务的统一部署,但是,在另一些应用场景中,可能需要针对不同的移动设备部署不同的机器学习任务,甚至在一些特殊场景中,需要针对每个移动设备部署不同的机器学习任务,即“千人千模”场景。这就需要构建一套支持海量移动设备的个性化任务的部署方案。
但是,在涉及海量移动设备的场景中,个性化任务的部署要求服务端与海量移动设备之间保持稳定的长连接,以便服务端向海量移动设备推送(push)机器学习任务,但是,海量长连接的管理和维护需要消耗服务端较多资源,且长连接的管理和维护随着移动设备数量的增加复杂度也会随之增高,服务端负担较重,这给机器学习任务的个性化部署带来了艰巨的挑战。
发明内容
本申请的多个方面提供一种支持海量移动设备的个性化任务处理方法、设备及介质,用以解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达。
本申请实施例提供一种支持海量移动设备的个性化任务处理方法,应用于运行有目标应用的移动设备,目标应用对应有应用服务器和任务管理服务器,该方法包括:接收第二消息,所述第二消息携带有版本更新通知信息,所述版本更新通知信息是由任务管理服务器下发并添加至所述应用服务器发送给目标应用的第二消息中的;在目标应用发送给所述应用服务器的第三消息中添加所述移动设备对应的个性化信息,并将添加所述移动设备对应的个性化信息的第三消息发送出去,所述个性化信息包括设备信息和/或用户信息,以使所述任务管理服务器确定与所述移动设备适配的个性化任务资源;接收第四消息,所述第四消息携带有第一资源下载地址,所述第一资源下载地址是由任务管理服务器下发并添加至所述应用服务器发送给目标应用的第四消息中的;根据所述第一资源下载地址下载所述个性化任务资源,并根据所述个性化任务资源在本地部署新版本的机器学习任务。
本申请实施例还提供一种支持海量移动设备的个性化任务处理方法,应用于任务管理服务器,该方法包括:在确定目标应用有新版本机器学习任务的情况下,向应用接入网关提供版本更新通知信息,以使所述应用接入网关在应用服务器发送给目标应用的第二消息中添加所述版本更新通知信息后将第二消息发送给运行目标应用的移动设备;接收所述应用接入网关发送的所述移动设备对应的个性化信息,所述个性化信息是所述应用接入网关从所述目标应用发送给所述应用服务器的第三消息中获取的,所述个性化信息包括设备信息和/或用户信息;根据所述个性化信息确定与所述移动设备适配的个性化任务资源,向所述应用接入网关提供指向所述个性化任务资源的第一资源下载地址,以使所述应用接入网关在所述应用服务器发送给所述目标应用的第四消息中添加所述第一资源下载地址后将第四消息发送给移动设备,以使所述移动设备根据所述个性化任务资源在本地部署新版本的机器学习任务。
本申请实施例还提供一种支持海量移动设备的个性化任务处理方法,应用于应用接入网关,该方法包括:接收任务管理服务器发送的版本更新通知信息,版本更新通知信息用于通知目标应用有新版本的机器学习任务;在接收目标应用对应的应用服务器发送给目标应用的第二消息时,在第二消息中添加所述版本更新通知信息后将第二消息发送给运行有所述目标应用的移动设备;接收移动设备发送的由目标应用发送给应用服务器的第三消息,并从第三消息中解析出移动设备对应的个性化信息,个性化信息包括设备信息和/或用户信息;将个性化信息发送给任务管理服务器,以使任务管理服务器确定与移动设备适配的个性化任务资源,并接收任务管理服务器发送的指向个性化任务资源的第一资源下载地址;在接收到应用服务器发送给目标应用的第四消息时,在所述第四消息中添加所述第一资源下载地址后将第四消息发送给所述移动设备,以使移动设备根据个性化任务资源在本地部署新版本的机器学习任务。
本申请实施例还提供一种计算机设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器耦合至存储器,用于执行计算机程序以用于执行支持海量移动设备的个性化任务处理方法。
本申请实施例还提供一种存储有计算机程序的计算机存储介质,当计算机程序被处理器执行时,致使处理器能够实现支持海量移动设备的个性化任务处理方法。
在本申请实施例中,一方面复用移动设备上应用与应用服务器之间的应用链路进行对应机器学习任务的个性化部署,不再建立和维护专门用于机器学习任务个性化部署的长连接,另一方面采用推拉结合的方式进行机器学习任务的个性化部署,这两方面结合,既能解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达,使得面向海量移动设备进行机器学习任务的个性化部署得以实现。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的支持海量移动设备的个性化任务处理方法所适用的一种系统架构图;
图2为示例性的任务管理服务器的系统架构图;
图3为示例性的任务管理服务器的任务部署原理图;
图4为本申请实施例提供的一种支持海量移动设备的个性化任务处理方法的流程示意图;
图5为本申请实施例提供的另一种支持海量移动设备的个性化任务处理方法的流程示意图;
图6为本申请实施例提供的另一种支持海量移动设备的个性化任务处理方法的流程示意图;
图7为本申请实施例提供的一种移动设备的结构示意图;
图8为本申请实施例提供的一种任务管理服务器的结构示意图;
图9为本申请实施例提供的一种应用接入网关的结构示意图;
图10为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有面向海量移动设备进行机器学习任务的个性化部署所面临的服务端资源消耗大、负担重等技术问题,在本申请实施例中,一方面复用移动设备上应用与应用服务器之间的应用链路进行对应机器学习任务的个性化部署,不再建立和维护专门用于机器学习任务个性化部署的长连接,另一方面采用推拉结合的方式进行机器学习任务的个性化部署,这两方面结合,既能解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达,使得面向海量移动设备进行机器学习任务的个性化部署得以实现。
图1为本申请实施例提供的支持海量移动设备10的个性化任务处理方法所适用的一种系统架构图。参见图1,该系统至少可以包括多个移动设备10、应用接入网关20和任务管理服务器30。可选的,图1所示系统中的两两设备之间通过有线网络、或者无线网络进行交互。例如,有线网络可以包括同轴电缆、双绞线和光纤等,无线网络可以是2G网络、3G网络、4G网络或者5G网络、无线保真(Wireless Fidelity,简称WIFI)网络等。本申请对交互的具体类型或者具体形式并不做限定,只要其能够实现两两设备之间交互的功能即可。应当理解的是,图1中的移动设备10、应用接入网关20和任务管理服务器30的数量仅仅是示意性的。实际应用中,可以根据实际需求部署任意数量的移动设备10、应用接入网关20和任务管理服务器30。
本申请实施例对移动设备10的设备形态不做限制,移动设备10例如可以是但不限于:手机、平板电脑、可穿戴式智能设备、智能家居设备等,图1中的移动设备10以手机为例示出。在本实施例中,移动设备10上部署有目标应用,目标应用泛指各种依赖机器学习任务的应用,例如可以是购物类应用、视频类应用、直播类应用、游戏类应用、语言处理类应用等等。在本实施例中,目标应用在其运行过程中,还需要与其对应的应用服务器40进行交互,例如响应用户页面浏览、页面跳转或者页面刷新等触发操作,向应用服务器40请求页面数据,或者,在监测到设定上报事件的情况下,主动向应用服务器40上报关联的事件数据,或者,接收应用服务器40主动推送的系统消息、订阅内容、社交互动提醒消息、营销活动消息等。在本实施例的系统中,包括应用接入网关20,该应用接入网关20负责帮助移动设备10上的目标应用与应用服务器40之间进行数据交互。应用接入网关20是指设置在应用层负责在目标应用与应用服务器40之间进行数据交互的应用层网关。在本申请实施例中,应用接入网关20不仅可帮助移动设备10与应用服务器40之间进行数据交互,应用接入网关20还可帮助移动设备10与任务管理服务器30之间进行数据交互,故该应用接入网关20也可以称为代理服务器。其中,应用服务器40是移动设备10中安装的应用程序(Application,APP)对应的服务器。例如,应用服务器40可以是购物APP对应的电商服务器、打车APP对应的管理出行服务的服务器、外卖APP对应的管理餐饮服务的服务器。
在本实施例中,目标应用所需的机器学习任务需要部署在移动设备10上,负责为目标应用提供数据处理或计算等模型推理功能。例如,在移动端AI应用场景中,端云协同完成任务,例如,处于云端的任务管理服务器30负责AI模型的训练任务、部署和运维监测,处于端侧的移动设备10负责AI模型的推理任务。其中,AI模型包括但不限于基于机器学习(Machine Learning,ML)的人脸识别AI模型、直播内容理解AI模型和图像处理AI模型。在本实施例中,任务管理服务器30将机器学习任务部署至移动设备10上,以使移动设备10能够基于机器学习任务运行AI模型进行推理。本实施例给出一种机器学习任务的定义和其实现结构,机器学习任务的真实表达可以认为是一段程序代码,机器学习任务的实现结构可以包括前处理任务、机器学习模型和后处理任务。前处理任务用于对待输入至机器学习模型的输入数据进行预处理,例如,在计算机视觉场景,前处理任务需要执行以下数据预处理:图像旋转、图像放大、图像缩小等。机器学习模型是一个由一段数据表达的函数,数据记录了函数结构和函数参数。机器学习模型在经过训练(参数优化)后可以识别特定类型的模式,其具体作用是实现从一个样本到样本标签的映射。后处理任务用于机器学习模型的输出数据进行后处理,例如,机器学习模型的输出多个分类结果及其概率,根据多个分类结果的概率从多个分类结果中选择符合要求的最终分类结果进行输出。
本申请实施例中,机器学习模型可由任务管理服务器30负责进行模型训练得到,另外,任务管理服务器30还可以生成机器学习模型的配置信息、脚本、模型资源,根据这些信息生成机器学习任务。其中,机器学习任务可以不断更新,可能具有多个版本,对应的机器学习任务也会多有个版本。机器学习任务在任务管理服务器30,但需要该机器学习任务的目标应用部署在移动设备10,这就需要面向移动设备10进行机器学习任务的部署,其中,机器学习任务的部署过程既包括机器学习任务的首次部署过程,也包括机器学习任务更新升级后的更新部署过程。在本实施例中,由任务管理服务器30负责机器学习任务的部署、运维和管理。本申请实施例对任务管理服务器30的设备形态不做限制,任务管理服务器30例如可以是但不限于:为单个服务器或多个服务器组成的分布式服务器集群。进一步可选的,任务管理服务器30可以是云服务器。
其中,根据应用场景的不同,机器学习任务的部署需求和方式会有所不同。在一些应用场景中,可能需要考虑移动设备10的差异性,针对不同的移动设备10部署不同的机器学习任务。极端情况下,需要针对每个移动设备10部署不同的机器学习任务,并且需要做好版本管理和更新,即“千人千模”场景。其中,千人千模泛指每个用户拥有自己独特的机器学习任务。在本实施例中,任务管理服务器30支持面向海量移动设备10进行个性化任务的部署。
在本申请实施例,任务管理服务器30复用移动设备10上应用与应用服务器40之间的应用链路50进行对应机器学习任务的个性化部署,不再建立和维护专门用于机器学习任务个性化部署的长连接,另一方面采用推拉结合的方式进行机器学习任务的个性化部署,这两方面结合,既能解决任务管理服务器30维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达,使得面向海量移动设备10进行机器学习任务的个性化部署得以实现。具体地,任务管理服务器30在确定目标应用有新版本机器学习任务可用的情况下,通过应用服务器40发送给目标应用的消息向运行有目标应用的移动设备10提供版本更新通知信息;该移动设备10接收任务管理服务器30通过应用服务器40发送给目标应用的消息提供的版本更新通知信息,根据该版本更新通知信息确定目标应用有新版本的机器学习任务可用;该移动设备10通过目标应用发送给应用服务器40的消息向任务管理服务器30提供移动设备10对应的个性化信息,个性化信息包括设备信息和/或用户信息;任务管理服务器30根据个性化信息确定与该移动设备10适配的个性化任务资源,并通过应用服务器40发送给目标应用的另一消息将指向该个性化任务资源的第一资源下载地址提供给移动设备10;移动设备10根据任务管理服务器30通过应用服务器40发送给目标应用的另一消息返回的第一资源下载地址,下载该个性化任务资源,并根据该个性化任务资源在本地部署新版本的机器学习任务。关于该过程的详细实施方式可参见后续实施例的描述,在此暂不详述。
为了便于理解,结合图2和图3进行说明。图2为示例性的任务管理服务器30的系统架构图。图3为示例性的任务管理服务器30的任务部署原理图。参见图2,任务管理服务器30可以包括任务管理模块(Task Management)和任务部署模块(Task Deployment)。
任务管理模块可以从多维度对需要发布的机器学习任务进行管理,例如,任务脚本(Task Scripts)、任务配置(Task Configure)、任务模型资源(Task Model Resources)、版本控制(Version Control)和任务存储(Task Storage)。其中,任务脚本是机器学习任务的脚本(也即程序代码)。机器学习任务的真实表达可以认为是一段程序代码,整个机器学习任务其包含前处理阶段、机器学习模型执行阶段、后处理阶段三部分。任务脚本中可以包括前处理阶段、机器学习模型执行阶段、后处理阶段各个阶段的程序代码。任务配置是机器学习任务的配置信息,基于任务配置对机器学习任务进行配置,例如配置机器学习任务的触发条件、其输入数据的来源信息、输出数据的目的端信息、用于机器学习任务的监测方式等。任务模型资源是指机器学习任务的模型资源,主要包括机器学习任务相关的文件,任务模型资源例如包括但不限于模型文件和记录机器学习模型执行所需数据的数据文件、前处理阶段的相关文件和后处理阶段的相关文件等等。模型文件记录的是机器学习任务中机器学习模型的相关信息。版本控制是指对机器学习任务的版本进行管理,主要是指对机器学习任务中机器学习模型的模型版本进行管理。任务存储是指对机器学习任务的相关信息进行存储管理。
结合图2和图3可知,任务部署模块包括发布模块(Release)和实时触达模块(Real-Time Reach)模块。任务部署模块支持的部署策略(Deployment Strategy)至少包括个性化部署(Customized Deployment)方式。进一步可选地,任务部署模块支持的部署策略还可以包括:统一部署(Uniform Deployment)方式。
值得注意的是,发布(Release)模块可以提供针对机器学习任务的发布进行精细化管理,进而支持任务管理服务器30提供统一部署和个性化部署两种部署能力,使得任务管理服务器30在任务部署方面具有精细化特性。统一部署,即仅考虑因应用场景不同造成机器学习任务的差异性,不考虑移动设备10的差异性,针对不同的移动设备10部署在同一应用场景下部署相同的机器学习任务,实现机器学习任务的统一部署。个性化部署,既要考虑因应用场景不同造成机器学习任务的个性化,又要考虑移动设备10的差异性,实现机器学习任务和目标应用的精准匹配,甚至可以支持“千机千模”的机器学习任务部署。发布(Release)模块进行个性化部署的过程可参见后续实施例中的描述,在此暂不详述。
以图3为例,假设应用场景是由移动APP的名字和版本进行定义,具体而言,不同类别的移动APP属于不同应用场景,同一类别的移动APP但版本信息不同也属于不同应用场景。例如,购物APP和打车APP对应的应用场景不同,1.0版本的购物APP和2.0版本的购物APP对应的应用场景不同。实际应用中,哪些应用场景的机器学习任务需要进行统一部署还是个性化部署是由应用场景的应用需求而定的。在应用场景确定使用统一部署对该应用场景下的机器学习任务进行任务部署时,任务管理服务器30可以关联存储移动APP的APP名称、版本号和对应的机器学习任务的任务资源标识,这样,根据移动APP的APP名称、版本号可以区分不同应用场景的不同机器学习任务。图3中示出了采用统一策略(Uniform policy)进行统一部署的情形下,根据APP Version(版本号)和APP名称(未示出)可以获取该应用场景对应全部移动设备10可共享的共享资源(Shared Resources)。其中,共享资源(SharedResources)是需要部署到全部的移动设备10上的机器学习任务的资源,也即同一应用场景,不同移动设备10部署相同的机器学习任务。
针对任一应用场景,若确定使用个性化部署对该应用场景下的机器学习任务进行差异化部署,任务管理服务器30可以关联存储移动APP的APP名称、版本号、用户侧信息(User-Side Information)和设备侧信息(Device-Side Information)对应的机器学习任务的任务资源标识。这样,根据移动APP的APP名称、版本号、用户侧信息和设备侧信息可以对机器学习任务进行个性化部署,即针对不同用户或不同移动设备可以部署该应用场景下不同的机器学习任务。值得注意的是,同一应用场景,用户侧信息或设备侧信息不同,对应的机器学习任务也会有所不同,进而实现针对不同移动APP、不同用户以及不同设备进行差异化部署机器学习任务。其中,用户侧信息例如包括但不限于用户ID、用户的画像等属性信息,以便于任务管理服务器30根据用户侧信息针对不同用户或不同用户分组或不同类型的用户部署不同的机器学习任务,其中,可以根据用户侧信息对用户分组或分类;设备侧的信息例如包括但不限于:OS(Operating System,操作系统)类型、厂商信息、设备ID、品牌信息、设备类型等,以便于任务管理服务器30根据设备侧信息针对不同移动设备或不同类别的设备或不同分组内的设备部署不同的机器学习任务,其中,可以根据设备侧信息对移动设备进行分组或分类。图3中示出了采用个性化策略(Customized policy)进行差异化部署的情形下,根据APP Version(未示出)、APP名称(未示出)、用户侧信息和设备侧信息可以获取个性化的独占性资源(Exclusive Resources)。其中,独占性资源是需要部署到与APPVersion(版本号)、APP名称、用户侧信息和设备侧信息匹配的移动设备10上的机器学习任务的资源,进而实现同一应用场景,不同移动设备10部署不同的机器学习任务。在一些场景中,个性化部署需要将共享资源和独占性资源全部部署至移动设备10上,共享资源负责支持应用场景的通用功能,独占性资源支持应用场景的个性化功能。
值得注意的是,发布(Release)模块支持本地测试(Local Test)、Beta测试、灰度发布(Gray Release)、回滚(Rollback)、监听(Monitor)和异常统计(ExceptionStatistics)等各种情况下的机器学习任务的部署,进而使得任务管理服务器30可提供“可灰度、可回滚、可监测”的发布机制,这一发布机制可以保障任务管理服务器30部署机器学习任务过程的稳定可靠,使得任务管理服务器30具有稳定性特性。具体应用时,在正式发布机器学习任务前可以针对机器学习任务执行小批量灰度发布以验证机器学习任务的功能正确性和稳定性,正式发布阶段若出现稳定性问题可以进行对机器学习任务的版本进行回滚,正式发布后可以对机器学习任务运行成功率、资源消耗等进行监测。对正式发布后的机器学习任务的异常信息进行异常统计,可以帮助开发人员决策如何优化机器学习任务和是否对机器学习任务进行版本回滚等等。
值得注意的是,实时触达模块(Real-Time Reach)模块能够实现任务管理服务器30提供推拉结合的任务发布机制,使得任务管理服务器30具有时效性特性。如图3所示,位于云端的任务管理服务器30中的实时触达模块可以提供推服务(Push Service)和拉服务(Pull Service),任务管理服务器30借助推服务(Push Service)以“推”的方式向设备侧推送任务更新消息和任务资源的资源地址,设备侧借助拉服务(Pull Service)以“拉”的方式从资源地址对应的存储网络下载对应的任务资源。以图3为例,任务管理服务器30将机器学习任务的相关文件存储至CDN(Content Delivery Network,内容分发网络)或CEN(CloudEnterprise Network,云企业网),任务管理服务器30向设备(Device)侧推送任务更新消息和任务资源的CDN地址或CEN地址,设备(Device)侧对任务管理服务器30推送的消息进行解码(Decode),获取任务资源的CDN地址或CEN地址,并生成包括下载任务资源的CDN地址或CEN地址的查询(Query)请求,设备(Device)侧向CDN或CEN发起查询(Query)请求,以获取CDN或CEN提供的任务资源并进行存储(Store)。设备(Device)侧基于已存储的任务资源并执行(Execute)相应的机器学习任务,设备(Device)侧对机器学习任务的运行过程进行监测(Monitor),并将监测到的机器学习任务的运行过程中异常信息上传至任务管理服务器30中的发布(Release)模块,发布(Release)模块对监测到的机器学习任务的运行过程中异常信息进行异常统计分析。
值得注意的是,任务管理服务器30采用推拉结合的方式进行任务部署,通过“推”的方式使设备侧获知有新版本的机器学习任务更新,再通过“拉”的方式由设备侧下载相应的新版本的机器学习任务对应的任务资源。这种推拉结合的方式充分考虑配置更新数据量小、任务资源数据量大,以及移动APP的请求频繁等特点,因此该方案具有架构简单、部署实时性强、任务管理服务器30压力小和支持较大文件部署等优势。
进一步可选的,在“推”的实现方案中,考虑到移动APP网络不可控特性,摒弃了传统长连接通道方案,可以复用移动APP与其对应的应用服务器40之间的应用链路50,该应用链路50例如是HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求通道,在移动设备10通过移动APP向其对应的应用服务器40上传诸如HTTP请求的请求信息时,在诸如HTTP请求的请求信息中携带移动设备10侧的机器学习任务的当前版本信息;移动设备10侧的机器学习任务的当前版本信息通过应用接入网关20被转发给任务管理服务器30,任务管理服务器30将本地保存的各个机器学习任务的版本信息与上传的移动设备10侧的机器学习任务的当前版本信息进行比对,判断是否有新版本的机器学习任务可供移动设备10使用,并在判断结果为是时,任务管理服务器30向移动设备10推送有机器学习任务可进行版本更新的HTTP消息,且在推送的HTTP消息中携带任务资源的资源下载地址,至此,任务管理服务器30完成向移动设备10的任务更新消息推送操作。当然,在判断结果为否时,任务管理服务器30持续监测是否有新的移动设备10侧的机器学习任务的当前版本信息被上传。
进一步可选的,在“拉”的实现方案中,移动设备10根据任务管理服务器30推送的CDN或CEN资源下载地址从CDN网络60或CEN网络70下载最新版本的任务资源,并根据最新版本的任务资源在移动设备10本地部署新版本的机器学习任务。由于CDN网络60或CEN网络70本身具有分布式多节点的特点,因此设备侧拉取CDN资源或CEN资源时可以从设备侧附近CDN节点或者CEN节点下载,从而获得比较快的拉取速度。
为了便于理解,结合图3对任务管理服务器30与移动设备10的交互过程进行说明。移动设备与任务管理服务器之间的通信可以复用移动设备中目标应用与该目标应用对应的应用服务器之间的应用链路50。具体而言,任务管理服务器30中发布(Release)模块在确定移动设备上的目标应用有新版本的机器学习任务可用时,向实时触达模块(Real-TimeReach)模块发送版本更新通知信息,实时触达模块(Real-Time Reach)采用Push方式将版本更新通知信息发送给应用接入网关20,应用接入网关20在接收到应用服务器40发送给目标应用的消息时,将版本更新通知信息添加至该消息中,并将添加版本更新通知信息后的消息经过应用链路50发送给移动设备10中的目标应用;目标应用经过应用接入网关20向应用服务器40发送消息,在该消息中包括移动设备10对应的个性化信息,应用接入网关20从该消息解析出移动设备10对应的个性化信息并发送给任务管理服务器30的发布(Release)模块,发布(Release)模块确定与移动设备10适配的个性化任务资源的第一资源下载地址,并通过实时触达模块(Real-Time Reach)发送给应用接入网关20,应用接入网关20在接收到应用服务器40发送给目标应用的消息时,将第一资源下载地址添加至该消息中,并将添加第一资源下载地址后的消息经过应用链路50发送给移动设备10中的目标应用,实现向移动设备10推送第一资源下载地址的目的;移动设备10根据第一资源下载地址拉取个性化任务资源,并根据个性化任务资源在本地部署新版本的机器学习任务。基于上述,在本申请实施例中,任务管理服务器30具有精细化、时效性和稳定性等特性,能够支持海量移动设备10的差异化部署能力,并实现机器学习任务发布的稳定性和实时触达。另外,值得注意的是,处于云端的任务管理服务器30将机器学习任务部署到移动设备10中,既支持不考虑移动设备10差异性,针对所有移动设备10做机器学习任务集中式部署,也支持考虑移动设备10差异性,针对不同的移动设备10部署不同的机器学习任务。极端情况下,针对每个移动设备10部署不同的机器学习任务,并且做好版本管理和更新,即“千人千模”场景。其中,千人千模泛指每个用户拥有自己独特的机器学习模型或机器学习任务。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图4为本申请实施例提供的一种支持海量移动设备的个性化任务处理方法的流程示意图。该方法应用于运行有目标应用的移动设备,目标应用对应有应用服务器和任务管理服务器。参见图4,该方法可以包括以下步骤:
401、接收第二消息,所述第二消息携带有版本更新通知信息,所述版本更新通知信息是由任务管理服务器下发并添加至所述应用服务器发送给目标应用的第二消息中的。
402、在目标应用发送给应用服务器的第三消息中添加移动设备对应的个性化信息,并将添加移动设备对应的个性化信息的第三消息发送出去,个性化信息包括设备信息和/或用户信息,以使任务管理服务器确定与移动设备适配的个性化任务资源。
403、接收第四消息,所述第四消息携带有第一资源下载地址,所述第一资源下载地址是由任务管理服务器下发并添加至应用服务器发送给目标应用的第四消息中的。
404、根据第一资源下载地址,下载个性化任务资源,并根据个性化任务资源在本地部署新版本的机器学习任务。
在本实施例中,移动设备与任务管理服务器之间的通信可以复用移动设备中目标应用与该目标应用对应的应用服务器之间的应用链路,为了便于理解,可以目标应用与该目标应用对应的应用服务器之间的应用链路称之为目标应用链路。于是,移动设备可以接收任务管理服务器通过目标应用链路传输的版本更新通知信息,该版本更新通知信息用于通知目标应用有新版本的机器学习任务可用。
在本实施例中,任务管理服务器可以周期性地向移动设备推送版本更新通知信息,也可以是任务管理服务器在获知移动设备的目标应用当前使用的机器学习任务的版本信息后,通过与任务管理服务器本地存储的各个机器学习任务的各个版本信息进行比对,确定是否有新版本的机器学习任务可用,并在有新版本的机器学习任务可用时,任务管理服务器自动触发向移动设备推送版本更新通知信息。于是,进一步可选的,在移动设备接收携带有版本更新通知消息的第二消息之前,移动设备还用于:在目标应用发送给应用服务器的第一消息中添加目标应用当前使用的机器学习任务的版本信息,将添加所述版本信息的第一消息发送出去,以供任务管理服务器根据该版本信息确定是否有新版本的机器学习任务可用。
具体而言,应移动设备侧的用户需求或者自动触发事件,移动设备的目标应用生成用于请求应用服务器进行逻辑处理的第一消息,该第一消息可以是HTTP请求消息,同时,目标应用在第一消息中添加目标应用当前使用的机器学习任务的版本信息,并将添加了目标应用当前使用的机器学习任务的版本信息的第一消息经目标应用链路发送至应用接入网关。应用接入网关一方面将第一消息直接发送给应用服务器,应用接入网关一方面解析第一消息获取目标应用当前使用的机器学习任务的版本信息,并将目标应用当前使用的机器学习任务的版本信息发送至任务管理服务器,以供任务管理服务器确定是否有新版本的机器学习任务可用。于是,进一步可选的,移动设备在目标应用发送给应用服务器的第一消息中添加目标应用当前使用的机器学习任务的版本信息的一种实现方式是:在目标应用向应用服务器发送消息使用的消息头中新增第一字段,第一字段用于承载机器学习任务更新过程中的相关信息;在目标应用向应用服务器发送第一消息时,在第一消息的消息头中的第一字段中添加版本信息。相应地,将添加所述版本信息的第一消息发送出去,包括:将添加有版本信息的第一消息发送给应用服务器对应的应用接入网关,以使应用接入网关从第一消息中解析出版本信息并发送给任务管理服务器。
例如,目标应用在HTTP请求消息中HTTP请求头中增设long(长)类型的deploy-client字段,该deploy-client字段的字段值写入目标应用当前使用的机器学习任务的版本信息。应用接入网关解析HTTP请求消息中的deploy-client字段,获取目标应用当前使用的机器学习任务的版本信息。
具体应用时,任务管理服务器推送的版本更新通知信息首先被发送至目标应用链路上处于目标应用与应用服务器之间的应用接入网关;应用接入网关接收到版本更新通知信息后,可以直接将版本更新通知信息经目标应用链路发送至目标应用。进一步可选的,应用接入网关可以在接收到应用服务器需要经应用接入网关发送给目标应用的第二消息时,将版本更新通知信息添加至第二消息中,并将添加版本更新通知信息的第二信息经目标应用链路发送至目标应用,以实现移动设备接收任务管理服务器通过第二消息提供的版本更新通知信息。于是,移动设备接收携带有版本更新通知信息的第二消息的一种可选实现方式是:接收应用接入网关发送的添加有版本更新通知信息的第二消息,版本更新通知信息是任务管理服务器根据目标应用当前使用的机器学习任务的版本信息确定有新版本的机器学习任务可用后发送给应用接入网关,并由应用接入网关在接收到应用服务器发送给目标应用的第二消息时添加至第二消息中的。
在本实施例中,移动设备在确定需要对其本地部署的机器学习任务进行版本更新时,移动设备可以向任务管理服务器提供移动设备对应的个性化信息,个性化信息包括设备信息和/或用户信息,以使任务管理服务器确定与移动设备适配的个性化任务资源。其中,与移动设备适配的个性化任务资源是指与移动设备的个性化信息适配的个性化任务资源。个性化信息除了包括移动设备的设备信息和/或用户信息,还可以包括目标应用的APP名称、版本号,但并不限于此。
具体应用时,移动设备通过目标应用可以直接将移动设备对应的个性化信息经过目标应用链路发送至任务管理服务器。移动设备也可以通过目标应用发送给应用服务器的第三消息,将移动设备对应的个性化信息提供给任务管理服务器。进一步可选的,通过目标应用发送给应用服务器的第三消息,将移动设备对应的个性化信息提供给任务管理服务器的一种实现方式是:在目标应用向应用服务器发送第三消息时,在第三消息的消息头中的第一字段中添加个性化信息;将添加有个性化信息的第三消息发送给应用接入网关,以使应用接入网关从第三消息中解析出个性化信息并发送给任务管理服务器。例如,目标应用在HTTP请求消息中HTTP请求头中增设long(长)类型的deploy-client字段,该deploy-client字段的字段值写入个性化信息。应用接入网关解析HTTP请求消息中的deploy-client字段,获取移动设备对应的个性化信息。
在本实施例中,任务管理服务器根据移动设备对应的个性化信息确定与移动设备适配的个性化任务资源,并确定个性化任务资源的第一资源下载地址。任务管理服务器可以直接经目标应用链路将第一资源下载地址发送至移动设备,以供移动设备根据第一资源下载地址下载个性化任务资源,并根据个性化任务资源在本地部署新版本的机器学习任务。进一步的,任务管理服务器可以通过应用服务器发送给目标应用的第四消息向移动设备返回第一资源下载地址。具体而言,任务管理服务器将第一资源下载地址提供给应用接入网关,应用接入网关在接收到应用服务器发送给目标应用的第四消息时,在第四消息中添加第一资源下载地址,应用接入网关经目标应用链路将添加有第一资源下载地址的第四消息传输至移动设备,移动设备解析第四消息以获取第一资源下载地址。例如,应用接入网关在第四消息的HTTP请求头中增设long(长)类型的deploy-server字段,该deploy-server字段的字段值写入第一资源下载地址。移动设备解析第四消息的HTTP请求头的deploy-server字段,获取移动设备对应的获取第一资源下载地址。
进一步可选的,任务管理服务器除了向移动设备提供与移动设备适配的个性化任务资源的第一资源下载地址,还可以提供与移动设备适配的个性化任务资源的校验码信息,以使移动设备校验任务管理服务器提供的个性化任务资源的数据安全性。其中,校验码信息与第一资源下载地址同时由任务管理服务器经过目标应用链路发送至移动设备,或者,将校验码信息与第一资源下载地址同时添加至第四消息中,通过应用服务器发送给目标应用的第四消息返回至移动设备。其中,校验码信息可以是任务管理服务器采用信息-摘要算法对个性化任务资源进行处理得到的校验码信息,信息-摘要算法例如为MD5(Message-Digest Algorithm 5,信息-摘要算法5)算法。为了便于理解,将任务管理服务器所得的校验码信息称作云侧校验码信息。于是,在移动设备基于第一资源下载地址下载到个性化任务资源后,移动设备采用信息-摘要算法对下载所得的个性化任务资源进行处理得到一个校验码信息,为了便于理解,将该校验码信息称作设备侧校验码信息。移动设备将设备侧校验码信息与云侧校验码信息进行比对,若一致,确认下载所得的个性化任务资源是安全可信的,若不一致,确认下载所得的个性化任务资源经过了非法篡改,可信度低。
实际应用中,任务管理服务器针对不同应用场景提供不同的任务部署策略,任务管理服务器还可以向移动设备发送用于指示本次机器学习任务需要采用的部署方式的部署方式指示信息。若部署方式指示信息指示本次机器学习任务需要采用个性化部署方式,则移动设备需要向任务管理服务器上传移动设备对应的个性化信息;若部署方式指示信息指示本次机器学习任务需要采用统一部署方式,则移动设备无需向任务管理服务器上传移动设备对应的个性化信息。于是,在一可选实现方式中,若第二消息中还包括部署方式指示信息,则移动设备在通过第三消息向任务管理服务器提供移动设备对应的个性化信息之前,还用于:从第二消息中解析出部署方式指示信息,并确定部署方式指示信息指示本次机器学习任务需要采用个性化部署方式。若部署方式指示信息指示本次机器学习任务需要采用统一部署方式,从第二消息中解析出第二资源下载地址,第二资源下载地址指向目标应用所属应用场景对应的统一任务资源;根据第二资源下载地址下载统一任务资源,根据统一任务资源在本地部署新版本的机器学习任务。
例如,在个性化部署方式下,移动设备解析出的第一资源下载地址是一个CEN资源下载地址,则移动设备根据CEN资源下载地址从CEN网络下载个性化任务资源。在统一部署方式下,移动设备解析出的第二资源下载地址是一个CDN资源下载地址,则移动设备根据CDN资源下载地址从CDN网络下载统一任务资源。
进一步可选的,移动设备还可以在新版本的机器学习任务运行过程中,采集任务运行异常信息并上报给任务管理服务器,以供任务管理服务器判断是否需要自动进行移动设备侧的机器学习任务的版本回滚和产生相应的报警。具体应用时,移动设备可以通过目标应用链路直接将任务运行异常信息提供给任务管理服务器。进一步可选的,移动设备在目标应用发送给应用服务器的第五消息中添加任务运行异常信息,并将添加所述任务运行异常信息的第五消息发送出去,以供任务管理服务器确认是否执行回滚操作;接收第六消息,所述第六消息携带有第三资源下载地址,第三资源下载地址是任务管理服务器确认执行回滚操作时下发并添加至应用服务器发送给目标应用的第六消息中的;根据第三资源下载地址下载旧版本的任务资源,根据旧版本的任务资源在本地重新部署旧版本的机器学习任务。
本申请实施例提供的支持海量移动设备的个性化任务处理方法,一方面复用移动设备上应用与应用服务器之间的应用链路进行对应机器学习任务的个性化部署,不再建立和维护专门用于机器学习任务个性化部署的长连接,另一方面采用推拉结合的方式进行机器学习任务的个性化部署,这两方面结合,既能解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达,使得面向海量移动设备进行机器学习任务的个性化部署得以实现。另外,任务管理服务器能够更好地支持海量移动设备的差异化部署能力,并更好地提高了机器学习任务发布的稳定性和实时触达。
图5为本申请实施例提供的另一种支持海量移动设备的个性化任务处理方法的流程示意图。该方法应用于任务管理服务器,参见图5,该方法可以包括以下步骤:
501、在确定目标应用有新版本机器学习任务的情况下,向应用接入网关提供版本更新通知信息,以使应用接入网关在应用服务器发送给目标应用的第二消息中添加所述版本更新通知信息后将第二消息发送给运行目标应用的移动设备。
502、接收应用接入网关发送的移动设备对应的个性化信息,所述个性化信息是所述应用接入网关从目标应用发送给应用服务器的第三消息中获取的,所述个性化信息包括设备信息和/或用户信息。
503、根据个性化信息确定与移动设备适配的个性化任务资源,向应用接入网关提供指向个性化任务资源的第一资源下载地址,以使应用接入网关在应用服务器发送给目标应用的第四消息中添加第一资源下载地址后将第四消息发送给移动设备,以使移动设备根据所述个性化任务资源在本地部署新版本的机器学习任务。
在本实施例中,任务管理服务器可以周期性地向移动设备推送版本更新通知信息,也可以是任务管理服务器在获知移动设备的目标应用当前使用的机器学习任务的版本信息后,通过与任务管理服务器本地存储的各个机器学习任务的各个版本信息进行比对,确定是否有新版本的机器学习任务可用,并在有新版本的机器学习任务可用时,任务管理服务器自动触发向移动设备推送版本更新通知信息。
具体应用时,任务管理服务器推送的版本更新通知信息首先被发送至目标应用链路上处于目标应用与应用服务器之间的应用接入网关;应用接入网关接收到版本更新通知信息后,可以直接将版本更新通知信息经目标应用链路发送至目标应用。进一步可选的,应用接入网关可以在接收到应用服务器需要经应用接入网关发送给目标应用的第二消息,应用接入网关将版本更新通知信息添加至第二消息中,并将添加版本更新通知信息的第二信息经目标应用链路发送至目标应用,以实现移动设备接收任务管理服务器通过第二消息提供的版本更新通知信息。于是,任务管理服务器可以由目标应用对应的应用服务器发送给目标应用的第二消息向运行有目标应用的移动设备提供版本更新通知信息。
在本实施例中,移动设备在确定需要对其本地部署的机器学习任务进行版本更新时,移动设备可以向任务管理服务器提供移动设备对应的个性化信息,个性化信息包括设备信息和/或用户信息,以使任务管理服务器确定与移动设备适配的个性化任务资源。其中,与移动设备适配的个性化任务资源是指与移动设备的个性化信息适配的个性化任务资源。个性化信息除了包括移动设备的设备信息和/或用户信息,还可以包括目标应用的APP名称、版本号,但并不限于此。
具体应用时,移动设备通过目标应用可以直接将移动设备对应的个性化信息经过目标应用链路发送至任务管理服务器。移动设备也可以通过目标应用发送给应用服务器的第三消息,将移动设备对应的个性化信息提供给任务管理服务器。
在本实施例中,任务管理服务器根据移动设备对应的个性化信息确定与移动设备适配的个性化任务资源,并确定个性化任务资源的第一资源下载地址。任务管理服务器可以直接经目标应用链路将第一资源下载地址发送至移动设备,以供移动设备根据第一资源下载地址下载个性化任务资源,并根据个性化任务资源在本地部署新版本的机器学习任务。进一步的,任务管理服务器可以通过应用服务器发送给目标应用的第四消息向移动设备返回第一资源下载地址。具体而言,任务管理服务器将第一资源下载地址提供给应用接入网关,应用接入网关在接收到应用服务器发送给目标应用的第四消息时,在第四消息中添加第一资源下载地址,应用接入网关经目标应用链路将添加有第一资源下载地址的第四消息传输至移动设备,移动设备解析第四消息以获取第一资源下载地址。例如,应用接入网关在第四消息的HTTP请求头中增设long(长)类型的deploy-server字段,该deploy-server字段的字段值写入第一资源下载地址。移动设备解析第四消息的HTTP请求头的deploy-server字段,获取移动设备对应的获取第一资源下载地址。
实际应用中,任务管理服务器针对不同应用场景或不同任务部署需求的提供不同的任务部署策略。其中,任务部署需求可以是机器学习任务的算法开发人员提交的,例如面向不同类别、不同级别的用户部署不同的机器学习任务。于是,进一步可选的,任务管理服务器在向应用接入网关提供版本更新通知信息之前,还可以根据本次任务部署需求和/或目标应用所属的应用场景,生成用于指示本次机器学习任务需要采用的部署方式的部署方式指示信息;相应地,向应用接入网关提供版本更新通知信息,包括:若部署方式指示信息指示本次机器学习任务需要采用个性化部署方式,向应用接入网关提供版本更新通知信息和部署方式指示信息,以使应用接入网关在第二消息中添加所述部署方式指示信息和所述本更新通知信息后将第二消息发送给所述移动设备,以通过第二消息将部署方式指示信息和版本更新通知消息一并提供给移动设备,以指示移动设备提供个性化信息。具体而言,若确定部署方式指示信息指示本次机器学习任务需要采用统一部署方式,任务管理服务器获取第二资源地址信息,第二资源地址信息指向应用场景对应的统一任务资源;向应用接入网关提供版本更新通知信息、部署方式指示信息和第二资源下载地址,以使应用接入网关在第二消息中添加所述版本更新通知信息、部署方式指示信息和第二资源下载地址后将第二消息发送给移动设备,以使移动设备根据统一任务资源在本地部署新版本的机器学习任务。
进一步可选的,为了更好地进行任务隔离、版本管理、查询、索引以及多人协作开发机器学习任务,任务管理服务器可以基于采用树形结构对各应用场景下的机器学习任务进行管理,其中,第一级节点对应不同的应用场景,第二级节点对应不同应用场景下的机器学习任务,第二级节点的属性信息包括其对应机器学习任务的标识信息、版本信息和资源下载地址。
进一步可选的,任务管理服务器还可以接收应用接入网关提供的任务运行异常信息,任务运行异常信息是应用接入网关从目标应用发送给应用服务器的第五消息中获取的,用于反映新版本的机器学习任务的异常运行状态;根据任务运行异常信息,确定执行回滚操作,向应用接入网关提供第三资源下载地址,以使应用接入网关在应用服务器发送给目标应用的第六消息中添加第三资源下载地址后将第六消息发送给移动设备,第三资源下载地址指向旧版本的任务资源,以使移动设备根据旧版本的任务资源在本地重新部署旧版本的机器学习任务。
实际应用中,任务管理服务器根据任务运行异常信息,确定执行回滚操作时,任务管理服务器可以根据确定出现任务运行异常信息的移动设备的数量确定是否执行回滚操作。例如,若是个性化部署,只要有一个移动设备出现任务运行异常信息,便执行针对该移动设备的回滚操作。若是统一部署,若出现任务运行异常信息的设备数量大于预设设备数量阈值,则便执行针对全部的移动设备的回滚操作或者执行对出现任务运行异常信息的移动设备的回滚操作。任务管理服务器还可以根据确定任务运行异常信息的类型、机器学习任务在移动设备侧的资源消耗等信息确定是否执行回滚操作。若任务运行异常信息的类型是APP崩溃(Clash),则可以立即执行回滚操作。若移动设备运行机器学习任务后,算力、内存或带宽等资源消耗较大,则可以执行回滚操作。当然,实际应用中可以根据具体需求确定回滚策略。
本申请实施例提供的支持海量移动设备的个性化任务处理方法,一方面复用移动设备上应用与应用服务器之间的应用链路进行对应机器学习任务的个性化部署,不再建立和维护专门用于机器学习任务个性化部署的长连接,另一方面采用推拉结合的方式进行机器学习任务的个性化部署,这两方面结合,既能解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达,使得面向海量移动设备进行机器学习任务的个性化部署得以实现。另外,任务管理服务器能够更好地支持海量移动设备的差异化部署能力,并更好地提高了机器学习任务发布的稳定性和实时触达。
图6为本申请实施例提供的另一种支持海量移动设备的个性化任务处理方法的流程示意图。该方法应用于应用接入网关,参见图6,该方法可以包括以下步骤:
601、接收任务管理服务器发送的版本更新通知信息,版本更新通知信息用于通知目标应用有新版本的机器学习任务。
602、在接收目标应用对应的应用服务器发送给目标应用的第二消息时,在第二消息中添加所述版本更新通知信息后将第二消息发送给运行有目标应用的移动设备;
603、接收移动设备发送的由目标应用发送给应用服务器的第三消息,并从第三消息中解析出移动设备对应的个性化信息,个性化信息包括设备信息和/或用户信息。
604、将个性化信息发送给任务管理服务器,以使任务管理服务器确定与移动设备适配的个性化任务资源,并接收任务管理服务器发送的指向个性化任务资源的第一资源下载地址。
605、在接收到应用服务器发送给目标应用的第四消息时,在第四消息中添加第一资源下载地址后将第四消息发送给移动设备,以使移动设备根据个性化任务资源在本地部署新版本的机器学习任务。
关于应用接入网关执行支持海量移动设备的个性化任务处理方法的各步骤的详细实施过程可参见前述方法实施例中的相关描述,在此不再赘述。
本申请实施例提供的支持海量移动设备的个性化任务处理方法,一方面复用移动设备上应用与应用服务器之间的应用链路进行对应机器学习任务的个性化部署,不再建立和维护专门用于机器学习任务个性化部署的长连接,另一方面采用推拉结合的方式进行机器学习任务的个性化部署,这两方面结合,既能解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务的及时触达,使得面向海量移动设备进行机器学习任务的个性化部署得以实现。另外,任务管理服务器能够更好地支持海量移动设备的差异化部署能力,并更好地提高了机器学习任务发布的稳定性和实时触达。
在本申请以上各实施例中,分别从系统、移动设备侧、任务管理服务器侧以及应用接入网关侧对机器学习任务进行个性化部署的详细实施过程进行了描述。在将机器学习任务部署至移动设备之后,机器学习任务需要在移动设备上运行。在本申请实施例中,考虑到移动设备的碎片化问题,针对机器学习任务提供一种支持多端一致、云端一致的计算容器,通过该计算容器进行机器学习任务的运行。该计算容器是跨平台、且支持多端部署、端云一致部署的物理计算引擎,该计算容器可以基于张量计算引擎实现,可选地,张量计算引擎可以是但不限于MNN引擎,MNN引擎是一个轻量级的深度学习端侧推理引擎,旨在解决深度神经网络模型在端侧推理运行问题,包含深度神经网络模型的优化、转换和推理,具有高通用性和高性能的特点,支持多种训练框架的模型,常用深度学习算子,多种系统,以及卷积计算方式计算优化等。其中,MNN引擎的后端(Backends)开发者可以手动编写多份代码适配各个平台硬件来实现跨平台特性,对于机器学习任务开发者在使用时仅需编写一份机器学习任务的代码即可在计算容器支持的各移动设备、云侧服务器上跨平台执行。该计算容器可以屏蔽各种移动设备之间以及移动设备与云侧设备之间的硬件差异,既可以部署在各种移动设备上,也可以部署在云侧设备上。该计算容器自上而下包括机器学习任务所依赖的用于动态编程语言的虚拟机(或者称为动态编程语言解释器)、机器学习库和张量计算引擎,并根据机器学习任务对应的触发事件序列,基于所述虚拟机、机器学习库和张量计算引擎执行机器学习任务;其中,所述机器学习任务是采用动态编程语言基于机器学习库中的库函数编写的,所述机器学习库是基于张量计算引擎提供的模型算子构建的,所述张量计算引擎提供的模型算子对应多种后端(backends)适配层,用于适配多种硬件资源,以使该张量计算引擎所属计算容器支持跨平台部署。其中,张量计算引擎具有几何计算、半自动搜索等功能,后端适配层是使张量计算引擎适配不同硬件资源的指令集架构的软件层,可选地,可适配的硬件平台指令集架构包括但不限于但不限于:各版本的ARM指令集架构、OpenCL、Vulkan、Metal、X86 AVX、CUDA等。计算容器依赖于其所在云侧设备或移动设备的操作系统和硬件资源进行运行。
进一步可选地,机器学习任务是采用Python语言编写的,相应地,上述虚拟机是用于Python语言的虚拟机,但不限于此。机器学习任务也可以采用JavaScript、Ruby等语言编写,相应地,上述虚拟机是用于JavaScript、Ruby语言的虚拟机。本实施例中的虚拟机实际上是一种用于动态编程语言的解释器。
进一步可选地,本实施例的机器学习任务至少包括模型算法任务,即需要机器学习模型完成的任务,基于此,本申请实施例提供的计算容器执行机器学习任务的过程可以是:在所述触发事件序列到达时,执行上述动态编程语言解释器,以将机器学习任务解释为多条机器指令,所述多条机器指令包括与机器学习任务中的模型算法任务对应的第一机器指令;依次执行多条机器指令,在执行到第一机器指令时,调用目标库函数中的第一库函数并执行第一库函数,所述第一库函数是第一机器指令调用的库函数,用以实现机器学习任务中的模型算法任务;以及在第一库函数涉及张量计算的情况下,调用张量计算引擎,在预先为所述模型算法任务适配出的目标硬件资源上,执行与第一库函数对应的目标模型算子以完成张量计算,其中,目标模型算子是张量计算引擎提供的模型算子中与第一库函数对应的模型算子。
进一步可选地,本实施例的机器学习任务还包括与模型算法任务适配的前处理和/或后处理任务,则上述多条机器指令还包括与所述机器学习任务中的前处理和/或后处理任务对应的第二机器指令。基于此,计算容器执行机器学习任务的过程还包括:在执行到第二机器指令时,调用动态编程语言解释器提供的第二库函数并执行第二库函数,以完成前处理和/或后处理任务,第二库函数是第二机器指令调用的库函数,用以实现机器学习任务中的前处理和/或后处理任务。
进一步可选地,本申请实施例提供的计算容器还用于对外提供基于静态或动态编程语言实现的标准API集合,该标准API集合中的API可通过动态编程语言进行调用,所述标准API集合包括所述动态编程语言解释器自带的第一类API和所述机器学习库透过所述动态编程语言解释器提供的第二类AP I,以供编写机器学习任务;其中,所述第一类API用于实现所述机器学习任务中的前处理逻辑和/或后处理逻辑,所述第二类API用于实现所述机器学习任务中的模型算法。换句话说,机器学习任务可以使用第一类API实现前处理和/或后处理任务,并使用第二类API实现模型算法任务。基于此,计算容器执行机器学习任务的过程包括:在触发事件序列到达时,执行动态编程语言解释器,以将机器学习任务解释为多条机器指令;在依次执行多条机器指令的过程中,在执行到与机器学习任务使用的第一类API对应的第二机器指令时,可调用上述动态编程语言解释器提供的第二库函数对触发事件序列进行前处理和/或对模型计算产生的结果数据进行后处理,以及在执行到与机器学习任务使用的第二类API对应的第一机器指令时,调用上述机器学习库中的第一库函数对所述前处理产生的结果数据进行模型计算;进一步,在第一库函数涉及张量计算的情况下,调用张量计算引擎,在预先为模型算法任务适配出的目标硬件资源上,执行与第一库函数对应的目标模型算子以完成张量计算,并在完成模型算法任务之后向上返回模型算法任务产生的结果数据。在一可选实施例中,张量计算引擎为MNN引擎,相应地,机器学习库包括以下至少一种:基于MNN引擎构建的用于模型推理的机器学习库、用于模型训练的机器学习库、用于视觉计算的机器学习库和用于矩阵运算的机器学习库。
进一步可选地,预先为模型算法任务适配出目标硬件资源,包括:在模型算法任务执行之前,根据模型算法任务涉及的模型算子及其输入张量形状,采用半自动搜索算法,预先从多种后端适配层对应的硬件资源中为模型算法任务适配出目标硬件资源。
其中,根据模型算法任务涉及的模型算子及其输入张量形状,采用半自动搜索算法,预先从多种后端适配层对应的硬件资源中为模型算法任务适配出目标硬件资源,包括:根据模型算法任务涉及的模型算子及其输入张量形状,计算模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数;根据模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数,选择性能参数符合要求的硬件资源作为与模型算法任务适配目标硬件资源。
更进一步,根据模型算法任务涉及的模型算子及其输入张量形状,计算模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数,包括:针对每种后端适配层,在该后端适配层对应的硬件资源上分别执行模型算法任务涉及的每个模型算子对应的各种实现算法,以得到每个模型算子在采用各种实现算法时的损失性能分数;将模型算法任务涉及的每个模型算子在采用各种实现算法时的损失性能分数中的最小损失性能分数之和,作为模型算法任务在后端适配层上的性能参数。其中,每个模型算子对应至少一种实现算法,该模型算子在采用不同实现算法时对应的执行性能不同,而且同一模型算子在采用同一实现算法,但是在不通过硬件资源上执行时,对应的执行性能也不同。在本申请实施例中,通过性能损失分数来表征执行性能,性能损失分数越小,执行性能越好。在本申请实施例中,张量计算引擎提供的模型算子包括原子算子、形变算子和组合算子。其中,原子算子是指不能拆分或拆分后性能变差的模型算子,例如包括但不限于:单目算子(Unary、上面已举例);双目算子(Binary)如加减乘除;归约算子(Reduce)(如 取极值、求和、平均等)将输入张量在某个方向归约,使其维数降低一维的操作;光栅算子(Raster),用于完成数据在内存中的区域映射(或称为搬运),可通过对其进行自定义设置等效地实现不同的形变效果。形变算子的数量很多,但是对于只进行内存映射而没有计算的算子,可以通过一个光栅算子Raster来实现。光栅算子Raster通过存储输入张量到输出张量的内存映射信息,来实现各种形变算子。而映射关系通过存储内存的偏移(offset),行跨度(stride),大小(size)信息,在光栅算子Raster中通过固定的循环结构来存取数据即可。光栅算子Raster使用区域(Region)来存储变换信息。形变算子例如包括但不限于转置、切片、串联和排列等。复合算子可以分解为原子算子和,例如,复合算子例如包括但不限于:卷积操作、反卷机操作、池化操作、内积操作等操作符。形变算子和组合算子是由原子算子组合或拼装而成的。几何计算负责把形变算子和组合算子拆解/转换为原子算子。它转换形变算子的原理是:先基于算子输入的形状计算算子输出的形状,再基于输入输出的形状和形变规则,计算出一系列线性内存搬运区域,按这些区域去搬运内存,等效于原始的形变算子实现。对于复合算子,可将形变部分提取出来,同样地计算内存搬运的区域,其他的可分解为原子算子。
在一种应用场景中,目标应用为购物类APP,机器学习任务为用于向用户进行个性化商品推荐的商品推荐模型。在云侧资源上,预先训练出与每个用户适配的商品推荐模型,并采用上述实施例提供的个性化部署方法将商品推荐模型部署到用户使用的购物类APP中,与此同时,该购物类APP包括上述实施例提供的计算容器,随着用户在购物类APP上的浏览、点击、查看商品详情、查看商品评论以及加购物车等各种操作,采集并生成各种基础事件,当商品推荐模型对应的触发事件序列产生时,计算容器加载该商品推荐模型并采用上述实施例提供的方法运行该商品推荐模型,最终输出推荐给用户的目标商品,并由购物类APP将推荐的目标商品展示在相关页面上,以供用户查看和选购。
在另一种应用场景中,目标应用为直播类APP,机器学习任务为对直播内容进行打标的打标处理模型。在云侧资源上,预先训练出打标处理模型,并采用上述实施例提供的个性化部署方法将打标处理模型部署到主播使用的直播类APP中,与此同时,该直播类APP包括上述实施例提供的计算容器,随着直播过程的进程,不断生成直播内容,该直播内容包括直播画面和直播语音,计算容器会加载该打标处理模型并采用上述实施例提供的方法运行该打标处理模型,最终在直播内容中的关键内容上添加标记,并输出带有标记信息的直播内容,以供直播服务端对带有标记信息的直播内容做进一步处理。打标内容可以是一些隐私信息,重要信息或者特定商品信息等。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤403的执行主体可以为设备A;又比如,步骤401和402的执行主体可以为设备A,步骤403的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图7为本申请实施例提供的一种移动设备的结构示意图。如图7所示,该移动设备可以包括:接收模块71、发送模块72和下载部署模块73。
接收模块71,用于接收第二消息,第二消息携带有版本更新通知信息,版本更新通知信息是由任务管理服务器下发并添加至应用服务器发送给目标应用的第二消息中的,用于通知目标应用有新版本的机器学习任务;
发送模块72,用于在目标应用发送给应用服务器的第三消息中添加移动设备对应的个性化信息,并将添加移动设备对应的个性化信息的第三消息发送出去,个性化信息包括设备信息和/或用户信息,以使任务管理服务器确定与移动设备适配的个性化任务资源;
接收模块71,还用于接收第四消息,第四消息携带有第一资源下载地址,第一资源下载地址是由任务管理服务器下发并添加至应用服务器发送给目标应用的第四消息中的;
下载部署模块73,用于根据第一资源下载地址,下载个性化任务资源,并根据个性化任务资源在本地部署新版本的机器学习任务。
进一步可选的,在接收模块71接收第二消息之前,发送模块72还用于:在目标应用发送给应用服务器的第一消息中添加目标应用当前使用的机器学习任务的版本信息,将添加版本信息的第一消息发送出去,以供任务管理服务器根据版本信息确定是否有新版本的机器学习任务。
进一步可选的,发送模块72在目标应用发送给应用服务器的第一消息中添加目标应用当前使用的机器学习任务的版本信息时,具体用于:在目标应用向应用服务器发送消息使用的消息头中新增第一字段,第一字段用于承载机器学习任务更新过程中的相关信息;在目标应用向应用服务器发送第一消息时,在第一消息的消息头中的第一字段中添加版本信息。
相应地,发送模块72在将添加版本信息的第一消息发送出去时,具体用于:将添加有版本信息的第一消息发送给应用服务器对应的应用接入网关,以使应用接入网关从第一消息中解析出版本信息并发送给任务管理服务器。
进一步可选的,接收模块71接收第二消息时,具体用于:接收应用接入网关发送的添加有版本更新通知信息的第二消息,版本更新通知信息是任务管理服务器根据版本信息确定有新版本的机器学习任务可用后发送给应用接入网关,并由应用接入网关在接收到应用服务器发送给目标应用的第二消息时添加至第二消息中的。
进一步可选的,第二消息中还包括部署方式指示信息,用于指示本次机器学习任务需要采用的部署方式,则在发送模块72在目标应用发送给应用服务器的第三消息中添加移动设备对应的个性化信息之前,接收模块71还用于:从第二消息中解析出部署方式指示信息,并确定部署方式指示信息指示本次机器学习任务需要采用个性化部署方式。
进一步可选的,若部署方式指示信息指示本次机器学习任务需要采用统一部署方式,接收模块71,还用于从第二消息中解析出第二资源下载地址,第二资源下载地址指向目标应用所属应用场景对应的统一任务资源;下载部署模块73,还用于根据第二资源下载地址下载统一任务资源,根据统一任务资源在本地部署新版本的机器学习任务。
进一步可选的,上述装置还包括:采集模块;该采集模块,用于在新版本的机器学习任务运行过程中,采集任务运行异常信息。相应地,发送模块72,还用于在目标应用发送给应用服务器的第五消息中添加任务运行异常信息,并将添加任务运行异常信息的第五消息发送出去,以供任务管理服务器确认是否执行回滚操作。相应地,接收模块71,还用于接收第六消息,第六消息携带有第三资源下载地址,第三资源下载地址是任务管理服务器确认执行回滚操作时下发并添加至应用服务器发送给目标应用的第六消息中;下载部署模块73,还用于根据第三资源下载地址下载旧版本的任务资源,根据旧版本的任务资源在本地重新部署旧版本的机器学习任务。
图7的移动设备可以执行图4所示实施例的支持海量移动设备的个性化任务处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的移动设备其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8为本申请实施例提供的一种任务管理服务器的结构示意图。如图8所示,该任务管理服务器可以包括:发送模块81、接收模块82、处理模块83。
发送模块81,用于在确定目标应用有新版本机器学习任务的情况下,向应用接入网关提供版本更新通知信息,以使应用接入网关在应用服务器发送给目标应用的第二消息中添加版本更新通知信息后将第二消息发送给运行目标应用的移动设备;
接收模块82,用于接收应用接入网关发送的移动设备对应的个性化信息,个性化信息是应用接入网关从目标应用发送给应用服务器的第三消息中获取的,个性化信息包括设备信息和/或用户信息;
处理模块83,用于根据个性化信息确定与移动设备适配的个性化任务资源;发送模块81,还用于向应用接入网关提供指向个性化任务资源的第一资源下载地址,以使应用接入网关在应用服务器发送给目标应用的第四消息中添加第一资源下载地址后将第四消息发送给移动设备,以使移动设备根据个性化任务资源在本地部署新版本的机器学习任务。
进一步可选的,在发送模块81向应用接入网关提供版本更新通知信息之前,处理模块83,还用于根据本次任务部署需求和/或目标应用所属的应用场景,生成用于指示本次机器学习任务需要采用的部署方式的部署方式指示信息;相应地,发送模块81向应用接入网关提供版本更新通知信息,包括:若部署方式指示信息指示本次机器学习任务需要采用个性化部署方式,向应用接入网关提供版本更新通知信息和部署方式指示信息,以使应用接入网关在第二消息中添加部署方式指示信息和本更新通知信息后将第二消息发送给移动设备,以指示移动设备提供个性化信息。
进一步可选的,若确定部署方式指示信息指示本次机器学习任务需要采用统一部署方式,处理模块83,还用于获取第二资源地址信息,第二资源地址信息指向应用场景对应的统一任务资源;发送模块81,还用于向应用接入网关提供版本更新通知信息、部署方式指示信息和第二资源下载地址,以使应用接入网关在第二消息中添加版本更新通知信息、部署方式指示信息和第二资源下载地址后将第二消息发送给移动设备,以使移动设备根据统一任务资源在本地部署新版本的机器学习任务。
进一步可选的,处理模块83,还用于采用树形结构对各应用场景下的机器学习任务进行管理,其中,第一级节点对应不同的应用场景,第二级节点对应不同应用场景下的机器学习任务,第二级节点的属性信息包括其对应机器学习任务的标识信息、版本信息和资源下载地址。
进一步可选的,接收模块82,还用于接收应用接入网关提供的任务运行异常信息,任务运行异常信息是应用接入网关从目标应用发送给应用服务器的第五消息中获取的,用于反映新版本的机器学习任务的异常运行状态;根据任务运行异常信息,确定执行回滚操作,向应用接入网关提供第三资源下载地址,以使应用接入网关在应用服务器发送给目标应用的第六消息中添加第三资源下载地址后将第六消息发送给移动设备,第三资源下载地址指向旧版本的任务资源,以使移动设备根据旧版本的任务资源在本地重新部署旧版本的机器学习任务。
图8的任务管理服务器可以执行图5所示实施例的支持海量移动设备的个性化任务处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的任务管理服务器其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9为本申请实施例提供的一种应用接入网关的结构示意图。如图9所示,该应用接入网关可以包括:接收模块91和发送模块92。
其中,接收模块91,用于接收任务管理服务器发送的版本更新通知信息,版本更新通知信息用于通知目标应用有新版本的机器学习任务;
发送模块92,用于在接收目标应用对应的应用服务器发送给目标应用的第二消息时,在第二消息中添加版本更新通知信息后将第二消息发送给运行有目标应用的移动设备;
接收模块91,还用于接收移动设备发送的由目标应用发送给应用服务器的第三消息,并从第三消息中解析出移动设备对应的个性化信息,个性化信息包括设备信息和/或用户信息;
发送模块92,还用于将个性化信息发送给任务管理服务器,以使任务管理服务器确定与移动设备适配的个性化任务资源,并接收任务管理服务器发送的指向个性化任务资源的第一资源下载地址;在接收到应用服务器发送给目标应用的第四消息时,在第四消息中添加第一资源下载地址后将第四消息发送移动设备,以使移动设备根据个性化任务资源在本地部署新版本的机器学习任务。
图9的应用接入网关可以执行图6所示实施例的支持海量移动设备的个性化任务处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的应用接入网关其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图10为本申请实施例提供的一种计算机设备的结构示意图。如图10所示,该计算机设备包括:存储器101和处理器102;
存储器101,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算机设备上的操作。这些数据的示例包括用于在计算机设备操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器101可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器102,与存储器101耦合,用于执行存储器101中的计算机程序,以用于:接收第二消息,第二消息携带有版本更新通知信息,版本更新通知信息是由任务管理服务器下发并添加至应用服务器发送给目标应用的第二消息中的;在目标应用发送给应用服务器的第三消息中添加移动设备对应的个性化信息,并将添加移动设备对应的个性化信息的第三消息发送出去,个性化信息包括设备信息和/或用户信息,以使任务管理服务器确定与移动设备适配的个性化任务资源;接收第四消息,第四消息携带有第一资源下载地址,第一资源下载地址是由任务管理服务器下发并添加至应用服务器发送给目标应用的第四消息中的;根据第一资源下载地址下载个性化任务资源,并根据个性化任务资源在本地部署新版本的机器学习任务。
关于处理器执行各动作的详细实施过程可参见前述方法实施例或设备实施例中的相关描述,在此不再赘述。
进一步,如图10所示,该计算机设备还包括:通信组件103、显示器104、电源组件105、音频组件106等其它组件。图10中仅示意性给出部分组件,并不意味着计算机设备只包括图10所示组件。另外,图10中虚线框内的组件为可选组件,而非必选组件,具体可视排产设备的产品形态而定。本实施例的计算机设备可以实现为台式电脑、笔记本电脑、智能手机或IOT设备等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的计算机设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图10中虚线框内的组件;若本实施例的计算机设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图10中虚线框内的组件。
本申请实施例还提供一种计算机设备,该计算机设备的结构和图10所示的计算机设备相同,但是处理逻辑不同。具体而言,该计算机设备包括:存储器和处理器;处理器,与存储器耦合,用于执行存储器中的计算机程序,以用于:在确定目标应用有新版本机器学习任务的情况下,向应用接入网关提供版本更新通知信息,以使应用接入网关在应用服务器发送给目标应用的第二消息中添加版本更新通知信息后将第二消息发送给运行目标应用的移动设备;接收应用接入网关发送的移动设备对应的个性化信息,个性化信息是应用接入网关从目标应用发送给应用服务器的第三消息中获取的,个性化信息包括设备信息和/或用户信息;根据个性化信息确定与移动设备适配的个性化任务资源,向应用接入网关提供指向个性化任务资源的第一资源下载地址,以使应用接入网关在应用服务器发送给目标应用的第四消息中添加第一资源下载地址后将第四消息发送给移动设备,以使移动设备根据个性化任务资源在本地部署新版本的机器学习任。
关于处理器执行各动作的详细实施过程可参见前述方法实施例或设备实施例中的相关描述,在此不再赘述。
本申请实施例还提供一种计算机设备,该计算机设备的结构和图10所示的计算机设备相同,但是处理逻辑不同。具体而言,该计算机设备包括:存储器和处理器;处理器,与存储器耦合,用于执行存储器中的计算机程序,以用于:接收任务管理服务器发送的版本更新通知信息,版本更新通知信息用于通知目标应用有新版本的机器学习任务;在接收目标应用对应的应用服务器发送给目标应用的第二消息时,在第二消息中添加版本更新通知信息后将第二消息发送给运行有目标应用的移动设备;接收移动设备发送的由目标应用发送给应用服务器的第三消息,并从第三消息中解析出移动设备对应的个性化信息,个性化信息包括设备信息和/或用户信息;将个性化信息发送给任务管理服务器,以使任务管理服务器确定与移动设备适配的个性化任务资源,并接收任务管理服务器发送的指向个性化任务资源的第一资源下载地址;在接收到应用服务器发送给目标应用的第四消息时,在第四消息中添加第一资源下载地址后将第四消息发送给移动设备,以使移动设备根据个性化任务资源在本地部署新版本的机器学习任务。
关于处理器执行各动作的详细实施过程可参见前述方法实施例或设备实施例中的相关描述,在此不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算机设备执行的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述方法实施例中可由计算机设备执行的各步骤。
上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种支持海量移动设备的个性化任务处理方法,应用于运行有目标应用的移动设备,所述目标应用对应有应用服务器和任务管理服务器,其特征在于,所述方法包括:
在所述目标应用发送给所述应用服务器的第一消息中添加所述目标应用当前使用的机器学习任务的版本信息,将添加所述版本信息的第一消息发送出去,以供所述任务管理服务器根据所述版本信息确定是否有新版本的机器学习任务;
接收第二消息,所述第二消息携带有版本更新通知信息,所述版本更新通知信息是由任务管理服务器在确定有所述目标应用可用的新版本的机器学习任务的情况下下发并添加至所述应用服务器发送给目标应用的第二消息中的;
在目标应用发送给所述应用服务器的第三消息中添加所述移动设备对应的个性化信息,并将添加所述移动设备对应的个性化信息的第三消息发送出去,所述个性化信息包括设备信息和/或用户信息,以使所述任务管理服务器确定与所述移动设备适配的个性化任务资源;
接收第四消息,所述第四消息携带有第一资源下载地址,所述第一资源下载地址是由任务管理服务器下发并添加至所述应用服务器发送给目标应用的第四消息中的;
根据所述第一资源下载地址下载所述个性化任务资源,并根据所述个性化任务资源在本地部署新版本的机器学习任务。
2.根据权利要求1所述的方法,其特征在于,在所述目标应用发送给所述应用服务器的第一消息中添加所述目标应用当前使用的机器学习任务的版本信息,包括:
在所述目标应用向所述应用服务器发送消息使用的消息头中新增第一字段,所述第一字段用于承载机器学习任务更新过程中的相关信息;
在所述目标应用向所述应用服务器发送第一消息时,在所述第一消息的消息头中的第一字段中添加所述版本信息。
3.根据权利要求2所述的方法,其特征在于,将添加所述版本信息的第一消息发送出去,包括:将添加所述版本信息的第一消息发送给所述应用服务器对应的应用接入网关,以使所述应用接入网关从所述第一消息中解析出所述版本信息并发送给所述任务管理服务器;
相应地,接收第二消息,包括:接收所述应用接入网关发送的携带有所述版本更新通知信息的第二消息,所述版本更新通知信息是所述任务管理服务器根据所述版本信息确定有新版本的机器学习任务后发送给所述应用接入网关,并由所述应用接入网关在接收到所述应用服务器发送给所述目标应用的第二消息时添加至第二消息中的。
4.根据权利要求1所述的方法,其特征在于,所述第二消息中还包括部署方式指示信息,用于指示本次机器学习任务需要采用的部署方式,则在目标应用发送给所述应用服务器的第三消息中添加所述移动设备对应的个性化信息之前,所述方法还包括:
从所述第二消息中解析出所述部署方式指示信息,并确定所述部署方式指示信息指示本次机器学习任务需要采用个性化部署方式。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述部署方式指示信息指示本次机器学习任务需要采用统一部署方式,从所述第二消息中解析出第二资源下载地址,所述第二资源下载地址指向所述目标应用所属应用场景对应的统一任务资源;
根据所述第二资源下载地址下载所述统一任务资源,根据所述统一任务资源在本地部署新版本的机器学习任务。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
在新版本的机器学习任务运行过程中,采集任务运行异常信息;
在目标应用发送给所述应用服务器的第五消息中添加所述任务运行异常信息,并将添加所述任务运行异常信息的第五消息发送出去,以供所述任务管理服务器确认是否执行回滚操作;
接收第六消息,所述第六消息携带有第三资源下载地址,所述第三资源下载地址是所述任务管理服务器确认执行回滚操作时下发并添加至所述应用服务器发送给所述目标应用的第六消息中的;
根据所述第三资源下载地址下载旧版本的任务资源,根据所述旧版本的任务资源在本地重新部署旧版本的机器学习任务。
7.一种支持海量移动设备的个性化任务处理方法,应用于任务管理服务器,其特征在于,所述方法包括:
接收应用接入网关发送的目标应用当前使用的机器学习任务的版本信息,所述目标应用当前使用的机器学习任务的版本信息是所述应用接入网关从运行有所述目标应用的移动设备向所述应用接入网关对应的应用服务器发送的第一消息中解析得到的;在确定目标应用有新版本机器学习任务的情况下,向应用接入网关提供版本更新通知信息,以使所述应用接入网关在应用服务器发送给目标应用的第二消息中添加所述版本更新通知信息后将第二消息发送给运行所述目标应用的移动设备;
接收所述应用接入网关发送的所述移动设备对应的个性化信息,所述个性化信息是所述应用接入网关从所述目标应用发送给所述应用服务器的第三消息中获取的,所述个性化信息包括设备信息和/或用户信息;
根据所述个性化信息确定与所述移动设备适配的个性化任务资源,向所述应用接入网关提供指向所述个性化任务资源的第一资源下载地址,以使所述应用接入网关在所述应用服务器发送给所述目标应用的第四消息中添加所述第一资源下载地址后将第四消息发送给所述移动设备,以使所述移动设备根据所述个性化任务资源在本地部署新版本的机器学习任务。
8.根据权利要求7所述的方法,其特征在于,在向应用接入网关提供版本更新通知信息之前,还包括:根据本次任务部署需求和/或目标应用所属的应用场景,生成用于指示本次机器学习任务需要采用的部署方式的部署方式指示信息;
相应地,向应用接入网关提供版本更新通知信息,包括:若所述部署方式指示信息指示本次机器学习任务需要采用个性化部署方式,向应用接入网关提供版本更新通知信息和部署方式指示信息,以使所述应用接入网关在第二消息中添加所述部署方式指示信息和所述本更新通知信息后将第二消息发送给所述移动设备,以指示所述移动设备提供所述个性化信息。
9.根据权利要求8所述的方法,其特征在于,还包括:
若确定所述部署方式指示信息指示本次机器学习任务需要采用统一部署方式,获取第二资源地址信息,所述第二资源地址信息指向所述应用场景对应的统一任务资源;
向应用接入网关提供版本更新通知信息、部署方式指示信息和第二资源下载地址,以使所述应用接入网关在第二消息中添加所述版本更新通知信息、部署方式指示信息和第二资源下载地址后将第二消息发送给所述移动设备,以使所述移动设备根据所述统一任务资源在本地部署新版本的机器学习任务。
10.根据权利要求7-9任一项所述的方法,其特征在于,还包括:
接收所述应用接入网关提供的任务运行异常信息,所述任务运行异常信息是所述应用接入网关从所述目标应用发送给所述应用服务器的第五消息中获取的,用于反映新版本的机器学习任务的异常运行状态;
根据所述任务运行异常信息,确定执行回滚操作,向所述应用接入网关提供第三资源下载地址,以使所述应用接入网关在所述应用服务器发送给所述目标应用的第六消息中添加第三资源下载地址后将第六消息发送给所述移动设备,所述第三资源下载地址指向旧版本的任务资源,以使所述移动设备根据所述旧版本的任务资源在本地重新部署旧版本的机器学习任务。
11.一种支持海量移动设备的个性化任务处理方法,应用于应用接入网关,其特征在于,所述方法包括:
接收任务管理服务器发送的版本更新通知信息,所述版本更新通知信息用于通知目标应用有新版本的机器学习任务;其中,所述版本更新通知信息是所述任务管理服务器基于所述应用接入网关发送的目标应用当前使用的机器学习任务的版本信息确定有所述目标应用可用的新版本的机器学习任务的情况下发的,所述目标应用当前使用的机器学习任务的版本信息是所述应用接入网关从运行有所述目标应用的移动设备向所述应用接入网关对应的应用服务器发送的第一消息中解析得到的;
在接收所述目标应用对应的应用服务器发送给所述目标应用的第二消息时,在第二消息中添加所述版本更新通知信息后将第二消息发送给运行有所述目标应用的移动设备;
接收所述移动设备发送的由所述目标应用发送给所述应用服务器的第三消息,并从所述第三消息中解析出所述移动设备对应的个性化信息,所述个性化信息包括设备信息和/或用户信息;
将所述个性化信息发送给所述任务管理服务器,以使所述任务管理服务器确定与所述移动设备适配的个性化任务资源,并接收所述任务管理服务器发送的指向所述个性化任务资源的第一资源下载地址;
在接收到所述应用服务器发送给所述目标应用的第四消息时,在第四消息中添加所述第一资源下载地址后将第四消息发送给所述移动设备,以使所述移动设备根据所述个性化任务资源在本地部署新版本的机器学习任务。
12.一种计算机设备,其特征在于,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行权利要求1-11任一项所述方法中的步骤。
13.一种存储有计算机程序的计算机存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器能够实现权利要求1-11任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126285.8A CN114168177B (zh) | 2022-02-10 | 2022-02-10 | 一种支持海量移动设备的个性化任务处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126285.8A CN114168177B (zh) | 2022-02-10 | 2022-02-10 | 一种支持海量移动设备的个性化任务处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168177A CN114168177A (zh) | 2022-03-11 |
CN114168177B true CN114168177B (zh) | 2022-07-19 |
Family
ID=80489950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210126285.8A Active CN114168177B (zh) | 2022-02-10 | 2022-02-10 | 一种支持海量移动设备的个性化任务处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168177B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126858A1 (en) * | 2014-02-21 | 2015-08-27 | Microsoft Technology Licensing, Llc | Personalized machine learning system |
CN113190761A (zh) * | 2021-05-25 | 2021-07-30 | 贵州广播电视大学(贵州职业技术学院) | 基于深度强化学习的个性化学习系统及方法 |
CN113495732A (zh) * | 2021-06-21 | 2021-10-12 | 中国普天信息产业股份有限公司 | 服务器部署方法、装置、设备及可读存储介质 |
WO2021244734A1 (en) * | 2020-06-02 | 2021-12-09 | NEC Laboratories Europe GmbH | Method and system of providing personalized guideline information for a user in a predetermined domain |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453367B (zh) * | 2007-11-30 | 2011-12-28 | 华为技术有限公司 | 软件部署方法和系统及软件部署服务器和用户服务器 |
US9170798B2 (en) * | 2012-03-02 | 2015-10-27 | Vmware, Inc. | System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure |
US10713594B2 (en) * | 2015-03-20 | 2020-07-14 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning model training and deployment with a rollback mechanism |
CN111507476A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 部署机器学习模型的方法、设备和计算机程序产品 |
GB201903172D0 (en) * | 2019-03-08 | 2019-04-24 | Kortical Ltd | Methods of deploying machine learning models |
US20210216920A1 (en) * | 2020-01-01 | 2021-07-15 | Rockspoon, Inc. | System and method for advanced advertising using personalized content and machine learning |
US11178010B2 (en) * | 2020-02-25 | 2021-11-16 | International Business Machines Corporation | Personalized machine learning model management and deployment on edge devices |
CN111966382A (zh) * | 2020-08-28 | 2020-11-20 | 上海寻梦信息技术有限公司 | 机器学习模型的在线部署方法、装置及相关设备 |
CN112947960A (zh) * | 2021-02-05 | 2021-06-11 | 中国建设银行股份有限公司 | 一种基于机器学习的风险模型部署方法及系统 |
-
2022
- 2022-02-10 CN CN202210126285.8A patent/CN114168177B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126858A1 (en) * | 2014-02-21 | 2015-08-27 | Microsoft Technology Licensing, Llc | Personalized machine learning system |
WO2021244734A1 (en) * | 2020-06-02 | 2021-12-09 | NEC Laboratories Europe GmbH | Method and system of providing personalized guideline information for a user in a predetermined domain |
CN113190761A (zh) * | 2021-05-25 | 2021-07-30 | 贵州广播电视大学(贵州职业技术学院) | 基于深度强化学习的个性化学习系统及方法 |
CN113495732A (zh) * | 2021-06-21 | 2021-10-12 | 中国普天信息产业股份有限公司 | 服务器部署方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114168177A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11601520B2 (en) | Method and system for sensing information, imputing meaning to the information, and determining actions based on that meaning, in a distributed computing environment | |
US11048498B2 (en) | Edge computing platform | |
US10853418B1 (en) | Computer-based systems and methods configured to utilize automating deployment of predictive models for machine learning tasks | |
US20170060574A1 (en) | Edge Intelligence Platform, and Internet of Things Sensor Streams System | |
CN110659057B (zh) | 应用程序热更新方法、装置、存储介质及计算机设备 | |
US9354871B2 (en) | Multi-stage push notifications for software logistic tools | |
US20230195449A1 (en) | Methods and systems for continuous asynchronous code deployment | |
US20210232596A1 (en) | Intelligent management of a synchronization interval for data of an application or service | |
CN115576599A (zh) | 软件开发的配置方法、系统和计算机设备 | |
CN114168601B (zh) | 一种面向移动端的数据流处理方法及设备 | |
CN114172908B (zh) | 一种端云协同处理方法及设备 | |
CN114168177B (zh) | 一种支持海量移动设备的个性化任务处理方法及设备 | |
Suciu et al. | Big data, internet of things and cloud convergence for e-health applications | |
CN116527554A (zh) | 基于服务网格的监测系统、方法、设备及存储介质 | |
CN116302602A (zh) | 一种Flutter原生混合开发的消息传输方法及装置 | |
US20190132408A1 (en) | Webpage Loading Method and Apparatus | |
US10536390B1 (en) | Requesting embedded hypermedia resources in data interchange format documents | |
US10567469B1 (en) | Embedding hypermedia resources in data interchange format documents | |
CN114936156A (zh) | 一种自动驾驶仿真任务的处理方法及装置 | |
CN112559001B (zh) | 更新应用的方法和装置 | |
Lewis et al. | A tale of three systems: Case studies on the application of architectural tactics for cyber-foraging | |
CN107453894B (zh) | 支持智能客服机器人入口开放的方法、系统、装置和计算机可读存储介质 | |
US10755321B1 (en) | Techniques for dynamic utilization of advertising capabilities by applications on user devices | |
Mahalle et al. | Architecture for context-aware systems | |
US11356546B2 (en) | Smart system and method for providing increased availability of content in an offline mode using BOTs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |