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

机器学习系统、方法及电子设备与流程

2021-10-23 03:54:00 来源:中国专利 TAG:技术 人工智能 电子设备 可读 机器


1.本技术涉及云计算技术和人工智能技术,尤其涉及一种机器学习系统、方法、电子设备及计算机可读存储介质。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。机器学习(machine learning,ml)是人工智能的一个重要分支,主要研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
3.机器学习模型的生命周期(包括建模和应用)是一个多流程、灵活性较强的过程,涉及云技术的大数据处理,例如不同子流程的数据计算和数据传输;被划分为多个子流程,每个子流程由对应的子系统承载。
4.在建模过程和应用过程中,出于各种需要经常对机器学习模型的参数及特征等数据进行调整,如果调整出错会引发不同子系统中的安全事故,导致不同子流程中的数据丢失或破坏,影响了数据安全性。


技术实现要素:

5.本技术实施例提供一种机器学习系统、方法、电子设备及计算机可读存储介质,能够加强机器学习模型的处理流程的数据安全性。
6.本技术实施例的技术方案是这样实现的:
7.本技术实施例提供一种机器学习系统,包括:
8.发布系统以及多个子计算系统,所述多个子计算系统彼此隔离,且对应机器学习模型的不同处理阶段;其中,
9.所述多个子计算系统,用于根据所存储的数据,执行对应的处理阶段中的计算任务;
10.所述发布系统,用于接收任意两个所述子计算系统之间的数据转移请求;当检测到所述数据转移请求满足跨系统数据转移的安全性条件时,授权执行与所述数据转移请求对应的数据转移操作。
11.本技术实施例提供一种机器学习方法,应用于多个子计算系统,所述多个子计算系统彼此隔离,且对应机器学习模型的不同处理阶段;
12.所述机器学习方法,包括:
13.接收任意两个所述子计算系统之间的数据转移请求;
14.当检测到所述数据转移请求满足跨系统数据转移的安全性条件时,授权执行与所述数据转移请求对应的数据转移操作;
15.其中,所述多个子计算系统用于根据所存储的数据,执行对应的处理阶段中的计
算任务。
16.在上述方案中,还包括:
17.所述多个子计算系统,用于通过以下至少之一实现彼此隔离:
18.使用不同的计算资源执行各自的计算任务;使用不同的存储资源存储执行计算任务所需要使用的数据、以及计算任务的结果。
19.在上述方案中,所述多个子计算系统包括离线计算系统、近线计算系统以及在线计算系统;所述机器学习方法还包括:
20.所述离线计算系统根据所存储的历史数据,执行所述机器学习模型的离线训练计算任务;
21.其中,所述离线训练计算任务包括:基于所述历史数据的特征统计转换、基于特征统计转换得到的历史特征从所述历史数据中抽取历史样本、基于所述历史样本训练所述机器学习模型;
22.所述近线计算系统根据实时数据执行近线训练计算任务;
23.其中,所述近线训练计算任务包括:基于所述实时数据的特征统计转换、基于特征统计转换得到的实时特征从所述实时数据中抽取实时样本、基于所述实时样本训练所述机器学习模型;
24.所述在线计算系统响应于实时的预测请求,执行所述机器学习模型的在线预测计算任务,基于得到的预测结果响应所述预测请求。
25.在上述方案中,所述近线计算系统根据实时数据执行近线训练计算任务,包括:
26.所述近线计算系统通过被授权的第一数据转移操作,从所述离线计算系统获取第一数据,并结合所述第一数据以及所述实时数据执行所述近线训练计算任务;
27.其中,所述第一数据包括以下至少之一:
28.在所述离线训练计算任务中计算得到的所述机器学习模型的历史参数,在所述离线训练计算任务中计算得到的所述历史特征。
29.在上述方案中,所述结合所述第一数据以及所述实时数据执行所述近线训练计算任务,包括:
30.所述近线计算系统将所述历史特征作为实时特征,并根据所述实时特征从所述实时数据中抽取实时样本;
31.基于所述实时样本,对部署所述历史参数的所述机器学习模型进行训练。
32.在上述方案中,所述近线计算系统根据实时数据执行近线训练计算任务之后,还包括:
33.所述在线计算系统通过被所述发布系统授权的第二数据转移操作,从所述近线计算系统获取第二数据,并结合所述第二数据和所存储的待测数据执行所述在线预测计算任务;
34.其中,所述第二数据包括以下至少之一:
35.在所述近线训练计算任务中计算得到的所述机器学习模型的实时参数,在所述近线训练计算任务中计算得到的所述实时特征。
36.在上述方案中,所述结合所述第二数据和所存储的待测数据执行所述在线预测计算任务,包括:
37.所述在线计算系统根据所述实时特征,从所述待测数据中抽取待测样本;
38.通过部署所述实时参数的所述机器学习模型,对所述待测样本进行预测处理,得到预测结果。
39.在上述方案中,所述近线计算系统根据实时数据执行近线训练计算任务之后,还包括:
40.所述近线计算系统结合第二数据和所存储的待测数据,执行近线预测计算任务,得到预测结果;
41.其中,所述第二数据包括以下至少之一:
42.在所述近线训练计算任务中计算得到的所述机器学习模型的实时参数,在所述近线训练计算任务中计算得到的所述实时特征;
43.所述在线计算系统响应于实时的预测请求,通过被所述发布系统授权的第三数据转移操作,从所述近线计算系统获取所述预测结果,以响应所述预测请求。
44.在上述方案中,所述执行所述机器学习模型的离线训练计算任务之后,还包括:
45.所述离线计算系统结合第一数据和所存储的待测数据,执行离线预测计算任务,得到预测结果;
46.其中,所述第一数据包括以下至少之一:
47.在所述离线训练计算任务中计算得到的所述机器学习模型的历史参数,在所述离线训练计算任务中计算得到的所述历史特征;
48.所述在线计算系统响应于实时的预测请求,通过被所述发布系统授权的第四数据转移操作,从所述离线计算系统获取所述预测结果,以响应所述预测请求。
49.在上述方案中,还包括:
50.当所述数据转移请求对应的待转移数据的类型符合允许转移的类型时,确定所述数据转移请求满足所述安全性条件;
51.其中,所述允许转移的类型包括计算任务的结果。
52.在上述方案中,还包括:
53.当所述数据转移请求的数据转移时间符合允许进行数据转移的时间区间时,确定所述数据转移请求满足所述安全性条件。
54.在上述方案中,还包括:
55.当所述数据转移请求的数据转移方向符合设定转移方向时,确定所述数据转移请求满足所述安全性条件。
56.在上述方案中,还包括:
57.所述子计算系统对所存储的原始数据进行备份处理,得到备份数据,以
58.当所述原始数据出现错误时,根据所述备份数据进行恢复。
59.在上述方案中,还包括:
60.所述子计算系统对所存储的数据中的设定数据进行审计处理,得到包括对所述设定数据执行的数据访问操作的审计日志,以
61.当所述设定数据出现错误时,根据所述审计日志定位引起所述错误的数据访问操作。
62.本技术实施例提供一种电子设备,包括:
63.存储器,用于存储可执行指令;
64.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的机器学习方法。
65.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的机器学习方法。
66.本技术实施例具有以下有益效果:
67.根据彼此隔离的多个子计算系统,来执行机器学习模型的不同处理阶段的计算任务,有效地保证不同处理阶段的计算任务互不影响;同时,在不同子计算系统之间需要进行数据转移时,根据发布系统进行安全性审核,决定是否授权执行数据转移操作,能够加强机器学习模型的处理流程的数据安全性。
附图说明
68.图1是本技术实施例提供的机器学习系统的一个可选的架构示意图;
69.图2是本技术实施例提供的电子设备的一个可选的架构示意图;
70.图3a是本技术实施例提供的机器学习方法的一个可选的流程示意图;
71.图3b是本技术实施例提供的机器学习方法的一个可选的流程示意图;
72.图3c是本技术实施例提供的机器学习方法的一个可选的流程示意图;
73.图3d是本技术实施例提供的机器学习方法的一个可选的流程示意图;
74.图4是本技术实施例提供的存储介质隔离策略的一个可选的示意图;
75.图5是本技术实施例提供的数据转移的一个可选的示意图;
76.图6是本技术实施例提供的计算资源隔离策略的一个可选的示意图。
具体实施方式
77.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
78.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
79.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
80.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
81.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
82.1)子计算系统:用于根据自身的计算资源,来执行机器学习模型的某个或多个处
理阶段中的计算任务。其中,机器学习模型的处理阶段包括但不限于训练阶段和预测阶段。
83.2)发布系统:即数据转移系统,用于对不同子计算系统之间的数据转移请求进行审核,决定是否授权执行相应的数据转移操作。
84.3)离线环境:基于已产生的历史数据执行计算任务,实时性较差,不提供实时服务。在本技术实施例中,基于离线计算系统构建离线环境。
85.4)近线环境:基于实时产生的数据执行计算任务,不保证提供实时服务。在本技术实施例中,基于近线计算系统构建近线环境。
86.5)在线环境:响应实时的请求,执行相应的计算任务,保证提供实时服务。在本技术实施例中,基于在线计算系统构建在线环境。
87.6)云计算(cloud computing):一种计算模式,将计算任务分布在大量电子设备构成的资源池上,使各种应用系统(子计算系统)能够根据需要获取计算资源、存储资源和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
88.7)数据库(database):以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,用户可以对数据库中的数据执行新增、查询、更新及删除等操作。
89.机器学习模型的生命周期是一个多流程、特别灵活的过程,为防止各子流程输入或输出数据相互影响,通常是从应用参数上区别计算数据的输入和输出,如:模型id、模型时间、样本时间、应用场景id、样本表、特征表等。相关人员在不同的子流程中,经常需要对涉及到的模型参数、特征、样本等进行微调,然后对比其效果,如果验证一个微调有效,要将其推向应用全场景时,就需要人为更新全量应用场景,这些更新操作是重复性的,导致人力成本较高。另外,在人为执行更新操作时,可能会出现修改错误的问题(如误输入了一个模型id),容易引发较为严重的安全事故,数据安全性和建模效率低。
90.本技术实施例提供一种机器学习系统、方法、电子设备及计算机可读存储介质,能够加强机器学习模型处理过程中的数据安全性,提升建模效率。下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端设备,也可以实施为服务器。
91.本技术实施例可以适用于多种应用场景下的机器学习处理过程,以内容推荐的场景为例,则可以根据用户在应用程序中的内容触发记录,在云端执行机器学习模型的训练阶段的计算任务(训练计算任务),然后,当接收到在应用程序中发起的实时的预测请求时,在云端或应用程序所搭载的终端设备中执行机器学习模型的预测阶段的计算任务(预测计算任务),根据得到的预测结果响应预测请求。这里,对内容的类型不做限定,例如可以是广告、支付优惠券、公众号、电影或电视剧等。
92.参见图1,图1是本技术实施例提供的机器学习系统100的一个可选的架构示意图,为了便于理解,以多个子计算系统包括离线计算系统300、近线计算系统400以及在线计算系统500,且以内容推荐的应用场景进行举例。在图1中,发布系统200包括服务器200-1,离线计算系统300包括服务器300-1和数据库300-2,近线计算系统400包括服务器400-1和数据库400-2,在线计算系统500包括终端设备500-1。其中,子计算系统中的存储资源可以由
数据库、分布式文件系统和分布式内存系统中的至少一种提供,这里仅以数据库作为示例;在线计算系统500也可以由服务器来提供计算资源,这里仅以终端设备作为示例。
93.在机器学习模型的处理过程中,首先由服务器300-1根据数据库300-2中存储的历史数据,如用户在历史上的内容触发记录,来执行离线训练计算任务。其中,历史数据可以是由在线计算系统500生成,并由离线计算系统300通过数据转移请求获取的(图1中未示出),当然,也可以是手动存储至离线计算系统300中的。本技术实施例对内容触发记录的形式不做限定,例如可以包括用户数据、被推荐的内容的数据以及触发结果。
94.服务器300-1可以将离线训练计算任务中计算得到的历史特征、以及机器学习模型的历史参数,通过发布系统200转移至近线计算系统400的数据库400-2中。近线计算系统400中的服务器400-1将数据库400-2中的历史特征作为实时特征,根据实时特征、历史参数以及实时数据,来执行近线训练计算任务。其中,实时数据如实时生成的、用户当前的内容触发记录,实时数据同样可以是由在线计算系统500生成,并由近线计算系统400通过数据转移请求获取的,也可以是手动存储至近线计算系统400中的。另外,历史特征指的是特征的类型,例如表示从用户数据中提取出哪些特征作为用户特征,从内容的数据中提取出哪些特征作为内容特征。
95.服务器400-1可以将近线训练计算任务中的实时特征、以及机器学习模型的实时参数,通过发布系统200转移至在线计算系统500中,如保存至终端设备500-1本地。终端设备500-1响应于实时的预测请求,根据实时参数和实时特征执行机器学习模型的在线预测计算任务,基于得到的预测结果响应预测请求。
96.终端设备500-1可以在图形界面510-1中,显示机器学习模型的处理过程中的各种结果和最终结果。在图1中,以内容推荐的场景进行举例,示出了智能内容推荐的按钮、以及推荐的内容1和内容2,其中,智能内容推荐的按钮用于被触发,以生成实时的预测请求,内容1和内容2即为上文的预测结果。
97.值得说明的是,以上的机器学习模型的处理过程仅为示例,并不构成对本技术实施例的限定,例如服务器300-1还可以执行离线预测计算任务,得到预测结果,并将预测结果通过发布系统200转移至终端设备500-1;又例如服务器400-1还可以执行近线预测计算任务,得到预测结果,并将预测结果通过发布系统200转移至终端设备500-1。
98.在一些实施例中,图1中涉及到的服务器(如服务器200-1、服务器300-1、服务器400-1)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,例如,服务器300-1可以提供离线训练计算任务和离线预测计算任务的云服务;服务器400-1可以提供近线训练计算任务和近线预测计算任务的云服务;当在线计算系统包括服务器时,该服务器同样可以提供在线预测计算任务的云服务。终端设备500-1可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
99.参见图2,图2是本技术实施例提供的电子设备800的架构示意图,电子设备800可以是发布系统中提供计算资源的电子设备,也可以是子计算系统中提供计算资源的电子设
备,为了便于理解,在图2中以电子设备800为服务器的情况进行举例说明。图2所示的电子设备800包括:至少一个处理器810、存储器840和至少一个网络接口820。电子设备800中的各个组件通过总线系统830耦合在一起。可理解,总线系统830用于实现这些组件之间的连接通信。总线系统830除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统830。
100.处理器810可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
101.存储器840可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器840可选地包括在物理位置上远离处理器810的一个或多个存储设备。
102.存储器840包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only me mory),易失性存储器可以是随机存取存储器(ram,random access memor y)。本技术实施例描述的存储器840旨在包括任意适合类型的存储器。
103.在一些实施例中,存储器840能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
104.操作系统841,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
105.网络通信模块842,用于经由一个或多个(有线或无线)网络接口820到达其他计算设备,示例性的网络接口820包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等。
106.在一些实施例中,本技术实施例可以采用软件方式实现机器学习处理,图2示出了存储在存储器840中的程序和插件等形式的软件,包括以下软件模块:子计算模块8431及发布模块8432,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。另外,图2中是将机器学习处理过程中涉及到的各种软件模块进行集中说明,实际上,这些软件模块可以分别部署于不同的电子设备中,如子计算模块8431部署于子计算系统的电子设备中,发布模块8432部署于发布系统的电子设备中,以此类推。将在下文中说明各个模块的功能。
107.在另一些实施例中,本技术实施例也可以采用硬件方式实现机器学习处理,作为示例,可以采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的机器学习方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、ds p、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpg a,field-programmable gate array)或其他电子元件。
108.在一些实施例中,对于电子设备是终端设备的情况,在图2的基础上,还可以包括其他的结构。例如,还包括用户接口,用户接口包括使得能够呈现媒体内容的一个或多个输出装置,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口还包括一个或多个
输入装置,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
109.在存储器840中,还可以包括呈现模块,用于经由一个或多个与用户接口相关联的输出装置(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);在存储器840中,还可以包括输入处理模块,用于对一个或多个来自一个或多个输入装置之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
110.将结合本技术实施例提供的电子设备的示例性应用和实施,说明本技术实施例提供的机器学习方法。
111.参见图3a,图3a是本技术实施例提供的机器学习方法的一个可选的流程示意图,为了便于理解,以离线计算系统和近线计算系统为例进行说明,但这并不构成对本技术实施例的限定。
112.在步骤101中,多个子计算系统根据所存储的数据,执行对应的处理阶段中的计算任务。
113.在本技术实施例中,包括彼此隔离的多个子计算系统,多个子计算系统对应机器学习模型的不同处理阶段,其中,对机器学习模型的数量不做限定,机器学习模型的处理阶段包括但不限于训练阶段和预测阶段。对于每个子计算系统来说,用于根据所存储的数据,执行对应的处理阶段中的计算任务。
114.在一些实施例中,还包括:多个子计算系统通过以下至少之一实现彼此隔离:使用不同的计算资源执行各自的计算任务;使用不同的存储资源存储执行计算任务所需要使用的数据、以及计算任务的结果。
115.这里,提供了两种隔离的方式。第一种方式是,多个子计算系统使用不同的计算资源执行各自的计算任务,即不同子计算系统使用的计算资源不同。例如存在10个可使用的服务器,将其中5个服务器划分至离线计算系统,将剩余的5个服务器划分至近线计算系统,如此,实现离线计算系统与近线计算系统在计算资源上的隔离。通过该方式,能够防止因不同子计算系统进行计算资源竞争,所导致的计算任务无法正常执行。
116.第二种方式是,多个子计算系统使用不同的存储资源存储执行计算任务所需要使用的数据、以及计算任务的结果,即不同子计算系统对应不同的存储空间,子计算系统仅持有对对应的存储空间的数据访问权限,未持有对其他存储空间的数据访问权限。举例来说,子计算系统a对应的存储空间为a1,子计算系统b对应的存储空间为b1,则存储空间a1仅允许子计算系统a执行数据访问操作,禁止子计算系统b执行数据访问操作(前提是子计算系统b未取得执行数据转移操作的权限)。其中,数据访问操作包括对存储空间所存储的数据的读取操作、写入操作、修改操作及查询操作中的至少一种;另外,存储空间包括数据库、分布式文件系统及分布式内存系统中的至少一种,当然,也可以应用其他形式的存储空间,例如在需要存储的数据量级较大时,可以应用数据仓库,对此不做限定。通过该方式,根据存储资源来隔离不同的子计算系统,提升了子计算系统中所存储的数据的安全性。根据实际应用场景的不同,可应用上述两种方式的至少一种,来进行隔离。
117.在一些实施例中,多个子计算系统包括离线计算系统、近线计算系统以及在线计算系统;可以通过这样的方式来实现上述的多个子计算系统根据所存储的数据,执行对应
的处理阶段中的计算任务:离线计算系统根据所存储的历史数据,执行机器学习模型的离线训练计算任务;其中,离线训练计算任务包括:基于历史数据的特征统计转换、基于特征统计转换得到的历史特征从历史数据中抽取历史样本、基于历史样本训练机器学习模型;近线计算系统根据实时数据执行近线训练计算任务;其中,近线训练计算任务包括:基于实时数据的特征统计转换、基于特征统计转换得到的实时特征从实时数据中抽取实时样本、基于实时样本训练机器学习模型;在线计算系统响应于实时的预测请求,执行机器学习模型的在线预测计算任务,基于得到的预测结果响应预测请求。
118.在本技术实施例中,多个子计算系统可以包括离线计算系统、近线计算系统以及在线计算系统,分别用于构建离线环境、近线环境和在线环境。为了便于理解,以内容推荐的场景,说明各个子计算系统的作用。
119.对于离线计算系统来说,可以用于根据所存储的历史数据,执行机器学习模型的离线训练计算任务,其中,历史数据是从机器学习模型的线上应用环境(在线环境)中采集得到的数据。在执行离线训练计算任务过程中,首先执行基于历史数据的特征统计转换,即进行特征工程处理,得到历史特征,该历史特征表示从历史数据中抽取出的特征的类型,其中,特征统计转换的规则可以预先设定。例如,历史数据为历史的内容触发记录,该内容触发记录包括用户数据、被推荐的内容的数据以及触发结果,则历史特征可以包括用户数据中的性别、年龄、居住城市及兴趣爱好等用户特征,还可以包括被推荐的内容的数据中的内容类型、展示位置及展示时长等内容特征,还可以包括触发结果,其中,触发结果可以表示用户是否触发了被推荐的内容,也可以表示用户触发被推荐的内容的时长(如广告浏览时长、游戏游玩时长等),根据实际应用场景而定,触发的形式可以是点击或长按等,同样不做限定。然后,根据历史特征从历史数据中抽取历史样本,例如得到“用户特征-内容特征-触发结果”的历史样本,基于历史样本对机器学习模型的参数进行更新,为了便于区分,将更新后的参数命名为历史参数。这里,对更新的方式不做限定,例如可结合反向传播和梯度下降的机制进行参数更新。除了离线训练计算任务之外,离线计算系统还可以执行离线预测计算任务,具体在后文进行阐述。
120.对于近线计算系统来说,可以用于根据实时数据,执行机器学习模型的近线训练计算任务,其中,实时数据同样是从机器学习模型的线上应用环境中采集得到的数据。与离线训练计算任务类似,在执行近线训练计算任务的过程中,首先执行基于实时数据的特征统计转换,即进行特征工程处理,得到实时特征,该实时特征表示从实时数据中抽取出的特征的类型。然后,根据实时特征从实时数据中抽取实时样本,例如得到“用户特征-内容特征-触发结果”的实时样本,基于实时样本对机器学习模型的参数进行更新,为了便于区分,将更新后的参数命名为实时参数。除了近线训练计算任务之外,近线计算系统还可以执行近线预测计算任务,具体在后文进行阐述。
121.对于在线计算系统来说,在接收到实时的预测请求时,执行机器学习模型的在线预测计算任务,基于得到的预测结果响应预测请求。例如,在执行在线预测计算任务的过程中,可以对所存储的待测数据执行特征统计转换,进而从待测数据中抽取待测样本。在内容推荐的场景中,待测样本与上文的历史样本和实时样本不同的是,待测样本中并不存在触发结果。这里,以在线计算系统包括预测请求对应用户的用户数据、以及多个待推荐的内容的数据进行举例说明,则待测样本中可以包括从该用户数据中抽取出的用户特征、以及从
某个待推荐的内容的数据中抽取出的内容特征,即每个待推荐的内容都对应一个待测样本。然后,通过机器学习模型对多个待测样本分别进行预测处理,得到每个待测样本对应的预测结果,该预测结果即为待测样本对应的待推荐的内容的预测触发结果。根据预测触发结果,可以对多个待推荐的内容进行筛选,例如,当预测触发结果表示是否触发时,将表示触发的预测触发结果对应的待推荐的内容,作为筛选出的内容;当预测触发结果表示触发时长时,将包括的触发时长超过时长阈值的预测触发结果对应的待推荐的内容,作为筛选出的内容。最后,在线计算系统将筛选出的内容,推荐至预测请求对应的用户,如此,能够提升内容推荐效果,加强用户体验。在一些情况中,也可以将筛选出的内容作为预测结果。
122.值得说明的是,本技术实施例的场景并不限于内容推荐,例如还可以是计算机视觉(如人脸检测、人体检测或车辆检测等)、语音技术(如语音识别或语音合成等)或自然语言处理(如实体识别、词性标注、机器翻译或机器人问答等)等场景。
123.在一些实施例中,在任意步骤之间,还包括:子计算系统对所存储的原始数据进行备份处理,得到备份数据,以当原始数据出现错误时,根据备份数据进行恢复。
124.对于子计算系统来说,还可以对所存储的原始数据进行备份处理,得到备份数据。例如,在线计算系统可以对机器学习模型的参数进行备份,若机器学习模型上线后,其参数出现错误,导致无法执行在线预测计算任务,则可以根据备份的参数进行恢复,即回滚至出现错误之前的机器学习模型。通过上述方式,能够提升子计算系统在执行计算任务时的容错能力。
125.在一些实施例中,在任意步骤之间,还包括:子计算系统对所存储的数据中的设定数据进行审计处理,得到包括对设定数据执行的数据访问操作的审计日志,以当设定数据出现错误时,根据审计日志定位引起错误的数据访问操作。
126.在本技术实施例中,子计算系统还可以对所存储的数据中的设定数据进行审计处理,其中,设定数据可根据实际应用场景进行具体设定,例如可以是机器学习模型的参数。审计处理即是对设定数据执行的数据访问操作进行记录,得到审计日志,这里的数据访问操作同样可根据实际应用场景进行设定,例如设定仅记录对机器学习模型的参数执行的修改操作。如此,当设定数据出现错误时,即可根据审计日志定位引起错误的数据访问操作,便于相关人员准确地修复该错误,其中,定位的方式可以是人为定位,也可以借助特定的定位规则进行定位。通过上述方式,能够对错误进行准确、快速的溯源。
127.在步骤102中,发布系统接收任意两个子计算系统之间的数据转移请求。
128.这里,不同的子计算系统之间可能存在数据转移的需求,例如离线计算系统需要将训练得到的历史参数转移至近线计算系统。在本技术实施例中,由发布系统来实现彼此隔离的子计算系统之间的数据转移,发布系统在接收到任意两个子计算系统之间的数据转移请求后,判断是否进行授权,其中,数据转移请求可以是数据发送请求,也可以是数据获取请求。
129.在步骤103中,当检测到数据转移请求满足跨系统数据转移的安全性条件时,发布系统授权执行与数据转移请求对应的数据转移操作。
130.发布系统若检测到数据转移请求满足跨系统数据转移的安全性条件,则授权执行与数据转移请求对应的数据转移操作;若检测到未满足安全性条件,则不做处理,从而最大程度地保证数据的安全性、以及机器学习模型处理过程的有序性。值得说明的是,本技术实
施例对执行计算任务和进行数据转移的执行顺序不做限定,例如可以先执行计算任务,并根据计算任务的结果进行数据转移,也可以根据数据转移得到的数据,执行计算任务。
131.另外,也可以由发布系统来实现备份和审计,例如,发布系统可以对所转移的原始数据进行备份处理,得到备份数据,如此,当原始数据出现错误时,可以根据备份数据进行恢复;发布系统还可以对所转移的数据中的设定数据进行审计处理,得到包括对设定数据执行的数据访问操作的审计日志,如此,当设定数据出现错误时,可以根据审计日志定位引起错误的数据访问操作。
132.在进行数据转移时,一种实现方式是,子计算系统能够获取到其他子计算系统所存储的数据的名称和/或其他可辨识的信息,但无法获取到数据的存储地址。其中,可以由发布系统实时或周期性地获取各个子计算系统的数据清单(包括所存储数据的名称和/或其他可辨识的信息),并将数据清单同步至各个子计算系统。以包括离线计算系统、近线计算系统和在线计算系统的情况举例,则文件系统可以将离线计算系统和在线计算系统的数据清单同步至近线计算系统,以此类推。在此基础上,发布系统可以根据设定的同步规则进行同步,例如仅将离线计算系统的数据清单同步至近线计算系统,仅将近线计算系统的数据清单同步至在线计算系统。发布系统在接收到数据转移请求之后,若检测到数据转移请求满足安全性条件,则将待转移数据(与数据转移请求对应)的存储地址,发送至对应的子计算系统,以使该子计算系统根据存储地址进行数据转移。例如,数据转移请求是近线计算系统发送的数据获取请求,其用于获取离线计算系统中的历史参数,则发布系统在检测到该数据获取请求满足安全性条件时,可以将历史参数在离线计算系统中的存储地址发送至近线计算系统,以使近线计算系统根据该存储地址,从离线计算系统中获取历史参数。
133.另一种实现方式是,子计算系统能够获取到其他子计算系统所存储的数据的存储地址,但是没有数据转移权限。其中,可以由发布系统实时或周期性地获取各个子计算系统的数据清单(包括所存储数据的存储地址,还可以包括名称和/或其他可辨识的信息),并将数据清单同步至各个子计算系统,同步规则同样可以自由设定。发布系统在接收到数据转移请求之后,若检测到数据转移请求满足安全性条件,则开放数据转移权限给相应的子计算系统,以使该子计算系统根据数据转移权限进行数据转移,其中,对数据转移权限的形式不做限定,例如可以是验证口令或其他形式。例如,数据转移请求是近线计算系统发送的数据获取请求,其用于获取离线计算系统中的历史参数,则发布系统在检测到该数据获取请求满足安全性条件时,可以将数据转移权限(这里为数据获取权限)发送至近线计算系统,以使近线计算系统根据数据转移权限、以及预先获取的历史参数的存储地址,从离线计算系统中获取历史参数。
134.在一些实施例中,步骤103之前,还包括:当数据转移请求对应的待转移数据的类型符合允许转移的类型时,发布系统确定数据转移请求满足安全性条件;其中,允许转移的类型包括计算任务的结果。
135.这里,提供了安全性条件的一种示例,即包括允许转移的类型。这里,允许转移的类型可以针对所有子计算系统统一设定,也可以针对不同的子计算系统单独设定。例如,允许转移的类型可以统一设定为计算任务的结果,其包括执行训练计算任务后得到的特征以及机器学习模型的参数,还包括执行预测计算任务后得到的预测结果。又例如,在离线计算系统执行离线预测计算任务,并且在线计算系统直接从离线计算系统获取预测结果的场景
中,对于涉及到离线计算系统的数据转移请求,设定允许转移的类型仅包括执行离线预测计算任务后得到的预测结果。通过上述方式,以特定的类型来约束数据转移的过程,能够提升数据转移的安全性。
136.在一些实施例中,步骤103之前,还包括:当数据转移请求的数据转移时间符合允许进行数据转移的时间区间时,发布系统确定数据转移请求满足安全性条件。
137.这里,提供了安全性条件的另一种示例,即允许进行数据转移的时间区间,接下来,以两种具体情况进行示例说明。一种情况是,数据转移时间是指子计算系统发出数据转移请求的时间,或者发布系统接收到数据转移请求的时间。在该情况下,可以预先统计多个子计算系统在历史上各个时间区间的负载程度,将负载程度最低的一个或多个时间区间,作为允许进行数据转移的时间区间,其中,时间区间可根据实际应用场景进行划分,例如将1天划分为24个时间区间,每个时间区间即为1小时。若数据转移时间落入允许进行数据转移的时间区间内,则确定数据转移请求满足安全性条件。如此,能够保证在负载程度较低的时间区间进行数据转移,有效地避免因负载程度过高所导致的数据转移时长过长、或者数据转移出现错误等后果。
138.此外,允许进行数据转移的时间区间也可以根据不同子计算系统的安全性要求来设定,例如,对于从离线计算系统到近线计算系统的数据转移要求,相对而言比较频繁,影响程度较小,故可以不限制允许进行数据转移的时间区间,即直接确定数据转移要求满足安全性条件;对于从近线计算系统到在线计算系统的数据转移要求,由于对在线计算系统所提供的线上服务的影响程度较大,故可以将线上服务使用频率低于频率阈值的时间区间(如凌晨三点),作为允许进行数据转移的时间区间,如此,由于线上服务在该时间区间内的使用用户较少、使用频率较低,故就算因数据转移导致线上服务出现问题,也能够最大程度地减少影响,便于相关人员进行快速修复。
139.另一种情况是,数据转移时间是指数据转移请求对应的待转移数据的生成时间,当该生成时间落入允许进行数据转移的时间区间内,则确定数据转移请求满足安全性条件。其中,允许进行数据转移的时间区间可以根据机器学习模型处理过程的业务时效性需求进行设定,例如设定为距当前时间1天以内。通过该方式,能够避免因转移丧失时效性的数据所导致的模型处理效果(训练效果或预测效果)不佳,同时也能够节省数据传输的资源。
140.在一些实施例中,步骤103之前,还包括:当数据转移请求的数据转移方向符合设定转移方向时,发布系统确定数据转移请求满足安全性条件。
141.这里,提供了安全性条件的另一种示例,即设定转移方向。例如,设定转移方向可以包括从离线计算系统到近线计算系统、以及从近线计算系统到在线计算系统的方向,可以仅包括从离线计算系统到在线计算系统的方向。通过上述方式,以设定转移方向来约束数据转移,提升了数据转移的有序性,避免了因非法方向的数据转移所导致的错误。
142.值得说明的是,上述的允许转移的类型、允许进行数据转移的时间区间、以及设定转移方向可以任选其一进行应用,也可以任意地结合应用,另外,还可以在发布系统中通过人工审核的方式,判断是否授权执行数据转移操作。在需要建模的机器学习模型的数量为多个的情况下,可以设定与不同的机器学习模型分别对应的安全性条件,以符合相应机器学习模型的安全性要求。
143.如图3a所示,通过彼此隔离的多个子计算系统,有效地保证不同处理阶段的计算任务互不影响;同时,通过发布系统决定是否授权执行数据转移操作,能够减少机器学习模型处理过程中的风险,加强数据安全性。
144.在一些实施例中,参见图3b,图3b是本技术实施例提供的机器学习方法的一个可选的流程示意图,为了便于理解,以离线计算系统、近线计算系统和在线计算系统为例,结合示出的各个步骤进行说明。
145.在步骤201中,离线计算系统根据所存储的历史数据,执行机器学习模型的离线训练计算任务。
146.这里,离线计算系统基于所存储的历史数据进行特征统计转换,得到历史特征,该历史特征用于表示从历史数据中抽取的特征的类型,其中,历史数据可以是离线计算系统通过数据转移的方式,从在线计算系统获取的。然后,离线计算系统根据历史特征从历史数据中抽取历史样本,以包括用户数据、被推荐的内容的数据以及触发结果的内容触发记录举例,则从历史的内容触发记录中抽取出的历史样本可以是“用户特征-内容特征-触发结果”的形式。基于历史样本训练机器学习模型,例如,通过机器学习模型对历史样本中的用户特征和内容特征进行预测处理,得到预测结果,并根据机器学习模型的损失函数确定预测结果与历史样本中的触发结果之间的差异(即损失值),根据该差异在机器学习模型中进行反向传播,在反向传播的过程中,沿梯度下降方向更新机器学习模型的参数。为了便于区分,将执行离线训练计算任务后得到的机器学习模型的参数,命名为历史参数。
147.在步骤202中,近线计算系统通过被发布系统授权的第一数据转移操作,从离线计算系统获取第一数据;第一数据包括以下至少之一:在离线训练计算任务中计算得到的机器学习模型的历史参数,在离线训练计算任务中计算得到的历史特征。
148.这里,离线计算系统或者近线计算系统可以向发布系统发送第一数据对应的数据转移请求,发布系统在检测到该数据转移请求满足安全性条件时,授权执行该数据转移请求对应的数据转移操作,为了便于区分,将这里的数据转移操作命名为第一数据转移操作。
149.在步骤203中,近线计算系统结合第一数据以及实时数据执行近线训练计算任务。
150.这里,实时数据可以是近线计算系统通过数据转移的方式,从在线计算系统获取的,其中,近线计算系统可以通过流式的方式来获取实时数据。
151.在一些实施例中,可以通过这样的方式来实现上述的结合第一数据以及实时数据执行近线训练计算任务:近线计算系统将历史特征作为实时特征,并根据实时特征从实时数据中抽取实时样本;基于实时样本,对部署历史参数的机器学习模型进行训练。
152.当第一数据同时包括历史特征和历史参数时,近线计算系统可以将历史特征直接作为实时特征,并根据实时特征从实时数据中抽取实时样本,然后,基于实时样本对部署历史参数的机器学习模型进行训练,将得到的参数命名为实时参数。
153.此外,当第一数据仅包括历史特征时,近线计算系统可以将历史特征直接作为实时特征,进而得到实时样本,然后,基于实时样本对近线计算系统中所存储的机器学习模型进行训练,得到实时参数;当第一数据仅包括历史参数时,近线计算系统可以基于实时数据进行特征统计转换,得到实时特征,并根据实时特征从实时数据中抽取实时样本,然后,基于实时样本对部署历史参数的机器学习模型进行训练。通过上述方式,使得近线计算系统中模型训练的过程能够贴合实时情况,提升得到的实时参数的准确性。
154.在步骤204中,在线计算系统通过被发布系统授权的第二数据转移操作,从近线计算系统获取第二数据;第二数据包括以下至少之一:在近线训练计算任务中计算得到的机器学习模型的实时参数,在近线训练计算任务中计算得到的实时特征。
155.这里,近线计算系统或者在线计算系统可以向发布系统发送第二数据对应的数据转移请求,发布系统在检测到该数据转移请求满足安全性条件时,授权执行该数据转移请求对应的第二数据转移操作。
156.在步骤205中,在线计算系统响应于实时的预测请求,结合第二数据和所存储的待测数据执行在线预测计算任务,基于得到的预测结果响应预测请求。
157.这里,待测数据可以是在线计算系统通过数据转移的方式,从离线计算系统或近线计算系统获取的,也可以是预先存储至在线计算系统本地的,还可以是接收到的预测请求所携带的。在线计算系统在接收到实时的预测请求时,结合第二数据和所存储的待测数据执行在线预测计算任务,基于得到的预测结果响应预测请求。
158.在一些实施例中,可以通过这样的方式实现上述的结合第二数据和所存储的待测数据执行在线预测计算任务:在线计算系统根据实时特征,从待测数据中抽取待测样本;通过部署实时参数的机器学习模型,对待测样本进行预测处理,得到预测结果。
159.当第二数据同时包括实时特征和实时参数时,在线计算系统可以直接根据实时特征,从待测数据中抽取待测样本,例如,待测数据包括用户数据和多个待推荐的内容的数据,则根据实时特征所表示的特征类型,从用户数据中抽取用户特征,从每个待推荐的内容的数据中抽取内容特征,并将用户特征与多个待推荐的内容对应的内容特征分别进行组合,得到多个待测样本。然后,通过部署实时参数的机器学习模型,对待测样本进行预测处理,得到预测结果,并基于预测结果响应预测请求。例如,当预测结果表示是否触发时,将表示触发的预测触发结果对应的待推荐的内容,作为筛选出的内容;当预测结果表示触发时长时,将包括的触发时长超过时长阈值的预测结果对应的待推荐的内容,作为筛选出的内容。将筛选出的内容推荐至预测请求对应的用户,以作为对预测请求的响应,如此,能够实现精准的内容推荐,提升用户体验。
160.此外,当第二数据仅包括实时特征或仅包括实时参数时的处理方式,与上述第一数据仅包括历史特征或仅包括历史参数时的处理方式类似,在此不做赘述。
161.如图3b所示,本技术实施例通过离线训练-近线训练-在线预测的方式,能够有效地提升模型训练的效果,并且提升最终得到的预测结果的准确性。
162.在一些实施例中,参见图3c,图3c是本技术实施例提供的机器学习方法的一个可选的流程示意图,基于图3b,在步骤203之后,还可以在步骤301中,近线计算系统结合第二数据和所存储的待测数据,执行近线预测计算任务,得到预测结果;第二数据包括以下至少之一:在近线训练计算任务中计算得到的机器学习模型的实时参数,在近线训练计算任务中计算得到的实时特征。
163.针对于在线计算系统的计算能力较差,无法支持执行在线预测计算任务的情况,在本技术实施例中,可以由近线计算系统结合近线训练计算任务中计算得到的第二数据、以及所存储的待测数据,执行近线预测计算任务,其中,待测数据可以是近线计算系统通过数据转移的方式,从离线计算系统或在线计算系统中获取的,也可以是预先存储至近线计算系统本地的。
164.在一些实施例中,可以通过这样的方式来实现上述的结合第二数据和所存储的待测数据执行近线预测计算任务,得到预测结果:近线计算系统根据实时特征,从所存储的待测数据中抽取待测样本,并通过部署实时参数的机器学习模型,对待测样本进行预测处理,得到预测结果。
165.这里,执行近线预测计算任务的过程与上述执行在线预测计算任务的过程类似,在此不做赘述。
166.在图3c中,步骤301之后,还可以在步骤302中,在线计算系统响应于实时的预测请求,通过被发布系统授权的第三数据转移操作,从近线计算系统获取预测结果,以响应预测请求。
167.这里,近线计算系统或者在线计算系统可以向发布系统发送预测结果对应的数据转移请求,发布系统在检测到该数据转移请求满足安全性条件时,授权执行该数据转移请求对应的第三数据转移操作。
168.如图3c所示,本技术实施例通过离线训练-近线预测-在线获取的方式,能够降低在线计算系统的处理压力,适用于在线计算系统处理能力较低,如在线计算系统中由终端设备提供计算资源的场景。
169.在一些实施例中,参见图3d,图3d是本技术实施例提供的机器学习方法的一个可选的流程示意图,基于图3b,在步骤201之后,还可以在步骤401中,离线计算系统结合第一数据和所存储的待测数据,执行离线预测计算任务,得到预测结果;其中,第一数据包括以下至少之一:在离线训练计算任务中计算得到的机器学习模型的历史参数,在离线训练计算任务中计算得到的历史特征。
170.对于时效性要求不强的场景,如推荐的内容是支付优惠券的场景,可以由离线计算系统来进行离线预测。例如,离线计算系统结合第一数据和所存储的待测数据,执行离线预测计算任务,得到预测结果,其中,待测数据可以由离线计算系统通过数据转移的方式,从近线计算系统或在线计算系统中获取,也可以预先存储至离线计算系统本地。
171.在一些实施例中,可以通过这样的方式来实现上述的结合第一数据和所存储的待测数据,执行离线预测计算任务,得到预测结果:离线计算系统基于历史特征,从所存储的待测数据中抽取待测样本,并通过部署历史参数的机器学习模型,对待测样本进行预测处理,得到预测结果。
172.这里,当第一数据同时包括历史特征和历史参数时,离线计算系统基于历史特征从待测数据中抽取待测样本,并通过部署有历史参数的机器学习模型对待测样本进行预测处理,得到预测结果。此外,当第一数据仅包括历史特征时,离线计算系统可以基于历史特征从待测数据中抽取待测样本,并通过原始的机器学习模型(即执行离线训练计算任务之前的机器学习模型),对待测样本进行预测处理;当第一数据仅包括历史参数时,离线计算系统可以基于待测数据进行特征统计转换,进而抽取出待测样本,并通过部署有历史参数的机器学习模型对待测样本进行预测处理。
173.在步骤402中,在线计算系统响应于实时的预测请求,通过被发布系统授权的第四数据转移操作,从离线计算系统获取预测结果,以响应预测请求。
174.这里,离线计算系统或者在线计算系统可以向发布系统发送预测结果对应的数据转移请求,发布系统在检测到该数据转移请求满足安全性条件时,授权执行该数据转移请
求对应的第四数据转移操作。
175.如图3d所示,本技术实施例通过离线预测-在线获取的方式,提前计算好预测结果,能够降低获取到预测请求时的处理压力,适用于对实时性要求不强的场景。
176.下面,将说明本技术实施例在实际的应用场景中的示例性应用。本技术实施例可以适用于机器学习建模的多种应用场景,例如用于应用程序中的内容推荐,其中,内容可以是广告、支付优惠券、电影或电视剧等,不做限定。接下来,以表格形式说明机器学习建模过程中涉及到的各个模块:
[0177][0178]
这里,对涉及到的各个模块进行具体说明。
[0179]
数据仓库:指存储数据的仓库,其存储的数据量级很大,主要用于数据分析,如hive数据仓库等。在本技术实施例中,数据仓库可以存储应用相关的上报日志及经过加工后的标准化数据,以用于进行机器学习建模,例如,用于机器学习建模的是支付应用相关的数据,则数据仓库可以存储支付应用相关的交易流水、以及基于流水产生的统计数据等。
[0180]
流式数据处理系统:用以处理实时的线上服务产生的数据流的系统,如flink流处理框架等。上文的数据仓库处理的是已产生的数据(对应上文的历史数据),而流式数据处理系统处理的则是正在产生的数据(对应上文的实时数据)。
[0181]
计算集群:在机器学习模型的处理过程中,往往会产生大量的数据,单台电子设备很难处理,因此,可以使用包括多台电子设备的计算集群来执行计算任务,如hadoop集群、spark集群或分布式tensorflow集群等。
[0182]
调度系统:机器学习模型的处理过程往往涉及到多人协作、多流程计算等,因此,需要调度系统来充分使用计算集群资源,实施多用户、多任务场景的调度策略,如另一种资源协调者(yet another resource negotiator,yarn)调度系统。
[0183]
分布式存储系统:指由分布式软件和标准服务器构成的存储系统,包括分布式文件系统和分布式内存系统,分布式文件系统和分布式内存系统都是基于计算集群来部署,其差异在于,分布式文件系统是利用磁盘,分布式内存系统是利用内存。在计算任务的执行过程中,数据落盘存储时,通常存储在分布式文件系统中,如hadoop分布式文件系统(hadoop distributed file system,hdfs);提供实时的上线服务时,由于数据量大,也会存储在分布式内存系统中,如featurekv分布式内存系统。即,分布式文件系统通常供离线分析使用,如存储随时随刻都会产生的设备日志或应用日志等;分布式内存系统通常供线上服务使用,如存储用于执行预测计算任务的用户特征。
[0184]
线上服务:通过网络提供的模型推理或计算的服务,往往涉及到机器学习模型的加载、特征的读取等。例如,线上服务可以是智能内容推荐服务。
[0185]
此外,对上表中涉及到的多个环境分别进行说明。
[0186]
离线环境:基于已产生的历史数据进行计算(样本统计转换、特征统计转换、模型训练、离线预测等),以批量方式完成数据处理,数据处理的实时性较差,无法做到数据和模型的即时更新。
[0187]
近线环境:基于实时产生的数据进行计算(实时特征计算、实时模型训练等),以流式方式完成数据处理,以分钟级甚至秒级的延时来处理数据,即不保证提供实时的服务。
[0188]
在线环境:响应于用户发出的预测请求,进行模型的在线预测,通常要求在毫秒级完成计算,保证提供实时的线上服务。
[0189]
在机器学习模型的处理过程中,通常会将离线环境中的数据推向近线环境,将离线环境中的数据推向在线环境,将近线环境中的数据推向在线环境,最终发挥效果一般在在线环境。为了避免因各个环节相互影响所导致的数据安全问题,这里对各个模块按照离线环境、近线环境、在线环境进行切分。切分的角度包括两个方面,一个是存储介质,另一个是计算资源。
[0190]
对于存储介质,本技术实施例提供了如图4所示的存储介质隔离策略的示意图,在图4中,每个计算环境对应单独的存储空间,通过控制存储空间的数据访问权限,从系统上保证不会出现跨环境使用数据的情况,例如,设置离线数据仓库和离线分布式文件系统的数据访问权限,仅被离线环境中的电子设备持有。不同计算环境之间进行数据转移时,需要经过自动化的发布系统审核、授权之后,才能够成功进行数据转移。
[0191]
其中,发布系统是对不同计算环境下的数据复用(数据转移)时,引入的一种审核、转移的机制,防止在不同计算环境进行数据转移时,因人工操作导致的数据错误。在发布系统中,可以通过设定转移方向来进行审核。本技术实施例提供了如图5所示的数据转移的示意图,图5中,发布系统可仅对





示出的转移方向对应的数据转移操作进行授权,对于其他转移方向对应的数据转移操作则不进行授权。当然,这并不构成对本技术实施例的限定,对于不同的机器学习系统来说,可根据其数据使用的方式及环境,来具体确定设定转移方向。
[0192]
再者,还可根据不同计算环境的安全性要求来确定审核机制,例如对于将离线环境中的数据转移到近线环境的数据转移操作,相对而言较为频繁,影响程度较小,在发布系统中可以不限制允许进行数据转移的时间区间,并且可以设定由协作开发者进行人工审核;对于将离线环境中的数据转移到在线环境的数据转移操作、或者将近线环境中的数据转移到在线环境的数据转移操作,由于影响程度较大,在发布系统中,可以限制允许进行数据转移的时间区间是线上服务的非核心工作时间区间,此外,还可设定由更多负责人进行人工审核。
[0193]
另外,还可应用备份、审计机制,备份机制是指在数据上线之前,对数据进行备份,以供回滚;审计机制是指对设定数据进行审计,当有问题出现时,用于溯源,便于定位问题的来源是什么操作。在本技术实施例中,可以在发布系统部署备份和审计机制,也可以在各个计算环境部署备份和审计机制。
[0194]
对于计算资源,本技术实施例提供了如图6所示的计算资源隔离策略的示意图,为了防止在调度系统调度任务时,不同计算环境出现竞争,导致某些重要任务不能正常按时完成,可以为不同的计算环境划分不同的计算集群。例如,存在包括10台服务器的spark集群,可以将其中5台服务器划分给离线环境,作为离线-spark集群,用于给离线环境提供计
算资源;将另外5台服务器划分给近线环境,作为近线-spark集群,用于给近线环境提供计算资源,如此,在计算资源的层面实现彼此隔离。
[0195]
通过本技术实施例,将人工约束问题变为了系统约束问题,能够实现以下技术效果:1)减少了机器学习模型处理过程中的风险,规范化了数据使用方式;2)减少了相关人员(如算法工程师)日常无效的工作内容,能够提高其效能,减少人工成本;3)规范化的数据操作方式能够为后续的异常检测等提供统一的输入,方便其他应用的展开。
[0196]
下面继续说明本技术实施例提供的电子设备800中的软件模块的示例性结构,在一些实施例中,如图2所示,当电子设备800为子计算系统中的电子设备时,子计算模块8431,用于:根据所存储的数据,执行对应的处理阶段中的计算任务;其中,多个子计算系统彼此隔离,且对应机器学习模型的不同处理阶段。当电子设备800为发布系统中的电子设备时,发布模块8432,用于:接收任意两个子计算系统之间的数据转移请求;当检测到数据转移请求满足跨系统数据转移的安全性条件时,授权执行与数据转移请求对应的数据转移操作。
[0197]
在一些实施例中,多个子计算系统,用于通过以下至少之一实现彼此隔离:使用不同的计算资源执行各自的计算任务;使用不同的存储资源存储执行计算任务所需要使用的数据、以及计算任务的结果。
[0198]
在一些实施例中,多个子计算系统包括离线计算系统、近线计算系统以及在线计算系统。当电子设备800为离线计算系统中的电子设备时,子计算模块8431可更新为离线计算模块,离线计算模块还用于:根据所存储的历史数据,执行机器学习模型的离线训练计算任务;其中,离线训练计算任务包括:基于历史数据的特征统计转换、基于特征统计转换得到的历史特征从历史数据中抽取历史样本、基于历史样本训练机器学习模型。
[0199]
在一些实施例中,当电子设备800为近线计算系统中的电子设备时,子计算模块8431可更新为近线计算模块,近线计算模块还用于:根据实时数据执行近线训练计算任务;其中,近线训练计算任务包括:基于实时数据的特征统计转换、基于特征统计转换得到的实时特征从实时数据中抽取实时样本、基于实时样本训练机器学习模型。
[0200]
在一些实施例中,当电子设备800为在线计算系统中的电子设备时,子计算模块8431可更新为在线计算模块,在线计算模块还用于:响应于实时的预测请求,执行机器学习模型的在线预测计算任务,基于得到的预测结果响应预测请求。
[0201]
在一些实施例中,近线计算模块还用于:通过被发布系统授权的第一数据转移操作,从离线计算系统获取第一数据,并结合第一数据以及实时数据执行近线训练计算任务;其中,第一数据包括以下至少之一:在离线训练计算任务中计算得到的机器学习模型的历史参数,在离线训练计算任务中计算得到的历史特征。
[0202]
在一些实施例中,近线计算模块还用于:将历史特征作为实时特征,并根据实时特征从实时数据中抽取实时样本;基于实时样本,对部署历史参数的机器学习模型进行训练。
[0203]
在一些实施例中,在线计算模块还用于:通过被发布系统授权的第二数据转移操作,从近线计算系统获取第二数据,并结合第二数据和所存储的待测数据执行在线预测计算任务;其中,第二数据包括以下至少之一:在近线训练计算任务中计算得到的机器学习模型的实时参数,在近线训练计算任务中计算得到的实时特征。
[0204]
在一些实施例中,在线计算模块还用于:根据实时特征,从待测数据中抽取待测样
本;通过部署实时参数的机器学习模型,对待测样本进行预测处理,得到预测结果。
[0205]
在一些实施例中,近线计算模块还用于:结合第二数据和所存储的待测数据,执行近线预测计算任务,得到预测结果;其中,第二数据包括以下至少之一:在近线训练计算任务中计算得到的机器学习模型的实时参数,在近线训练计算任务中计算得到的实时特征;在线计算模块还用于:响应于实时的预测请求,通过被发布系统授权的第三数据转移操作,从近线计算系统获取预测结果,以响应预测请求。
[0206]
在一些实施例中,离线计算模块还用于:结合第一数据和所存储的待测数据,执行离线预测计算任务,得到预测结果;其中,第一数据包括以下至少之一:在离线训练计算任务中计算得到的机器学习模型的历史参数,在离线训练计算任务中计算得到的历史特征;在线计算模块还用于:响应于实时的预测请求,通过被发布系统授权的第四数据转移操作,从离线计算系统获取预测结果,以响应预测请求。
[0207]
在一些实施例中,发布模块8432,还用于:当数据转移请求对应的待转移数据的类型符合允许转移的类型时,确定数据转移请求满足安全性条件;其中,允许转移的类型包括计算任务的结果。
[0208]
在一些实施例中,发布模块8432,还用于:当数据转移请求的数据转移时间符合允许进行数据转移的时间区间时,确定数据转移请求满足安全性条件。
[0209]
在一些实施例中,发布模块8432,还用于:当数据转移请求的数据转移方向符合设定转移方向时,确定数据转移请求满足安全性条件。
[0210]
在一些实施例中,子计算模块8431,还用于:对所存储的原始数据进行备份处理,得到备份数据,以当原始数据出现错误时,根据备份数据进行恢复。
[0211]
在一些实施例中,子计算模块8431,还用于:对所存储的数据中的设定数据进行审计处理,得到包括对设定数据执行的数据访问操作的审计日志,以当设定数据出现错误时,根据审计日志定位引起错误的数据访问操作。
[0212]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的机器学习方法。
[0213]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的方法,例如,如图3a、图3b、图3c或图3d示出的机器学习方法。值得说明的是,计算机包括终端设备和服务器在内的各种计算设备。
[0214]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0215]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0216]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在
保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0217]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0218]
综上所述,通过本技术实施例能够实现以下技术效果:
[0219]
1)通过彼此隔离的子计算系统,有效地保证不同处理阶段的计算任务互不影响;同时,通过发布系统决定是否授权执行数据转移操作,能够减少机器学习模型处理过程中的风险,加强数据安全性。其中,可以通过计算资源隔离和存储资源隔离中的至少一种方式,来实现彼此隔离,提升了灵活性。
[0220]
2)发布系统可以通过允许转移的类型、允许进行数据转移的时间区间以及设定转移方向中的至少一种,来对数据转移请求进行审核,提升数据转移的灵活性和安全性,减少数据转移过程中的风险。
[0221]
3)在机器学习模型的处理过程中,可以利用离线训练-近线训练-在线预测、离线训练-近线预测、离线训练-离线预测等模式,提升了处理的灵活性,可根据实际应用场景进行选用。
[0222]
4)基于备份的机制,在数据出现错误时可以快速回滚,尽量减少损失;基于审计的机制,在数据出现错误时可以快速溯源,便于相关人员尽快进行修复。
[0223]
以上,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献

  • 日榜
  • 周榜
  • 月榜