CN110737538B - 一种基于thrift的算法模型调用系统 - Google Patents

一种基于thrift的算法模型调用系统 Download PDF

Info

Publication number
CN110737538B
CN110737538B CN201911038852.9A CN201911038852A CN110737538B CN 110737538 B CN110737538 B CN 110737538B CN 201911038852 A CN201911038852 A CN 201911038852A CN 110737538 B CN110737538 B CN 110737538B
Authority
CN
China
Prior art keywords
client
server
calling
module
call
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
Application number
CN201911038852.9A
Other languages
English (en)
Other versions
CN110737538A (zh
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201911038852.9A priority Critical patent/CN110737538B/zh
Publication of CN110737538A publication Critical patent/CN110737538A/zh
Application granted granted Critical
Publication of CN110737538B publication Critical patent/CN110737538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出了一种基于thrift的算法模型调用系统,包括服务端和多个客户端,所述服务端与客户端连接,并且所述服务端和客户端均建立在thrift框架上;其中:所述服务端,用于部署多种类训练好的算法模型;所述客户端,用于调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果。

Description

一种基于thrift的算法模型调用系统
技术领域
本发明涉及智能控制技术领域,特别涉及一种基于thrift的算法模型调用系统。
背景技术
在智能控制领域中,系统中个节点单元之间的算法或程序调用已经是运行控制过程中必不可少的流程,但是,作为一个完整的智能控制系统,其中个节点单元,例如服务端、客户端等通常在构建过程中根据实际需求会选择在不同的软件架构上或语言环境中进行建立。目前,当服务端与客户端采用不同语言构建时,客户端往往出现不能直接调用服务端内的算法或调用困难的情况,此时通常需要增加相应的转换模块,才能协助客户端完成服务端的算法调用,这种情况直接增加了调用系统结构复杂度,降低了调用效率。
发明内容
本发明提供了一种基于thrift的算法模型调用系统,用以解决当服务端与客户端采用不同语言构建时,服务端内的算法模型无法用其他语言建立的客户端直接进行调用的问题:
本发明提出的一种基于thrift的算法模型调用系统,所述系统包括服务端和多个客户端,所述服务端与客户端连接,并且所述服务端和客户端均建立在thrift框架上;其中:
所述服务端,用于部署多种类训练好的算法模型;
所述客户端,用于调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果。
进一步地,所述服务端采用Python语言建立,并通过多种类的训练好的算法模型部署而成。
进一步地,所述训练好的算法模型包括sklearn、xgboost、tensorfow、keras、PyTorch等库或框架中的至少一个模型。
进一步地,所述服务端包括多个模型调用通道;所述模型调用通道作为服务端执行客户端调用命令的执行区域。
进一步地,所述模型调用通道包括调用许可判断模块和客户端导入模块;
所述调用许可判断模块,用于限制同一模型调用通道内的客户端访问数量;
客户端导入模块,用于优先将带有直接导入标记的客户端导入调用许可判断模块中。
进一步地,所述调用许可判断模块包括:第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元;所述第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元用于判断是否允许客户端进行调用。
进一步地,所述模型调用通道还包括:
编号识别模块,用于识别客户端的编号;
编号输入模块,用于根据客户端的调用请求,在客户端欲向服务端调用算法模型时,向第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元中输入客户端的编号;
判断模块,用于根据第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元中的编号判断客户端是否能够调用服务端的算法模型;
授权模块,当判断模块确定客户端可以调用服务端中的算法模型时,为该客户端授权,允许其调用服务端中的算法模型。
进一步地,所述服务端还包括优先级设置模块、优先调用名录库、名录库判断模块和优先调用分配模块
所述优先级设置模块,用于对没有被允许执行当次调用请求的客户端设置优先级;
优先调用名录库,用于存储未被允许执行调用请求的客户端;
名录库判断模块,用于判断优先级调用名录库中是否有被设置了优先级的客户端;
优先调用分配模块,用于分配被设置了优先级的客户端进行服务端的算法模型调用。
进一步地,所述优先调用分配模块包括时刻识别模块,数量识别模块,通道占用量识别模块、客户端编写语言识别模块和算法调用时长估计模块;
时刻识别模块,用于识别优先调用名录库中每个优先级客户端的优先级设置时刻,并将所有优先级客户端按照优先级设置由先到后的顺序依次排序,形成优先级客户端队列;
数量识别模块,用于判断位于队首的客户端是否为同一时刻标记优先级的多个客户端;
通道占用量识别模块,用于判断是否有少于三个客户端的模型调用通道;
客户端编写语言识别模块,用于识别各客户端构建语言,并判断多个客户端的构建语言与服务端的数据交互难度是否相同;
算法调用时长估计模块,用于对数据交互难度相同的多个客户端的调用算法模型执行时间进行预估,判断执行时间是否相同。
进一步地,所述客户端包括:
编号生成模块,用于生成客户端自身的编号;
指令发送模块,用于向服务端发送调用指令和客户端编号。
进一步地,所述客户端调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果的过程中,采用的双向传输通道和单向传输通道同时进行所述算法模型数据传输,为保证数据传输的稳定性的情况下,同时提高数据传输、下载的速度,所述服务端能够根据控制结果,智能控制所述服务端所述双向传输通道或者所述单向传输通道进行数据传输,其中,所述智能控制的过程中包括如下步骤:
所述客户端调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果的过程中,采用的双向传输通道和单向传输通道同时进行所述算法模型数据传输,为保证数据传输的稳定性的情况下,同时提高数据传输、下载的速度,所述服务端能够根据控制结果,智能控制所述服务端所述双向传输通道或者所述单向传输通道进行数据传输,其中,所述智能控制的过程中包括如下步骤:
步骤A1、获取待传输数据的基本信息,以及所述客户端和所述服务端的基本信息,确定所述待传输数据的稳态概率;
Figure 100002_DEST_PATH_IMAGE001
其中,
Figure 105847DEST_PATH_IMAGE002
为所述稳态概率,
Figure 100002_DEST_PATH_IMAGE003
为所述客户端在传输数据过程中的
传输稳定性,
Figure 209938DEST_PATH_IMAGE004
为所述待传输数据的数据包个数,
Figure 100002_DEST_PATH_IMAGE005
为所述待传输数据中第
Figure 192937DEST_PATH_IMAGE006
个数据包的丢包概率,
Figure 100002_DEST_PATH_IMAGE007
为所述服务端在传输数据过程中的传输稳定性,
Figure 100002_DEST_PATH_IMAGE009
步骤A2、确定所述待传输数据的噪音概率密度;
Figure 509518DEST_PATH_IMAGE010
其中,
Figure 100002_DEST_PATH_IMAGE011
为所述待传输数据的噪音概率密度,
Figure 527152DEST_PATH_IMAGE012
为数学字符无穷大,
Figure 100002_DEST_PATH_IMAGE013
为所述 待传输数据的大小,
Figure 536566DEST_PATH_IMAGE014
为对含 有自变量参数
Figure 100002_DEST_PATH_IMAGE015
Figure 6861DEST_PATH_IMAGE016
的函数
Figure 100002_DEST_PATH_IMAGE017
做二次积分,且第一次积分的被 积参数为
Figure 674603DEST_PATH_IMAGE018
,被积下限为
Figure 100002_DEST_PATH_IMAGE019
,被积上限为
Figure 793082DEST_PATH_IMAGE012
,第二次积分的被积参数为
Figure 255287DEST_PATH_IMAGE016
,被积 下限为0,被积上限为
Figure 744037DEST_PATH_IMAGE012
步骤A3、确定所述服务端的控制结果;
Figure 949891DEST_PATH_IMAGE020
其中,
Figure 100002_DEST_PATH_IMAGE021
为所述控制结果,
Figure 925806DEST_PATH_IMAGE022
为符号函数,
Figure 100002_DEST_PATH_IMAGE023
为所述服务端所对应的客户端的 数量,
Figure 558913DEST_PATH_IMAGE024
为所述服务端给第
Figure 534959DEST_PATH_IMAGE026
个客户端传输的算法模型的传输数据的噪音概率密度,
Figure 100002_DEST_PATH_IMAGE027
为所述服务端给第
Figure 13345DEST_PATH_IMAGE026
个客户端传输的算法模型的传输数据的稳态概率;
步骤A4、挡所述述控制结果的值大于1时,则智能控制所述服务端所述双向传输通道对所述客户端传输待传输数据,否则采用单向传输通道对所述客户端传输待传输数据。
本发明有益效果:
本发明提出的一种基于thrift的算法模型调用系统,直接在thrift的构架上将训练好的算法模型部署为服务端,并且在thrift的构架上建立直接调用服务端算法模型的客户端。本发明所述算法模型调用系统通过thrift构架以跨语言跨平台的方式,能够在客户端与服务端采用不同语言建立的情况下,直接调用服务端中算法模型。尤其针对python语言建立的算法模型,能够使客户端对python语言建立的算法模型进行直接调用。
附图说明
图1为本发明所述算法调用系统的整体结构框图;
图2为本发明所述服务端的结构框图;
图3为本发明所述模型调用通道的结构框图;
图4为本发明所述客户端的结构框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明提供了一种基于thrift的算法模型调用系统,旨在实现当客户端与服务端采用不同语言建立时,客户端能够直接调用服务端内的算法模型,大幅度提高了算法调用的效率,简化了调用的结构。
本发明实施例提供了一种基于thrift的算法模型调用系统,如图1所示,包括服务端和多个客户端,所述服务端与客户端连接,并且所述服务端和客户端均建立在thrift框架上;其中:所述服务端,用于部署多种类训练好的算法模型;所述客户端,用于调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果。
上述方案的工作原理为:在thrift框架上通过多种类的训练好的算法模型部署建立服务端,同时,在thrift框架上,利用thrift框架语言构建客户端,并且,客户端与服务端可以通过不同的语言进行建立;当客户端需要调用算法模型时,无需进行语言指令转换,直接向服务端发送调用指令,调取服务端中的算法模型进行数据运算,获得运算结果。
上述方案的有益效果为:首先,在服务端与客户端构建时,不受构建语言的限制,能够有效提高系统构建的速度和效率;其次,使用thrift语言建立客户端,能够对服务端内的算法模型进行直接调用,有效简化了系统结构,提高了算法模型的调用速度和调用效率,提高指令传输质量。
在一个实施例中,所述服务端采用Python语言建立,并通过多种类的训练好的算法模型部署而成。
上述技术方案的原理为:利用Python语言,直接将多种类训练好的算法模型部署为服务端。
上述技术方案的有益效果为:在特定应用领域中(例如人工智能领域),许多业务场景下都需要使用训练好的算法模型,本实施例直接在thrift框架内将训练好的算法模型部署为服务端,客户端在进行调用时,其直接调用的算法模型均为已训练好的模型,这种服务端设置方式提高了特定业务场景下的系统响应速度,有效降低了系统运行时间。同时,利用thrift架构建立Python语言的服务端,能够有效提高客户端调用服务端算法模型的速度。
在一个实施例中,所述训练好的算法模型包括sklearn、xgboost、tensorfow、keras、PyTorch库或框架中的模型以及其他种类模型库或架构。
上述技术方案的原理为:利用sklearn、xgboost、tensorfow、keras、PyTorch库或框架中的算法模型在thrift框架内构建服务端。
上述技术方案的有益效果为:sklearn、xgboost、tensorfow、keras、PyTorch库或框架中所包含的已训练好的算法模型得种类非常多,能够用于执行多种场景下的命令需求。
在一个实施例中,如图2所示,所述服务端包括多个模型调用通道;所述模型调用通道作为服务端执行客户端调用命令的执行区域。
上述技术方案的原理为:所述服务端内设有多个模型调用通道,客户端在服务器的模型调用通道内对服务端中的算法模型进行调用。每个客户端对应一个模型调用通道执行算法模型的调用。
上述技术方案的有益效果:在有多个客户端同时调用服务端的算法模型时,为了在当访问量过大时,防止服务端发生指令接收错误,和数据拥挤发生系统崩溃、瘫痪的现象;在服务端内设置多个模型调用通道,使客户端在服务器调用过程中有专门的访问渠道,防止指令之间的相互干扰,以及数据拥挤,有效降低指令接收错误和系统瘫痪现象的发生,提高调用系统运行的稳定性。
在一个实施例中,如图3所示,所述模型调用通道包括调用许可判断模块和客户端导入模块;
所述调用许可判断模块,用于限制同一模型调用通道内的客户端访问数量;
客户端导入模块,用于优先将带有直接导入标记的客户端导入调用许可判断模块中。
上述技术方案的原理为:在客户端通过模型调用通道进行服务端调用时,通过调用许可判断模块对同一个模型调用通道内的客户访问数量进行监控和限制,以此防止发生服务端的数据拥挤现象。另一方面,模型调用通道通过客户端导入模块将带有直接导入标记的客户端导入调用许可判断模块中,可以对那些由于访问数量监控导致未被允许执行调用的客户端进行优先导入。
上述技术方案的有益效果:有效降低指令接收错误和系统瘫痪现象的发生,提高调用系统运行的稳定性,同时,保证各个客户端均能及时对服务端进行调用操作,防止客户端调用请求接收的滞延。
在一个实施例中,如图3所示,所述调用许可判断模块包括:第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元;所述第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元用于判断是否允许客户端进行调用。
上述技术方案的原理为:在某一客户端通过模型调用通道调用客户端之前,将客户端对应的编号输入至第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元的任意一个单元中,同时,确定另外三个没有输入该客户端编号的第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元或第四调用请求判断单元中是否存在其他客户端的编号;如果此时剩余的三个判断单元(第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元或第四调用请求判断单元)中至少有一个判断单元没有其他客户端的编号,说明当前通过该模型调用通道调取服务端中的算法模型的客户端少于三个,此时,允许该客户端对服务端进行调用;如果此时剩余的三个判断单元(第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元或第四调用请求判断单元)中均有其他客户端的编码,则按照输入编码的先后顺序,前三个输入编码的客户端被允许通过此模型调用通道调取服务端中的算法模型。
上述技术方案的有益效果:通过在调用许可判断模块中设置四个调用请求判断单元的方式,能够实现对同一个模型调用通道中的客户端数量进行有效的监控,准确的排出过多的客户端同时使用一个模型调用通道的情况,提高客户端数量监控的准确度。同时,进一步的控制了同一时间点内服务端的调用指令数据量,有效提高了调用系统运行的稳定性。
在一个实施例中,如图3所示,所述模型调用通道还包括:
编号识别模块,用于识别客户端的编号;
编号输入模块,用于根据客户端的调用请求,在客户端欲向服务端调用算法模型时,向第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元中输入客户端的编号;
判断模块,用于根据第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元中的编号判断客户端是否能够调用服务端的算法模型;
授权模块,当判断模块确定客户端可以调用服务端中的算法模型时,为该客户端授权,允许其调用服务端中的算法模型。
上述技术方案的原理为:首先利用编号识别模块识别出客户端对应的编号;并通过编号输入模块向第第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元中输入客户端的编号,然后,通过判断模块对该客户端是否能够通过该模型调用通道访问服务端进行判断,如果判断结果为允许该客户端调用服务端的算法模型,则通过授权模块对该客户端进行授权,被授权的客户端即可直接对服务端的算法模型进行调用。
上述技术方案的有益效果:提高客户端数量监控的准确度和调用系统运行的稳定性。
在一个实施例中,如图2所示,所述服务端还包括优先级设置模块、优先调用名录库、名录库判断模块和优先调用分配模块
所述优先级设置模块,用于对没有被允许执行当次调用请求的客户端设置优先级;
优先调用名录库,用于存储未被允许执行调用请求的客户端;
名录库判断模块,用于判断优先级调用名录库中是否有被设置了优先级的客户端;
优先调用分配模块,用于分配被设置了优先级的客户端进行服务端的算法模型调用。
上述技术方案的原理为:服务端通过优先级设置模块,对还没有被允许执行当此调用请求的客户端,设置优先级并标记优先级设置时刻;并将未被允许执行调用请求的客户端存储在优先调用名录库中;在需要执行具有优先级的客户端调用时,先通过名录库判断模块判断优先级调用名录库中是否有优先级客户端,如果为否,就不进行任何操作,如果为是,就向优先调用分配模块发送优先调用请求,然后,由优先调用分配模块对具有优先级的客户端进行服务端调用权限的处理。
上述技术方案的有益效果:对于当次调用未被允许的客户端,在保证访问数量占用未饱和的情况下,能够及时执行其调用指令,避免某个客户端出现一直无法被执行调用的情况出现,保证各个调用服务端的算法模型的客户端均能及时被执行。
在一个实施例中,如图2所示,所述优先调用分配模块包括时刻识别模块,数量识别模块,通道占用量识别模块、客户端编写语言识别模块和算法调用时长估计模块;
时刻识别模块,用于识别优先调用名录库中每个优先级客户端的优先级设置时刻,并将所有优先级客户端按照优先级设置由先到后的顺序依次排序,形成优先级客户端队列;
数量识别模块,用于判断位于队首的客户端是否为同一时刻标记优先级的多个客户端;
通道占用量识别模块,用于判断是否有少于三个客户端的模型调用通道;
客户端编写语言识别模块,用于识别各客户端构建语言,并判断多个客户端的构建语言与服务端的数据交互难度是否形同;
算法调用时长估计模块,用于对数据交互难度相同的多个客户端的调用算法模型执行时间进行预估,判断执行时间是否相同。
上述技术方案的原理为:
优先调用分配模块接收到优先调用请求后,利用时刻识别模块识别优先调用名录库中每个优先级客户端的优先级设置时刻,将所有优先级客户端按照优先级设置由先到后的顺序依次排序,形成优先级客户端队列;然后,数量识别模块判断位于队首的客户端是否为同一时刻标记优先级的多个客户端;如果队首的客户端不是同一时刻标记优先级的多个客户端,则通道占用量识别模块判断是否有少于三个客户端的模型调用通道,如果没有少于三个客户端的模型调用通道,则对该客户端设置直接导入标记,在出现满足要求的模型调用通道时,模型调用通道通过客户端导入模块优先将设置有直接导入标记的客户端导入调用许可判断模块中进行许可判断,并在调用许可模块判断过程中,优先保留该客户端,使其服务端尽快执行该客户端的调用指令;如果有少于三个客户端的模型调用通道,则将优先级时刻首位的客户端直接分配到该模型调用通道的调用许可判断模块中,并在调用许可模块判断过程中,优先保留该客户端,使其服务端尽快执行该客户端的调用指令;然后,重复上述过程,使没有被允许调用的客户端尽快完成调用操作。
如果队首的客户端是同一时刻标记优先级的多个客户端,则通过客户端编写语言识别模块识别各客户端构建语言,并判断多个客户端的构建语言与服务端的数据交互难度是否相同,如果难度均不相同,则同一时刻标记优先级的多个客户端中,根据数据交互难度由低到高依次通过通道占用量识别模块等组模实现调用;如果难度全部或部分相同,则通过算法调用时长估计模块对难度相同的多个客户端的调用算法模型执行时间进行预估,判断执行时间是否相同,如果执行时间不同,则根据执行时间由短到长依次通过通道占用量识别模块等组模实现调用;如果执行时间全部或部分相同,则在该多个客户端中通过随机选取的方式,依次通过通道占用量识别模块等组模实现调用。
其中,上述通过通道占用量识别模块等组模实现调用的具体过程是指:通道占用量识别模块判断是否有少于三个客户端的模型调用通道,如果没有少于三个客户端的模型调用通道,则对某个筛选阶段对应的符合筛选要求的客户端设置直接导入标记,在出现满足要求的模型调用通道时,模型调用通道通过客户端导入模块优先将设置有直接导入标记的客户端导入调用许可判断模块中进行许可判断,并在调用许可模块判断过程中,优先保留该客户端,使其服务端尽快执行该客户端的调用指令;如果有少于三个客户端的模型调用通道,则将符合筛选要求的客户端直接分配到该模型调用通道的调用许可判断模块中,并在调用许可模块判断过程中,优先保留该客户端,使其服务端尽快执行该客户端的调用指令;然后,重复上述过程,直至该筛选阶段的所有目标客户端全部执行调用。
上述技术方案的有益效果:如此设置,能够保证没有被允许执行调用的客户端能够有序的执行其调用指令;一方面避免出现客户端一直不被允许执行调用的情况出现,另一方面,在服务端访问量非常大,导致当次不被允许执行调用的客户端数量不断增加的情况下,根据客户端的不被允许调用的时间先后顺序以及不同特性指标进行优先级筛选的设置能够有效提高当次不被允许执行调用的客户端被安排进行调用的时间,提高此类客户端的消化速度,提高整体调用系统的运行速度,提高调用效率,有效防止未执行调用的客户端数量堆积,保证了调用系统整体运行的稳定性。
在一个实施例中,如图4所示,所述客户端包括:
编号生成模块,用于生成客户端自身的编号;
指令发送模块,用于向服务端发送调用指令和客户端编号。
上述技术方案的原理为:通过编号生成模块生成客户端对应的编码,然后通过指令发送模块将服务端发送调用指令和客户端编号同时发送给服务端,由服务端来判断该客户端是否能够对其算法模型进行调用。
上述技术方案的有益效果:首先,通过客户端编号的方式能够实现客户端同一时间点内对服务端调用数量,保证服务端数据量为稳定且处于非饱和状态,有效提高模型调用运行的稳定性。同时,客户端编号这一方式能够有效监控客户端调用算法的频次和数量,方便进行调用过程整体的相关数据整合,有效提高了算法模型调用系统的自身信息监控效率和质量。
在一个实施例中,所述客户端调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果的过程中,采用的双向传输通道和单向传输通道同时进行所述算法模型数据传输,为保证数据传输的稳定性的情况下,同时提高数据传输、下载的速度,所述服务端能够根据控制结果,智能控制所述服务端所述双向传输通道或者所述单向传输通道进行数据传输,其中,所述智能控制的过程中包括如下步骤:
步骤A1、获取待传输数据的基本信息,以及所述客户端和所述服务端的基本信息,确定所述待传输数据的稳态概率;
Figure 640504DEST_PATH_IMAGE001
其中,
Figure 444512DEST_PATH_IMAGE002
为所述稳态概率,
Figure 642275DEST_PATH_IMAGE003
为所述客户端在传输数据过程中的
传输稳定性,
Figure 455510DEST_PATH_IMAGE004
为所述待传输数据的数据包个数,
Figure 422329DEST_PATH_IMAGE005
为所述待传输数据中第
Figure 177665DEST_PATH_IMAGE006
个数据包的丢包概率,
Figure 862724DEST_PATH_IMAGE007
为所述服务端在传输数据过程中的传输稳定性
Figure DEST_PATH_IMAGE009A
Figure 417333DEST_PATH_IMAGE028
步骤A2、确定所述待传输数据的噪音概率密度;
Figure 504238DEST_PATH_IMAGE010
其中,
Figure 167825DEST_PATH_IMAGE011
为所述待传输数据的噪音概率密度,
Figure 340180DEST_PATH_IMAGE012
为数学字符无穷大,
Figure 229639DEST_PATH_IMAGE013
为所述 待传输数据的大小,
Figure 436629DEST_PATH_IMAGE014
为对含 有自变量参数
Figure 18920DEST_PATH_IMAGE015
Figure 927839DEST_PATH_IMAGE016
的函数
Figure 886568DEST_PATH_IMAGE017
做二次积分,且第一次积分的被 积参数为
Figure 416907DEST_PATH_IMAGE018
,被积下限为
Figure 170099DEST_PATH_IMAGE019
,被积上限为
Figure 317046DEST_PATH_IMAGE012
,第二次积分的被积参数为
Figure DEST_PATH_IMAGE029
,被 积下限为0,被积上限为
Figure 797575DEST_PATH_IMAGE012
步骤A3、确定所述服务端的控制结果;
Figure 713579DEST_PATH_IMAGE020
其中,
Figure 372093DEST_PATH_IMAGE021
为所述控制结果,
Figure 6337DEST_PATH_IMAGE022
为符号函数,
Figure 41289DEST_PATH_IMAGE023
为所述服务端所对应的客户端的 数量,
Figure 326646DEST_PATH_IMAGE024
为所述服务端给第
Figure DEST_PATH_IMAGE031
个客户端传输的算法模型的传输数据的噪音概率密度,
Figure 624903DEST_PATH_IMAGE027
为所述服务端给第
Figure DEST_PATH_IMAGE031A
个客户端传输的算法模型的传输数据的稳态概率;
步骤A4、挡所述述控制结果的值大于1时,则智能控制所述服务端所述双向传输通道对所述客户端传输待传输数据,否则采用单向传输通道对所述客户端传输待传输数据。有益效果:
利用上述技术可以智能控制所述服务端与所述客户端在进行数据传输时是采用单向通道传输或者双向通道传输,从而可以避免在只采用单向通道传输的过程中传输速度过慢,吞吐量低等情况,而仅仅在采用双向通道进行传输时出现负载过大,数据在传输时稳定性降低的情况,从而能根据待传输数据以及所述客户端和服务端的特性智能的调整,使得所述数据在传输的过程中,保证稳定性的情况,能大幅度的提高传输熟读,使系统效率得到大幅度的优化,从而减小传输过程中的开销。
显然,本领域的技术人员可以对本实用新型进行各种改动和变型而不脱离本实用新型的精神和范围。这样,倘若本实用新型的这些修改和变型属于本实用新型权利要求及其等同技术的范围之内,则本实用新型也意图包含这些改动和变型在内。

Claims (9)

1.一种基于thrift的算法模型调用系统,其特征在于,所述系统包括服务端和多个客户端,所述服务端与客户端连接,并且所述服务端和客户端均建立在thrift框架上;其中:
所述服务端,用于部署多种类训练好的算法模型;
所述客户端,用于调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果;
所述客户端调用所述服务端中已训练好的算法模型,进行数据计算,并获得计算结果的过程中,采用的双向传输通道和单向传输通道同时进行所述算法模型数据传输,为保证数据传输的稳定性的情况下,同时提高数据传输、下载的速度,所述服务端能够根据控制结果,智能控制所述服务端所述双向传输通道或者所述单向传输通道进行数据传输,其中,所述智能控制的过程中包括如下步骤:
步骤A1、获取待传输数据的基本信息,以及所述客户端和所述服务端的基本信息,确定所述待传输数据的稳态概率;
Figure DEST_PATH_IMAGE001
其中,
Figure 122480DEST_PATH_IMAGE002
为所述稳态概率,
Figure DEST_PATH_IMAGE003
为所述客户端在传输数据过程中的
传输稳定性,
Figure 695544DEST_PATH_IMAGE004
为所述待传输数据的数据包个数,
Figure DEST_PATH_IMAGE005
为所述待传输数据中第
Figure 789402DEST_PATH_IMAGE006
个数 据包的丢包概率,
Figure DEST_PATH_IMAGE007
为所述服务端在传输数据过程中的传输稳定性,K=1、2、……、M
步骤A2、确定所述待传输数据的噪音概率密度;
Figure 38987DEST_PATH_IMAGE008
其中,
Figure DEST_PATH_IMAGE009
为所述待传输数据的噪音概率密度,
Figure 851085DEST_PATH_IMAGE010
为数学字符无穷大,
Figure DEST_PATH_IMAGE011
为所述待传 输数据的大小,
Figure 211528DEST_PATH_IMAGE012
为对含有自 变量参数
Figure DEST_PATH_IMAGE013
Figure 691051DEST_PATH_IMAGE014
的函数
Figure DEST_PATH_IMAGE015
做二次积分,且第一次积分的被积参 数为
Figure 862269DEST_PATH_IMAGE016
,被积下限为
Figure DEST_PATH_IMAGE017
,被积上限为∞,第二次积分的被积参数为
Figure 413861DEST_PATH_IMAGE018
,被积下限 为0,被积上限为∞;
步骤A3、确定所述服务端的控制结果;
Figure DEST_PATH_IMAGE019
其中,
Figure 328727DEST_PATH_IMAGE020
为所述控制结果,
Figure DEST_PATH_IMAGE021
为符号函数,
Figure 397177DEST_PATH_IMAGE022
为所述服务端所对应的客户端的数 量,
Figure DEST_PATH_IMAGE023
为所述服务端给第
Figure 988564DEST_PATH_IMAGE024
个客户端传输的算法模型的传输数据的噪音概率密度,
Figure DEST_PATH_IMAGE025
为 所述服务端给第
Figure DEST_PATH_IMAGE027
个客户端传输的算法模型的传输数据的稳态概率;
步骤A4、挡所述述控制结果的值大于1时,则智能控制所述服务端所述双向传输通道对所述客户端传输待传输数据,否则采用单向传输通道对所述客户端传输待传输数据。
2.根据权利要求1所述算法模型调用系统,其特征在于,所述服务端采用Python语言建立,并通过多种类的训练好的算法模型部署而成。
3.根据权利要求1所述算法模型调用系统,其特征在于,所述训练好的算法模型包括sklearn、xgboost、tensorfow、keras、PyTorch库或框架中的至少一个模型。
4.根据权利要求1所述算法模型调用系统,其特征在于,所述服务端包括多个模型调用通道;所述模型调用通道作为服务端执行客户端调用命令的执行区域。
5.根据权利要求4所述算法模型调用系统,其特征在于,所述模型调用通道包括调用许可判断模块和客户端导入模块;
所述调用许可判断模块,用于限制同一模型调用通道内的客户端访问数量;
客户端导入模块,用于优先将带有直接导入标记的客户端导入调用许可判断模块中。
6.根据权利要求5所述算法模型调用系统,其特征在于,所述调用许可判断模块包括:第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元;所述第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元用于判断是否允许客户端进行调用。
7.根据权利要求4所述算法模型调用系统,其特征在于,所述模型调用通道还包括:
编号识别模块,用于识别客户端的编号;
编号输入模块,用于根据客户端的调用请求,在客户端欲向服务端调用算法模型时,向第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元中输入客户端的编号;
判断模块,用于根据第一调用请求判断单元、第二调用请求判断单元、第三调用请求判断单元和第四调用请求判断单元中的编号判断客户端是否能够调用服务端的算法模型;
授权模块,当判断模块确定客户端可以调用服务端中的算法模型时,为该客户端授权,允许其调用服务端中的算法模型。
8.根据权利要求1所述算法模型调用系统,其特征在于,所述服务端还包括优先级设置模块、优先调用名录库、名录库判断模块和优先调用分配模块
所述优先级设置模块,用于对没有被允许执行当次调用请求的客户端设置优先级;
优先调用名录库,用于存储未被允许执行调用请求的客户端;
名录库判断模块,用于判断优先级调用名录库中是否有被设置了优先级的客户端;
优先调用分配模块,用于分配被设置了优先级的客户端进行服务端的算法模型调用。
9.根据权利要求8所述算法模型调用系统,其特征在于,所述优先调用分配模块包括时刻识别模块,数量识别模块,通道占用量识别模块、客户端编写语言识别模块和算法调用时长估计模块;
时刻识别模块,用于识别优先调用名录库中每个优先级客户端的优先级设置时刻,并将所有优先级客户端按照优先级设置时刻由先到后的顺序依次排序,形成优先级客户端队列;
数量识别模块,用于判断位于队首的客户端是否为同一时刻标记优先级的多个客户端;
通道占用量识别模块,用于判断是否有少于三个客户端的模型调用通道;
客户端编写语言识别模块,用于识别各客户端构建语言,并判断多个客户端的构建语言与服务端的数据交互难度是否相同;
算法调用时长估计模块,用于对数据交互难度相同的多个客户端的调用算法模型执行时间进行预估,判断执行时间是否相同。
CN201911038852.9A 2019-10-29 2019-10-29 一种基于thrift的算法模型调用系统 Active CN110737538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911038852.9A CN110737538B (zh) 2019-10-29 2019-10-29 一种基于thrift的算法模型调用系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911038852.9A CN110737538B (zh) 2019-10-29 2019-10-29 一种基于thrift的算法模型调用系统

Publications (2)

Publication Number Publication Date
CN110737538A CN110737538A (zh) 2020-01-31
CN110737538B true CN110737538B (zh) 2022-03-25

Family

ID=69270303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911038852.9A Active CN110737538B (zh) 2019-10-29 2019-10-29 一种基于thrift的算法模型调用系统

Country Status (1)

Country Link
CN (1) CN110737538B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400000B (zh) * 2020-03-09 2023-07-25 百度在线网络技术(北京)有限公司 网络请求处理方法、装置、设备和存储介质
CN111612158B (zh) * 2020-05-22 2024-03-01 云知声智能科技股份有限公司 模型部署方法、装置、设备和存储介质
CN112632476A (zh) * 2020-12-31 2021-04-09 四川虹微技术有限公司 算法授权保护方法、装置、集成电路芯片及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1229214A (zh) * 1998-03-16 1999-09-22 王海鹰 一种计算机网络非对称信道传输系统
CN101282247A (zh) * 2007-04-27 2008-10-08 清华大学 支持互联网高带宽实时视频应用的网络应用性能测量方法
CN104009994A (zh) * 2014-05-30 2014-08-27 北京京东尚科信息技术有限公司 实现服务端与客户端通讯的方法和装置
CN108920286A (zh) * 2018-06-28 2018-11-30 河南思维轨道交通技术研究院有限公司 一种在Thrift RPC环境下高效率使用Python脚本的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1229214A (zh) * 1998-03-16 1999-09-22 王海鹰 一种计算机网络非对称信道传输系统
CN101282247A (zh) * 2007-04-27 2008-10-08 清华大学 支持互联网高带宽实时视频应用的网络应用性能测量方法
CN104009994A (zh) * 2014-05-30 2014-08-27 北京京东尚科信息技术有限公司 实现服务端与客户端通讯的方法和装置
CN108920286A (zh) * 2018-06-28 2018-11-30 河南思维轨道交通技术研究院有限公司 一种在Thrift RPC环境下高效率使用Python脚本的方法

Also Published As

Publication number Publication date
CN110737538A (zh) 2020-01-31

Similar Documents

Publication Publication Date Title
CN110737538B (zh) 一种基于thrift的算法模型调用系统
US7339948B2 (en) Industrial controller providing deterministic communication on ethernet
CN106445675B (zh) 一种b2b平台分布式应用调度与资源分配方法
CN108848146B (zh) 一种基于时间触发通信业务的调度优化方法
CN103326914A (zh) 用于对等通信的确定性退避方法和装置
CN103346980B (zh) 一种业务调度方法、装置及网络设备
CN108111335A (zh) 一种调度和链接虚拟网络功能的方法及系统
CN108512890A (zh) 一种基于机架感知的容器云平台资源调度方法及系统
Shi et al. Real-time communication analysis with a priority share policy in on-chip networks
CN112073237B (zh) 一种云边架构中大规模目标网络构建方法
CN102668471B (zh) 对来自多个数据源的数据进行聚合的方法和设备
CN109617806B (zh) 一种数据流量调度方法及装置
CN106716368A (zh) 用于应用的网络分类
Potier New users' introduction to QNAP 2
CN108540405A (zh) 网络资源迁移方法及装置
US11868808B2 (en) Automatic driving simulation task scheduling method and apparatus, device, and readable medium
JP5108011B2 (ja) バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム
CN116723143B (zh) 一种基于流量亲和性的网络靶场资源分配方法与系统
CN100477630C (zh) 一种数据网络中的队列调度方法及装置
CN112714081B (zh) 一种数据处理方法及其装置
CN113608852A (zh) 任务调度方法、调度模块、推理节点和协同作业系统
WO2024041052A1 (zh) 带宽划分方法、装置、设备及计算机可读存储介质
CN112367708B (zh) 一种网络资源分配方法及装置
CN114327925A (zh) 一种电力数据实时计算调度优化方法及系统
CN111541774A (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