CN116579440A - 一种机器学习模型通用部署方法 - Google Patents
一种机器学习模型通用部署方法 Download PDFInfo
- Publication number
- CN116579440A CN116579440A CN202310501556.8A CN202310501556A CN116579440A CN 116579440 A CN116579440 A CN 116579440A CN 202310501556 A CN202310501556 A CN 202310501556A CN 116579440 A CN116579440 A CN 116579440A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- learning model
- file
- model
- deployment
- 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
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000007781 pre-processing Methods 0.000 claims abstract description 68
- 230000008569 process Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 15
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000009499 grossing Methods 0.000 claims description 5
- 238000012856 packing Methods 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种机器学习模型通用部署方法,涉及人工智能技术领域;将机器学习模型的数据预处理模块与机器学习模型分别独立部署,所述机器学习模型为Pytorch模型,以独立服务形式部署所述数据预处理模块;部署所述机器学习模型于torchserver框架内;所述数据预处理模块与torchserver框架按照约定的协议进行通信。
Description
技术领域
本发明公开一种方法,涉及人工智能技术领域,具体地说是一种机器学习模型通用部署方法。
背景技术
人工智能技术尤其是深度学习技术广泛应用于推荐、广告等业务场景,这些场景使用的模型有较为显著的特点:模型规模大,在线推理性能要求高,更新频繁。模型规模大是指网络结构复杂,参数量巨大,运算量巨大。对在线推理性能要求高主要是对整体时延要求较为苛刻。更新频繁是指在推荐、广告等业务中经常需要尝试新特征、新模型,因此新模型的训练和上线频率很高。由于上述原因,深度学习模型都需要专门的部署框架进行模型在线部署,以Pytorch模型为例,它的部署框架是torchserver,torchserver需要用户提供一个文件handler.py,用户在handler.py中实现数据预处理过程和模型推理过程。但这一做法存在明显的弊端:预处理过程可能需要访问外部资源,从torchserver内部访问外部资源会带来很多麻烦和不可控的风险;预处理过程无法进行语言层面的优化,torchserver只支持python;由于修改预处理逻辑需要修改整个部署文件,并重新加载模型,因此预处理过程无法单独优化。
发明内容
本发明针对现有技术的问题,提供一种机器学习模型通用部署方法,实现机器学习模型Pytorch的部署。
本发明提出的具体方案是:
本发明提供一种机器学习模型通用部署方法,将机器学习模型的数据预处理模块与机器学习模型分别独立部署,所述机器学习模型为Pytorch模型,
以独立服务形式部署所述数据预处理模块;
部署所述机器学习模型于torchserver框架内;
所述数据预处理模块与torchserver框架按照约定的协议进行通信。
进一步,所述的一种机器学习模型通用部署方法中编写所述数据预处理模块的文件preprocess.py,根据所述文件preprocess.py所述数据预处理模块进行数据预处理包括:
获取全部所需的原始数据;
根据不同数据的使用方式进行特征扩展及特征交叉;
针对数值特征进行数据平滑、缩放及离散化处理,针对类别特征进行数值化和one-hot编码处理;
进行缺失值填充及异常值纠正;
将所有特征值按照特征顺序构建为预处理样本。
进一步,所述的一种机器学习模型通用部署方法中所述部署所述机器学习模型于torchserver框架内,包括:
创建所述机器学习模型的mar文件,所述mar文件包含所述机器学习模型的处理文件handler.py和所述机器学习模型的结构定义文件model.py,所述处理文件handler.py继承基类BaseHandler,不重载相关逻辑,
配置所述机器学习模型的部署包配置文件config.properties,并设置相关参,
构建所述机器学习模型的在线部署的文件,通过所述在线部署的文件安装打包工具及创建mar文件。
进一步,所述的一种机器学习模型通用部署方法中所述设置相关参数,包括:
设置inference_address和management_address分别表示推理服务URL和管理服务URL;
设置grpc_inference_port和grpc_management_port分别表示推理服务grpc端口和管理服务grpc端口;
设置load_models表示部署的机器学习模型;
设置model_store表示mar文件所在路径;
设置enable_envvars_config=false,并设置service_envelope为相应值,通过相应值对应的envelope使所述机器学习模型正确地接收数据预处理模块的输出。
进一步,所述的一种机器学习模型通用部署方法中数据预处理模块与torchserver框架按照http协议进行通信,并利用多维数组表示Pytorch模型的预处理样本。
本发明还提供一种机器学习模型通用部署装置,包括预处理服务部署模块和模型部署模块,
所述装置将机器学习模型的数据预处理模块与机器学习模型分别独立部署,所述机器学习模型为Pytorch模型,
处理服务部署模块以独立服务形式部署所述数据预处理模块;
模型部署模块部署所述机器学习模型于torchserver框架内;
所述数据预处理模块与torchserver框架按照约定的协议进行通信。
进一步,所述的一种机器学习模型通用部署装置中预处理服务部署模块编写所述数据预处理模块的文件preprocess.py,所述数据预处理模块根据所述文件preprocess.py进行数据预处理包括:
获取全部所需的原始数据;
根据不同数据的使用方式进行特征扩展及特征交叉;
针对数值特征进行数据平滑、缩放及离散化处理,针对类别特征进行数值化和one-hot编码处理;
进行缺失值填充及异常值纠正;
将所有特征值按照特征顺序构建为预处理样本。
进一步,所述的一种机器学习模型通用部署装置中所述模型部署模块部署所述机器学习模型于torchserver框架内,包括:
创建所述机器学习模型的mar文件,所述mar文件包含所述机器学习模型的处理文件handler.py和所述机器学习模型的结构定义文件model.py,所述处理文件handler.py继承基类BaseHandler,不重载相关逻辑,
配置所述机器学习模型的部署包配置文件config.properties,并设置相关参数,
构建所述机器学习模型的在线部署的文件,通过所述在线部署的文件安装打包工具及创建mar文件。
进一步,所述的一种机器学习模型通用部署装置中所述模型部署模块设置相关参数,包括:
设置inference_address和management_address分别表示推理服务URL和管理服务URL;
设置grpc_inference_port和grpc_management_port分别表示推理服务grpc端口和管理服务grpc端口;
设置load_models表示部署的机器学习模型;
设置model_store表示mar文件所在路径;
设置enable_envvars_config=false,并设置service_envelope为相应值,通过相应值对应的envelope使所述机器学习模型正确地接收数据预处理模块的输出。
本发明的有益之处是:
本发明提供一种机器学习模型通用部署方法,将数据预处理过程与模型推理拆分为独立模块后,数据预处理过程可根据实际业务场景进行灵活优化,不会影响模型推理过程;在数据和预处理过程均不变化的情况下,可实现模型频繁更新。
附图说明
图1是本发明方法应用框架示意图。
图2是现有技术应用框架示意图。
图3是另一现有技术应用框架示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种机器学习模型通用部署方法,将机器学习模型的数据预处理模块与机器学习模型分别独立部署,所述机器学习模型为Pytorch模型,
以独立服务形式部署所述数据预处理模块;
部署所述机器学习模型于torchserver框架内;
所述数据预处理模块与torchserver框架按照约定的协议进行通信。
本发明方法针对机器学习模型,将数据预处理过程和模型推理过程拆分为可独立部署的模块,其中数据预处理过程单独部署,模型推理过程使用相应的框架部署,两个模块按照约定的方式进行通信,两个模块可分别进行最大程度的优化。
具体应用中,在本发明方法的一些实施例中,基于本发明方法的技术方案,进行机器学习模型通用部署的过程可参考如下:
步骤1:以独立服务形式部署所述数据预处理模块。其中进一步,编写所述数据预处理模块的文件preprocess.py,根据所述文件preprocess.py所述数据预处理模块进行数据预处理包括:
获取全部所需的原始数据;
根据不同数据的使用方式进行特征扩展及特征交叉;
针对数值特征进行数据平滑、缩放及离散化处理,针对类别特征进行数值化和one-hot编码处理;
进行缺失值填充及异常值纠正;
将所有特征值按照特征顺序构建为预处理样本。数据预处理的目标是该阶段的输出数据可被模型或者模型框架框架直接使用。
进一步,数据预处理模块与torchserver框架可以按照http协议进行通信,以如下结构输出数据:
{'instances':[[],[]...]}
其中instances的值是多维数组,数组的每一个元素即是一个预处理样本。
步骤2:部署所述机器学习模型于torchserver框架内。
进一步,步骤2中包括:
步骤21:创建所述机器学习模型的mar文件,所述mar文件包含所述机器学习模型的处理文件handler.py和所述机器学习模型的结构定义文件model.py,所述处理文件handler.py继承基类BaseHandler,不重载相关逻辑,其中文件model.py是模型主要结构的定义文件,只允许一个类存在,需要使用其他自定义类时应当在其他文件中进行定义,在文件model.py中进行导入import操作即可,
步骤22:配置所述机器学习模型的部署包配置文件config.properties,并设置相关参数,进一步,步骤22中包括:
设置参数,其中inference_address=http://<ip>:<port>
management_address=http://<ip>:<port>
分别表示推理服务URL和管理服务URL;
grpc_inference_port=<port>
grpc_management_port=<port>
分别表示推理服务grpc端口和管理服务grpc端口;
设置load_models=<model_1>.mar[,<model_2>.mar]
表示部署的机器学习模型;
设置model_store=<model_path>表示mar文件所在路径;
设置enable_envvars_config=false,并设置service_envelope为相应值,通过相应值对应的envelope使所述机器学习模型正确地接收数据预处理模块的输出;
步骤23:构建所述机器学习模型的在线部署的文件,通过所述在线部署的文件安装打包工具及创建mar文件。
进一步,步骤23中包括:
a.使用pip安装打包工具torch-model-archiver;
b.使用如下命令进行.mar文件的构建:
torch-model-archiver--model-name<your_model_name>--version1.0--model-file<your_model_file>.py--serialized-file<your_model_name>.pth--handler<default_handler or your_handler>--extra-files<your_extra_file.py>
其中<your_model_file>.py是模型主定义文件,<your_model_name>.pth是模型训练完成后保存的参数文件,default_handler表示框架内置的handler名称,your_handler即为步骤2创建的文件handler.py,<your_extra_file.py>表示的是需要使用的额外文件,比如模型主定义文件需要使用的文件等;
该命令会创建文件<your_model_name>.mar。
步骤3:使所述数据预处理模块与torchserver框架按照约定的协议进行通信。其中将config.properties与<your_model_name>.mar一起上传至torchserver,config.properties中的参数model-store,torchserver在该参数所设定的路径下查找相应的.mar文件,
数据预处理模块可以通过http协议访问模型,访问URL如下:
http://<ip>:<port>/predictions/<your_model_name>
其中的<ip>,<port>即为config.properties中所设定的inference_address,<your_model_name>即为config.properties中load_models所设定的模型。
本发明还提供一种机器学习模型通用部署装置,包括预处理服务部署模块和模型部署模块,
所述装置将机器学习模型的数据预处理模块与机器学习模型分别独立部署,所述机器学习模型为Pytorch模型,
处理服务部署模块以独立服务形式部署所述数据预处理模块;
模型部署模块部署所述机器学习模型于torchserver框架内;
所述数据预处理模块与torchserver框架按照约定的协议进行通信。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地,本发明装置将数据预处理过程与模型推理拆分为独立模块后,数据预处理过程可根据实际业务场景进行灵活优化,不会影响模型推理过程;在数据和预处理过程均不变化的情况下,可实现模型频繁更新。
需要说明的是,上述各流程和各装置结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (9)
1.一种机器学习模型通用部署方法,其特征是将机器学习模型的数据预处理模块与机器学习模型分别独立部署,所述机器学习模型为Pytorch模型,
以独立服务形式部署所述数据预处理模块;
部署所述机器学习模型于torchserver框架内;
所述数据预处理模块与torchserver框架按照约定的协议进行通信。
2.根据权利要求1所述的一种机器学习模型通用部署方法,其特征是编写所述数据预处理模块的文件preprocess.py,根据所述文件preprocess.py所述数据预处理模块进行数据预处理包括:
获取全部所需的原始数据;
根据不同数据的使用方式进行特征扩展及特征交叉;
针对数值特征进行数据平滑、缩放及离散化处理,针对类别特征进行数值化和one-hot编码处理;
进行缺失值填充及异常值纠正;
将所有特征值按照特征顺序构建为预处理样本。
3.根据权利要求1所述的一种机器学习模型通用部署方法,其特征是所述部署所述机器学习模型于torchserver框架内,包括:
创建所述机器学习模型的mar文件,所述mar文件包含所述机器学习模型的处理文件handler.py和所述机器学习模型的结构定义文件model.py,所述处理文件handler.py继承基类BaseHandler,不重载相关逻辑,
配置所述机器学习模型的部署包配置文件config.properties,并设置相关参数,
构建所述机器学习模型的在线部署的文件,通过所述在线部署的文件安装打包工具及创建mar文件。
4.根据权利要求3所述的一种机器学习模型通用部署方法,其特征是所述设置相关参数,包括:
设置inference_address和management_address分别表示推理服务URL和管理服务URL;
设置grpc_inference_port和grpc_management_port分别表示推理服务grpc端口和管理服务grpc端口;
设置load_models表示部署的机器学习模型;
设置model_store表示mar文件所在路径;
设置enable_envvars_config=false,并设置service_envelope为相应值,通过相应值对应的envelope使所述机器学习模型正确地接收数据预处理模块的输出。
5.根据权利要求1所述的一种机器学习模型通用部署方法,其特征是数据预处理模块与torchserver框架按照http协议进行通信,并利用多维数组表示Pytorch模型的预处理样本。
6.一种机器学习模型通用部署装置,其特征是包括预处理服务部署模块和模型部署模块,
所述装置将机器学习模型的数据预处理模块与机器学习模型分别独立部署,所述机器学习模型为Pytorch模型,
处理服务部署模块以独立服务形式部署所述数据预处理模块;
模型部署模块部署所述机器学习模型于torchserver框架内;
所述数据预处理模块与torchserver框架按照约定的协议进行通信。
7.根据权利要求6所述的一种机器学习模型通用部署装置,其特征是预处理服务部署模块编写所述数据预处理模块的文件preprocess.py,所述数据预处理模块根据所述文件preprocess.py进行数据预处理包括:
获取全部所需的原始数据;
根据不同数据的使用方式进行特征扩展及特征交叉;
针对数值特征进行数据平滑、缩放及离散化处理,针对类别特征进行数值化和one-hot编码处理;
进行缺失值填充及异常值纠正;
将所有特征值按照特征顺序构建为预处理样本。
8.根据权利要求6所述的一种机器学习模型通用部署装置,其特征是所述模型部署模块部署所述机器学习模型于torchserver框架内,包括:
创建所述机器学习模型的mar文件,所述mar文件包含所述机器学习模型的处理文件handler.py和所述机器学习模型的结构定义文件model.py,所述处理文件handler.py继承基类BaseHandler,不重载相关逻辑,
配置所述机器学习模型的部署包配置文件config.properties,并设置相关参数,
构建所述机器学习模型的在线部署的文件,通过所述在线部署的文件安装打包工具及创建mar文件。
9.根据权利要求8所述的一种机器学习模型通用部署装置,其特征是所述模型部署模块设置相关参数,包括:
设置inference_address和management_address分别表示推理服务URL和管理服务URL;
设置grpc_inference_port和grpc_management_port分别表示推理服务grpc端口和管理服务grpc端口;
设置load_models表示部署的机器学习模型;
设置model_store表示mar文件所在路径;
设置enable_envvars_config=false,并设置service_envelope为相应值,通过相应值对应的envelope使所述机器学习模型正确地接收数据预处理模块的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310501556.8A CN116579440A (zh) | 2023-05-06 | 2023-05-06 | 一种机器学习模型通用部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310501556.8A CN116579440A (zh) | 2023-05-06 | 2023-05-06 | 一种机器学习模型通用部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116579440A true CN116579440A (zh) | 2023-08-11 |
Family
ID=87535200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310501556.8A Pending CN116579440A (zh) | 2023-05-06 | 2023-05-06 | 一种机器学习模型通用部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116579440A (zh) |
-
2023
- 2023-05-06 CN CN202310501556.8A patent/CN116579440A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153520A (zh) | 软件开发方法及装置 | |
CN106844190B (zh) | 测试脚本自动生成方法及装置 | |
CN110888722A (zh) | 任务处理方法、装置、电子设备及计算机可读存储介质 | |
CN106302008A (zh) | 数据更新方法和装置 | |
CN107220096A (zh) | 一种json数据解析方法及装置 | |
EP3671571A1 (en) | A method and system for generating an artificial intelligence model | |
CN107450899B (zh) | 终端控制脚本的生成方法和装置 | |
CN106502715A (zh) | 一种应用程序多渠道配置方法及装置 | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN108306804A (zh) | 一种Ethercat主站控制器及其通信方法和系统 | |
CN111061678B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
JP6673355B2 (ja) | 配備装置、配備方法、及び、プログラム | |
JP6805832B2 (ja) | 複数ワークシートのエクスポートの生成 | |
CN104407863A (zh) | 抽象控件模型编程装置和方法 | |
CN103718159B (zh) | 图像处理软件开发方法、图像处理软件开发装置 | |
CN106326099B (zh) | 一种用于程序跟踪的方法、装置及电子设备 | |
CN101398778A (zh) | 自动化集成测试方法 | |
CN113835799A (zh) | 现场设备配置工具 | |
CN115794106A (zh) | 一种轨道交通二进制协议数据配置式解析的方法及系统 | |
CN113986985B (zh) | 能源管理的io读取方法、系统、设备及存储介质 | |
CN114173355B (zh) | 一种设计运行态分离的网络指令动态执行方法及系统 | |
CN109388406A (zh) | 转换java代码的方法及装置、存储介质、电子装置 | |
CN108365976B (zh) | 网络服务的优化方法及装置 | |
CN116579440A (zh) | 一种机器学习模型通用部署方法 | |
CN117278661A (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 |