CN112015519A - 模型线上部署方法及装置 - Google Patents

模型线上部署方法及装置 Download PDF

Info

Publication number
CN112015519A
CN112015519A CN202010886567.9A CN202010886567A CN112015519A CN 112015519 A CN112015519 A CN 112015519A CN 202010886567 A CN202010886567 A CN 202010886567A CN 112015519 A CN112015519 A CN 112015519A
Authority
CN
China
Prior art keywords
model
container
alias
version number
tensorflow
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.)
Pending
Application number
CN202010886567.9A
Other languages
English (en)
Inventor
李昌盛
禹平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Yincheng Network Technology Co Ltd
Original Assignee
Jiangsu Yincheng Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu Yincheng Network Technology Co Ltd filed Critical Jiangsu Yincheng Network Technology Co Ltd
Priority to CN202010886567.9A priority Critical patent/CN112015519A/zh
Publication of CN112015519A publication Critical patent/CN112015519A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种模型线上部署方法及装置,接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型;将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号;基于所述封装后的模型生成对应的容器,所述容器基于版本号以及别名调用所述封装后的模型;将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas线上平台的基础架构处。本发明与以往主流的方式相比,算法工程师无需关注模型服务的构建,能够专心研究模型本身,模型更新和多模型的部署快速高效,使短时间上线并验证更多的模型成为可能,与此同时,与Kubernetes结合,使得模型服务的调度管理更加可靠,能够动态适应访问量的变化,使服务更加可靠。

Description

模型线上部署方法及装置
技术领域
本发明涉及人工智能技术,尤其涉及一种模型线上部署方法及装置。
背景技术
AI服务已经成为当今互联网公司最重要的依赖之一,是公司保持高速增长与高效运营的核心技术。AI现有的服务方式,主要是基于现有的大数据,通过算法,离线训练模型,然后再用在线服务的方式将模型产生的结果对外进行服务。
然而如何将在离线环境下训练的模型用于线上部署、达到近实时的推断一直都是业界的难点。目前主流的方式主要有以下几种:
1、离线训练+缓存模式。每隔一段时间在离线环境下生成对用户的推荐结果,并将结果存储在redis缓存中,在用户访问网站时,业务服务直接从缓存取出预存的推荐结果数据推荐给用户即可,这种方式的优缺点都极其明显,优点是无需实现线上推断的代码,离线环境和线上环境解耦,线上时延低,缺点是缓存中需要存储大量的推荐结果,对缓存的考验是巨大的,无法引入用户上下文信息,无法解决冷启动等问题,准确性和灵活性受到了限制。
2、自研模型训练和服务平台。这样做的好处是能够根据公司的硬件环境和业务需求进行定制化实现,兼顾模型和效率,也可以适应一些特殊的模型需求,缺点是实现模型的成本太高,迭代周期长,无法快速部署大量的模型,模型的调优和模型间的比较难度较大。
3、Embedding生成+轻量级线上模型。业界普遍采用在离线环境下生成用户和商品的Embedding数据,存入缓存中,线上实现逻辑回归等轻量级模型拟合优化目标的上线方式,这种方式依然存在很明显的缺点,隔离模型训练过程,模型单一,对比实验依然要大量的开发工作。
4、利用PMML部署模型。PMML的好处在于能够将训练好的模型保存为XML格式,脱离平台,是连接离线训练和线上部署的媒介,缺点在于对于复杂的模型表达能力不够,会出现小概率预测出错的问题,对于复杂的模型生成的文件过大,加载使用耗时较多。
以上方式普遍存在下面的问题:
1.模型更新迭代较慢,需要耗费大量时间编写服务端代码;
2.无法保证服务热更新,在不中断服务的情况下完成模型更新;
3.在离线训练的模型跟在线服务之间的衔接过程中,无法快速有效的将离线训练模型部署到线上服务;
针对于以上的3个问题,还没有一种技术方案能够同时解决。
发明内容
本发明实施例提供一种模型线上部署方法及装置,能够在线上部署模型时,使模型更新迭代较快,不用耗费大量时间编写服务端代码,并且能够保证服务热更新,在不中断服务的情况下完成模型更新,以及在离线训练的模型跟在线服务之间的衔接过程中,能够快速有效的将离线训练模型部署到线上服务。
本发明实施例的第一方面,提供一种模型线上部署方法,包括:
接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型;
将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号;
基于所述封装后的模型生成对应的容器,所述容器基于版本号以及别名调用所述封装后的模型;
将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas线上平台的基础架构处。
可选地,在第一方面的一种可能实现方式中,接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型包括:
将训练后的模型保存为一个pb文件saved_model.pb和一个变量文件夹variables,当模型在处理过程中包含Variable tensor时,variables不为空。
可选地,在第一方面的一种可能实现方式中,在所述将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号包括:
生成TensorFlow serving的Docker环境;
所述TensorFlow serving的Docker环境用于对所述模型镜像后分别封装处理。
可选地,在第一方面的一种可能实现方式中,其中所述TensorFlow serving分别包括RESTful和GRPC两种访问模式。
可选地,在第一方面的一种可能实现方式中,在将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas平台的基础架构处的步骤后,还包括:
Paas平台接收处理数据;
所述容器对所述处理数据进行处理,获得相应的模型对应的版本号以及别名;
所述容器基于模型对应的版本号以及别名调取封装后的模型对所述处理数据进行处理生成结果数据;
所述容器将所述结果数据基于Paas平台输出。
本发明实施例的第一方面,提供一种模型线上部署装置,包括:
TensorFlow模型训练模块,用于接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型;
封装模块,用于将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号;
容器生成模块,用于基于所述封装后的模型生成对应的容器,所述容器基于版本号以及别名调用所述封装后的模型;
在线部署模块,用于将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas线上平台的基础架构处。
可选地,在第二方面的一种可能实现方式中,所述TensorFlow模型训练模块还用于将训练后的模型保存为一个pb文件saved_model.pb和一个变量文件夹variables,当模型在处理过程中包含Variable tensor时,variables不为空。
可选地,在第二方面的一种可能实现方式中,所述封装模块还包括:
第一封装子模块,用于生成TensorFlow serving的Docker环境;
第二封装子模块,用于所述TensorFlow serving的Docker环境用于对所述模型镜像后分别封装处理。
可选地,在第二方面的一种可能实现方式中,所述装置还包括:
接收模块,用于Paas平台接收处理数据;
处理模块,用于所述容器对所述处理数据进行处理,获得相应的模型对应的版本号以及别名;
结果生成模块,用于所述容器基于模型对应的版本号以及别名调取封装后的模型对所述处理数据进行处理生成结果数据;
输出模块,用于所述容器将所述结果数据基于Paas平台输出。
本发明实施例的第三方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本发明第一方面及第一方面各种可能设计的所述方法。
本发明提供的一种模型线上部署方法及装置,具有以下的优点,包括:
1.TensorFlow serving自带REST和GRPC接口服务,无需编写服务端代码,同时能够同时部署多个模型;
2.TensorFlow serving能够自动检测并加载新的模型文件,能够实现在服务不终止的情况下完成模型的热更新;
3.Kubernetes容器化部署方便高效,能够自动装箱,自我修复,自动实现水平扩展,自动实现服务发现和负载均衡、还可以实现自动发布和回滚,通过Kubernetes能够实现多个服务共享存储(PV),完成模型训练服务到ai在线服务的快速衔接。
附图说明
图1为模型线上部署方法的第一种实施方式的流程图;
图2为模型线上部署方法中适用模型的连接结构图;
图3为模型线上部署方法中适用平台的连接结构图;
图4为模型线上部署装置的第一种实施方式的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本发明涉及人工智能领域,固人工智能内的相关领域词语进行释义,包括:
Tensorflow serving:开源软件库服务;
Kubernetes:是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制;
PAAS:PAAS平台即(Platform-as-a-Service:平台即服务),把应用服务的运行和开发环境作为一种服务提供的商业模式;
Docker:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
File:file_get_contents()函数是用于将文件的内容读入到一个字符串中的首选方法,但遇到读大文件操作时,不建议使用。可以考虑curl等方式代替;
Pod:全称Plain Old Documentation,是一种用于记录Perl编程语言的轻量级标记语言。
本发明提供一种模型线上部署方法,如图1所示,包括:
步骤S10、接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型。
在步骤S10中,包括:
将训练后的模型保存为一个pb文件saved_model.pb和一个变量文件夹variables,当模型在处理过程中包含Variable tensor时,variables不为空。
步骤S20、将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号。
在步骤S20中,包括:
生成TensorFlow serving的Docker环境;
所述TensorFlow serving的Docker环境用于对所述模型镜像后分别封装处理。其中所述TensorFlow serving分别包括RESTful和GRPC两种访问模式。
步骤S30、基于所述封装后的模型生成对应的容器,所述容器基于版本号以及别名调用所述封装后的模型。
在步骤S10至步骤S30中,存在以下的实施方式,如图2所示,包括:
首先利用TensorFlow训练和构建满足用户需求的模型,待模型训练完成后,利用saved_model.builder下的SavedModelBuilder方法将文件保存到指定路径下如:models/liner/1/,其中liner是模型名称,1是指版本号(Tensorflow serving默认加载数字最大的模型),同时要通过build_signature_def方法为模型指定输入输出参数,SignatureDef将输入输出tensor的信息分别进行封装,并且给他们一个自定义的别名,在请求服务的时候,通过别名传参,模型最终会保存为一个pb文件saved_model.pb和一个变量文件夹variables,当程序处理过程中包含Variable tensor时,variables不为空。
然后准备TensorFlow serving的Docker环境。tensorflow/serving镜像中包含了,处理客户端请求的服务端代码,服务镜像提供了提供了RESTful和gRPC两种访问方式,分别通过8501和8500两个端口对外提供服务,在运行容器的时候,需要将容器内的端口和宿主主机的端口进行绑定。TensorFlow serving会到/models目录下加载模型文件,因此,需要将外部卷挂在到/models目录下,并将模型文件复制到指定目录下,如当挂在的宿主目录为/dw/rec-models时,将上一步产生的模型文件复制到该目录下即可,容器内目录为/models/liner/1/。
步骤S40、将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas线上平台的基础架构处。
在步骤S40中,存在以下的实施方式,如图3所示,包括:
其中图3展示了基于Kubernetes的Paas平台的基础架构,模型服务处在Node节点中的Pod中。在构建服务的具体步骤如下:在基于Kubernetes的Paas平台上构建项目并添加应用,设置发布方式和分支名称等。
编辑Dockerfile,选择tensorflow/serving作为基础镜像,自定义添加端口映射和自定义外部域名,挂载外部卷并声明外部卷的挂在目录为/models,以方便装载不同的模型文件,指定pod数量,指定环境变量MODEL_NAME,最终构建发布。服务调用访问外部域名+/v1/models/liner:predict即可,可以通过:curl-d传参-X POST地址的方式去测试服务是否正常运行,输入输出均&为json数据,输入参数为{"inputs":{"param1":input1,"param2":input2}},输出结果为{"outputs":output1}。当模型需要更新时,需要在/dw/rec-models目录下新建名称为2的文件夹(或更大的数字,标注模型的版本号),将模型文件复制到该目录下即可,TensorFlow serving会自动检测模型目录的变化情况,将当前数字最大,版本最新的模型,待模型加载完成并对外可用后,会自动下线老版本的模型,即完成了模型的更新。
如果需要部署多个模型,需要创建models.config,指定模型的name、base_path和model_platform值,在容器启动时指定多模型配置文件model_config_file即可。如果需要同时运行多个版本的模型服务时,在models.config中,添加model_version_policy:{all:{}}}参数,并将请求URL修改为指定版本模型的地址即可。线上服务请求量发生变化时,Kubernetes能够根据当前的服务的访问情况,动态调整pod的个数,当访问量激增时,可以使用更多的pod,当访问量减少时,可以释放部分pod资源。线上服务由于故障难以想外部提供服务时,Kubernetes可以快速构建pod以提供服务,防止服务失效。
本发明提供的模型线上部署方法,采取了Kubernetes容器化+TensorFlowserving构建ai服务平台,将所有的ai服务与模型训练服务全部容器化,并都部署进Kubernetes平台,通过同享磁盘存储的方式,完成模型训练到在线服务的衔接,完整ai服务平台的搭建。
在步骤S40步骤后,还包括:
步骤S50、Paas平台接收处理数据;
步骤S60、所述容器对所述处理数据进行处理,获得相应的模型对应的版本号以及别名;
步骤S70、所述容器基于模型对应的版本号以及别名调取封装后的模型对所述处理数据进行处理生成结果数据;
步骤S80、所述容器将所述结果数据基于Paas平台输出。
在步骤S50至步骤S80中,是平台在接收到终端输入的需要处理的处理数据后进行处理的过程中,通过模型对应的版本号以及别名对模型进行挑选,并且在挑选后将处理数据输入至模型中得到相应的结果数据,然后通过Paas平台输出至终端。
本发明实施例的还提供一种模型线上部署装置,如图4所示,包括:
TensorFlow模型训练模块,用于接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型;
封装模块,用于将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号;
容器生成模块,用于基于所述封装后的模型生成对应的容器,所述容器基于版本号以及别名调用所述封装后的模型;
在线部署模块,用于将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas线上平台的基础架构处。
进一步的,所述TensorFlow模型训练模块还用于将训练后的模型保存为一个pb文件saved_model.pb和一个变量文件夹variables,当模型在处理过程中包含Variabletensor时,variables不为空。
进一步的,所述封装模块还包括:
第一封装子模块,用于生成TensorFlow serving的Docker环境;
第二封装子模块,用于所述TensorFlow serving的Docker环境用于对所述模型镜像后分别封装处理。
进一步的,所述装置还包括:
接收模块,用于Paas平台接收处理数据;
处理模块,用于所述容器对所述处理数据进行处理,获得相应的模型对应的版本号以及别名;
结果生成模块,用于所述容器基于模型对应的版本号以及别名调取封装后的模型对所述处理数据进行处理生成结果数据;
输出模块,用于所述容器将所述结果数据基于Paas平台输出。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种模型线上部署方法,其特征在于,包括:
接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型;
将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号;
基于所述封装后的模型生成对应的容器,所述容器基于版本号以及别名调用所述封装后的模型;
将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas线上平台的基础架构处。
2.根据权利要求1所述的模型线上部署方法,其特征在于,
接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型包括:
将训练后的模型保存为一个pb文件saved_model.pb和一个变量文件夹variables,当模型在处理过程中包含Variable tensor时,variables不为空。
3.根据权利要求1所述的模型线上部署方法,其特征在于,
在所述将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号包括:
生成TensorFlow serving的Docker环境;
所述TensorFlow serving的Docker环境用于对所述模型镜像后分别封装处理。
4.根据权利要求2所述的模型线上部署方法,其特征在于,
其中所述TensorFlow serving分别包括RESTful和GRPC两种访问模式。
5.根据权利要求1所述的模型线上部署方法,其特征在于,
在将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas平台的基础架构处的步骤后,还包括:
Paas平台接收处理数据;
所述容器对所述处理数据进行处理,获得相应的模型对应的版本号以及别名;
所述容器基于模型对应的版本号以及别名调取封装后的模型对所述处理数据进行处理生成结果数据;
所述容器将所述结果数据基于Paas平台输出。
6.一种模型线上部署装置,其特征在于,包括:
TensorFlow模型训练模块,用于接收训练数据,根据所述训练数据基于TensorFlow对模型训练,得到训练后的模型;
封装模块,用于将训练后的模型基于预设路径保存,并对所述模型封装,其中所述模型具有与其对应的别名以及版本号;
容器生成模块,用于基于所述封装后的模型生成对应的容器,所述容器基于版本号以及别名调用所述封装后的模型;
在线部署模块,用于将所述训练后的模型以及容器分别部署至基于Kubernetes的Paas线上平台的基础架构处。
7.根据权利要求6所述的模型线上部署装置,其特征在于,
所述TensorFlow模型训练模块还用于将训练后的模型保存为一个pb文件saved_model.pb和一个变量文件夹variables,当模型在处理过程中包含Variable tensor时,variables不为空。
8.根据权利要求6所述的模型线上部署装置,其特征在于,
所述封装模块还包括:
第一封装子模块,用于生成TensorFlow serving的Docker环境;
第二封装子模块,用于所述TensorFlow serving的Docker环境用于对所述模型镜像后分别封装处理。
9.根据权利要求6所述的模型线上部署装置,其特征在于,
所述装置还包括:
接收模块,用于Paas平台接收处理数据;
处理模块,用于所述容器对所述处理数据进行处理,获得相应的模型对应的版本号以及别名;
结果生成模块,用于所述容器基于模型对应的版本号以及别名调取封装后的模型对所述处理数据进行处理生成结果数据;
输出模块,用于所述容器将所述结果数据基于Paas平台输出。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现权利要求1至5任一所述的方法。
CN202010886567.9A 2020-08-28 2020-08-28 模型线上部署方法及装置 Pending CN112015519A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010886567.9A CN112015519A (zh) 2020-08-28 2020-08-28 模型线上部署方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010886567.9A CN112015519A (zh) 2020-08-28 2020-08-28 模型线上部署方法及装置

Publications (1)

Publication Number Publication Date
CN112015519A true CN112015519A (zh) 2020-12-01

Family

ID=73504132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010886567.9A Pending CN112015519A (zh) 2020-08-28 2020-08-28 模型线上部署方法及装置

Country Status (1)

Country Link
CN (1) CN112015519A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380022A (zh) * 2020-12-09 2021-02-19 中国船舶工业***工程研究院 一种无人艇自主学习***、方法和计算机可读存储介质
CN112817635A (zh) * 2021-01-29 2021-05-18 北京九章云极科技有限公司 一种模型处理方法和数据处理***
CN112905204A (zh) * 2021-02-23 2021-06-04 杭州推啊网络科技有限公司 Tensorflow模型的更新方法与***
CN113076998A (zh) * 2021-04-01 2021-07-06 重庆邮电大学 基于kubernetes深度神经网络模型的分布式分类方法
CN113222174A (zh) * 2021-04-23 2021-08-06 万翼科技有限公司 模型管理方法及装置
WO2024041035A1 (zh) * 2022-08-23 2024-02-29 网络通信与安全紫金山实验室 机器学***台和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111178517A (zh) * 2020-01-20 2020-05-19 上海依图网络科技有限公司 模型部署方法、***、芯片、电子设备及介质
CN111324379A (zh) * 2020-01-15 2020-06-23 携程旅游网络技术(上海)有限公司 基于通用soa服务的模型部署***
CN111399853A (zh) * 2020-02-20 2020-07-10 四川新网银行股份有限公司 机器学习模型与自定义算子的模板化部署方法
CN111432022A (zh) * 2020-04-07 2020-07-17 深圳中兴网信科技有限公司 模型部署方法、服务器和计算机可读存储介质
CN111459610A (zh) * 2020-03-19 2020-07-28 网宿科技股份有限公司 一种模型部署方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111324379A (zh) * 2020-01-15 2020-06-23 携程旅游网络技术(上海)有限公司 基于通用soa服务的模型部署***
CN111178517A (zh) * 2020-01-20 2020-05-19 上海依图网络科技有限公司 模型部署方法、***、芯片、电子设备及介质
CN111399853A (zh) * 2020-02-20 2020-07-10 四川新网银行股份有限公司 机器学习模型与自定义算子的模板化部署方法
CN111459610A (zh) * 2020-03-19 2020-07-28 网宿科技股份有限公司 一种模型部署方法和装置
CN111432022A (zh) * 2020-04-07 2020-07-17 深圳中兴网信科技有限公司 模型部署方法、服务器和计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IYACONTROL: "通过tensorflow serving 和 kubernetes部署你的机器学习模型", pages 1 - 6, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/136169396> *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380022A (zh) * 2020-12-09 2021-02-19 中国船舶工业***工程研究院 一种无人艇自主学习***、方法和计算机可读存储介质
CN112817635A (zh) * 2021-01-29 2021-05-18 北京九章云极科技有限公司 一种模型处理方法和数据处理***
CN112817635B (zh) * 2021-01-29 2022-02-08 北京九章云极科技有限公司 一种模型处理方法和数据处理***
CN112905204A (zh) * 2021-02-23 2021-06-04 杭州推啊网络科技有限公司 Tensorflow模型的更新方法与***
CN112905204B (zh) * 2021-02-23 2024-05-07 杭州推啊网络科技有限公司 Tensorflow模型的更新方法与***
CN113076998A (zh) * 2021-04-01 2021-07-06 重庆邮电大学 基于kubernetes深度神经网络模型的分布式分类方法
CN113222174A (zh) * 2021-04-23 2021-08-06 万翼科技有限公司 模型管理方法及装置
CN113222174B (zh) * 2021-04-23 2024-04-26 万翼科技有限公司 模型管理方法及装置
WO2024041035A1 (zh) * 2022-08-23 2024-02-29 网络通信与安全紫金山实验室 机器学***台和存储介质

Similar Documents

Publication Publication Date Title
CN112015519A (zh) 模型线上部署方法及装置
KR102414096B1 (ko) 종단 장치에서의 기계 학습을 위한 패키지 생성 및 배포
CN107766126B (zh) 容器镜像的构建方法、***、装置及存储介质
CN109240900A (zh) 区块链网络服务平台及其智能合约检测方法、存储介质
KR20080059561A (ko) 오브젝트 구성을 위한 방법 및 확장가능 프레임워크
US10838745B2 (en) Loading dependency library files from a shared library repository in an application runtime environment
WO2022037612A1 (zh) 提供应用构建服务的方法及应用构建平台、应用部署方法和***
US10949216B2 (en) Support for third-party kernel modules on host operating systems
CN111984269A (zh) 提供应用构建服务的方法及应用构建平台
CN114881233B (zh) 一种基于容器的分布式模型推理服务方法
US11321090B2 (en) Serializing and/or deserializing programs with serializable state
CN111459610A (zh) 一种模型部署方法和装置
CN115309562A (zh) 算子调用***、算子生成方法,电子设备
US11610155B2 (en) Data processing system and data processing method
CN115357369A (zh) 一种k8s容器云平台中CRD应用集成调用方法与装置
CN114064079A (zh) 算法应用元的打包方法及装置、设备、存储介质
US20240086186A1 (en) Method and system for a customized local build environment image
CN116880928B (zh) 模型部署方法、装置、设备及存储介质
CN116401014A (zh) 服务发布方法、装置、存储介质及服务器
CN114860202A (zh) 项目运行方法、装置、服务器及存储介质
Zhang et al. A low-code development framework for cloud-native edge systems
CN115708061A (zh) 服务器部署模型的方法、模型处理方法和装置
Zhang et al. Tinyedge: Enabling rapid edge system customization for iot applications
CN111078263A (zh) 基于Drools规则引擎的热部署方法、***、服务器及存储介质
CN117827191B (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