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

在线推理服务系统、提供在线推理服务的方法及装置

文献发布时间:2023-06-19 09:40:06


在线推理服务系统、提供在线推理服务的方法及装置

技术领域

本公开涉及模型管理及应用领域,尤其涉及在线推理服务系统、提供在线推理服务的方法及装置。

背景技术

为提高对训练得到的机器学习模型或深度学习模型等推理模型的管理效率,开发者通常会将推理模型托管在公有云平台中或开源模型仓库中。

然而在相关技术中,无论是共有云平台还是开源模型仓库,通常仅提供对推理模型的上传、存储、分发和下载等简单管理功能。当开发者需要使用推理模型提供在线推理服务,即服务化推理模型时,往往需要自行选择模型框架并通过相关逻辑生成对应于推理模型的在线推理服务,导致开发效率较低。

发明内容

本公开提供了在线推理服务系统、提供在线推理服务的方法及装置,以至少解决相关技术中的技术问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提出一种在线推理服务系统,包括:

模型管理平台,用于获取并保存目标模型的目标模型文件和目标模型信息,所述目标模型文件包括训练所述目标模型得到的模型数据,所述目标模型信息包括对应于所述目标模型的模型相关信息;

在线推理引擎,用于确定匹配于所述目标模型的目标推理框架,并根据从所述模型管理平台获取的所述目标模型文件和目标模型信息配置所述目标推理框架,以用于提供在线推理服务。

可选的,所述目标模型信息包括模型基础信息和模型结构信息,所述模型管理平台还用于:

在获取所述目标模型文件时,关联获取所述模型基础信息;

在获取到所述目标模型文件后,解析所述目标模型文件以提取所述模型结构信息。

可选的,所述模型基础信息包括下述至少之一:

所述目标模型的模型类别、模型标签、变更时间、模型配置参数、存储状态、模型训练任务、所述目标模型文件的文件格式;

所述模型结构信息包括:所述目标模型的张量信息。

可选的,所述模型管理平台还用于:

在管理有对应于所述目标模型的基础模型的情况下,将所述目标模型的版本号和所述基础模型的版本号关联保存,其中,所述目标模型被基于所述基础模型训练得到。

可选的,所述模型管理平台包括仓库集群,所述模型管理平台还用于:

将所述目标模型文件和目标模型信息关联保存在构成所述仓库集群的多个分布式仓库中。

可选的,所述模型管理平台还包括:

集群管理组件,用于在接收到针对所述仓库集群保存的任一模型的模型获取请求后,将所述模型获取请求下发至所述任一模型的模型文件所在的分布式仓库,并将该分布式仓库返回的所述模型文件提供至所述模型获取请求的发起方。

可选的,所述模型管理平台还用于:

在获取所述目标模型文件和目标模型信息后,通过P2P工具或消息队列向所述在线推理引擎推送所述目标模型文件和目标模型信息。

可选的,所述模型管理平台通过预设的超文本传输协议HTTP接口连接至所述在线推理引擎,所述模型管理平台还用于:

在接收到所述在线推理引擎通过所述HTTP接口发送的模型获取请求后,将所述模型获取请求指定的目标模型文件和目标模型信息通过所述HTTP接口提供至所述在线推理引擎。

可选的,所述在线推理引擎还用于:

确定所述目标模型所采用的学习框架的目标框架类型;

确定所述在线推理引擎中包含的备选推理框架的备选框架类型;

在任一备选理框架的备选框架类型与所述目标框架类型相同的情况下,将所述任一备选理框架确定为所述目标推理框架。

可选的,所述在线推理引擎还用于:

在接收到在线推理请求的情况下,检查用于响应所述在线推理请求的服务推理框架中是否已部署在线推理模型;

在所述服务推理框架中未部署在线推理模型的情况下,根据所述在线推理请求确定相应的服务模型,并从所述模型管理平台获取所述服务模型的模型文件和模型信息;

根据所述服务模型的模型文件和模型信息配置所述服务推理框架,并使用配置后的所述模型推理框架提供所述在线推理请求指定的在线推理服务。

可选的,所述模型管理平台为其管理的任一在线推理模型分配唯一的版本号,所述在线推理引擎还用于:

在所述服务推理框架中已部署在线推理模型的情况下,若所述服务模型的版本号与已部署的所述在线推理模型的版本号不相同,则使用所述服务模型的模型文件和模型信息更新所述已部署的在线推理模型。

可选的,所述模型管理平台通过下述至少之一的方式接收所述目标模型文件:

可视化页面、模型工具、软件开发工具包SDK。

根据本公开实施例的第二方面,提出一种提供在线推理服务的方法,包括:

从用于获取并保存在线推理模型的模型文件和模型信息的模型管理平台获取目标模型对应的目标模型文件和目标模型信息,所述目标模型文件包括训练所述目标模型得到的模型数据,所述目标模型信息包括对应于所述目标模型的模型相关信息;

确定匹配于所述目标模型的目标推理框架;

根据所述目标模型文件和目标模型信息配置所述目标推理框架,并利用配置后的所述目标推理框架提供在线推理服务。

可选的,从模型管理平台中获取目标模型对应的目标模型文件和目标模型信息,包括:

接收模型管理平台在保存目标模型对应的目标模型文件和目标模型信息后推送的所述目标模型文件和目标模型信息;或者,

在满足预设的框架更新条件的情况下,通过模型管理平台提供的第一HTTP接口向所述模型管理平台发送模型获取请求,并接收所述模型管理平台通过所述第一HTTP接口返回的目标模型的目标模型文件和目标模型信息。

可选的,所述模型管理平台为其管理的任一在线推理模型分配唯一的版本号,所述方法还包括:

在接收到在线推理请求的情况下,检查用于响应所述在线推理请求的所述目标推理框架中是否已部署在线推理模型;

若所述目标推理框架中未部署在线推理模型,或者所述目标推理框架中已部署的线推理模型的版本号与所述目标模型的版本号不相同,则判定满足预设的框架更新条件。

可选的,所述接收到在线推理请求,包括:

通过预设的远程过程调用RPC接口或第二HTTP接口接收到在线推理请求。

可选的,还包括:

接收对应于所述在线推理请求的二进制比特流格式的推理请求数据;或者,

将接收到的非二进制比特流格式的推理请求数据转换为二级制比特流格式的数据。

可选的,还包括:

在同时提供多项在线推理服务的情况下,根据所述多项在线推理服务分别对应的在线推理模型的模型特点,动态调整所述多项在线推理服务分别对应的多个服务线程。

可选的,还包括:

在提供所述在线推理服务过程中或提供所述在线推理服务结束后,调用预设的监控组件根据所述在线推理服务相关的运行状态数据监控所述在线推理引擎的运行状态;和/或,

在提供所述在线推理服务过程中或提供所述在线推理服务结束后,调用预设的报表组件根据所述在线推理服务相关的运行状态数据生成相应的服务报表。

可选的,所述目标推理框架包括所述在线推理引擎中下述至少之一的在线推理框架:

Tensorflow推理框架、pytorch推理框架、tensorrt推理框架、xgboost推理框架。

根据本公开实施例的第三方面,提出一种提供在线推理服务的装置,包括:

获取模块,被配置为从用于获取并保存在线推理模型的模型文件和模型信息的模型管理平台获取目标模型对应的目标模型文件和目标模型信息,所述目标模型文件包括训练所述目标模型得到的模型数据,所述目标模型信息包括对应于所述目标模型的模型相关信息;

确定模块,被配置为确定匹配于所述目标模型的目标推理框架;

配置模块,被配置为根据所述目标模型文件和目标模型信息配置所述目标推理框架,并利用配置后的所述目标推理框架提供在线推理服务。

可选的,所述获取模块还被配置为:

接收模型管理平台在保存目标模型对应的目标模型文件和目标模型信息后推送的所述目标模型文件和目标模型信息;或者,

在满足预设的框架更新条件的情况下,通过模型管理平台提供的第一HTTP接口向所述模型管理平台发送模型获取请求,并接收所述模型管理平台通过所述第一HTTP接口返回的目标模型的目标模型文件和目标模型信息。

可选的,所述模型管理平台为其管理的任一在线推理模型分配唯一的版本号,所述装置还包括:

模型检查模块,被配置为在接收到在线推理请求的情况下,检查用于响应所述在线推理请求的所述目标推理框架中是否已部署在线推理模型;

条件判定模块,被配置为若所述目标推理框架中未部署在线推理模型,或者所述目标推理框架中已部署的线推理模型的版本号与所述目标模型的版本号不相同,则判定满足预设的框架更新条件。

可选的,所述模型检查模块还被配置为:

通过预设的远程过程调用RPC接口或第二HTTP接口接收到在线推理请求。

可选的,还包括:

数据接收模块,被配置为接收对应于所述在线推理请求的二进制比特流格式的推理请求数据;或者,

格式转换模块,被配置为将接收到的非二进制比特流格式的推理请求数据转换为二级制比特流格式的数据。

可选的,还包括:

线程调整模块,被配置为在同时提供多项在线推理服务的情况下,根据所述多项在线推理服务分别对应的在线推理模型的模型特点,动态调整所述多项在线推理服务分别对应的多个服务线程。

可选的,还包括:

监控模块,被配置为在提供所述在线推理服务过程中或提供所述在线推理服务结束后,调用预设的监控组件根据所述在线推理服务相关的运行状态数据监控所述在线推理引擎的运行状态;和/或,

报表模块,被配置为在提供所述在线推理服务过程中或提供所述在线推理服务结束后,调用预设的报表组件根据所述在线推理服务相关的运行状态数据生成相应的服务报表。

可选的,所述目标推理框架包括所述在线推理引擎中下述至少之一的在线推理框架:

Tensorflow推理框架、pytorch推理框架、tensorrt推理框架、xgboost推理框架。

根据本公开实施例的第四方面,提出一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现如上述第二方面中任一实施例所述的提供在线推理服务的方法。

根据本公开实施例的第五方面,提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第二方面中任一实施例所述的提供在线推理服务的方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过上述实施例,在线推理引擎能够自动获取模型管理平台中管理的目标模型,并使用目标模型的目标模型文件和目标模型信息配置用于提供在线推理服务的目标推理框架,从而将模型管理平台中所管理的目标模型构建为前向推理服务,用于在实际生产环境中发挥目标模型的生产作用。因为上述构建前向推理服务的过程是自动进行的,而并不需要开发者针对目标模型手动进行适应性处理,从而在用户提交目标模型之后即可自动将目标模型实现为相应的在线推理服务供用户调用,即实现了目标模型的自动服务化,显著提升了在线推理服务的开发效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是一示例性实施例提供的一种机器学习完整过程示意图;

图2是根据本公开的实施例示出的一种在线推理服务系统的原理示意图;

图3是根据本公开的实施例示出的一种在线推理服务系统的结构示意图;

图4是根据本公开的实施例示出的一种提供在线推理服务的方法的流程图;

图5是根据本公开的实施例示出的一种提供在线推理服务的装置的示意框图;

图6是根据本公开的实施例示出的一种电子设备的结构图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在开发者开发推理模型的过程中,往往涉及到模型文件的存储、版本化、获取、复用等问题。以图1所示的机器学习过程为例:一次完整的机器学习过程需要开发者先准备训练样本,然后在对加载的样本数据进行特征提取等预处理后输入待训练模型中进行训练;完成针对某一机器学习模型的训练过程后,将产出相应的模型文件。此时,为充分利用训练所得推理模型,可以对模型文件进行模型服务化处理以将训练好的模型输出构建为为在线推理服务用于生产。对推理模型进行服务化的过程,即为将在线推理模型构建为满足SOA(Service-Oriented Architecture,面向服务的架构)架构的在线推理服务的过程。对推理模型进行服务化得到的在线推理服务能够被其他业务线程或设备所调用,从而充分发挥推理模型在生产过程中的作用。

然而,对于实际效果出色的模型,其训练的过程往往并非一蹴而就,需要经过反复多次的调整、对比、更新、重新训练等中间过程;另外,针对不同的应用场景和不同的现实问题,开发者往往需要训练产出不同类型的推理模型。因此,上述过程通常会产出数量可观的各种模型,这些模型的类型、版本、训练参数等往往并不相同,并会产生大量不同的模型文件。在相关技术中,为提高对训练得到的机器学习模型或深度学习模型等推理模型的管理效率(主要是对模型文件的管理效率),开发者通常会将推理模型托管在公有云平台中或开源模型仓库中,然而无论是共有云平台还是开源模型仓库,通常都仅提供对推理模型的上传、存储、分发和下载等简单管理功能。因此,当开发者需要将推理模型服务化为在线推理模型时,往往需要自行选择模型框架并通过相关逻辑编写代码以生成对应于推理模型的在线推理服务,在线推理服务的开发效率较低。

为此,本公开提出一种在线推理服务系统以及提供在线推理服务的方法及装置,以至少解决相关技术中存在的上述问题,实现对推理模型的自动服务化,提升开发者对于在线推理服务的开发效率。

图2是根据本公开的实施例示出的一种在线推理服务系统的原理示意图。如图2所示,该在线推理服务系统包括模型管理平台201和在线推理引擎202两部分。用户(如模型开发者等)将训练得到的推理模型的对应的模型文件和模型基础信息提交至模型管理平台201,模型管理平台201将模型文件保存在自身对应的文件仓库中,并将模型基础信息和解析模型文件得到的模型结构信息保存在预设的信息数据库中。然后模型管理平台201可以将上述模型文件和模型信息提供至线推理引擎202,线推理引擎202根据模型文件和模型信息配置相应的目标推理框架(首次配置或更新已有配置),并利用配置后的目标推理框架为用户提供相应的在线推理服务。

需要说明的是,本公开所涉及的在线推理系统可以作为独立系统提供相关能力,也可作为一个完整的机器学习平台解决方案中模型管理及模型服务化相关功能的实现子系统,本公开对此并不进行限制。下面结合图3所示的在线推理服务系统的结构示意图,对上述在线推理系统的结构及工作过程进行详细说明。

【系统结构】

对应于图2所示的原理图,在线推理系统主要包括模型管理平台31和在线推理引擎32两部分。模型管理平台31包括Mate信息管理组件311、proxy组件312、信息数据库S0和多个文件仓库构成的仓库集群313。另外,模型管理平台31提供了可视化页面(Web UI)、模型工具(Tool)或SDK等多种用户接口供用户提交模型文件并指定模型基本信息。

其中,Mate信息管理组件311用于在接收到用户提交的关于目标模型的模型文件后对其进行解析,然后将解析得到的张量信息等模型结构信息保存在其连接的信息数据库S0中,该信息数据库S0可以为关系型数据库,如MySQL、MariaDB、Percona Server、Microsoft Access、Microsoft SQL Server、Oracle等,也可以为非关系型数据库,如BigTable、Cassandra、MongoDB、CouchDB等,本公开对此并不进行限制。仓库集群313包含的多个文件仓库S1、S2……Sn可以为分布式文件仓库,如由多个文件仓库共同构成的CephFS集群等多地域多文件共享集群,实际上,文件仓库可以采用上述数据库实现,不再赘述。proxy组件312连接用户接口和仓库集群313,可以将用户提交的模型文件保存在归属于仓库集群313的文件仓库中,也可以响应于用户或在线推理引擎32的模型获取请求从相应的文件仓库中调用模型文件,从而实现对文件仓库中所保存模型文件的直接管理。

用户可以通过上述交互方式实现对推理模型的存储、版本化、调用等管理。模型只简单保存在文件仓库中并无实际意义,因此本系统支持模型传输出库的功能,从而为推理模型的服务化提供支持。具体的,包括三种传输出库的方式:第一种,仓库集群313中的文件仓库可以支持挂载操作,此时模型管理平台31可以允许用户直接在训练环境中挂载对应推理模型的仓库地址(即模型文件的保存地址),以便直接通过该地址调用模型文件进行模型评估或二次训练等。第二种,模型管理平台31可以支持以单次或者周期定时模式向指定网络地址主动推送模型文件,从而便于将用户更新后的新版本推理模型及时推送至在线推理引擎32以更新相应的目标推理框架。当然,若上述指定网络地址不同,相应的推送功能的具体实现方式也可以有所不同,例如,模型管理平台31可以通过bt_queue方式实现模型推送(图中未示出),或者,为满足大规模分发模型文件的需求,也可以通过P2P工具实现模型推送。第三种,模型管理平台31可以将模型文件及模型信息的调用参数预先保存在共享存储空间中,从而用户或在线推理引擎32可以利用上述调用参数通过模型管理平台31提供的HTTP接口实现对模型的调用。可见,模型管理平台31可以通过上述第二种方式主动向在线推理引擎32提供目标模型文件和目标模型信息,或者,在线推理引擎32也可以通过上述第三种方式主动向模型管理平台31请求并获取目标模型文件和目标模型信息。其中,上述目标模型文件可以包括训练目标模型得到的模型数据,目标模型信息可以包括对应于目标模型的模型相关信息。

模型管理平台31在接收到用户提交的推理模型后,可以自动地将推理模型提供至在线推理引擎32以实现在线推理服务。在线推理引擎32可以包括批处理组件322,用于根据模型管理平台31提供的目标模型文件及目标模型信息,结合键值数据库Sk中保存的对应于目标模型的稀疏类key-vale值确定相应的目标推理框架,并根据目标模型文件及目标模型信息配置目标推理框架,配置完成的目标推理框架即可用于提供在线推理服务。在线推理引擎32还可以为用户提供RPC接口或HTTP接口以调用在线推理服务。在线推理引擎32可以包括输入输出组件321,其连接有批处理组件322,输入输出组件321用于接收用户输入的在线推理请求以及相应的请求数据,并将批处理组件322返回的服务结果通过RPC接口或HTTP接口提供给用户。批处理组件322在接收到输入输出组件321提供的在线推理请求以及相应的请求数据后,可以对其进行负载均衡处理并按批次输入推理框架集合325包含的目标推理框架(部署有目标推理模型),后者调用相应的CPU或GPU等实现在线推理服务的底层运算。其中,推理框架集合325中包含的备选推理框架可以有多种,任一种备选推理框架可以有多个,以满足并行在线推理任务的需求。

另外,在线推理引擎32还可以包括用于实现推理引擎运行状态监控的监控组件,如Promethus组件或Grafana组件等;还可以包括用于生成服务报表的报表组件,当然,也可以同时包含上述两种组件,本公开并不对此进行限制。

【系统运行过程】

在训练得到目标模型后,用户可以通过可视化页面、模型工具或SDK等交互方式提交目标模型对应的目标模型文件,相应的,proxy组件312可以根据用户的模型服务部署位置将用户提交的模型文件相应地保存在仓库集群313的文件仓库中,如保存在与用户所部署服务位于同一城市地域范围内的文件仓库中等,以方便用户的快速查找和调用,便于实现高效管理。当然,同一模型文件可以在模型管理平台仓库集群313中仅保存一份,也可以在不同地点分别保存多份,以实现模型备份。其中,目标模型的具体形式可以为传统的机器学习模型,也可以为深度学习模型,当然还可以为其他类型的学习模型,本公开对于模型的具体形式及其所采用的算法并不进行限制。

同时,用户也可以与目标模型文件关联提供目标模型对应的模型基本信息,如目标模型的模型类别、模型标签、变更时间、模型配置参数、存储状态、模型训练任务、所述目标模型文件的文件格式等,当然,还可以包括模型名称、所属人、创建和/或更新时间、来源任务信息、训练框架、推理框架、模型文件的md5值、模型文件的文件保存地址(即仓库地址)、模型描述、模型下载和/或推送历史等,本公开对此并不进行限制。相应的,模型管理平台31可以将目标模型文件和目标模型信息关联保存在构成仓库集群的多个分布式仓库中。

模型管理平台31接收到用户提交的目标模型对应的目标模型文件后,可以为目标模型分配唯一的版本号,以作为管理和使用的辨识依据。另外,在该目标模型被基于基础模型训练得到的情况下,模型管理平台31还可以将目标模型的版本号和该基础模型的版本号关联保存,以便用户查找目标模型与基线模型之间的继承关系,其中,上述基础模型可以为相关技术中的基线模型。进一步的,Mate信息管理组件311可以解析模型文件以获取目标模型的模型结构信息(或称元信息),如目标模型的隐藏层个数、矩阵个数、矩阵维数等张量信息。然后,Mate信息管理组件311可以将上述模型基本信息和模型结构信息保存在预设的信息数据库S0中。当然,为保证保存在信息数据库S0中的目标模型信息和保存在模型管理平台仓库集群313中的目标模型文件之间的对应关系,可以按照版本号等目标模型的唯一标识信息作为索引进行保存。

上述proxy组件312可以在接收到针对仓库集群保存的任一模型的模型获取请求后,将该模型获取请求下发至该任一模型的模型文件所在的分布式仓库,并将该分布式仓库返回的任一模型的模型文件提供至模型获取请求的发起方。模型管理平台31在保存目标模型文件和目标模型信息后,可以通过P2P工具或bt_queue方式,单次或周期性地主动向在线推理引擎32推送目标模型文件和目标模型信息,以便在线推理引擎32能够及时配置或更新目标推理框架。

相应的,在线推理引擎32在接收到模型管理平台31主动发送的目标模型文件和目标模型信息后,可以先确定对应于目标模型的目标推理框架。例如,可以先确定目标模型所采用学习框架的目标框架类型,然后确定在线推理引擎中包含的备选推理框架的备选框架类型(如在线推理引擎325中包含的各个备选推理框架),并在任一备选理框架的备选框架类型与目标框架类型相同的情况下,将该任一备选理框架确定为目标推理框架,如在目标框架类型为Tensorflow框架的情况下,在线推理引擎32可以直接确定在线推理引擎325中的Tensorflow Runtime为目标推理框架。或者,也可以直接根据键值数据库Sk中保存的对应于目标模型的稀疏类key-vale值确定相应的目标推理框架,具体确定过程可以参见相关技术中公开的内容,此处不再赘述。

或者,在接收到在线推理请求的情况下,在线推理引擎32可以根据请求类型确定目标推理框架,然后检查用于响应在线推理请求的目标推理框架中是否已部署在线推理模型;在目标推理框架中未部署在线推理模型的情况下,在线推理引擎32可以向模型管理平台31请求获取目标模型文件和目标模型信息,并根据获取到的目标模型文件和目标模型信息配置目标推理框架;或者,在目标推理框架中已部署在线推理模型的情况下,若目标模型的版本号与已部署的在线推理模型的版本号不相同,在线推理引擎32可以向模型管理平台31请求获取目标模型文件和目标模型信息,并根据获取到的目标模型文件和目标模型信息更新已部署的在线推理模型。可见,此时在线推理引擎32是在接收到在线推理请求的情况下主动向模型管理平台31请求获取目标模型文件和目标模型信息,可以利用模型管理平台31在共享存储中预先记录的针对目标模型的调用参数通过模型管理平台31提供的HTTP接口获取目标模型。其中,在线推理引擎325中的备选推理框架可以包括下述至少之一:Tensorflow推理框架、pytorch推理框架、tensorrt推理框架、xgboost推理框架,当然,还可以包括其他的主流在线推理框架,不再一一赘述。

确定上述目标推理框架后,在线管理组件324可以根据接收到的目标模型文件和目标模型信息配置该目标推理框架,例如将目标模型文件的相关内容以及模型模型信息填充入目标推理框架预定义的框架位置处,从而实现对目标推理框架的配置,配置完成的目标推理框架即用于与其他组件配合向用户提供在线推理服务。

在接收到用户通过RPC接口或HTTP接口发送的在线推理请求的情况下,模型管理平台31可以相应的检查用于响应上述在线推理请求的目标推理框架中是否已部署在线推理模型,若目标推理框架中未部署在线推理模型,或者目标推理框架中已部署的线推理模型的版本号与目标模型的版本号不相同(模型管理平台31为其管理的任一在线推理模型分配唯一的版本号),则判定满足预设的框架更新条件,此时可以相应地配置或更新目标推理框架。另外,用户可以通过输入输出组件321输入在线推理请求对应的推理请求数据,为提高在线推理引擎32的通用性,输入输出组件321可以直接接收对应于在线推理请求的二进制比特流格式的推理请求数据,或者,输入输出组件321也可以将接收到的非二进制比特流格式的推理请求数据转换为二级制比特流格式的数据。

在同时处理多个在线推理任务的情况下,批处理组件322可以在接收到输入输出组件321提供的在线推理请求以及相应的推理请求数据后,将其进行负载均衡处理后按批次输入目标推理框架(部署有目标推理模型),相应的,目标推理框架可以调用预关联的CPU执行逻辑运算、调用GPU执行并行运算(如矩阵运算),并在接收到二者返回的前向推理结果(最终计算结果)后,将该前向推理结果依次按目标推理框架——批处理组件322——输入输出组件321的顺序,通过RPC接口或HTTP接口返回给用户,以作为在线推理请求的响应。

另外,在同时提供多项在线推理服务的情况下,在线推理引擎32可以根据多项在线推理服务对应的在线推理模型的模型特点,动态调整多项在线推理服务对应的多个服务线程,实现各个底层计算组件的负载均衡。在提供在线推理服务过程中或提供在线推理服务结束后,在线推理引擎32可以调用预设的监控组件根据在线推理服务相关的运行状态数据监控在线推理引擎的运行状态;和/或,在提供在线推理服务过程中或提供在线推理服务结束后,在线推理引擎32还可以调用预设的报表组件根据在线推理服务相关的运行状态数据生成相应的服务报表。通过上述监控和报表服务,有助于实现对在线推理引擎的状态监控及跟踪,并有助于任务完成及发生故障后的任务复盘。

通过上述实施例可见,模型管理平台31用于解决推理模型的存储、管理、下载、分布等问题,模型服务框架32用于解决模型推理服务化的问题,通过二者之间的“联动”,实现在用户提交目标模型后,自动生成针对目标模型的在线推理服务的效果,即实现针对推理模型的自动服务化。在用户将目标模型提交至模型管理平台31后,与之相连的在线推理引擎32随即自动生成对应于目标模型的在线推理服务以供用户调用,从而实现了模型服务化的自动实现,大大简化了用户在模型服务化过程中的工作量,有助于提升模型管理及在线推理服务的效率。实际上,用户可以仅使用模型管理平台31管理目标模型,也可以通过在线推理引擎32对模型管理平台31中所管理的目标模型实现自动服务化,即实现了模型管理平台31和在线推理引擎32之间的松耦合。

下面结合另一具体实施例对在线推理服务系统的工作过程进行说明。假设用户以Tensorflow机器学习框架进行训练,并将训练完成的目标模型的目标模型文件通过SDK方式提交到模型管理平台31,并由模型管理平台31为该目标模型自动分配唯一的版本号。一方面,proxy组件312按照版本号将目标模型文件保存在仓库集群313的某一(或某几)文件仓库(如S1)中;另一方面,Mate信息管理组件311解析得到张量信息等模型结构信息,并将该结构信息与用户在提交目标模型的同时关联提交的模型基础信息(合计为目标模型信息)均按照版本号保存在信息数据库S0中。

此时,模型管理平台31可以通过P2P接口主动通知在线推理引擎32关于上述目标模型的更新,并在在线推理引擎32确认后向其发送上述目标模型文件和目标模型信息;或者为减少交互次数,直接向模型管理平台31发送上述目标模型文件和目标模型信息。在线推理引擎32接收到上述目标模型文件和目标模型信息后,确定该目标模型的目标框架类型,并将框架类型与该目标框架类型相同的备选推理框架(如Tensorflow Runtime)确定为目标推理框架,然后按照目标模型文件和目标模型信息配置该目标推理框架,并使用配置后的目标推理框架为用户提供在线推理服务,从而实现目标模型的服务化。

或者,模型管理平台31不通知或不向在线推理引擎32发送目标模型文件和目标模型信息,相应的,在线推理引擎32暂不从模型管理平台31获取上述目标模型文件和目标模型信息。直到在线推理引擎32接收到用户通过RPC或HTTP接口发送的在线推理请求以及用户通过输入输出组件321提供的推理请求数据后,再按照该在线推理请求和推理请求数据确定用于处理该在线推理请求的目标推理框架(如Tensorflow Runtime),并根据键值数据库Sk中保存的关于目标模型的稀疏类key-vale值确定对应于目标推理框架的目标模型。然后根据共享存储中记录的目标模型的调用参数,通过HTTP接口向模型管理平台31请求目标模型文件和目标模型信息,然后按照其返回的目标模型文件和目标模型信息配置该目标推理框架,从而实现目标模型的服务化。需要说明的是,目标推理框架可能有多种类型,每一类型可能有多个,本公开对此并不进行限制。

假设用户发起的在线推理请求是识别一段播放时长2min、播放帧率为30帧/s的短视频中的人像区域,输入输出组件321在接收到用户输入的该视频后,可以对其进行视频帧提取等预处理,批处理组件322根据当前引擎负载等工作情况,可以将从视频中提取的3600张视频帧图像依次等分为18组、每组200张(根据实际情况不同,也可以采用其他分组方式),然后以组为单位将各组视频帧图像下发至配置完成的目标推理框架,任一目标推理框架对接收到的视频帧图像进行前向推理运算(调用CPU完成逻辑运算、调用GPU完成并行矩阵运算),目标推理框架在计算完成后将相应的结算结果(如每一视频帧图像中的人像区域的区域边界坐标值)依次返回至批处理组件322和输入输出组件321作为在线推理结果输出给用户,从而完成针对在线推理请求的响应过程。当然,上述处理过程中和/或处理结束后,监控/报表组件323可以采集相应的模型管理平台31的运行数据和/或状态数据,从而实现对模型管理平台31的运行状态的监控,并生成相应的服务报表。

对应于前述实施例,本公开还提出一种提供在线推理服务的方法。请参见图4所示的提供在线推理服务的方法的流程图,如图4所示,该方法应用于在线推理引擎,可以包括下述步骤:

步骤402,从用于获取并保存在线推理模型的模型文件和模型信息的模型管理平台获取目标模型对应的目标模型文件和目标模型信息,所述目标模型文件包括训练所述目标模型得到的模型数据,所述目标模型信息包括对应于所述目标模型的模型相关信息。

在一实施例中,在线推理引擎可以通过多种方式从模型管理平台获取目标模型文件和目标模型信息。作为一示例性实施例,为保证在线推理引擎中的在线推理框架及时配置或更新,模型管理平台可以向在线推理引擎推送目标模型文件和目标模型信息,相应的,在线推理引擎可以接收模型管理平台在保存目标模型对应的目标模型文件和目标模型信息后推送的目标模型文件和目标模型信息。作为另一示例性实施例,为避免不必要的数据传输,在线推理引擎可以在满足预设的框架更新条件的情况下,通过模型管理平台提供的第一HTTP接口向模型管理平台发送模型获取请求,并接收模型管理平台通过该第一HTTP接口返回的目标模型的目标模型文件和目标模型信息。

进一步的,为保证实现高效的模型管理,模型管理平台可以为其管理的任一在线推理模型分配唯一的版本号,并将该版本号作为任一模型的模型文件和模型信息的管理标识或索引信息。相应的,在线推理引擎在接收到在线推理请求的情况下,可以检查用于响应在线推理请求的目标推理框架中是否已部署在线推理模型:若目标推理框架中未部署在线推理模型,或者目标推理框架中已部署的线推理模型的版本号与目标模型的版本号不相同,则可以判定此时满足预设的框架更新条件。

进一步的,为便于用户获取或管理推理模型,上述在线推理请求可以被通过预设的RPC接口或第二HTTP接口发送至在线推理引擎。另外,为尽可能多的兼容模型应用场景,在线推理引擎可以以二进制比特流方式接收请求数据并返回结果,相应的,在线推理引擎可以接收对应于在线推理请求的二进制比特流格式的推理请求数据;或者,将接收到的非二进制比特流格式的推理请求数据转换为二级制比特流格式的数据。

步骤404,确定匹配于所述目标模型的目标推理框架。

步骤406,根据所述目标模型文件和目标模型信息配置所述目标推理框架,并利用配置后的所述目标推理框架提供在线推理服务。

在一实施例中,在同时提供多项在线推理服务的情况下,在线推理引擎可以根据多项在线推理服务对应的在线推理模型的模型特点,动态调整多项在线推理服务对应的多个服务线程,以保证多个服务线程的正常运行并提升多个在线推理模型之间的负载均衡程度。

在一实施例中,在线推理引擎中可以包括监控组件,因此在线推理引擎可以在提供在线推理服务过程中或提供在线推理服务结束后,调用预设的监控组件根据在线推理服务相关的运行状态数据监控在线推理引擎的运行状态。另外,在线推理引擎也可以包括报表组件,相应的,在线推理引擎可以在提供在线推理服务过程中或提供在线推理服务结束后,调用预设的报表组件根据在线推理服务相关的运行状态数据生成相应的服务报表。当然,在线推理引擎也可以同时包含上述监控组件和报表组件,从而在监控组件监控在线推理引擎的运行状态的同时,生成相应的服务报表。

进一步的,上述目标推理框架可以包括在线推理引擎中的至少一个在线推理框架,其中,在线推理框架可以包括下述至少之一:Tensorflow推理框架、pytorch推理框架、tensorrt推理框架、xgboost推理框架,当然,还可以包括其他的主流在线推理框架,不再一一赘述。在线推理引擎通过支持上述主流推理框架,能够对用户提交的基于主流推理框架训练得到的推理模型均自动生成相应的在线推理服务,即实现自动服务化,有效减少用户的开发工作量。

与前述提供在线推理服务的方法的实施例相对应地,本公开还提出了提供在线推理服务的装置的实施例。

图5是根据本公开的实施例示出的一种提供在线推理服务的装置的示意框图。本实施例所示的提供在线推理服务的装置可以适用于服务端,相应的服务端可以为包含一独立主机的物理服务器、主机集群承载的虚拟服务器、云服务器等。

如图5所示,所述提供在线推理服务的装置可以包括:

获取模块501,被配置为从用于获取并保存在线推理模型的模型文件和模型信息的模型管理平台获取目标模型对应的目标模型文件和目标模型信息,所述目标模型文件包括训练所述目标模型得到的模型数据,所述目标模型信息包括对应于所述目标模型的模型相关信息;

确定模块502,被配置为确定匹配于所述目标模型的目标推理框架;

配置模块503,被配置为根据所述目标模型文件和目标模型信息配置所述目标推理框架,并利用配置后的所述目标推理框架提供在线推理服务。

可选的,所述获取模块501还被配置为:

接收模型管理平台在保存目标模型对应的目标模型文件和目标模型信息后推送的所述目标模型文件和目标模型信息;或者,

在满足预设的框架更新条件的情况下,通过模型管理平台提供的第一HTTP接口向所述模型管理平台发送模型获取请求,并接收所述模型管理平台通过所述第一HTTP接口返回的目标模型的目标模型文件和目标模型信息。

可选的,所述模型管理平台为其管理的任一在线推理模型分配唯一的版本号,所述装置还包括:

模型检查模块504,被配置为在接收到在线推理请求的情况下,检查用于响应所述在线推理请求的所述目标推理框架中是否已部署在线推理模型;

条件判定模块505,被配置为若所述目标推理框架中未部署在线推理模型,或者所述目标推理框架中已部署的线推理模型的版本号与所述目标模型的版本号不相同,则判定满足预设的框架更新条件。

可选的,所述模型检查模块504还被配置为:

通过预设的远程过程调用RPC接口或第二HTTP接口接收到在线推理请求。

可选的,还包括:

数据接收模块506,被配置为接收对应于所述在线推理请求的二进制比特流格式的推理请求数据;或者,

格式转换模块507,被配置为将接收到的非二进制比特流格式的推理请求数据转换为二级制比特流格式的数据。

可选的,还包括:

线程调整模块508,被配置为在同时提供多项在线推理服务的情况下,根据所述多项在线推理服务分别对应的在线推理模型的模型特点,动态调整所述多项在线推理服务分别对应的多个服务线程。

可选的,还包括:

监控模块509,被配置为在提供所述在线推理服务过程中或提供所述在线推理服务结束后,调用预设的监控组件根据所述在线推理服务相关的运行状态数据监控所述在线推理引擎的运行状态;和/或,

报表模块510,被配置为在提供所述在线推理服务过程中或提供所述在线推理服务结束后,调用预设的报表组件根据所述在线推理服务相关的运行状态数据生成相应的服务报表。

可选的,所述目标推理框架包括所述在线推理引擎中下述至少之一的在线推理框架:

Tensorflow推理框架、pytorch推理框架、tensorrt推理框架、xgboost推理框架。

本公开的实施例还提出一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现如上述任一实施例所述的提供在线推理服务的方法。

本公开的实施例还提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的提供在线推理服务的方法。

本公开的实施例还提出一种计算机程序产品,所述计算机程序产品被配置为执行上述任一实施例所述的提供在线推理服务的方法。

图6是根据本公开的实施例示出的一种电子设备的示意框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图6,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件618。

处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述提供在线推理服务的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。

存储器604被配置为存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。

多媒体组件608包括在电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件618发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。

I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

图像采集组件616可以用于采集被摄对象的图像数据,以形成关于被摄对象的图像,并可以对该图像进行必要的处理。该图像采集组件616可以包括相机模组,相机模组中的图像传感器(Sensor)通过镜头感应来自被摄对象的光线,将得到的感光数据提供给图像信号处理器(ISP,Image Signal Processing),由后者根据感光数据生成对应于被摄对象的图像。其中,上述图像传感器可以为CMOS传感器或CCD传感器,当然,也可以为红外传感器、深度传感器等;相机模组可以内置在电子设备600中,也可以为电子设备600的外接模组;上述ISP可以内置在相机模组中,也可以外挂在上述电子设备中(不在相机模组内)。

通信组件618被配置为便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件618经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件618还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在本公开一实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述提供在线推理服务的方法。

在本公开一实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述提供在线推理服务的方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

需要说明的是,在本公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本公开实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

相关技术
  • 在线推理服务系统、提供在线推理服务的方法及装置
  • AIStation推理平台的推理服务管理方法和装置
技术分类

06120112257331