CN109871560B - 一种运行目标模型的方法和装置 - Google Patents
一种运行目标模型的方法和装置 Download PDFInfo
- Publication number
- CN109871560B CN109871560B CN201711266947.7A CN201711266947A CN109871560B CN 109871560 B CN109871560 B CN 109871560B CN 201711266947 A CN201711266947 A CN 201711266947A CN 109871560 B CN109871560 B CN 109871560B
- Authority
- CN
- China
- Prior art keywords
- model
- target model
- mirror image
- file
- target
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种运行目标模型的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收运行目标模型的请求;根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中;在所述镜像中运行所述目标模型。该实施方式能够解决运行模型的效率较低的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种运行目标模型的方法和装置。
背景技术
计算机建模(Computer Modeling)是指借助于计算机建立数学模型、数值求解、定量研究某些现象或过程的研究方法,通过计算机建模可以实现对实际工作中的典型问题进行模拟、求解、优化和仿真,以达到通过计算机工具帮助人们解决业务领域的问题,改善业务流程,提高工作效率,通过对各个领域模型的改善达到促进国家宏观经济发展,和实现节能减排的社会效益。
计算机建模的方法和环境发生了很大的变革,传统的C语言模型被大量新兴的基于python的开源算法模型取代。新技术的发展进一步推动了计算机建模技术的发展,提高了研究人员的工作效率,缩短了模型出品的时间。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:目前,一般是在个人电脑上开发模型和算法,调试通过后再模型程序打包部署到服务器上,以手动方式搭建运行环境并运行模型;在上传输入数据后,再建立批处理程序来启动模型程序并传入输入数据。可见,这种工作模式效率较低,需要大量的手工劳动进行模型反复计算。
发明内容
有鉴于此,本发明实施例提供一种运行目标模型的方法和装置,能够解决运行模型的效率较低的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种运行目标模型的方法,包括:
接收运行目标模型的请求;
根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中;
在所述镜像中运行所述目标模型。
可选地,接收运行目标模型的请求,包括:
接收运行目标模型的指令,以及数据文件;
根据所述指令和数据文件,生成运行所述目标模型所需的模型输入数据;
其中,所述模型输入数据包括压缩文件,所述压缩文件中包括配置文件和数据文件,所述配置文件中包括所述目标模型运行所需的模型参数和所述数据文件的目录。
可选地,接收运行目标模型的请求,之后,还包括:
解析所述请求,获取运行所述目标模型的模型输入数据;
确定所述模型输入数据为目标模型可运行的数据,根据所述请求生成模型运行任务;
在获得空闲的计算节点后,将所述模型运行任务分配给所述计算节点。
可选地,根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中,包括:
将模型输入数据传输到所述计算节点上;
根据所述模型运行任务获取所述目标模型的信息,根据预设的目标模型与镜像的映射关系获取所述目标模型对应的镜像的信息;
确定所述计算节点上已安装有所述目标模型和所述镜像;
将所述目标模型加载到所述镜像中。
可选地,生在所述镜像中运行所述目标模型,之后,还包括:
提取所述目标模型的运行结果;
将所述运行结果存入文件系统中;
将所述运行结果的文件路径存入任务数据库表中。
另外,根据本发明实施例的另一个方面,提供了一种运行目标模型的装置,包括:
接收模块,用于接收运行目标模型的请求;
加载模块,用于根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中;
运行模块,用于在所述镜像中运行所述目标模型。
可选地,所述接收模块用于:
接收运行目标模型的指令,以及数据文件;
根据所述指令和数据文件,生成运行所述目标模型所需的模型输入数据;
其中,所述模型输入数据包括压缩文件,所述压缩文件中包括配置文件和数据文件,所述配置文件中包括所述目标模型运行所需的模型参数和所述数据文件的目录。
可选地,所述装置还包括任务调度模块,用于:
解析所述请求,获取运行所述目标模型的模型输入数据;
确定所述模型输入数据为目标模型可运行的数据,根据所述请求生成模型运行任务;
在获得空闲的计算节点后,将所述模型运行任务分配给所述计算节点。
可选地,所述加载模块用于:
将模型输入数据传输到所述计算节点上;
根据所述模型运行任务获取所述目标模型的信息,根据预设的目标模型与镜像的映射关系获取所述目标模型对应的镜像的信息;
确定所述计算节点上已安装有所述目标模型和所述镜像;
将所述目标模型加载到所述镜像中。
可选地,所述运行模块还用于:
提取所述目标模型的运行结果;
将所述运行结果存入文件系统中;
将所述运行结果的文件路径存入任务数据库表中。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中,从而在镜像中运行目标模型的技术手段,所以克服了运行模型的效率较低的技术问题,避免运行模型时以手动方式搭建运行环境并运行模型,进而达到提高运行模型的效率的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的运行目标模型的方法的主要流程的示意图;
图2是根据本发明一个可参考实施例的运行目标模型的方法的主要流程的示意图;
图3是根据本发明实施例的运行目标模型的装置的主要模块的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的运行目标模型的方法。作为本发明的一个实施例,如图1所示,所述运行目标模型的方法可以包括:
步骤101,接收运行目标模型的请求。
其中,所述请求可以包括运行目标模型的指令和运行所述目标模型所需的模型输入数据。具体地,可以通过WebUI(Web User Interface,网页(网站)应用程序用户界面)获取用户输入的运行目标模型的指令和运行所述目标模型所需的模型输入数据。其中,所述指令可以包括目标模型的名称和版本等信息。
在本发明的一个实施例中,所述模型输入数据包括压缩文件,所述压缩文件中包括配置文件和数据文件,所述配置文件中包括所述目标模型运行所需的模型参数和所述数据文件的目录。需要说明的是,每一个模型都需要定义具体的参数来运行,不同模型的参数的名称不同。所述数据文件的目录与数据文件一一关联,以使模型运行时能够通过所述目录获取对应的数据文件。
可选地,所述压缩文件的类型可以是zip、rar或者cab等。可选地,所述配置文件的类型可以是yaml、ini、xml或者json等。可选地,所述数据文件的类型可以是文本(txt、excel、pdf等)或者图片(bmp、jpg、png等)等。因此,采用所述模型输入数据可以规范每个模型的输入信息,以使模型能够识别并且解析模型输入数据,从而便于数据交互。
作为本发明的再一个实施例,所述模型输入数据为Zip文件。例如,Zip文件中的内容可以如下:
config.yaml
input1.txt
input2.txt
…
在本发明的另一个实施例中,所述步骤101可以包括:
接收运行目标模型的指令,以及数据文件;
根据所述指令和数据文件,生成运行所述目标模型所需的模型输入数据。
其中,所述模型输入数据包括压缩文件,所述压缩文件中包括配置文件和数据文件,所述配置文件中包括所述目标模型运行所需的模型参数和所述数据文件的目录。
可选地,提供面向用户的模型列表,以供用户选择。举例来说,WebUI上提供有模型列表,可供用户选择。当用户选择目标模型,并上传数据文件后,生成模型输入数据,然后通过接收接口来接收所述模型输入数据。可选地,还可以进一步向用户提供各个模型的说明信息和可供下载的样本文件,以便于用户选择合适的目标模型以及提供正确的数据文件。
需要说明的是,所述数据文件的类型与目标模型自身的要求有关,本发明不做限制。每一个模型都需要定义具体的数据文件的类型来运行,不同模型运行所需的数据文件的类型可以不同。因此,用户可以根据样本文件提供目标模型运行所需的数据文件,样本文件可以规范数据文件,避免出现数据文件的类型不正确或者缺少数据文件,导致模型无法运行的问题。
步骤102,根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中。
在该步骤中,通过解析所述请求确定目标模型,并根据预设的目标模型与镜像的映射关系确定所述目标模型对应的镜像,然后加载所述镜像,再将目标模型加载到所述镜像中。具体地,可以将获取的模型输入数据上传到计算节点,根据所述指令以及预设的目标模型与镜像的映射关系,确定目标模型和所述目标模型对应的镜像(例如名称和版本等信息);然后加载所述镜像到所述计算节点上;再将目标模型加载到所述镜像中。
可以预先设置目标模型与镜像的映射关系,并且存储目标模型与镜像的映射关系。通过解析所述请求确定目标模型后,可以进一步根据目标模型与镜像的映射关系确定所述目标模型对应的镜像。
可选地,在步骤101之后、步骤102之前,还可以包括:
解析所述请求,获取运行所述目标模型的模型输入数据;
确定所述模型输入数据为目标模型可运行的数据,根据所述请求生成模型运行任务;
在获得空闲的计算节点后,将所述模型运行任务分配给所述计算节点。
在该步骤中,检查模型输入数据的内容,确定所述模型输入数据中包含有配置文件,并且配置文件中包含所述目标模型运行所需的参数和数据文件,以使目标模型能够顺利地运行,减少运行出错的几率。
举例来说,对压缩文件的内容进行检查,判断其是否是合法的压缩文件,是否包含了配置文件,该配置文件是否包含了模型参数,这些模型参数与目标模型运行所需的模型参数是否相符合,以及数据文件的类型与模型的样本文件是否相符合。还可以进一步判断配置文件中的数据文件目录与压缩文件中的数据文件是否匹配。若符合上述所有要求,则根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中;若不符合上述所有要求,则结束运行,并给出具体的提示信息(例如无法运行的原因以及修改模型输入数据的建议)。
因此,通过确定所述模型输入数据为目标模型可运行的数据,可以减少后续步骤中目标模型运行出错的几率,避免无效操作,从而提高运行模型的效率。
作为本发明的再一个实施例,可以将根据所述请求生成的模型运行任务加入到任务队列中,依次读取任务队列中的模型运行任务。具体地,根据所述请求生成模型运行任务,将所述模型运行任务加入到计算引擎的任务队列的尾部,依次执行任务队列中的任务,当所述模型运行任务位于任务队列的头部时,从所述任务队列的头部取出所述模型运行任务;接着,从资源池中申请空闲的计算节点,获得空闲的计算节点后,将所述模型运行任务分配给空闲的计算节点。
在本发明的再一个实施例中,步骤102包括:
将所述模型输入数据传输到计算节点上;
根据所述模型运行任务获取所述目标模型的信息,根据预设的目标模型与镜像的映射关系获取所述目标模型对应的镜像的信息;
确认所述计算节点上已安装有所述目标模型和所述镜像;
将所述目标模型加载到所述镜像中。
举例来说,在获得空闲的计算节点后,将模型输入数据传输到该计算节点的数据目录下,以任务ID为该任务建立数据子目录,将模型输入数据放入所述数据子目录下,并解析所述模型输入数据。具体来说,是将压缩文件放入数据子目录下,并解压缩,以供目标模型运行使用。当执行模型运行任务时,根据任务ID提取任务信息,所述任务信息至少包括镜像信息、模型信息。可选地,在确定所述模型输入数据为目标模型可运行的数据之后,存储所述模型输入数据,并且所述任务信息还可以进一步包括模型输入数据的存储地址。
需要指出的是,在确定所述模型输入数据为目标模型可运行的数据之后,执行生成模型运行任务、分配模型运行任务和加载等步骤。
作为本发明的又一个实施例,在确定所述模型输入数据为目标模型可运行的数据之后,根据所述请求以及预设的目标模型与镜像的映射关系,生成模型运行任务,将所述模型运行任务加入到任务队列中。那么在后续步骤中,则可以根据所述模型运行任务直接确定目标模型的信息和镜像的信息。
可选地,根据所述模型运行任务获得目标模型对应的镜像的信息(例如名称和版本等信息),判断计算节点上是否已安装有所述镜像,如果计算节点已安装有所述镜像,则跳过此步骤,如果计算节点没有安装所述镜像,则安装所述镜像到该计算节点。具体地,可以从镜像仓库下载镜像的程序文件,并安装到计算节点的指定程序目录。
根据模型运行任务确定镜像的名称和版本,将该镜像下载到计算节点本地环境,可以使用以下命令实现镜像下载:
docker pull 192.168.1.12:5000/centos-base:1.0
可以通过命令输出下载信息,以监测下载状态,当完成下载时进行下一步操作。
Docker容器是一个开源的应用容器引擎,为计算机虚拟化的发展做出了突破性的贡献。Docker核心解决的问题是利用LXC来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源,实现了计算机资源的隔离性、可调整配额、移动性和安全性的要求。Docker官方网站和开源贡献者提供了很多基础镜像,开发者可以将自己的应用程序和对应打包到一个基础镜像中,从而建立自己的定制化镜像,然后将镜像发布到运行Docker的Linux/Windows服务器上运行,完成运行任务和提供应用服务。这种工作模式大幅度提高了计算资源的利用率,节省了开发人员安装操作系统及基础软件运行环境的时间,实现了镜像的开箱即用。
可以由镜像管理模块负责镜像的管理,并提供API(Application ProgrammingInterface,应用程序编程接口)允许其他模块获得当前的镜像列表。可以根据不同的运行环境制作多种Docker镜像,以满足不同模型的运行要求,为每个镜像指定一个全局唯一的名称,并附加Docker镜像的安装软件列表详细信息,供调用者参考。举例说明制作Docker镜像的过程:选择一个基础镜像(可以选择centos的最小集镜像,也可以自由选择其它的Linux系统),在此镜像基础上安装好python的运行环境,以及pandas开发包程序,然后将镜像打包发布到镜像中心。
可以使用registry启动私有仓库的容器,也可以使用开源的Docker hub或者选择其他的收费的镜像仓库。建设好镜像仓库后,可将本地建立的Docker镜像上传到镜像仓库。
私有仓库的启动命令可以如下:
docker run-d-p 5000:5000-v/root/my_registry:/tmp/registry
registry
推送镜像的命令可以为:
docker push 192.168.1.12:5000/centos-base:1.0
可以使用Spring Boot建立一个http微服务程序,然后通过java httpclient远程访问程序包获取镜像仓库(地址:http://192.168.1.12:5000/v1/search)的列表,返回给调用者使用。返回的镜像列表格式通过微服务包装为json字符串,样例可以如下:
{"num_results":1,"query":"","results":[{"description":"",
"name":"library/centos-base"}]}
可选地,根据所述模型运行任务获得目标模型的信息(例如名称和版本等信息),判断计算节点上是否已安装所述目标模型,如果计算节点已安装所述目标模型,则跳过此步骤,如果计算节点没有安装所述目标模型,则安装所述目标模型到该计算节点。具体地,从模型仓库下载目标模型的程序文件,并安装到计算节点的指定程序目录。目录的命名可以采用模型id+版本的方式。
举例来说,根据模型运行任务确定目标模型的名称和版本,将目标模型通过httpclient下载到计算节点的本地目录(例如/local/models/centos-base-1.0),并且解压缩zip文件;然后校验文件,要求目录下至少存在startup.sh启动脚本。然后将模型输入数据下载到计算节点,解压缩到本地目录(例如/local/task/taskxxx/input/),然后校验文件,要求该目录下必须有config.yaml的文件。
具体地,可以由模型管理模块负责模型管理功能,例如模型的分类和维护。用户将制作好的模型打包成压缩文件,再通过模型管理模块上传到文件服务器,并指定模型的名称、版本、说明信息、公式、运行时对应的镜像名称、版本,以及样本文件等信息,将模型信息存入数据库供调用者使用。因此,所述数据库中预先存储有模型的信息以及各个模型运行时对应的镜像信息。具体地,可以预先设置目标模型与镜像的映射关系,并且存储目标模型与镜像的映射关系,以便于在步骤102中根据所述映射关系确定目标模型对应的镜像。
模型管理模块提供了模型的管理控制台,是基于SpringMVC构建的一套后台管理系统,包括模型制作、模型上传、模型修改、模型删除、模型下载、模型样例下载等功能,有利于模型的统一管理和复用。
模型定义:模型的打包文件格式为zip格式,压缩包里面要求至少包含一个叫做startup.sh的启动脚本,用于启动模型算法程序,此为一个约定,如果不符合此约定将无法找到可执行命令。
模型管理:模型制作完成后直接打包成zip文件,通过web界面上传到管理控制台,首先创建一个模型,再制定模型的名称、简要说明、算法描述、模型zip包、模型样板zip包,上传文件后提交。进一步地,还可以对模型进行修改、删除或者下载等。
步骤103,在所述镜像中运行所述目标模型。
在该步骤中,在确定安装镜像和目标模型后,启动镜像,并在所述镜像中运行目标模型。
可选地,在所述镜像中运行所述目标模型,包括:将所述目标模型的计算程序目录、数据文件的目录和启动脚本组装成可执行的镜像命令,通过调用所述镜像命令运行所述目标模型。
模型通过解析配置文件提取模型运行所需的参数和数据文件,并作为输入信息传递给算法本身,所以模型的参数可以指定算法的运行参数或者运行模式,在模型内部根据参数决定算法以何种模式进行计算。
作为本发明的再一个实施例,调用docker命令指定模型目录,并启动该模型的startup.sh,同时将输入文件的目录以参数方式传递给startup.sh,并且把任务日志定向到/local/task/taskxxx/logs/main.log里。可以通过Runtime运行docker命令并等待任务执行完成。
任务执行完成后,提取任务日志。具体地,可以访问计算节点本地的路径,例如:/local/task/taskxxx/logs/main.log,从而提取任务日志。由于每个模型运行任务的ID不同,因此日志文件是独立的。
可选地,在步骤103之后,还可以包括:生成目标模型的运行结果,以使用户可以查看和下载运行结果。
在本发明的又一个实施例中,生成目标模型的运行结果,包括:
提取所述目标模型的运行结果数据;
将所述运行结果数据存入文件系统中;
将所述运行结果数据的文件路径存入任务数据库表中。
可选地,所述运行结果数据包括压缩文件,所述压缩文件中包括阅读指南文件和模型运行结果的文件列表。具体地,目标模型将运行结果数据压缩成压缩文件,所述压缩文件包括阅读指南文件(例如readme.txt,以提供输出文件的说明)和模型运行结果的文件列表。
作为本发明的再一个实施例,所述运行结果数据为Zip文件。例如,Zip文件内容可以如下:
readme.txt
output1.txt
output2.txt
…
可选地,任务执行完成后,提取运行结果数据,将模型的运行结果数据存储到HDFS(Hadoop分布式文件系统)中。例如:/local/task/taskxxx/output/result.zip,文件的名称可以由模型定义来指定。可选地,所述运行结果数据可以调用HDFS的API进行存储。然后,将运行结果数据的文件路径存入任务数据库表中,并更新任务的状态。
在步骤103之后,还可以进一步包括:输出与所述运行结果关联的下载连接地址。具体地,通过WebUI向用户提供运行结果数据的下载连接地址。当获取下载指令时,通过读取HDFS的API,将存储的文件返回给调用者(即用户)。WebUI上可以显示下载结果按钮,供用户下载运行结果数据。
在步骤103之后,还可以进一步包括:向用户推送包含下载连接地址的消息。例如可以采用发送邮件、弹出消息框等方式,向用户提示模型运行结束,并可以通过下载连接地址获取运行结果数据。
当计算节点完成计算后,可以将计算节点回收至资源池中。
根据上面所述的各种实施例,可以看出本发明通过采用根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中的技术手段,从而解决了运行模型的效率较低的问题。也就是说,现有技术是以手动方式搭建运行环境并运行模型,导致运行模型的效率较低,而本发明是根据用户指令确定目标模型及其对应的镜像,并在镜像中运行目标模型,避免以手动方式搭建运行环境、运行模型,从而提高运行模型的效率。
因此,用户可以通过浏览器打开地址进行模型运行,等待任务执行完成后再下载运行结果数据和任务日志,如果运行异常也可以通过日志来查看,调整后再运行。本发明实施例提供的方法减少了用户搭建模型运行环境的工作,可以重复运行模型。而且,只需要修改模型参数和/或数据文件,即可将模型重新运行一次,非常方便。
图2是根据本发明一个可参考实施例的运行目标模型的方法的主要流程的示意图,所述运行目标模型的方法可以包括:
步骤201,接收运行目标模型的请求;
步骤202,解析所述请求,获取运行所述目标模型的模型输入数据;
步骤203,判断所述模型输入数据是否为目标模型可运行的数据;若是,则执行步骤204;若否,则结束;
步骤204,根据所述请求生成模型运行任务,将所述模型运行任务加入到任务队列中;
步骤205,依次读取任务队列中的模型运行任务;
步骤206,从资源池中申请空闲的计算节点;
步骤207,在获得空闲的计算节点后,将所述模型运行任务分配给所述计算节点;
步骤208,将模型输入数据传输到计算节点上,并且根据所述模型运行任务获取所述目标模型的信息,继而根据预设的目标模型与镜像的映射关系获取所述目标模型对应的镜像的信息;
步骤209,判断所述计算节点上是否已经安装有所述镜像;若是,则执行步骤210;若否,则执行步骤211;
步骤210,判断所述计算节点上是否已经安装有所述目标模型;若是,则执行步骤213;若否,则执行步骤212;
步骤211,在所述计算节点上安装所述镜像;
步骤212,在所述计算节点上安装所述目标模型;
步骤213,将所述目标模型加载到所述镜像中;
步骤214,在所述镜像中运行所述目标模型;
步骤215,生成目标模型的运行结果。
另外,在本发明一个可参考实施例中所述运行目标模型的方法的具体实施内容,在上面所述运行目标模型的方法中已经详细说明了,故在此重复内容不再说明。
图3是根据本发明实施例的运行目标模型的装置,如图3所示,所述运行目标模型的装置300包括接收模块301、加载模块302以及运行模块303。其中,接收模块301用于接收运行目标模型的请求;加载模块302用于根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中;运行模块303用于在所述镜像中运行所述目标模型。
可选地,所述请求可以包括运行目标模型的指令和运行所述目标模型所需的模型输入数据。
作为本发明的又一个实施例,所述接收模块301用于:
接收运行目标模型的指令,以及数据文件;
根据所述指令和数据文件,生成运行所述目标模型所需的模型输入数据。
其中,所述模型输入数据包括压缩文件,所述压缩文件中包括配置文件和数据文件,所述配置文件中包括所述目标模型运行所需的模型参数和所述数据文件的目录。需要说明的是,每一个模型都需要定义具体的参数来运行,不同模型的参数的名称不同。所述数据文件的目录与数据文件一一关联,以使模型运行时能够通过所述目录获取对应的数据文件。
可选地,提供面向用户的模型列表,以供用户选择。举例来说,WebUI上提供有模型列表,可供用户选择。当用户选择目标模型,并上传数据文件后,生成模型输入数据,然后通过接收接口来接收所述模型输入数据。
作为本发明的再一个实施例,所述装置还包括任务调度模块,用于:
解析所述请求,获取运行所述目标模型的模型输入数据;
确定所述模型输入数据为目标模型可运行的数据,根据所述请求生成模型运行任务;
在获得空闲的计算节点后,将所述模型运行任务分配给所述计算节点。
任务调度模块检查模型输入数据的内容,确定所述模型输入数据中包含有配置文件,并且配置文件中包含所述目标模型运行所需的参数和数据文件,以使目标模型能够顺利地运行,减少运行出错的几率。
作为本发明的再一个实施例,所述加载模块302用于:
将模型输入数据传输到所述计算节点上;
根据所述模型运行任务获取所述目标模型的信息,根据预设的目标模型与镜像的映射关系获取所述目标模型对应的镜像的信息;
确认所述计算节点上已安装有所述目标模型和所述镜像;
将所述目标模型加载到所述镜像中。
具体地,所述任务调度模块根据所述指令生成模型运行任务,将所述模型运行任务加入到计算引擎的任务队列的尾部,依次执行任务队列中的任务,当所述模型运行任务位于任务队列的头部时,从所述任务队列的头部取出所述模型运行任务;接着,从资源池中申请空闲的计算节点,获得空闲的计算节点后,将所述模型运行任务分配给空闲的计算节点。
可选地,所述任务调度模块负责任务队列的维护和任务调度,为调用者提供任务接收微服务接口,将新增的模型运行任务加入任务队列的尾部,定时地从任务队列的头部取出模型运行任务进行调度,并申请计算节点,安排模型运行任务的执行。
可选地,所述加载模块302根据所述模型运行任务获得目标模型对应的镜像的信息(例如名称和版本等信息),判断计算节点上是否已安装有所述镜像,如果计算节点已安装有所述镜像,则跳过此步骤,如果计算节点没有安装所述镜像,则安装所述镜像到该计算节点。
可选地,所述加载模块302根据所述模型运行任务获得目标模型的信息(例如名称和版本等信息),判断计算节点上是否已安装所述目标模型,如果计算节点已安装所述目标模型,则跳过此步骤,如果计算节点没有安装所述目标模型,则安装所述目标模型到该计算节点。
在本发明的一些实施例中,所述运行模块303还用于:
提取所述目标模型的运行结果;
将所述运行结果存入文件系统中;
将所述运行结果的文件路径存入任务数据库表中。
可选地,所述运行结果数据包括压缩文件,所述压缩文件中包括阅读指南文件和模型运行结果的文件列表。具体地,目标模型将运行结果数据压缩成压缩文件,所述压缩文件包括阅读指南文件(例如readme.txt,以提供输出文件的说明)和模型运行结果的文件列表。
可选地,所述装置还包括输出模块,用于:输出与所述运行结果关联的下载连接地址。
可选地,所述装置还包括提示模块,用于:向用户发送包含下载连接地址的提示。
当计算节点完成计算后,将计算节点回收至资源池中。具体地,可以由计算资源管理模块负责计算资源的管理,为模型运行任务分配、回收计算节点,还提供对计算节点进行注册等的维护操作。所述计算资源管理模块还提供计算节点申请的微服务接口,以供其他模块调用。
根据上面所述的各种实施例,可以看出本发明通过采用根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中,从而在镜像中运行目标模型的技术手段,解决了运行模型的效率较低的问题。也就是说,现有技术是以手动方式搭建运行环境并运行模型,导致运行模型的效率较低,而本发明是根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中,并在镜像中运行目标模型,避免以手动方式搭建运行环境、运行模型,从而提高运行模型的效率。
需要说明的是,在本发明所述运行目标模型的装置的具体实施内容,在上面所述运行目标模型的方法中已经详细说明了,故在此重复内容不再说明。
图4示出了可以应用本发明实施例的运行目标模型的方法或运行目标模型的装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息——仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的运行目标模型的方法一般由服务器405执行,也可以在公共场所的终端设备401、402、403上执行,相应地,所述运行目标模型的装置一般设置于服务器405中,也可以设置在公共场所的终端设备401、402、403中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、加载模块和运行模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收运行目标模型的请求;根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中;在所述镜像中运行所述目标模型。
根据本发明实施例的技术方案,因为采用根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中,从而在镜像中运行目标模型的技术手段,所以克服了运行模型的效率较低的技术问题,避免运行模型时以手动方式搭建运行环境并运行模型,进而达到提高运行模型的效率的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (8)
1.一种运行目标模型的方法,其特征在于,包括:
接收运行目标模型的请求;解析所述请求,获取运行所述目标模型的模型输入数据;
确定所述模型输入数据为目标模型可运行的数据,根据所述请求生成模型运行任务;
在获得空闲的计算节点后,将所述模型运行任务分配给所述计算节点;
根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,包括:
将模型输入数据传输到所述计算节点上;
根据所述模型运行任务获取所述目标模型的信息,根据预设的目标模型与镜像的映射关系获取所述目标模型对应的镜像的信息;
确定所述计算节点上已安装有所述目标模型和所述镜像;将所述目标模型加载到所述镜像中;
在所述镜像中运行所述目标模型。
2.根据权利要求1所述的方法,其特征在于,接收运行目标模型的请求,包括:
接收运行目标模型的指令,以及数据文件;
根据所述指令和数据文件,生成运行所述目标模型所需的模型输入数据;
其中,所述模型输入数据包括压缩文件,所述压缩文件中包括配置文件和数据文件,所述配置文件中包括所述目标模型运行所需的模型参数和所述数据文件的目录。
3.根据权利要求1所述的方法,其特征在于,在所述镜像中运行所述目标模型,之后,还包括:
提取所述目标模型的运行结果;
将所述运行结果存入文件系统中;
将所述运行结果的文件路径存入任务数据库表中。
4.一种运行目标模型的装置,其特征在于,包括:
接收模块,用于接收运行目标模型的请求;
加载模块,用于根据预设的目标模型与镜像的映射关系,获取所述目标模型对应的镜像,将所述目标模型加载到所述镜像中;
运行模块,用于在所述镜像中运行所述目标模型;
还包括任务调度模块,用于:
解析所述请求,获取运行所述目标模型的模型输入数据;
确定所述模型输入数据为目标模型可运行的数据,根据所述请求生成模型运行任务;
在获得空闲的计算节点后,将所述模型运行任务分配给所述计算节点;
所述加载模块用于:
将模型输入数据传输到所述计算节点上;
根据所述模型运行任务获取所述目标模型的信息,根据预设的目标模型与镜像的映射关系获取所述目标模型对应的镜像的信息;
确定所述计算节点上已安装有所述目标模型和所述镜像;
将所述目标模型加载到所述镜像中。
5.根据权利要求4所述的装置,其特征在于,所述接收模块用于:
接收运行目标模型的指令,以及数据文件;
根据所述指令和数据文件,生成运行所述目标模型所需的模型输入数据;
其中,所述模型输入数据包括压缩文件,所述压缩文件中包括配置文件和数据文件,所述配置文件中包括所述目标模型运行所需的模型参数和所述数据文件的目录。
6.根据权利要求4所述的装置,其特征在于,所述运行模块还用于:
提取所述目标模型的运行结果;
将所述运行结果存入文件系统中;
将所述运行结果的文件路径存入任务数据库表中。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一所述的方法。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-3中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711266947.7A CN109871560B (zh) | 2017-12-05 | 2017-12-05 | 一种运行目标模型的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711266947.7A CN109871560B (zh) | 2017-12-05 | 2017-12-05 | 一种运行目标模型的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871560A CN109871560A (zh) | 2019-06-11 |
CN109871560B true CN109871560B (zh) | 2023-08-08 |
Family
ID=66916371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711266947.7A Active CN109871560B (zh) | 2017-12-05 | 2017-12-05 | 一种运行目标模型的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871560B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817737B (zh) * | 2019-11-15 | 2024-10-18 | 北京沃东天骏信息技术有限公司 | 一种模型实时调用方法和装置 |
CN111338641A (zh) * | 2020-02-11 | 2020-06-26 | 腾讯云计算(北京)有限责任公司 | 一种应用发布方法及装置 |
CN111459588A (zh) * | 2020-03-27 | 2020-07-28 | 深圳融安网络科技有限公司 | 大数据模型设置方法、终端设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1767537A (zh) * | 2005-11-23 | 2006-05-03 | 北京邮电大学 | 模型驱动、适合不同接口和平台技术的融合业务生成方法 |
CN106156186A (zh) * | 2015-04-21 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种数据模型管理装置、服务器及数据处理方法 |
US9626166B1 (en) * | 2016-01-26 | 2017-04-18 | International Business Machines Corporation | Common secure cloud appliance image and deployment |
CN106789339A (zh) * | 2017-01-19 | 2017-05-31 | 北京仿真中心 | 一种基于轻量级虚拟化架构的分布式云仿真方法与系统 |
CN106953862A (zh) * | 2017-03-23 | 2017-07-14 | 国家电网公司 | 网络安全态势的感知方法和装置及感知模型训练方法和装置 |
-
2017
- 2017-12-05 CN CN201711266947.7A patent/CN109871560B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1767537A (zh) * | 2005-11-23 | 2006-05-03 | 北京邮电大学 | 模型驱动、适合不同接口和平台技术的融合业务生成方法 |
CN106156186A (zh) * | 2015-04-21 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种数据模型管理装置、服务器及数据处理方法 |
US9626166B1 (en) * | 2016-01-26 | 2017-04-18 | International Business Machines Corporation | Common secure cloud appliance image and deployment |
CN106789339A (zh) * | 2017-01-19 | 2017-05-31 | 北京仿真中心 | 一种基于轻量级虚拟化架构的分布式云仿真方法与系统 |
CN106953862A (zh) * | 2017-03-23 | 2017-07-14 | 国家电网公司 | 网络安全态势的感知方法和装置及感知模型训练方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109871560A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
CN108304201B (zh) | 对象更新方法、装置及设备 | |
CN108196915A (zh) | 基于应用容器引擎的代码处理方法、设备及存储介质 | |
CN110543297B (zh) | 用于生成源码的方法和装置 | |
CN109871560B (zh) | 一种运行目标模型的方法和装置 | |
CN113760488B (zh) | 调度任务的方法、装置、设备和计算机可读介质 | |
CN110888639A (zh) | 一种业务代码编译打包方法和装置 | |
CN110704025A (zh) | 编码规范工具的生成方法和装置、存储介质、电子设备 | |
CN111125064A (zh) | 一种生成数据库模式定义语句的方法和装置 | |
US9996344B2 (en) | Customized runtime environment | |
CN112835568A (zh) | 一种项目构建方法和装置 | |
CN113297081B (zh) | 一种持续集成流水线的执行方法和装置 | |
CN113296828B (zh) | 一种发布应用的方法、服务器和系统 | |
CN112083945A (zh) | Npm安装包的更新提示方法、装置、电子设备及存储介质 | |
CN110825622A (zh) | 软件测试方法、装置、设备和计算机可读介质 | |
CN115794637A (zh) | 自动化测试的方法、装置、设备和计算机可读介质 | |
CN112491940A (zh) | 代理服务器的请求转发方法及装置、存储介质及电子设备 | |
CN111488268A (zh) | 自动化测试的调度方法和调度装置 | |
CN112559001B (zh) | 更新应用的方法和装置 | |
CN112099841A (zh) | 一种生成配置文件的方法和系统 | |
CN113253991A (zh) | 任务可视化处理方法及装置、电子设备、存储介质 | |
CN112817737B (zh) | 一种模型实时调用方法和装置 | |
CN112988528B (zh) | 日志处理方法、装置及容器组 | |
CN118535140B (zh) | Api框架下多版本控制方法、系统、设备及存储介质 | |
CN116126426B (zh) | 基于Web服务系统的自动化组件解耦方法及系统 |
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 |