CN116185668B - 一种基于grpc的高效多模型选配部署方法 - Google Patents
一种基于grpc的高效多模型选配部署方法 Download PDFInfo
- Publication number
- CN116185668B CN116185668B CN202310456327.9A CN202310456327A CN116185668B CN 116185668 B CN116185668 B CN 116185668B CN 202310456327 A CN202310456327 A CN 202310456327A CN 116185668 B CN116185668 B CN 116185668B
- Authority
- CN
- China
- Prior art keywords
- model
- client
- grpc
- called
- server
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种基于grpc的高效多模型选配部署方法,包括以下步骤:服务器端开启需要调用的模型;在客户端根据需求传递待验证的图片;在客户端将会接受到由grpc服务器端传递的数据,本发明采用了基于grpc的部署方式,可以通过预先定义配置文件的方式来辅助完成后续的调用。支持自定义多模型选配的方式,增加灵活性。该部署方式针对硬件的限制更小,且支持通用的模型调用。可通过多线程并行加速调用,高效的完成结果的传输。
Description
技术领域
本发明涉及人工智能模型部署领域,特别是涉及一种基于grpc的高效多模型选配部署方法。
背景技术
随着深度学习的快速发展,目前已逐渐代替传统手工方法以及传统技术等,然而针对PC端以及类似移动端等不同设备之间的模型调用,通常需要进行模型的部署,才能成功调用并访问。
目前的部署方案例如利用onnx转换中间模型,并通过tensorRT来加速等方式,然而随着目前新颖技术的出现,新旧技术之间存在着环境配置的冲突,然而为每一套技术配置一套专门的模型部署方案是一件费时、费力、费钱的事情。更重要的是,模型部署技术十分依赖硬件配置环境。
grpc首次由谷歌提出,该技术支持本地端口以及局域网内的调用,同时也支持多线程加速以及跨语言的调用,其对硬件要求较低,利用服务端开启模型,并在客户端传递图片,调用服务端模型并接收结果的形式来完成模型的部署。
目前基于深度学习的模型部署技术已较为成熟,然而许多现存的技术在硬件方面要求较为严苛,因此模型的部署一直存在着待解决的问题。基于此,本发明提出了一种基于grpc的通用模型部署方案,大大减小了在硬件方面的需求,同时也支持多个模型自定义选配以及跨编程语言调用的形式。该方案目前已成功应用于多种计算机视觉任务中,并表现出了预期的性能。
发明内容
针对现有部署方案依赖设备硬件且无法适配通用技术问题,本发明的目的在于通过提出一种基于grpc的通用且高效的多模型配置方案来有效的解决该问题。该方案将以多种模型自定义配置为例,首先服务器端开启需要调用的模型,例如当前需要检测某项目,则调用相关的检测模型、若是分割某项目,则调用相关的分割模型。其次在客户端根据需求传递待验证的图片。最后在客户端将会接受到由grpc服务器端传递的数据。通过该方式可以实现模型部署的形式,并满足大部分需求,同时由于支持多线程的缘故,可并行加速来完成高效的推理与应用。
为实现上述目的,本发明提供如下技术方案:
一种基于grpc的高效多模型选配部署方法,包括以下步骤:
服务器端开启需要调用的模型;
在客户端根据需求传递待验证的图片;
在客户端将会接受到由grpc服务器端传递的数据。
作为本发明进一步的方案,在预处理阶段,定义一份配置文件,包括目前项目所涉及并需要调用的模型权重文件以及模型的类别信息。
作为本发明进一步的方案,由服务器端开启服务,等待客户端传递图片,客户端传递图片给服务器端并等待结果的返回。
作为本发明进一步的方案,首先定义当前需要调用的端口号,以及各分类、分割、检测模型仓库,并在其中配置调用方式、支持的模型、权重文件、图片整体类别、图片中目标的类别、模型的配置文件,其次,将模型划分为单通道(pipeline)与多通道(pipeline)两种接口的形式,最后,根据需求开启服务端以及客户端完成模型的调用。
作为本发明进一步的方案,单通道(pipeline)的设置步骤包括:
根据需求选择对应的模型,若未选择模型或选择在配置文件中尚不支持的模型则会抛出对应的警告;
grpc客户端将接受到空的结果返回;若选择单模型、双模型以及多模型,则三者都将先通过一个自适应模型选配模块,用于让模型自适应的选择模型预期的顺序。
作为本发明进一步的方案,多通道(pipeline)的设置包括如下步骤:多pipeline模式将采用绑定项目的形式,在服务器端启动时,将打印当前项目所涉及的所有pipelines的信息,在客户端进行调用时将传递图片以及图片对应的相机位号,此时服务器端将根据传递的相机位号打印对应的模型pipeline,后续只需传递不同的相机位号便可调用不同的模型,并打印在端口上,最后在客户端调用模型并接收返回结果。
本发明具有以下有益效果:
本发明采用了基于grpc的部署方式,可以通过预先定义配置文件的方式来辅助完成后续的调用。支持自定义多模型选配的方式,增加灵活性。该部署方式针对硬件的限制更小,且支持通用的模型调用。可通过多线程并行加速调用,高效的完成结果的传输。
本发明的方案将以多种模型自定义配置为例,首先服务器端开启需要调用的模型,例如当前需要检测某项目,则调用相关的检测模型、若是分割某项目,则调用相关的分割模型。其次在客户端根据需求传递待验证的图片。最后在客户端将会接受到由grpc服务器端传递的数据。通过该方式可以实现模型部署的形式,并满足大部分需求,同时由于支持多线程的缘故,可并行加速来完成高效的推理与应用。
为更清楚地阐述本发明的结构特征和功效,下面结合附图与具体实施例来对本发明进行详细说明。
附图说明
图1为本发明提供的单通道(pipeline)配置文件部分样例。
图2是本发明提供的grpc调用总览图。
图3是本发明提供的单通道(pipeline)自定义选配模型流程图。
图4是本发明提供的单通道(pipeline)模型调用流程图。
图5是本发明提供的多通道(pipeline)配置文件部分样例。
图6是本发明提供的多通道(pipeline)模型调用流程图。
实施方式
下面将结合附图和有关知识对本发明作出进一步的说明,进行清楚、完整地描述,显然,所描述的应用仅仅是本发明的一部分实施例,而不是全部的实施例。
实施例
本发明提供了一种基于grpc的高效多模型选配部署方法,包括以下步骤:
服务器端开启需要调用的模型,通过定义一份配置文件,包括目前项目所涉及并需要调用的模型权重文件以及模型的类别信息;
在客户端根据需求传递待验证的图片,由服务器端开启服务,等待客户端传递图片,客户端传递图片给服务器端并等待结果的返回;
在客户端将会接受到由grpc服务器端传递的数据。
在本实施例中,首先定义当前需要调用的端口号,以及各分类、分割、检测模型仓库,并在其中配置调用方式、支持的模型、权重文件、图片整体类别、图片中目标的类别、模型的配置文件,其次,将模型划分为单通道(pipeline)与多通道(pipeline)两种接口的形式,最后,根据需求开启服务端以及客户端完成模型的调用。
在本实施例中,单pipeline的设置步骤包括:
根据需求选择对应的模型,若未选择模型或选择在配置文件中尚不支持的模型则会抛出对应的警告;grpc客户端将接受到空的结果返回;若选择单模型、双模型以及多模型,则三者都将先通过一个自适应模型选配模块,用于让模型自适应的选择模型预期的顺序。
在本实施例中,多通道(pipeline)的设置包括如下步骤:多pipeline模式将采用绑定项目的形式,在服务器端启动时,将打印当前项目所涉及的所有pipelines的信息,在客户端进行调用时将传递图片以及图片对应的相机位号,此时服务器端将根据传递的相机位号打印对应的模型pipeline,后续只需传递不同的相机位号便可调用不同的模型,并打印在端口上,最后在客户端调用模型并接收返回结果。
针对现有部署方案依赖设备硬件且无法适配通用技术问题,本发明提出了一种基于grpc的通用且高效的多模型配置方案来有效的解决该问题。尤其涉及单pipeline以及多pipeline两种形式,其中两种形式都是通过一个配置文件进行预先定义,后按照该配置文件进行调用。大致流程为在服务器端开启需要启动的服务,后在客户端直接传递图片并进行调用。基于该方式的部署方案具有多线程加速、跨编程语言调用、多种模型通用、多模型自定义选配等特点,同时支持本地端口调用以及局域网调用两种调用方式。
实施例
一种基于grpc的高效多模型选配部署方法,包括:在预处理阶段,定义一份配置文件,其主要包括目前项目所涉及并需要调用的模型权重文件以及模型的类别等信息。该方案将开放两种模型选配形式即单pipeline与多pipeline。其中单pipeline适用于某类项目只使用一种模型的情况,而多pipeline则适用于某类项目多种图需要走不同pipeline的情况,例如1类图走“cls”单分类的模型,2类图走“cls_seg”先分类后分割的模型等。由服务器端开启服务,等待客户端传递图片。客户端传递图片给服务器端并等待结果的返回:如图1的单通道(pipeline)配置文件所示,本发明的方法可以解决大部分当下部署方案存在的局限问题,并最终应用于实际项目中。
在本实施例中,基于grpc的高效多模型选配部署方案,主要包括模型预处理阶段的配置文件定义以及两种pipeline模式接口的开放调用。定义当前需要调用的全局配置(global_config,本地调用),前处理(pre_process),后处理(post_process)以及各分类、分割、检测模型仓库(cls/seg/det_models),并在其中配置调用方式cpu/gpu(device)、支持的模型(existing_models)、权重文件(weight_path)、图片整体类别(img_category)、图片中目标的类别(defect_category)、模型的配置文件(config_file)。将模型划分为单通道pipeline与多通道pipeline两种接口的形式。最后,根据需求开启服务端以及客户端完成模型的调用。
在本实施例中,单通道的设置如下:
根据需求选择对应的模型,若未选择模型或选择在配置文件中尚不支持的模型则会抛出对应的警告warning,同时此时的grpc客户端将接受到空的结果返回;若选择单模型、双模型以及多模型,则三者都将先通过一个自适应模型选配模块,该模块主要作用在于让模型自适应的选择模型预期的顺序(例如正常的接口开放为模型接口1、模型接口2、模型接口3,在单模型情况下,若在模型接口3的位置输入某个模型,其他位置为空,自适应模块将自动调整为单模型,类似的以及双模型等,将会根据输入的顺序来自动调整为预期的模型)。其次以cls(分类)为结尾的单/双/多模型,将返回的是当前图片类别信息(category),而以seg(分割)或者det(检测)为结尾的单/双/多模型将返回图片类别信息(category)以及图中目标的坐标信息(points)等;
如附图4所示,附图4为选择单通道的流程图,选择模型并调用服务后将首先对当前选择的模型是否被支持,若支持则进行下一步骤的流程,否则直接返回空并输出对应的日志信息;其次,通过配置文件读取该模型对应的权重文件等信息;最后,服务端调用对应的模型后,打印相关日志信息,并等待客户端调用。
单通道模式其限制在于处理一个多通道的项目时,需要重启服务器来切换对应的模型进行调用。因此针对这类情况便诞生了多通道的形式;
多通道的配置文件如附图5所示,与附图1(单通道配置文件)相比,其区别在于多通道配置文件额外配置了预定义项目类。
在本实施例中,多通道的设置如下:
如附图6所示,多通道模式将采用绑定项目的形式,因此与单通道模式不同点在于,单通道模式需选配模型后再开启服务端,而多通道模式直接开启服务端,等待客户端传递项目名等信息,即可完成模型的调用。
在服务器端启动时,将打印当前项目所涉及的所有通道(pipelines)的信息(此时客户端并未调用,只是打印当前项目下的所有信息)。
在客户端进行调用时将传递图片以及图片对应的相机位号等信息,服务器端将根据客户端传递的信息来选择对应的模型并打印其日志信息(注意:此时已调用模型),后续只需传递不同的相机位号便可调用不同的模型,并打印在端口上。(所有日志的打印仅发生在首次调用)。
最后在客户端调用模型并接收返回结果。
本发明采用了基于grpc的部署方式,可以通过预先定义配置文件的方式来辅助完成后续的调用。支持自定义多模型选配的方式,增加灵活性。该部署方式针对硬件的限制更小,且支持通用的模型调用。可通过多线程并行加速调用,高效的完成结果的传输。
以上结合具体实施例描述了本发明的技术原理,仅是本发明的优选实施方式。本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
Claims (3)
1.一种基于grpc的高效多模型选配部署方法,其特征在于,包括以下步骤:服务器端开启需要调用的模型;在客户端根据需求传递待验证的图片;在客户端将会接受到由grpc服务器端传递的数据;还包括在预处理阶段,定义一份配置文件,包括目前项目所涉及并需要调用的模型权重文件以及模型的类别信息;由服务器端开启服务,等待客户端传递图片,客户端传递图片给服务器端并等待结果的返回;具体包括首先定义当前需要调用的端口号,以及各分类、分割、检测模型仓库,并在其中配置调用方式、支持的模型、权重文件、图片整体类别、图片中目标的类别、模型的配置文件,其次,将模型划分为单pipeline与多pipeline两种接口的形式,最后,根据需求开启服务端以及客户端完成模型的调用。
2.如权利要求1所述的一种基于grpc的高效多模型选配部署方法,其特征在于,单pipeline的设置步骤包括:根据需求选择对应的模型,若未选择模型或选择在配置文件中尚不支持的模型则会抛出对应的警告;grpc客户端将接受到空的结果返回;若选择单模型、双模型以及多模型,则三者都将先通过一个自适应模型选配模块,用于让模型自适应的选择模型预期的顺序。
3.如权利要求2所述的一种基于grpc的高效多模型选配部署方法,其特征在于,多pipeline的设置包括如下步骤:多pipeline模式将采用绑定项目的形式,在服务器端启动时,将打印当前项目所涉及的所有pipelines的信息,在客户端进行调用时将传递图片以及图片对应的相机位号,此时服务器端将根据传递的相机位号打印对应的模型pipeline,后续只需传递不同的相机位号便可调用不同的模型,并打印在端口上,最后在客户端调用模型并接收返回结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310456327.9A CN116185668B (zh) | 2023-04-26 | 2023-04-26 | 一种基于grpc的高效多模型选配部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310456327.9A CN116185668B (zh) | 2023-04-26 | 2023-04-26 | 一种基于grpc的高效多模型选配部署方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116185668A CN116185668A (zh) | 2023-05-30 |
CN116185668B true CN116185668B (zh) | 2023-06-30 |
Family
ID=86442615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310456327.9A Active CN116185668B (zh) | 2023-04-26 | 2023-04-26 | 一种基于grpc的高效多模型选配部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185668B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566165A (zh) * | 2017-08-18 | 2018-01-09 | 国网山东省电力公司信息通信公司 | 一种发现及部署电力云数据中心可用资源的方法及系统 |
CN108234607A (zh) * | 2017-12-18 | 2018-06-29 | 上海中畅数据技术有限公司 | 一种基于微服务架构模式下的文件分发方法与系统 |
CN112289307A (zh) * | 2020-11-12 | 2021-01-29 | 四川云从天府人工智能科技有限公司 | 基于GRPC实现Kaldi语音识别服务的方法、系统及介质 |
CN112955869A (zh) * | 2018-11-08 | 2021-06-11 | 英特尔公司 | 功能即服务(faas)系统增强 |
CN113988299A (zh) * | 2021-09-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 支持多模型多芯片的推理服务器的部署方法、系统及电子设备 |
CN114610991A (zh) * | 2022-03-01 | 2022-06-10 | 北京航空航天大学 | 基于区块链的多源数据融合全周期溯源分析方法及系统 |
CN115248692A (zh) * | 2022-09-21 | 2022-10-28 | 之江实验室 | 一种支持多种深度学习框架模型云端部署的装置及方法 |
EP4142206A1 (en) * | 2021-08-30 | 2023-03-01 | Madisetti, Vijay | Verifying integrity and secure operations of cloud-based software services |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11169985B2 (en) * | 2018-07-27 | 2021-11-09 | Oracle International Corporation | System and method for supporting SQL-based rich queries in hyperledger fabric blockchains |
US11900089B2 (en) * | 2021-05-04 | 2024-02-13 | Red Hat, Inc. | Automatically configuring and deploying a software operator in a distributed computing environment from a package |
-
2023
- 2023-04-26 CN CN202310456327.9A patent/CN116185668B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566165A (zh) * | 2017-08-18 | 2018-01-09 | 国网山东省电力公司信息通信公司 | 一种发现及部署电力云数据中心可用资源的方法及系统 |
CN108234607A (zh) * | 2017-12-18 | 2018-06-29 | 上海中畅数据技术有限公司 | 一种基于微服务架构模式下的文件分发方法与系统 |
CN112955869A (zh) * | 2018-11-08 | 2021-06-11 | 英特尔公司 | 功能即服务(faas)系统增强 |
CN112289307A (zh) * | 2020-11-12 | 2021-01-29 | 四川云从天府人工智能科技有限公司 | 基于GRPC实现Kaldi语音识别服务的方法、系统及介质 |
EP4142206A1 (en) * | 2021-08-30 | 2023-03-01 | Madisetti, Vijay | Verifying integrity and secure operations of cloud-based software services |
CN113988299A (zh) * | 2021-09-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 支持多模型多芯片的推理服务器的部署方法、系统及电子设备 |
CN114610991A (zh) * | 2022-03-01 | 2022-06-10 | 北京航空航天大学 | 基于区块链的多源数据融合全周期溯源分析方法及系统 |
CN115248692A (zh) * | 2022-09-21 | 2022-10-28 | 之江实验室 | 一种支持多种深度学习框架模型云端部署的装置及方法 |
Non-Patent Citations (3)
Title |
---|
Face Recognition Oak Ridge (FaRO): A Framework for Distributed and Scalable Biometrics Applications;David S. Bolme;《2020 IEEE International Joint Conference on Biometrics (IJCB)》;第1-8页 * |
Production Deployment of Machine-Learned Rotorcraft Surrogate Models on HPC;Wesley Brewer;《2021 IEEE/ACM Workshop on Machine Learning in High Performance Computing Environments (MLHPC)》;第21-32页 * |
基于深度学习的连铸板坯表面缺陷检测系统;毛欣翔;《工业控制计算机》;第66-68页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116185668A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106656650B (zh) | 业务测试环境的生成方法和系统、业务测试的方法、装置和系统 | |
CN111273892A (zh) | 一种基于云端技术和边缘计算实现智能机器人的方法 | |
CN104142856B (zh) | 服务程序调用方法、系统及其智能设备 | |
CN108491866A (zh) | 色情图片鉴定方法、电子装置及可读存储介质 | |
CN113269220A (zh) | 用于处理图像的方法和可编程数据存储系统 | |
CN114925387B (zh) | 基于端边云架构的分拣系统、方法、及可读存储介质 | |
CN110516000B (zh) | 一种支持复杂工作流结构的工作流管理系统 | |
CN116185668B (zh) | 一种基于grpc的高效多模型选配部署方法 | |
CN109669787A (zh) | 数据传输方法及装置、存储介质、电子设备 | |
CN102831250B (zh) | 一种联系人信息搜索系统和方法 | |
US20230386194A1 (en) | System and method for on device edge learning | |
CN117216001A (zh) | 一种基于云平台的档案管理系统和方法 | |
US20230297885A1 (en) | Big data-based modular ai engine server and driving method of the same | |
CN110399824A (zh) | zynq系统及基于zynq系统的图像目标识别方法 | |
CN111860852A (zh) | 用于处理数据的方法、装置和系统 | |
CN114670209A (zh) | 环境识别模型和控制决策的获取方法、装置及电子设备 | |
CN113010285B (zh) | 用于处理数据的方法、装置、设备、介质和产品 | |
CN103176454A (zh) | 多机器人系统的集群方法和系统 | |
CN113989559A (zh) | 分类模型的概率阈值的确定方法、装置、设备及存储介质 | |
CN114154638A (zh) | 一种大规模深度学习推断的分布式系统 | |
US20050155037A1 (en) | Systems and methods for providing a return value to an application program | |
CN111859240A (zh) | 一种图片导出的方法、相关装置及存储介质 | |
CN111400598A (zh) | 信息推送方法、服务器、多端口转发器和存储介质 | |
CN117456416B (zh) | 智能生成素材标签的方法及系统 | |
CN112348193B (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 |