发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种深度学习多模型统一部署方案,其目的在于实现:模型与特定应用的解耦,模型更新后快速部署;模型部署不影响设备原有功能,模型预测结果无差别管理;设备边缘智能要求资源的高效率使用,模型元文件避免重复下载与加载,避免同一指标重复预测。
为实现上述目的,按照本发明的一个方面,提供了一种深度学习多模型统一部署方法,包括:
根据用户在网管上的设置生成预测描述文件;
下载预测描述文件和对应的模型元文件到智能计算单盘;
根据所述预测描述文件和对应的模型元文件,在所述智能计算单盘上在预设时间完成对应的用户预测和上报。
本发明的一个实施例中,所述根据用户在网管上的设置生成预测描述文件,具体为:
网管上模型仓库展示给用户后,用户输入具体的参数,生成模型描述的实例即预测描述文件,预测描述belong字段是用户输入后的具体线路号或者单盘槽位,并设置预测开始时间和预测间隔字段,同一个模型描述填入不同的belong和时间就是不同的实例化;当模型描述的输入是其他模型的输出,则还需完成被依赖模型的设置与实例化。
本发明的一个实施例中,所述模型元文件由深度学习模型在远程服务器使用历史样本数据训练得到,深度学习模型包括张量计算连接的计算图和待训练参数,使用这些神经网络计算单元按层次连接成模型的张量计算图,每个计算单元内部的待训练参数是随机的,历史样本数据输入到计算图,经过收敛训练得到模型所有计算单元参数即模型的参数,模型元文件是由计算图和参数组成。
本发明的一个实施例中,所述下载模型元文件具体为:
S201、网管通过网管-业务盘通信通道告知边缘智能计算单盘上的模型部署平台将要下载的模型元文件名称;
S202、提取S201消息中模型元文件输出标签和md5,并检索本地模型元文件存储,如果存在元文件输出标签但是md5不同,表示该模型准备更新;如果不存在元文件输出标签表示模型不存在;
S203、对于本地不存在或者需要更新模型元文件,向网管返回需要下载模型元文件,否则返回不需要下载文件;
S204、如果S203返回需要下载元文件,开始文件传输;
S205、智能计算单盘存储元文件或者更新已存在模型到永久存储介质,并返回文件存储或者更新结果。
本发明的一个实施例中,所述下载预测描述文件具体为:
S301、网管通过文件下载通道向边缘智能计算单盘下载预测描述文件;
S302、模型部署平台缓存预测描述文件;
S303、根据预测描述文件命名的MD5校验下载结果,并返回结果;
S304、使用缓存的预测描述文件的模型输出标签检索本地存储的预测描述文件,然后对使用相同模型的预测描述文件比较具体的belong和predict_interval参数,得到当前预测描述是否已存在;
S305、如果预测描述不存在,则将缓存的预测描述存入本地预测描述永久存储介质。
本发明的一个实施例中,在下载预测描述文件和对应的模型元文件到智能计算单盘之后,还包括将模型元文件与预测描述文件加载到内存:将模型元文件和预测描述文件更新到模型计算图链表和预测描述链表,这两个链表启动初始化为两个空链表,然后遍历本地存储的模型元文件和预测描述文件,根据用户设置的预测描述,多次循环执行更新流程完成多个模型元文件和预测描述文件加载到内存,形成两个互相引用的初始链表;每个链表节点引用一个模型计算图,一个模型计算图可被多个用户预测引用。
本发明的一个实施例中,将模型元文件与预测描述文件加载到内存,具体包括:
S401、为预测描述分配内存数据结构,内存数据结构包括:描述文件的XML树——对应XML格式的预测描述文件、该描述文件使用的模型元文件输出标签、引用的模型计算图数据结构指针;
S402、通过模型输出标签检索计算图链表,如果该模型已经加载,则不再重复加载;
S403、如果模型元文件没有加载,则加载到内存,对于TensorFlow Lite格式模型加载到内存后返回一个interpreter的C++类实例,该类实例保存了模型的计算图,用计算图数据结构表示一个计算图示例,该数据结构包括:interpreter类指针、模型元文件名、引用该计算图的预测描述链表,新加载的计算图数据结构加入到全局计算图链表末尾;
S404、预测描述数据结构引用新加载的计算图数据结构或者已存在的计算图数据结构指针,并将预测描述加入到全局预测描述链表末尾;
S405、将预测描述数据结构指针加入到计算图数据结构的引用该计算图的预测描述链表末尾。
本发明的一个实施例中,根据所述预测描述文件和对应的模型元文件,在所述智能计算单盘上在预设时间完成对应的用户预测和上报,包括:
每个用户预测定时执行,开启定时器任务遍历所有用户预测,对于满足执行条件的用户预测向数据采集模块发起数据请求,数据采集模块返回的数据输入到该用户预测引用的计算图,得到的预测结果通知数据缓存模块,数据缓存模块将数据标签和预测结果缓存为字典的一个键值对,或者更新字典已存在的数据标签。
本发明的一个实施例中,数据采集模块向其数据源发起数据采集命令,将采集数据按模型需求顺序组成数据向量,数据向量输入到计算图得到预测结果,预测结果放入数据缓存模块,数据缓存模块以字典键值对的形式缓存预测标签及值;
网管使用网管-设备数据协议通道对数据缓存模块的数据键值对发起查询,结果以告警、性能或状态方式无差别的显示;
数据缓存模块作为数据采集模块的数据源,当有模型输入依赖另一模型的输出时,另一模型的输出在数据缓存模块以键值对存放并被采集;
通过数据缓存模块和数据采集模块实现低级模型的预测输出被高级模型使用,实现低级模型的输出与高级模型输入连接,达到了模型预测结果的共享。
按照本发明的另一方面,还提供了一种深度学习多模型统一部署装置,包括预测描述文件生成模块、文件下载模块以及预测执行模块,其中:
所述预测描述文件生成模块,用于根据用户在网管上的设置生成预测描述文件;
所述文件下载模块,用于下载预测描述文件和对应的模型元文件到智能计算单盘;
所述预测执行模块,用于根据所述预测描述文件和对应的模型元文件,在所述智能计算单盘上在预设时间完成对应的用户预测和上报。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
(1)实现模型与应用的解耦,训练后模型按描述文件模板输出描述,放入模型仓库,进行用户设置就可以完成部署,避免边缘设备软件升级,到达了快速模型部署目的;
(2)克服使用容器等部署前打包方案的缺点,本发明方案在运行时实现模型输入与输出连接,计算图重用,预测结果重用;
(3)模型预测输出标签与设备原有数据标签统一编码,数据上报可重用原有消息通道,网管处理预测结果无变化。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先对本发明中涉及的名词和术语进行解释:
用户预测:用户设置的一条预测业务,比如,用户想预测某个性能指标;
预测描述:具体的用户想对那些单盘或者线路的指标进行预测;
预测描述文件:预测描述用指定格式文件描述的结果,和预测描述的区别,可以这样理解:类似表格和表格文件的区别,有时可以等同,有时不能;
当前预测描述:用户正在设置准备执行的预测的描述,以文件体现;
本地预测描述:磁盘中存储的历史预测描述,以文件存储,运行时加载到内存;
模型:可以理解为深度学习网络算子搭建的一个计算网络;
模型描述:上面计算网络的输入和输出描述;
模型描述模板:用于描述模型输入\输出的模板文件;
模型元文件:使用深度学习框架自定义的一套格式保存模型的计算网络和网络参数的文件;
模型输出标签:模型输出结果对应的标签,比如输出的结果表示某个性能,就是性能的标签;
模型预测:在文中都是修饰词,修饰“运行模型进行预测,输出的结果”;
单盘:设备一块硬件板卡,上面有CPU;
本地:从软件运行交互上来说,软件运行称自己管理的内存、CPU、磁盘等前面加上“本地”修饰,以区别与其交互的其他软件的内存、CPU、磁盘等;
内存:软件运行、临时数据存储所在的存储介质,对应PC的内存;
缓存:一般是申请的一段内存,专门用来存储临时待处理数据的,处理完,这部分内存释放出来;
磁盘:一般存储文件的,相比内存,掉电不丢失,对应PC的硬盘;
为了实现本发明的目的,如图1所示,本发明提供了一种深度学习多模型统一部署方法,包括:
S1、根据用户在网管上的设置生成预测描述文件;
根据用户在网管上的设置生成预测描述文件,具体为:网管上模型仓库展示给用户后,用户输入具体的参数,生成模型描述的实例即预测描述文件,预测描述belong字段是用户输入后的具体线路号或者单盘槽位,并设置预测开始时间和预测间隔字段,同一个模型描述填入不同的belong和时间就是不同的实例化;当模型描述的输入是其他模型的输出,则还需完成被依赖模型的设置与实例化。
S2、下载预测描述文件和对应的模型元文件到智能计算单盘;
所述模型元文件由深度学习模型在远程服务器使用历史样本数据训练得到,深度学习模型包括张量计算连接的计算图和待训练参数,使用这些神经网络计算单元按层次连接成模型的张量计算图,每个计算单元内部的待训练参数是随机的,历史样本数据输入到计算图,经过收敛训练得到模型所有计算单元参数,即模型的参数,模型元文件是由计算图和参数组成;
在下载预测描述文件和对应的模型元文件到智能计算单盘之后,还包括将模型元文件与预测描述文件加载到内存:将模型元文件和预测描述文件更新到模型计算图链表和预测描述链表,这两个链表启动初始化为两个空链表,然后遍历本地存储的模型元文件和预测描述文件,根据用户设置的预测描述,多次循环执行更新流程完成多个模型元文件和预测描述文件加载到内存,形成两个互相引用的初始链表;每个链表节点引用一个模型计算图,一个模型计算图可被多个用户预测引用。
S3、根据所述预测描述文件和对应的模型元文件,在所述智能计算单盘上在预设时间完成对应的用户预测和上报。
在所述智能计算单盘上在预设时间完成对应的用户预测和上报,包括:每个用户预测定时执行,开启定时器任务遍历所有用户预测,对于满足执行条件的用户预测向数据采集模块发起数据请求,数据采集模块返回的数据输入到该用户预测引用的计算图,得到的预测结果通知数据缓存模块,数据缓存模块将数据标签和预测结果缓存为字典的一个键值对,或者更新字典已存在的数据标签。
如图2所示为本发明实施例中深度学习多模型统一部署方案的原理示意图,设备在网管的管理下工作,设备数据通过设备-网管的网络协议通道上传显示;远程模型仓库存放训练后的模型元文件及其模型描述模板,由网管管理;用户设置是网管的一个界面程序,用户在此设置预测描述。实际情况中,网管对设备边缘智能计算单盘和业务不一定是直接管理,也可能通过主控盘管理,不影响方案的实施。边缘智能计算单盘采集业务盘的告警、性能、状态等指标数据,加载模型实现指标预测,边缘智能计算单盘占用一个业务槽位,预测结果无差别上报,即预测指标和业务盘告警、性能等数据统一编码。
边缘智能计算单盘实现模型统一部署平台,平台内部包括本地模型元文件存储、本地预测描述存储、数据采集、数据缓存、多个模型加载到内存后组成的计算图链表、多个预测描述加载到内存后组成的用户预测链表、预测执行定时器。
一种实施方式是在原有设备上占用一个业务槽位,增加一块算力足够的边缘智能计算单盘。该单盘使用设备原有业务盘数据采集通道,使用原有业务盘与网管的数据通信协议实现预测结果上报。在该单盘上实现统一模型部署平台。其他实施方式中也可在已有业务盘或者主控盘上实现该平台,与此无本质区别,不另做说明。
为完成深度学习模型的统一部署与预测结果上报,统一模型部署平台各模块与网管设备数据显示、模型仓库、用户设置按以下步骤实现:
步骤一:发布模型元文件与模型描述文件
深度学习模型在远程服务器使用历史样本数据训练之后得到模型元文件,同时模型开发者使用图4描述模板声明模型。图3是电信设备管理的层次结构图,用户一般针对设备内部数据进行预测,若要实现多设备数据预测,需对数据采集模块进行适当改造,其数据源来自多个设备。根据层次结构特点定义XML格式模型描述模板,如图4所示。模型发布到模型仓库时模型元文件和描述文件一起成对发布。针对嵌入式设备,使用广泛的模型元文件是TensorFlow Lite格式。
深度学习模型包括张量计算连接的计算图和待训练参数,常用的张量计算单元有全连接、卷积、LSTM(Long Short-Term Memory,长短时间记忆)、Reshape等,开发者首先使用这些神经网络计算单元按层次连接成模型的张量计算图。每个计算单元内部的待训练参数是随机的,历史样本数据输入到计算图,经过收敛训练得到模型所有计算单元参数,即模型的参数。
模型元文件是由计算图和参数组成。模型元文件的保存现在有多种方案,也可计算图和参数分别保存,更多的为简化操作将计算图与参数合并为一个文件保存,例如TensorFlow Lite。后面为了描述方便,计算图指模型文件加载到内存后的结构,是模型参数已填入的计算图。
TensorFlow根据嵌入式设备特点开发了TensorFlow Lite方案用于模型部署,该方案在硬件资源有限的嵌入式和边缘设备上应用广泛,以其作为实施方案的模型文件格式。
模型部署是将已填入参数的计算图加载到内存,将预测样本输入计算图,输出预测结果。模型设计者在设计模型后使用图4模型描述模板描述模型,并以模型输出标签编码加.xml后缀命名文件;模型在服务器上使用历史样本数据训练后,转换为TensorFlow Lite格式文件,并以模型输出标签编码和文件MD5值为文件命名,以.lite作为文件后缀。例如,模型输出为一个向量,向量每个元素数据标签为“0xc1 0xc2 0xd1”,这些数据标签是和业务盘原始数据——告警、性能、状态统一编码的,则模型描述文件命名为c1_c2_d1.xml;训练后生成的Tensorflow lite格式元文件md5为“a6c6ac1763f1493fbc8a89045c1a3a1a”,则元文件命名为c1_c2_d1_a6c6ac1763f1493fbc8a89045c1a3a1a.lite,如此命名可通过元文件名称区分是相同模型结构不同的训练结果,还是不同的模型。
模型训练后的模型元文件和模型描述文件一起发布,即模型仓库里模型和描述文件总是成对出现。
步骤二:用户预测设置
网管上模型仓库展示给用户后,用户输入具体的参数,生成模型描述的实例即预测描述。两个描述的区别是:模型描述的belong字段用来提示用户输入具体的线路、单盘类型,预测描述belong字段是用户输入后的具体线路号或者单盘槽位,并设置predict_start(预测开始时间)和predict_interval(预测间隔字段)。同一个模型描述填入不同的belong和时间就是不同的实例化。
模型描述的输入如果是其他模型的输出,表示该模型依赖其他模型。还需用户设置完成被依赖模型的实例化。通过相同模型描述的不同设置生成多个预测描述,在这里对有模型依赖的用户预测分解生成多个用户预测。
网管提供用户进行预测设置界面和功能。实现流程如图6所示,具体描述为:
S101、网管检查模型仓库中的模型元文件与模型描述文件,生成当前所有可用模型输出标签列表,即模型仓库中模型列表。
S102、用户在设置界面选择标签。
S103、网管根据标签定位到模型描述文件。
S104、分析模型描述文件的输入与输出,生成模型依赖的输入和输出视图,并显示视图,标注需要用户输入的参数。模型依赖是通过输入标签判断得到。具体的一种实施方式是:模型输出的标签编码和业务盘原始数据编码定义不同的范围,用于区分数据源。定义业务盘原始数据告警编码范围为0xA0-0XAF、性能编码为0XB0-0XBF;模型预测结果告警编码范围0XC0-0XCF,性能编码为0XD0-0XDF,这里以一个字节表示,实际中可以定义任意长字节数组表示,模型描述文件的flag字段就是这些数据编码,通过其编码所在的范围即可判断某个模型的输入是否依赖其他模型。
S105、用户根据提示输入参数。一个示例视图如图7所示,用户选择的是模型2的标签,根据其描述文件分析其输入依赖模型1的输出和一个属于ODU线路号的某些数据(由模型描述belong字段得到)。再分析模型1描述文件,其输入依赖OCH类线路的输入(由模型描述belong字段得到)。用户根据“?”提示输入模型1要应用的具体单盘槽位及线路号,自动生成输出指标所属的单盘槽位及线路号,然后作为模型2的输入;输入模型2的ODU类线路所在的单盘槽位及线路号,最后自动生成模型2输出指标所属的单盘槽位及线路号,或者该指标所属单盘槽位。以图3网络层次为例,单盘1槽位为0x01,业务线路1和业务线路2在单盘1内的唯一标识分别为0x01和0x02,按图7标注的输入表示对单盘1的业务线路1的数据标签使用模型1预测,预测结果属于单盘1的业务线路1,预测结果和单盘1的业务线路2的数据联合输入到模型2,模型2输出结果属于单盘1的业务线路2。
提示用户输入模型2的预测起始时间predict_start和预测间隔predict_interval。在系统时钟秒数ticks满足(ticks-predict_start)%predict_interval==0开始执行预测,例如,predict_start=3600,predict_interval=3600*24表示在每天的凌晨1点执行预测;predict_start=10,predict_interval=30表示每半分钟执行一次,在半分钟的第10秒执行,即在每分钟的第10秒和40秒执行。
模型1的predict_interval等于模型2,由于模型2要使用模型1的结果,所以模型1适当的提前运行,比如设置为模型2的predict_start-1,这样模型1的预测结果会提前送入数据缓存模块,数据采集模块在模型2预测之前可以采集到数据。
S106、根据用户输入的参数和模型描述模板生成如图5所示的预测描述文件,预测描述文件以模型输出标签和文件MD5命名,后缀为.xml。针对图7所示视图,分别生成一个模型1和一个模型2的如图5所示为模板的预测描述文件。
步骤三:模型元文件和预测描述文件下载
在检查边缘智能计算单盘本地文件存储不存在上面相同的预测描述文件和模型元文件后,通过网管与单盘的下载通道将其下载到边缘智能计算单盘,并保存文件到磁盘(掉电文件不丢失的存储介质,对应PC上硬盘,嵌入式设备一般是Norfllash、NandFlash)。当某个高级模型依赖一个低级模型,根据步骤二会生成多个预测描述。如果检查到高级模型的预测描述不存在,低级模型的预测描述已存在,低级模型的预测描述不再重复下载,部署平台重用已存在的低级用户预测,避免中间结果的重复预测。
根据用户业务设置下载模型元文件交互时序如图8所示。具体描述为:
S201、网管通过网管-业务盘通信通道告知边缘智能计算单盘上的模型部署平台将要下载的模型元文件名称;由于模型元文件以模型输出标签和MD5联合命名,所以通过名称告知就可知道本地是否已存在或者需要更新。
S202、提取S201消息中模型元文件输出标签和md5,并检索本地模型元文件存储。如果存在元文件输出标签但是md5不同,表示该模型准备更新;如果不存在元文件输出标签表示模型不存在。
S203、对于本地不存在或者需要更新模型元文件,向网管返回需要下载模型元文件,否则返回不需要下载文件。
S204、如果S203返回需要下载元文件,开始文件传输。
S205、智能计算单盘存储模型元文件或者更新已存在模型元文件到永久存储介质,并返回模型元文件存储或者更新结果。
一般情况下模型元文件远比预测描述文件大,上述交互流程避免了相同的模型元文件重复下载。
下面是预测描述文件下载交互流程,如图9所示。具体描述为:
S301、网管通过文件下载通道向边缘智能计算单盘下载预测描述文件。
S302、模型部署平台缓存预测描述文件。
S303、根据预测描述文件命名的MD5校验下载结果,并返回结果。
S304、使用缓存的预测描述文件的模型输出标签检索本地存储的预测描述文件,然后对使用相同模型的预测描述文件比较具体的belong和predict_interval参数,得到当前预测描述是否已存在。
S305、如果预测描述不存在,则将缓存的预测描述存入本地预测描述永久存储介质。
步骤四:预测描述与模型元文件加载到内存
将S205和S305下载的模型元文件和预测描述文件更新到模型计算图链表和预测描述链表,这两个链表启动初始化为两个空链表,然后遍历本地存储的模型元文件和预测描述文件。更新和建立的区别是:更新输入的模型元文件和预测描述文件是通过S205和S305下载的;建立输入的是本地模型元文件存储和预测描述文件存储。更新和建立都是对输入的预测描述文件执行如图10所示流程,根据用户设置的预测描述,多次循环执行更新流程完成多个模型元文件和预测描述加载到内存,形成两个互相引用的初始链表。每个链表节点引用一个模型计算图,一个模型计算图可被多个用户预测引用,计算图的重复引用避免了模型重复加载。
按如图10操作流程实现一次用户预测加载,具体描述为:
S401、为预测描述分配内存数据结构,内存数据结构包括:描述文件的XML树——对应XML格式的预测描述文件、该描述文件使用的模型元文件输出标签、引用的模型计算图数据结构指针。
S402、通过模型输出标签检索计算图链表,如果该模型已经加载,则不再重复加载。
S403、如果模型元文件没有加载,则加载到内存,对于TensorFlow Lite格式模型加载到内存后返回一个interpreter的C++类实例,该类实例保存了模型的计算图,用计算图数据结构表示一个计算图示例,该数据结构包括:interpreter类指针、模型元文件名、引用该计算图的预测描述链表。新加载的计算图数据结构加入到全局计算图链表末尾。
S404、预测描述数据结构引用新加载的计算图数据结构或者已存在的计算图数据结构指针,并将预测描述加入到全局预测描述链表末尾。
图2中有两个链表:计算图链表;预测描述链表,即由计算图1-N组成的链表和预测描述1-M组成的链表。加上“全局”修饰表示这是加载到内存的所有的计算图和预测描述形成的链表。
S405、将预测描述数据结构指针加入到计算图数据结构的引用该计算图的预测描述链表末尾。
步骤六:用户预测执行
预测执行定时器遍历每个用户预测,对于到达执行时间的用户预测向数据采集模块发起数据数据采集需求。使用该用户预测的链表节点所引用的模型计算图执行用户预测,得到用户预测数据结果。
数据采集模块向其数据源发起数据采集命令,将采集数据按模型需求顺序组成数据向量。数据向量输入到计算图得到预测结果。预测结果放入数据缓存模块,数据缓存模块以字典键值对的形式缓存预测标签及值。网管使用网管-设备数据协议通道可对数据缓存模块的数据键值对发起查询,结果以告警、性能、状态等方式无差别的显示。数据缓存模块可作为数据采集模块的数据源,当有模型输入依赖另一模型的输出时,另一模型的输出在数据缓存模块以键值对存放并被采集。通过数据缓存模块和数据采集模块实现低级模型的预测输出可以被高级模型使用,即实现了低级模型的输出与高级模型输入连接,达到了模型预测结果的共享。
根据步骤二的设置,每个用户预测都会定时执行,开启定时器任务遍历所有用户预测,对于满足执行条件的用户预测向数据采集模块发起数据请求。数据采集模块返回的数据输入到该用户预测引用的模型计算图,得到的预测结果通知数据缓存模块。数据缓存模块将数据标签和预测结果缓存为字典的一个键值对,或者更新字典已存在的数据标签;
步骤五:实现数据采集
数据采集模块的数据源是其他业务盘和本发明模块的数据缓存模块。业务盘和数据缓存模块的数据保存在一个类似字典的数据结构里,数据标签作为字典键值。用户预测向数据采集模块按描述输入所有数据需求标签。仍然如同S104一样,模型输出的标签编码和业务盘原始数据编码定义不同的范围,用于区分不同数据源。下面以S104的编码范围示例说明。
以图3为例说明对数据采集模块的数据标签输入,假如需要采集单盘1线路1告警1和性能1,单盘1的槽位为0X1、线路1在单盘1内唯一编号为0X01、告警1编号为0XAA、性能1编码为0XCC,其中单盘槽位和线路编号是由用户在网管设置界面输入,告警1和性能1的编码由模型描述文件标识,所有这些信息存储在预测描述文件中,向数据采集模块输入的数据需求标签为0x0101AA、0x0101CC。通过数据需求标签最低位所在的范围可判断告警1属于原始单盘数据;性能1属于其他模型预测结果输出,数据来源于统一模型部署平台的数据缓存模块。数据采集模块对0x01槽位单盘通过网络协议发起对线路01告警0xAA的数据查询,从统一模型部署平台的数据缓存模块的数据字典直接取性能1的数据,最后组合这两个数据为向量返回。
步骤六:用户预测结果上报
数据缓存模块实现和其他业务盘相同的数据上报协议,响应网管对数据结果查询。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。