CN111459576B - 一种数据分析处理系统和模型运行方法 - Google Patents
一种数据分析处理系统和模型运行方法 Download PDFInfo
- Publication number
- CN111459576B CN111459576B CN202010245694.0A CN202010245694A CN111459576B CN 111459576 B CN111459576 B CN 111459576B CN 202010245694 A CN202010245694 A CN 202010245694A CN 111459576 B CN111459576 B CN 111459576B
- Authority
- CN
- China
- Prior art keywords
- model
- submodels
- node
- nodes
- running
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种数据分析处理系统和模型运行方法,该方法包括:进行模型的上线;运行上线的所述模型;其中,所述模型包括至少两个子模型,所述至少两个子模型包括运行在至少两种运行环境中的子模型。本发明能够支持异构模型,使得数据分析处理有极高的兼容性和开放性,提升开发效率及灵活性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据分析处理系统和模型运行方法。
背景技术
近年来,大数据处理与分析已经成为全球性问题,随着经济社会信息化和自动化水平不断提高,在政府管理、公共服务、科学研究、商业应用等许多领域面临大数据问题,需要有各种针对性和经济有效的解决方案。大数据平台为行业大数据提供处理能力,集数据接入、数据处理、数据存储、查询检索、分析挖掘、应用接口等功能为一体。
现有的数据分析处理系统不支持多样化的开发语言和算法框架,不能提供集成的、自动化的多语言、多框架协同数据处理,形式单一,开放性和兼容性较差。
发明内容
本发明实施例提供一种数据分析处理系统和模型运行方法,解决现有的数据分析处理系统开放性和兼容性较差的问题。
为解决上述技术问题,本发明提供一种模型运行方法,应用于数据分析处理系统中,所述方法包括:
进行模型的上线;
运行上线的所述模型;
其中,所述模型包括至少两个子模型,所述至少两个子模型包括运行在至少两种运行环境中的子模型。
可选的,上述方法中,所述运行环境包括容器。
可选的,上述方法中,所述运行上线的所述模型的步骤包括:
基于上线的模型生成模型配置文件;
根据所述模型配置文件生成运行节点拓扑信息;
基于所述运行节点拓扑信息运行所述模型;
其中,所述模型配置文件包括模型拓扑信息和子模型的运行环境信息。
可选的,上述方法中,所述根据所述模型配置文件生成运行节点拓扑信息的步骤包括:
根据所述模型拓扑信息、所述子模型的运行环境信息和预设规则确定所述运行节点拓扑信息。
可选的,上述方法中,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构不相邻且存在执行先后顺序的子模型分配同一工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
可选的,上述方法中,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构且不相邻且存在执行先后顺序的子模型,分配不同的工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
可选的,上述方法中,根据所述模型拓扑信息、所述子模型的运行环境信息和预设规则确定所述运行节点拓扑信息步骤之后,所述方法还包括:
基于检测到的用于调整所述运行节点拓扑信息的操作,调整所述运行节点拓扑信息。
可选的,上述方法中,所述基于所述运行节点拓扑信息运行所述模型的步骤包括:
启动多个运行节点;其中所述多个运行节点包括一个控制节点和M个工作节点;M为大于或者等于1的整数;
所述控制节点基于所述运行节点拓扑信息对所述M个工作节点进行调度,运行模型;
输出模型运行结果数据。
可选的,上述方法中,所述输出模型运行结果数据的步骤包括:
模型运行结果数据由所述工作节点返回给所述控制节点;
所述控制节点输出所述模型运行结果数据。
可选的,上述方法中,所述进行模型的上线包括上线模型的部分子模型;所述运行上线的所述模型包括运行上线的部分子模型;所述运行上线的所述模型的步骤具体包括:
基于上线的部分子模型生成模型配置文件;
根据所述模型配置文件生成运行节点拓扑信息;
基于所述运行节点拓扑信息运行所述模型;
所述模型配置文件包括部分子模型的拓扑信息和部分子模型的运行环境信息。
可选的,上述方法中,所述模型为N个模型,N为大于或者等于1的整数,其中,N个模型包括至少一个异构模型;所述异构模型包括在不同运行环境中运行的子模型;所述基于所述运行节点拓扑信息运行所述模型的步骤包括:
启动多个运行节点;其中所述多个运行节点包括一个引擎节点、N组工作节点和N个控制节点;
每一个所述模型的所述控制节点在所述引擎节点中进行注册;
所述引擎节点为运行的每一个所述模型的所述控制节点分发数据;
所述引擎节点接收运行的每一个所述模型的模型运行结果数据并输出。
可选的,上述方法中,所述引擎节点为运行的每一个所述模型的所述控制节点分发数据的步骤包括:
所述引擎节点根据输入数据的模型标识为每一个所述模型的所述控制节点分发数据。
本发明还提供一种数据分析处理系统,所述数据分析处理系统包括:
上线模块,用于进行模型的上线;
运行模块,用于运行上线的所述模型;
其中,所述模型包括至少两个子模型,所述至少两个子模型包括运行在至少两种运行环境中的子模型。
可选的,上述数据分析处理系统中,所述运行环境包括容器。
可选的,上述数据分析处理系统中,所述运行模块包括:
第一生成单元,用于基于上线的模型生成模型配置文件;
第二生成单元,用于根据所述模型配置文件生成运行节点拓扑信息;
第一运行单元,用于基于所述运行节点拓扑信息运行所述模型;
其中,所述模型配置文件包括模型拓扑信息和子模型的运行环境信息。
可选的,上述数据分析处理系统中,所述第二生成单元具体用于:
根据所述模型拓扑信息、所述子模型的运行环境信息和预设规则确定所述运行节点拓扑信息。
可选的,上述数据分析处理系统中,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构不相邻且存在执行先后顺序的子模型分配同一工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
可选的,上述数据分析处理系统中,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构且不相邻且存在执行先后顺序的子模型,分配不同的工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
可选的,上述数据分析处理系统还包括:
调整模块,用于基于检测到的用于调整所述运行节点拓扑信息的操作,调整所述运行节点拓扑信息。
可选的,上述数据分析处理系统中,所述运行模块还包括:
第一启动单元,用于启动多个运行节点;其中所述多个运行节点包括一个控制节点和M个工作节点;M为大于或者等于1的整数;
第二运行单元,用于所述控制节点基于所述运行节点拓扑信息对所述M个工作节点进行调度,运行模型;
第一输出单元,用于输出模型运行结果数据。
可选的,上述数据分析处理系统中,所述第一输出单元具体用于:
模型运行结果数据由所述工作节点返回给所述控制节点;
所述控制节点输出所述模型运行结果数据。
可选的,上述数据分析处理系统中,所述进行模型的上线包括上线模型的部分子模型;所述运行上线的所述模型包括运行上线的部分子模型,所述运行模块包括:
第三生成单元,用于基于上线的部分子模型生成模型配置文件;
第四生成单元,用于根据所述模型配置文件生成运行节点拓扑信息;
第三运行单元,用于基于所述运行节点拓扑信息运行所述模型;
所述模型配置文件包括部分子模型的拓扑信息和部分子模型的运行环境信息。
可选的,上述数据分析处理系统中,其特征在于,所述模型为N个模型,N为大于或者等于1的整数,其中,N个模型包括至少一个异构模型;所述异构模型包括在不同运行环境中运行的子模型;所述运行模块包括:
第二启动单元,用于启动多个运行节点;其中,所述多个运行节点包括一个引擎节点、N组工作节点和N个控制节点;
注册单元,用于每一个所述模型的所述控制节点在所述引擎节点中进行注册;
分发单元,用于由所述引擎节点为运行的每一个所述模型的所述控制节点分发数据;
第二输出单元,用于由所述引擎节点接收运行的每一个所述模型的模型运行结果数据并输出。
可选的,上述数据分析处理系统中,所述分发单元具体用于:
所述引擎节点根据输入数据的模型标识为每一个所述模型的所述控制节点分发数据。
本发明还提供一种数据分析处理系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的模型运行方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述模型运行方法的步骤。
本发明的上述技术方案的有益效果如下:
本发明的数据分析处理系统能够支持异构模型,使得数据分析处理有极高的兼容性和开放性,提升开发效率及灵活性;此外本发明的数据分析处理系统支持异构模型的上线与运行,使得异构模型中多个异构的子模型能够整体地上线和运行,提高异构模型上线和运行的效率,节约运行资源。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的模型运行方法的流程图;
图2是本发明一实施例提供的模型运行方法步骤102的流程图;
图3是本发明一实施例提供的模型训练工作流的示意图;
图4是本发明一实施例提供的异构模型拓扑图的示意图;
图5是本发明一实施例提供的运行节点拓扑图示意图;
图6是本发明一实施例提供的又一运行节点拓扑图示意图;
图7是本发明一实施例提供的又一运行节点拓扑图示意图;
图8是本发明一实施例提供的又一运行节点拓扑图示意图;
图9是本发明一实施例提供的数据分析处理系统的结构。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1是本发明一实施例提供的模型运行方法的流程图。所述模型运行方法可以应用于数据分析处理系统,如图1所示,所述模型运行方法包括以下步骤:
步骤101,进行模型的上线。
这里,在检测到用户上线模型的操作时,将待上线的模型进行发布上线。
步骤102,运行上线的所述模型。
其中,所述模型包括至少两个子模型,所述至少两个子模型包括运行在至少两种运行环境中的子模型。
这里,运行环境是指程序运行的软件环境,所述运行环境包括容器。具体的,可以包含两种情况,A情况:一个容器仅支持基于一种编程语言下的一个或多个框架编写的模型步骤(子模型)的运行,或B情况:一个容器仅支持基于一种编程语言下的一种框架编写的模型步骤的运行。一种编程语言下可能有多个该编程语言下的框架。
所述子模型对应模型中的模型步骤。其中,异构模型包含在不同运行环境中运行的模型步骤,异构模型通常包含至少两个模型步骤需要在不同的运行环境中运行。例如生成异构模型的工作流中的多个工作流模块的程序代码是基于不同的编程语言和/或基于不同的软件开发框架编写的,该异构模型的拓扑图中包含的多个模型步骤的程序代码是基于不同的编程语言和/或基于不同的软件开发框架编写的。
异构的子模型是指不能运行在同一运行环境下的子模型(模型步骤),异构的模型步骤可以包含两种情况:A情况:基于不同框架编写程序代码的模型步骤,或B情况:基于不同编程语言编写程序代码的模型步骤。而对于同构的子模型(模型步骤),则可以运行在同一运行环境中。
可选的,如图2所示步骤102,运行上线的所述模型包括:
步骤1021,基于上线的模型生成模型配置文件。
模型上线时基于模型信息自动生成模型配置文件,所述模型配置文件包括模型拓扑信息和子模型的运行环境信息等。所述模型拓扑信息包括各个子模型之间的关系、模型拓扑图等信息,所述子模型的运行环境信息包括子模型与运行节点的映射关系等。
所述运行节点对应运行环境,用于运行子模型,例如运行节点为容器。
步骤1022,根据所述模型配置文件生成运行节点拓扑信息。
具体的,所述运行节点拓扑信息包括工作节点数量和运行节点拓扑图等信息。拓扑信息对应的拓扑图可以是树的形式。所述运行节点拓扑信息可以是在模型上线的过程中生成。
可选的,所述根据所述模型配置文件生成运行节点拓扑信息的步骤包括:
根据所述模型拓扑信息、和所述子模型的运行环境信息和预设规则确定所述工作节点的数量和生成所述运行节点拓扑图。
具体的,所述预设规则包括以下至少一项:
1.异构的子模型分配不同的工作节点;
2.同构且并行运行的子模型分配不同的工作节点;
3.同构且串行相邻的子模型分配同一工作节点;
4.同构不相邻且存在执行先后顺序的子模型分配同一工作节点,或者
5.同构且不相邻且存在执行先后顺序的子模型分配不同的工作节点。
其中,可以是数据分析处理系统在模型上线时,根据所述模型拓扑信息、和所述子模型的运行环境信息和预设规则生成所述工作节点的数量和所述运行节点拓扑图。数据分析处理系统在根据预设规则生成所述工作节点的数量和所述运行节点拓扑图时,在上述预设规则的第4条和第5条之间可以选择其中一条遵守,优先选择节省工作节点数量的方式。
可选的,基于检测到的用于调整所述运行节点拓扑信息的操作,调整所述运行节点拓扑信息。
具体的,在数据分析处理系统在根据预设规则确定所述工作节点的数量和所述运行节点拓扑图之后,还可以由用户自定义调整工作节点数量和运行节点拓扑图。例如,在数据分析处理系统生成所述工作节点的数量和所述运行节点拓扑图之后,显示一个操作界面,提示用户是否需要自定义调整工作节点数量和运行节点拓扑图。需要说明的是,用户自定义调整工作节点数量和运行节点拓扑图不能违背上述预设规则。
步骤1023,基于所述运行节点拓扑信息运行所述模型。
模型上线后运行时,把模型中异构的模型步骤(例如基于不同语言编写的)运行在不同的运行环境里,同时由控制模块(例如控制节点和/或引擎节点)控制这些模型步骤的运行顺序及组织这些模型步骤的输入数据。
可选的,适用于所述模型为单个异构模型时,所述基于所述运行节点拓扑信息运行所述模型的步骤包括:
启动多个运行节点;其中所述多个运行节点包括一个控制节点和M个工作节点;M为大于或者等于1的正整数。
这里,运行节点例如为容器。
所述控制节点基于所述运行节点拓扑信息对所述M个工作节点进行调度,运行模型。
具体的,控制节点可以获取基于预定义的规则确定的工作节点的访问地址等信息。例如,数据分析处理系统基于模型配置文件里的容器标签信息和环境变量拼接生成工作节点容器的统一资源定位符URL(Uniform Resource Locator)。或者工作节点向控制节点注册访问地址等信息。对于异构模型接收到的数据,控制节点根据当前接收到的数据的格式和预设的模型步骤所需的数据格式转换数据,基于运行节点拓扑信息依次进行调度,串行和/或并行执行模型步骤。
输出模型运行结果数据。
控制节点基于运行节点拓扑信息依次进行调度,串行和/或并行执行模型步骤,从而完成模型的运行,输出模型运行结果数据。
所述输出所述模型运行结果数据的步骤包括:
模型运行结果数据由所述工作节点返回给所述控制节点;
所述控制节点输出所述模型运行结果数据。
示例性的:用户基于某业务场景(例如客户流失预测场景、房价预测场景)进行建模。以客户流失预测模型为例,参见图3,模型训练工作流包括如下模块:数据模块1、缺失值填充模块1、归一化模块、特征衍生模块1、特征选择模块1、数据模块2、缺失值填充模块2、onehot模块(独热编码模块)、特征衍生模块2、特征选择模块2、数据集合并模块、数据集拆分模块(用于将输入数据拆分成训练集和测试集)、XGBoost模型训练模块(XGBoost,eXtreme Gradient Boosting,极限梯度提升,是提升树可扩展的机器学习,是一个优化的分布式梯度增强库)、模型评估模块。其中,缺失值填充模块1、归一化模块、特征选择模块1、缺失值填充模块2、onehot模块、特征选择模块2、数据集合并模块、数据集拆分模块、模型评估模块的程序代码是基于Python语言编写的;特征衍生模块1、特征衍生模块2的程序代码是基于Java语言编写的;XGBoost模型训练模块的程序代码是基于R语言编写的。需要说明的是,上述模块的程序代码可以基于某编程语言下的框架编写,也可以不使用框架,本具体实施例以不使用框架为例。
本发明实施例使得数据分析处理系统有极高的兼容性和开放性。开发语言异构能充分利用各语言特性,实现协同处理,极大提升开发效率及灵活性,且方便复用各语言已有研究成果,并集中管理。框架异构让开发人员方便使用多种框架的丰富算法库和工具类,提高编码效率及模型训练效率。
用户使用如图3所示的工作流训练出来的模型为异构模型,如图4所示,异构模型拓扑图。所述异构模型包含如下模型步骤:缺失值填充1、归一化、特征衍生1、特征选择1、缺失值填充2、onehot、特征衍生2、特征选择模块2、数据集合并模块、XGBoost模型。
其中,模型拓扑图中的模型步骤与模型训练工作流中的模块是对应的,模型拓扑中的模型步骤可以仅包含模型训练工作流中的部分模块,异构模型上线后运行是在实际的模型应用环境中,其输入数据来自于客户业务系统的实际数据。异构模型运行时不需要进行测试和评估,因此模型拓扑图中的模型步骤不包含对应数据模块、数据集拆分模块、模型评估模块的模型步骤。其中模型拓扑图中的模型步骤与模型训练工作流中的模块的编程语言是对应的,图4所示的缺失值填充1、归一化、特征选择1、缺失值填充2、onehot、特征选择2、数据集合并的程序代码是基于Python语言编写的;特征衍生1、特征衍生2的程序代码是基于Java语言编写的;XGBoost模型的程序代码是基于R语言编写的。
异构模型上线的过程中根据模型拓扑信息和模型中各模型步骤的运行环境信息以及预设规则确定所需的工作节点数量以及确定运行节点拓扑图,以数据分析处理系统基于预设规则第4条和规则第5条间选择遵守第4条规则为例,运行环境以容器为例,参见如图5所示的运行节点拓扑图。异构模型运行时,需启动6个容器,1个控制节点容器,5个工作节点容器;其中,缺失值填充1、归一化、特征选择1可以用同一工作节点;缺失值填充2、onehot、特征选择2可以用同一工作节点;数据集合并可以与特征选择1或特征选择2用同一工作节点,按顺序优选工作节点1。模型接收到数据时,控制节点容器根据当前接收到的数据格式和预设的模型步骤所需的数据格式转换数据,基于运行节点拓扑信息依次进行调度,执行模型步骤。
此外,用户还可以基于数据分析处理系统自动确定的工作节点数量和运行节点拓扑图,自定义调整以确定工作节点数量以及确定运行节点拓扑图,当然用户自定义调整时不能违背上述预设规则。例如,如图6所示,用户设置特征选择1的工作节点与缺失值填充1及归一化的工作节点不同,例如设置特征选择1的工作节点为新增的工作节点6,进一步的,用户设置特征选择2的工作节点与缺失值填充2及OneHot的工作节点不同,例如设置特征选择2的工作节点为新增的工作节点7,进一步的,用户设置数据集合并的工作节点与特征选择1及特征选择2的工作节点均不同,例如设置数据集合并的工作节点为新增的工作节点8。用户自定义调整工作节点数量以及运行节点拓扑图,使得各模型步骤对应的服务更独立,有利于提升运行速度。
数据分析处理系统支持单个异构模型的上线与运行,也可以支持多个模型上线后的同时运行,其中多个模型包括至少一个异构模型,且所述多个模型中的任一模型可以仅上线及运行模型中的一个或多个模型步骤。
可选的,适用于所述模型为单个异构模型或多个模型上线后同时运行时,若所述模型为N个模型时,N为大于等于1的整数,其中,N个模型包括至少一个异构模型;所述异构模型包括在不同运行环境中运行的子模型;所述基于所述运行节点拓扑信息运行所述模型的步骤包括:
启动多个运行节点;其中所述多个运行节点包括一个引擎节点、N组工作节点和N个控制节点。
这里,模型运行时启动多个运行节点,例如为容器。N个模型分成N组,每组Mi+1个运行节点,即第i个模型需要1个控制节点,Mi个工作节点,i为大于等于1且小于等于N的整数;1个引擎节点控制N组模型的控制节点,引擎节点是一个长服务,即长时间运行的服务。
每一个所述模型的所述控制节点在所述引擎节点中进行注册。
所述引擎节点为运行的每一个所述模型的所述控制节点分发数据。
所述引擎节点接收运行的每一个所述模型的模型运行结果数据并输出。
具体的,每一个模型启动时其对应的控制节点在引擎节点注册。模型运行时接收到的数据(可能是多组数据)都要经过引擎节点,引擎节点给各模型分发数据。具体的,给各模型的控制节点分发数据。模型运行结果数据也要返回给引擎节点,由引擎节点输出结果数据。例如,当进行模型灰度发布(上线)时,引擎节点根据预置规则在不同版本模型间按比例分发数据。其中,工作节点数量的确定、控制节点和工作节点之间的交互与前述适用于单个异构模型运行的方案相同,这里不再赘述。
可选的,所述引擎节点为运行的每一个所述模型的所述控制节点分发数据的步骤包括:
所述引擎节点根据输入数据的模型标识为每一个所述模型的所述控制节点分发数据。
具体的,当输入数据为多组数据同时输入时即多个模型同时输入多组数据,根据输入数据的信息,数据分析处理系统自动筛选各个模型使用的数据。例如,数据信息包括下述至少之一:模型标识(model ID)、方式(mode)、数据格式,数据分析处理系统可以根据模型标识来分发数据,具体的为引擎节点分发数据,即基于数据信息中的模型标识分发该组数据给相应的模型,如果没有模型标识就把该组数据发给所有的模型。
此外,对于一些特殊的情况,例如多个模型进行灰度发布(对应某模型上线多个版本的模型,每个模型各输入一部分输入数据,即分流输入数据)、A/B测试(用同样的输入数据输入多个模型比较多个模型的输出结果,可用于在多个模型中选择最优模型)、影子上线(对应某模型上线多个版本的模型,每个模型输入所有输入数据),引擎节点判断上述特殊情况是属于一个模型的数据分发类型,进行数据分发;即对于上述特殊的情况,同时运行多个模型,仅使用一组数据。
可选的,根据调用模型的类型,选用不同的模型访问接口。
其中,调用模型的访问接口可以由数据分析处理系统自动根据调用模型的类型选用适用的模型访问接口,也可以由数据分析处理系统提供操作界面由用户选择模型的访问接口。
具体的,数据分析处理系统给用户提供两个调用模型的访问接口:①常规接口、②直接接口,例如可以是提供API接口方式。用户可以选择用①常规接口,通过引擎节点进行调度运行模型;或②直接接口,不通过引擎节点,直接通过控制节点进行调度运行模型。常规接口适用于单个模型运行或多个模型同时运行,直接接口适用于单个模型运行。系统默认采用①常规接口。
可选的,所述进行模型的上线包括上线模型的部分子模型;所述运行上线的所述模型包括运行上线的部分子模型;所述运行上线的所述模型的步骤具体包括:
基于上线的部分子模型生成模型配置文件;
根据所述模型配置文件生成运行节点拓扑信息;
基于所述运行节点拓扑信息运行所述模型;
所述模型配置文件包括部分子模型的拓扑信息和部分子模型的运行环境信息。
所述部分子模型包括模型中的一个或多个子模型。即模型上线与运行时,可以上线与运行异构模型中的一个或多个模型步骤,且模型步骤之间可以是异构的。
对于仅上线某异构模型中的一个或多个步骤的情况(包括同时运行的多个模型中的某个异构模型),运行时,启动多个运行节点,包括1个控制节点和M个工作节点,根据上线与运行的部分模型的拓扑信息和部分模型中各模型步骤的运行环境信息确定所需的工作节点数量M和运行节点拓扑图,所述工作节点数量M的确定、控制节点和工作节点之间的交互、引擎节点和控制节点之间的交互同上述适用于单个异构模型和/或多个模型运行的方案相同,这里不再赘述。
具体的,用户可以自定义选择上线与运行的模型步骤,在模型训练完成后的模型存储仓库中选择某模型进行上线,在上线该模型时对该模型拓扑图进行选择,选择需要上线的模型步骤,发布为服务。
示例性的,基于图4所示的模型拓扑图,用户可以选择仅上线与运行模型步骤中的缺失值填充1、归一化、特征衍生1、特征选择1,上线生成服务,即数据预处理及特征工程服务,在运行上线的模型步骤时,启动运行节点,参见图7,包括1个控制节点、两个工作节点,接收数据,执行各模型步骤,输出处理后的数据。
用户还可以选择仅上线与运行特征衍生1、特征选择1、特征衍生2、特征选择2、数据集合并、XGBoost模型,上线生成服务,用户可以把自行预处理后的数据输入该服务(控制节点会自动分发数据),进行客户流失预测;在运行上线的模型步骤时,启动运行节点,参见图8,包括1个控制节点、5个工作节点,接收数据,执行各模型步骤,输出运行结果数据。
本发明的数据分析处理系统能够支持异构模型,使得数据分析处理有极高的兼容性和开放性,提升开发效率及灵活性;此外本发明的数据分析处理系统支持异构模型的上线与运行,使得异构模型中多个异构的子模型能够整体地上线和运行,提高异构模型上线和运行的效率,节约运行资源。
所述模型运行方法可以应用于数据分析处理系统,也可以应用于其他系统,例如客户的业务系统。
基于以上实施例提供的模型运行方法,本发明实施例还提供了实施上述方法的数据分析处理系统,请参照图9,本发明实施例提供的数据分析处理系统800包括:
上线模块801,用于进行模型的上线;
运行模块802,用于运行上线的所述模型;
其中,所述模型包括至少两个子模型,所述至少两个子模型包括运行在至少两种运行环境中的子模型。
可选的,所述运行环境包括容器。
可选的,所述运行模块包括:
第一生成单元,用于基于上线的模型生成模型配置文件;
第二生成单元,用于根据所述模型配置文件生成运行节点拓扑信息;
第一运行单元,用于基于所述运行节点拓扑信息运行所述模型;
其中,所述模型配置文件包括模型拓扑信息和子模型的运行环境信息。
可选的,所述第二生成单元具体用于:
根据所述模型拓扑信息、所述子模型的运行环境信息和预设规则确定所述运行节点拓扑信息。
可选的,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构不相邻且存在执行先后顺序的子模型分配同一工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
可选的,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构且不相邻且存在执行先后顺序的子模型,分配不同的工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
可选的,所述数据分析处理系统还包括:
调整模块,用于基于检测到的用于调整所述运行节点拓扑信息的操作,调整所述运行节点拓扑信息。
可选的,所述运行模块还包括:
第一启动单元,用于启动多个运行节点;其中所述多个运行节点包括一个控制节点和M个工作节点;M为大于或者等于1的整数;
第二运行单元,用于所述控制节点基于所述运行节点拓扑信息对所述M个工作节点进行调度,运行模型;
第一输出单元,用于输出模型运行结果数据。
可选的,所述第一输出单元具体用于:
模型运行结果数据由所述工作节点返回给所述控制节点;
所述控制节点输出所述模型运行结果数据。
可选的,所述进行模型的上线包括上线模型的部分子模型;所述运行上线的所述模型包括运行上线的部分子模型,所述运行模块包括:
第三生成单元,用于基于上线的部分子模型生成模型配置文件;
第四生成单元,用于根据所述模型配置文件生成运行节点拓扑信息;
第三运行单元,用于基于所述运行节点拓扑信息运行所述模型;
所述模型配置文件包括部分子模型的拓扑信息和部分子模型的运行环境信息。
可选的,所述模型为N个模型,N为大于或者等于1的整数,其中,N个模型包括至少一个异构模型;所述异构模型包括在不同运行环境中运行的子模型;所述运行模块包括:
第二启动单元,用于启动多个运行节点;其中,所述多个运行节点包括一个引擎节点、N组工作节点和N个控制节点;
注册单元,用于每一个所述模型的所述控制节点在所述引擎节点中进行注册;
分发单元,用于由所述引擎节点为运行的每一个所述模型的所述控制节点分发数据;
第二输出单元,用于由所述引擎节点接收运行的每一个所述模型的模型运行结果数据并输出。
可选的,所述分发单元具体用于:
所述引擎节点根据输入数据的模型标识为每一个所述模型的所述控制节点分发数据。
本发明的数据分析处理系统能够支持异构模型,使得数据分析处理有极高的兼容性和开放性,提升开发效率及灵活性;此外本发明的数据分析处理系统支持异构模型的上线与运行,使得异构模型中多个异构的子模型能够整体地上线和运行,提高异构模型上线和运行的效率,节约运行资源。
本发明实施例提供一种数据分析处理系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述实施例所述的模型运行方法的步骤。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的模型运行方法的步骤。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的模型运行方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (20)
1.一种模型运行方法,应用于数据分析处理系统中,其特征在于,包括:
进行模型的上线;
运行上线的所述模型;
其中,所述模型包括至少两个子模型,所述至少两个子模型包括运行在至少两种运行环境中的子模型;
所述运行上线的所述模型的步骤包括:
基于上线的模型生成模型配置文件;
根据所述模型配置文件生成运行节点拓扑信息;
基于所述运行节点拓扑信息运行所述模型;
所述模型为N个模型,N为大于1的整数,其中,N个模型包括至少一个异构模型;所述异构模型包括在不同运行环境中运行的子模型;
所述基于所述运行节点拓扑信息运行所述模型的步骤包括:
启动多个运行节点;其中所述多个运行节点包括一个引擎节点、N组工作节点和N个控制节点;
每一个所述模型的所述控制节点在所述引擎节点中进行注册;
所述引擎节点为运行的每一个所述模型的所述控制节点分发数据;
所述引擎节点接收运行的每一个所述模型的模型运行结果数据并输出;
所述模型配置文件包括模型拓扑信息和子模型的运行环境信息;
所述根据所述模型配置文件生成运行节点拓扑信息的步骤包括:
根据所述模型拓扑信息、所述子模型的运行环境信息和预设规则确定所述运行节点拓扑信息。
2.根据权利要求1所述的方法,其特征在于,所述运行环境包括容器。
3.根据权利要求1所述的方法,其特征在于,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构不相邻且存在执行先后顺序的子模型分配同一工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
4.根据权利要求1所述的方法,其特征在于,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构且不相邻且存在执行先后顺序的子模型,分配不同的工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
5.根据权利要求1所述的方法,其特征在于,根据所述模型拓扑信息、所述子模型的运行环境信息和预设规则确定所述运行节点拓扑信息步骤之后,所述方法还包括:
基于检测到的用于调整所述运行节点拓扑信息的操作,调整所述运行节点拓扑信息。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述基于所述运行节点拓扑信息运行所述模型的步骤包括:
启动多个运行节点;其中所述多个运行节点包括一个控制节点和M个工作节点;M为大于或者等于1的整数;
所述控制节点基于所述运行节点拓扑信息对所述M个工作节点进行调度,运行模型;
输出模型运行结果数据。
7.根据权利要求6所述的方法,其特征在于,所述输出模型运行结果数据的步骤包括:
模型运行结果数据由所述工作节点返回给所述控制节点;
所述控制节点输出所述模型运行结果数据。
8.根据权利要求1所述的方法,其特征在于,所述进行模型的上线包括上线模型的部分子模型;所述运行上线的所述模型包括运行上线的部分子模型;所述运行上线的所述模型的步骤具体包括:
基于上线的部分子模型生成模型配置文件;
根据所述模型配置文件生成运行节点拓扑信息;
基于所述运行节点拓扑信息运行所述模型;
所述模型配置文件包括部分子模型的拓扑信息和部分子模型的运行环境信息。
9.根据权利要求1所述的方法,其特征在于,所述引擎节点为运行的每一个所述模型的所述控制节点分发数据的步骤包括:
所述引擎节点根据输入数据的模型标识为每一个所述模型的所述控制节点分发数据。
10.一种数据分析处理系统,其特征在于,包括:
上线模块,用于进行模型的上线;
运行模块,用于运行上线的所述模型;
其中,所述模型包括至少两个子模型,所述至少两个子模型包括运行在至少两种运行环境中的子模型;
所述运行模块包括:
第一生成单元,用于基于上线的模型生成模型配置文件;
第二生成单元,用于根据所述模型配置文件生成运行节点拓扑信息;
第一运行单元,用于基于所述运行节点拓扑信息运行所述模型;
所述模型为N个模型,N为大于1的整数,其中,N个模型包括至少一个异构模型;所述异构模型包括在不同运行环境中运行的子模型;所述运行模块包括:
第二启动单元,用于启动多个运行节点;其中,所述多个运行节点包括一个引擎节点、N组工作节点和N个控制节点;
注册单元,用于每一个所述模型的所述控制节点在所述引擎节点中进行注册;
分发单元,用于由所述引擎节点为运行的每一个所述模型的所述控制节点分发数据;
第二输出单元,用于由所述引擎节点接收运行的每一个所述模型的模型运行结果数据并输出;
所述模型配置文件包括模型拓扑信息和子模型的运行环境信息;
所述第二生成单元具体用于:
根据所述模型拓扑信息、所述子模型的运行环境信息和预设规则确定所述运行节点拓扑信息。
11.根据权利要求10所述的数据分析处理系统,其特征在于,所述运行环境包括容器。
12.根据权利要求10所述的数据分析处理系统,其特征在于,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构不相邻且存在执行先后顺序的子模型分配同一工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
13.根据权利要求10所述的数据分析处理系统,其特征在于,所述预设规则包括以下至少一项:
异构的子模型分配不同的工作节点;
同构且并行运行的子模型分配不同的工作节点;
同构且串行相邻的子模型分配同一工作节点;
同构且不相邻且存在执行先后顺序的子模型,分配不同的工作节点;
其中,异构的子模型包括不能运行在同一运行环境中的子模型,同构的子模型包括能够运行在同一运行环境中的子模型。
14.根据权利要求10所述的数据分析处理系统,其特征在于,所述数据分析处理系统还包括:
调整模块,用于基于检测到的用于调整所述运行节点拓扑信息的操作,调整所述运行节点拓扑信息。
15.根据权利要求12-14任一项所述的数据分析处理系统,所述运行模块还包括:
第一启动单元,用于启动多个运行节点;其中所述多个运行节点包括一个控制节点和M个工作节点;M为大于或者等于1的整数;
第二运行单元,用于所述控制节点基于所述运行节点拓扑信息对所述M个工作节点进行调度,运行模型;
第一输出单元,用于输出模型运行结果数据。
16.根据权利要求15所述的数据分析处理系统,其特征在于,所述第一输出单元具体用于:
模型运行结果数据由所述工作节点返回给所述控制节点;
所述控制节点输出所述模型运行结果数据。
17.根据权利要求10所述的数据分析处理系统,其特征在于,所述进行模型的上线包括上线模型的部分子模型;所述运行上线的所述模型包括运行上线的部分子模型,所述运行模块包括:
第三生成单元,用于基于上线的部分子模型生成模型配置文件;
第四生成单元,用于根据所述模型配置文件生成运行节点拓扑信息;
第三运行单元,用于基于所述运行节点拓扑信息运行所述模型;
所述模型配置文件包括部分子模型的拓扑信息和部分子模型的运行环境信息。
18.根据权利要求10所述的数据分析处理系统,其特征在于,所述分发单元具体用于:
所述引擎节点根据输入数据的模型标识为每一个所述模型的所述控制节点分发数据。
19.一种数据分析处理系统,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述的模型运行方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的模型运行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245694.0A CN111459576B (zh) | 2020-03-31 | 2020-03-31 | 一种数据分析处理系统和模型运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245694.0A CN111459576B (zh) | 2020-03-31 | 2020-03-31 | 一种数据分析处理系统和模型运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459576A CN111459576A (zh) | 2020-07-28 |
CN111459576B true CN111459576B (zh) | 2021-03-12 |
Family
ID=71682371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010245694.0A Active CN111459576B (zh) | 2020-03-31 | 2020-03-31 | 一种数据分析处理系统和模型运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459576B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762769A (zh) * | 2018-06-04 | 2018-11-06 | 万惠投资管理有限公司 | 微服务应用编排和部署方法、装置及计算机终端 |
CN109189750A (zh) * | 2018-09-06 | 2019-01-11 | 北京九章云极科技有限公司 | 数据分析工作流的运行方法、数据分析系统及存储介质 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN110287022A (zh) * | 2019-05-28 | 2019-09-27 | 北京大米科技有限公司 | 一种调度节点选择方法、装置、存储介质及服务器 |
CN110795219A (zh) * | 2019-10-24 | 2020-02-14 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 适用于多种计算框架的资源调度方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836431B2 (en) * | 2007-01-22 | 2010-11-16 | Oracle International Corporation | Pipelining of input/output parameters between application tests written in a DBMS procedural language |
US10394926B2 (en) * | 2016-05-17 | 2019-08-27 | JustTagIt, Inc. | Function and memory mapping registry with reactive management events |
CN107066319B (zh) * | 2017-01-17 | 2020-11-10 | 北京中电普华信息技术有限公司 | 一种面向异构资源的多维调度系统 |
CN110647332A (zh) * | 2019-09-30 | 2020-01-03 | 北京百度网讯科技有限公司 | 基于容器云的软件部署方法和装置 |
-
2020
- 2020-03-31 CN CN202010245694.0A patent/CN111459576B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762769A (zh) * | 2018-06-04 | 2018-11-06 | 万惠投资管理有限公司 | 微服务应用编排和部署方法、装置及计算机终端 |
CN109189750A (zh) * | 2018-09-06 | 2019-01-11 | 北京九章云极科技有限公司 | 数据分析工作流的运行方法、数据分析系统及存储介质 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
CN110287022A (zh) * | 2019-05-28 | 2019-09-27 | 北京大米科技有限公司 | 一种调度节点选择方法、装置、存储介质及服务器 |
CN110795219A (zh) * | 2019-10-24 | 2020-02-14 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 适用于多种计算框架的资源调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111459576A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210182036A1 (en) | Hardware platform specific operator fusion in machine learning | |
US10579349B2 (en) | Verification of a dataflow representation of a program through static type-checking | |
CN106909543B (zh) | 一种规则引擎的模式匹配方法和装置 | |
CN109146081B (zh) | 一种用于机器学习平台中创建模型项目的方法及装置 | |
US20050137839A1 (en) | Methods, apparatus and programs for system development | |
CN111459621B (zh) | 云仿真集成与调度方法、装置、计算机设备和存储介质 | |
CN112906206A (zh) | 数字孪生模型构建方法和装置 | |
CN111475137A (zh) | 一种软件开发需求预测的方法、系统及设备 | |
CN114691122A (zh) | 一种业务运行方法、装置、电子设备及存储介质 | |
CN111459576B (zh) | 一种数据分析处理系统和模型运行方法 | |
CN117235527A (zh) | 端到端容器化的大数据模型构建方法、装置、设备及介质 | |
CN115718603A (zh) | 一种Python模型分布式在线部署方法及系统 | |
CN115543534A (zh) | 训练任务的管理方法、装置、电子设备及存储介质 | |
CN114925591A (zh) | 基于多面体模型建模的自动并行策略搜索方法及相关设备 | |
CN114127681A (zh) | 用于实现数据流ai应用的自主加速的方法和装置 | |
CN113626035A (zh) | 基于tvm面向risc-v设备的神经网络编译方法 | |
Hamdan et al. | A scheme for nesting algorithmic skeletons | |
CN111400050A (zh) | 一种分配资源执行任务的方法及装置 | |
KR20220113873A (ko) | 소프트웨어 모듈 개발을 위한 시스템 | |
CN114996008B (zh) | Ai计算图多后端协同计算方法及装置 | |
CN111208980B (zh) | 一种数据分析处理方法和系统 | |
CN115309407B (zh) | 一种可实现算力抽象的方法和系统 | |
CN113918211B (zh) | 一种工业设备对象数据模型的执行方法、装置及设备 | |
CN115167833B (zh) | 编程方法、可执行程序的执行方法及装置 | |
CN114564175A (zh) | 软件开发方法、智能终端及存储介质 |
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 |