CN111813529B - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111813529B CN111813529B CN202010700144.3A CN202010700144A CN111813529B CN 111813529 B CN111813529 B CN 111813529B CN 202010700144 A CN202010700144 A CN 202010700144A CN 111813529 B CN111813529 B CN 111813529B
- Authority
- CN
- China
- Prior art keywords
- model
- data
- models
- data processing
- task
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 51
- 238000003672 processing method Methods 0.000 title abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 322
- 230000008569 process Effects 0.000 claims abstract description 279
- 238000012545 processing Methods 0.000 claims abstract description 148
- 230000000903 blocking effect Effects 0.000 claims description 49
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 36
- 238000013473 artificial intelligence Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000003062 neural network model Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、电子设备及存储介质。方法包括:响应于业务方发送的数据处理请求,获取数据处理请求对应的待执行任务;获取待执行任务对应的多个模型以及多个模型各自的调用顺序;当获取到待执行任务对应的输入数据后,基于调用顺序调用多个模型对各自对应的阶段数据进行处理,其中,调用顺序在最前的模型对应的阶段数据为输入数据,调用顺序在后的模型对应的阶段数据为调用顺序在前的模型的输出数据;将调用顺序在最后的模型的输出数据进行输出。通过上述方式可以实现在计算任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也可以提升电子设备通过模型来进行数据处理的效率。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
随着人工智能技术应用范围越来越广泛,在更多的计算领域都使用到了人工智能技术。在一些计算任务的执行过程中可能会调用到多个不同的AI(ArtificialIntelligence)模型参与其中。但是,相关的AI模型框架还无法较好的支持在计算任务过程中调用多个不同的AI模型。
发明内容
鉴于上述问题,本申请提出了一种数据处理方法、装置、电子设备及存储介质,以改善上述问题。
第一方面,本申请提供了一种数据处理方法,所述方法包括:响应于业务方发送的数据处理请求,获取所述数据处理请求对应的待执行任务;获取所述待执行任务对应的多个模型以及所述多个模型各自的调用顺序;当获取到所述待执行任务对应的输入数据后,基于所述调用顺序获取目标模型对应的工作进程,所述目标模型为当前调用顺序对应的模型,且所述调用顺序不同的模型所对应的工作进程不同;基于所述工作进程运行所述目标模型,以对所述目标模型对应的阶段数据进行处理,其中,调用顺序在最前的模型对应的所述阶段数据为所述输入数据,调用顺序在后的模型对应的所述阶段数据为调用顺序在前的模型的输出数据;将调用顺序在最后的模型的输出数据进行输出。
第二方面,本申请提供了一种数据处理装置,所述装置包括:请求响应单元、模型获取单元、数据处理单元以及数据通信单元。其中,请求响应单元,用于响应于业务方发送的数据处理请求,获取所述数据处理请求对应的待执行任务;模型获取单元,用于获取所述待执行任务对应的多个模型以及所述多个模型各自的调用顺序;数据处理单元,用于当获取到所述待执行任务对应的输入数据后,基于所述调用顺序获取目标模型对应的工作进程,所述目标模型为当前调用顺序对应的模型,且所述调用顺序不同的模型所对应的工作进程不同;基于所述工作进程运行所述目标模型,以对所述目标模型对应的阶段数据进行处理,其中,调用顺序在最前的模型对应的所述阶段数据为所述输入数据,调用顺序在后的模型对应的所述阶段数据为调用顺序在前的模型的输出数据;数据通信单元,用于将调用顺序在最后的模型的输出数据进行输出。
第三方面,本申请提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行以实现上述的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。
本申请提供的一种数据处理方法、装置、电子设备及存储介质,在响应于业务方发送的数据处理请求后,先获取所述数据处理请求对应的待执行任务,进而确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,然后可以当获取到所述待执行任务对应的输入数据后,基于所述调用顺序获取目标模型对应的工作进程,基于所述工作进程运行所述目标模型,以对所述目标模型对应的阶段数据进行处理,再将调用顺序在最后的模型的输出数据进行输出。通过上述方式可以实现在确定待执行任务后,可以根据所要执行的任务与所需的模型,确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,并可以根据调用顺序来调用多个模型处理各自对应的阶段数据,从而实现了支持在计算任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行数据处理的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例所涉及的一种应用环境的示意图;
图2示出了本申请一实施例提出的一种数据处理方法的流程图;
图3示出了本申请实施例中进程地址从进程队列中取出和存放回的示意图;
图4示出了本申请再一实施例提出的一种数据处理方法的流程图;
图5示出了本申请实施例中阻塞队列调控数据处理速度的示意图;
图6示出了本申请实施例中工作流逻辑控制线程控制数据处理方法的时序图;
图7示出了本申请又一实施例提出的一种数据处理方法的流程图;
图8示出了本申请实施例中管理进程对工作进程进行管理的示意图;
图9示出了本申请又一实施例提出的一种数据处理方法的流程图;
图10示出了本申请实施例提出的一种数据处理装置的结构框图;
图11示出了本申请另一实施例提出的一种数据处理装置的结构框图;
图12示出了用于执行根据本申请实施例的数据处理方法的一种电子设备的结构框图;
图13示出了本申请实施例的用于保存或者携带实现根据本申请实施例的数据处理方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其中,随着人工智能技术应用范围越来越广泛,在更多的计算领域都使用到了人工智能技术。在一些计算任务的执行过程中可能会调用到多个不同的AI模型参与其中。但是,相关的AI模型框架还无法较好的支持在计算任务过程中调用多个不同的AI模型。例如,在视频台词生成场景中,可能会用到文本框识别模型以及文本识别模型,但是,在相关的模型运行方式中,却无法良好的支持在一次计算任务过程中对文本框识别模型以及文本识别模型的调用,进而无法实现有效的协同文本框识别模型以及文本识别模型共同进行工作。
因此,发明人提出了本申请提供的数据处理方法、装置、电子设备及存储介质,在该方法中,在响应于业务方发送的数据处理请求后,先获取所述数据处理请求对应的待执行任务,进而确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,然后可以当获取到所述待执行任务对应的输入数据后,基于所述调用顺序调用所述多个模型对各自对应的阶段数据进行处理,再将调用顺序在最后的模型的输出数据进行输出。
通过上述方式可以实现在根据数据处理请求而确定待执行任务后,根据所要执行的任务与所需的模型以及模型的调用顺序的对应关系,而确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,并可以根据调用顺序来调用多个模型处理各自对应的阶段数据,从而实现了支持在计算任务中对多个模型进行调用。并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行数据处理的效率。
在对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及一种应用环境进行介绍。
如图1所示,图1所示为本申请实施例所涉及的应用环境的示意图。其中,应用环境包括有客户端110以及服务器120。客户端110可以生成处理请求,然后将所生成的处理请求发送给服务器120,而本申请实施例所提供的数据处理方法可以运行于其中的服务器120中,进而在服务器120接收到处理请求后,可以进一步的基于本申请实施例所提供的数据处理方法来进行后续的处理,并将处理结果再返回给客户端。
需要说明的是,其中,服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。客户端110所在的电子设备可以为智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
下面将结合附图具体描述本申请的各实施例。
请参阅图2,图2所示为本申请一实施例提出的一种数据处理方法的流程图,该方法包括:
S210:响应于业务方发送的数据处理请求,获取数据处理请求对应的待执行任务。
在本实施例中,业务方可以理解为对本实施例所提供的数据处理方法有需求的一方。例如,业务方可以为执行应用层程序的用户客户端,其中,该应用层程序可以为负责执行与用户之间进行交互功能的程序。再例如,业务方也可以为用户客户端所对应的服务端。
在接收到业务方发送的数据处理请求后,就可以根据该数据处理请求来获取到所对应的计算任务作为待执行任务。
作为一种方式,可以预先建立数据处理请求和计算任务之间的对应关系。那么在获取到数据处理请求后就可以通过查询该对应关系来获取到所对应的计算任务以作为对应的待执行任务。示例性的,若对应关系包括有数据处理请求A对应于计算任务A,数据处理请求B对应于计算任务B,以及数据处理请求C对应于计算任务C的情况下,当检测到所接收到的数据处理请求为数据处理请求C时,则可以将计算任务C作为对应的待执行任务。
需要说明的是,数据处理请求可以包括有多个组成部分,其中的每个组成部分可以用于携带特定的信息(例如,请求标识),进而在本实施例中可以通过该多个组成部分中的指定组成部分来携带请求标识,以便使得在接收到数据处理请求后,可以通过该指定组成部分所携带的请求标识来识别所接收到的数据处理请求具体是哪种类型的数据处理请求。
S220:获取待执行任务对应的多个模型以及多个模型各自的调用顺序。
其中,在本实施例中不同的计算任务所需要调用的模型种类和模型数量可能是不同的。那么在确定待执行任务后,可以进一步的基于待执行任务来确定对应的多个模型以及多个模型各自的调用顺序。
作为一种方式,可以建立有计算任务和所需调用模型以及所需调用模型的调用顺序的对应关系。那么在确定待执行任务后,可以通过查询计算任务和所需调用模型以及所需调用模型的调用顺序的对应关系,就可以获取到待执行任务对应的多个模型以及多个模型各自的调用顺序。示例性的,若计算任务A对应于模型a以及模型b,且调用顺序是先调用模型a再调用模型b;计算任务B对应于模型a以及模型c,且调用顺序是先调用模型a再调用模型c,计算任务C对应于模型a、模型b以及模型c,且调用顺序是先调用模型a再调用模型b,再调用模型c。进而,当将计算任务B确定为待执行任务后,该待执行任务所对应的多个模型为模型a和模型c,并且该多个模型各自的调用顺序是模型a在最前进行调用,模型c在模型a之后进行调用。
在本实施例中,可以有多种的确定待执行任务所对应的多个模型以及多个模型各自的调用顺序的方式。
在本实施例中,可以有多种的确定待执行任务所对应的多个模型以及多个模型各自的调用顺序的方式。除了前述实施例中的通过直接建立计算任务和所需调用模型以及所需调用模型的调用顺序的对应关系外,作为另外一种方式,可以预先将每个模型与每个模型各自所能实现的功能进行对应。并且,还可以建立每个计算任务与所需功能之前的对应关系。那么在确定待执行任务后,可以获取到待执行任务所需的功能,进而再根据所需的功能来确定对应的模型,以及对应模型的调用顺序。
示例性的,可以预先存储有模型a对应功能a,模型b对应功能b,模型c对应功能c。在确定待执行任务后,进而可以基于每个计算任务与所需功能之前的对应关系,获取到待执行任务所需的功能为功能a以及功能c,进而就可以将功能a对应的模型a,以及功能c所对应的模型c作为待执行任务对应的多个模型。从而通过这种方式可以使得计算任务和模型之间进行解耦,以便使得计算任务与某个模型之间不用产生必然的对应关系,进而使得在需要对模型本身进行更新的时候,不需要去关注模型与计算任务之间的对应关系,提升了模型更新的便利度和效率。
需要说明的是,对于不同的模型均可以实现同一功能,但是不同的模型在实现同一功能的过程中所需要的计算资源以及耗时可能是不同的。示例性的,对于神经网络模型而言会包括有多个层,例如,输入层、卷积层以及输出层等。并且,其中的卷积层又可能会有多个。再者,对于神经网络模型所包括的多个层中又可能会包括有多个节点。在这种方式下,神经网络模型所包括的层数以及每层中所包括节点数量会对神经网络模型最终输出结果的准确性有所影响的,并且,神经网络模型所包括的层数以及每层中所包括的节点数越多,那么在运行过程中所需消耗的处理资源也可能就越多,进而就会造成了即使不同的模型虽然可以实现同一功能,但是所需要的计算资源以及耗时可能是不同的。
进而作为一种方式,可以对应于同一功能配置多个模型,且该多个模型对应所需的计算资源以及耗时可以不同。进而,在确定待执行任务所需的功能后,可以根据当前的处理需求来从所需功能对应的多个模型中确定一个模型来作为待执行任务对应的模型,进而确定待执行任务对应的多个模型。
示例性的,对于功能a可以对应有模型a1和模型a2,其中模型a1的耗时短于模型a2的耗时,但是模型a2的输出数据的准确度高于模型a1输出数据的准确度,功能b对应有模型b,功能c可以对应有模型c。当检测到待执行任务对应的功能包括功能a以及功能c的情况下,则会获取功能a所对应的模型。可选的,若检测到当前的可用的计算资源低于目标阈值,则当前的处理需求为降低对处理资源的占用,进而可以将耗时更短的模型a1作为与待执行任务对应的模型,那么就可以获取到待执行任务对应的多个模型包括模型a1和模型c。可选的,若检测到业务方对于返回数据的准确性有较高的要求的情况下,可以将输出数据精确度更高的模型a2作为与待执行任务对应的模型,进而可以获取到待执行任务对应的多个模型包括模型a2和模型c。
从而通过这种方式,有利于在对于同一个功能可以有多个模型来执行的情况下,可以选择与当前实际需求更为适配的模型来处理对应的阶段数据,同时可以更为灵活的确定待执行任务所对应的模型。
S230:当获取到待执行任务对应的输入数据后,基于调用顺序获取目标模型对应的工作进程,目标模型为当前调用顺序对应的模型,其中,调用顺序不同的模型所对应的工作进程不同。
如前述内容所示,在有多个模型的情况下不同的处理阶段所需调用的模型是不同的,进而可以将当前调用顺序所处阶段对应的模型作为目标模型。示例性的,获取到的多个模型包括模型a、模型b以及模型c,且模型b的调用顺序在模型a的调用顺序之后,模型c的调用顺序在模型b的调用顺序之后,进而在获取到最初的输入数据时,当前需要调用的是调用顺序在最前的模型,进而会将调用顺序在最前的模型a作为目标模型。在模型a对初始的输出数据进行处理得到输出数据后,就需要调用模型b,那么当前调用顺序对应的模型就为模型b,进而就会将模型b作为目标模型。
需要说明的是,在本实施例中对于待执行任务所对应的多个模型可以分别加载到不同的工作进程中运行,从而使得不同的模型的运行可以相互隔离,避免相互干扰。
其中,作为一种方式,不同的工作进程所对应的进程标识是有所不同的,那么在确定目标模型后,就可以基于模型与进程标识之间的对应关系来确定与目标模型所对应的进程标识,进而基于该进程标识来获取到目标模型所对应的工作进程。
作为另一种方式,基于调用顺序获取目标模型对应的工作进程,包括:基于调用顺序获取目标模型;当目标模型所属节点的进程存储区域中有空闲的工作进程时,将空闲的工作进程作为目标模型对应的工作进程。当目标模型所属节点对应的进程存储区域中没有空闲的工作进程时,方法进入阻塞状态。其中,方法进入阻塞状态可以理解为本实施例所提供的数据处理方法进入阻塞状态。
需要说明的是,在这种方式中,不同的模型可以配置在不同的节点中,进而使得不同的节点可以有各自所属的模型。其中,本实施例中的节点可以理解为一个独立的服务器,也可以理解为一作为服务端的软件模块。对于每个节点都可以有各自的存储区域,每个节点的存储区域用于存储节点对应的工作进程。其中,还需要说明的是,本实施例所提供的数据处理方法是运行于服务器中的,该服务器可以同时处理多个业务方的数据处理请求,进而在服务器中就会有同时存在有多个待执行任务均处于执行过程中,而不同业务方所涉及的数据处理请求可能都需要使用到同一个模型,因而在本实施例中同一个模型可以同时被多个待执行任务确定为对应的模型。
那么在本实施例中,节点对应的存储区域中的工作进程的数量则直接决定了节点所属的模型可以被同时多个待执行任务同时调用。示例性的,节点所属的模型的为识别图片中的文字的模型,且该节点所对应的存储区域中存储有10个工作进程,那么该识别图片中的文字的模型可以同时被10个待执行任务调用。对应的,该识别图片中的文字的模型可以同时被加载到该10个工作进程中并行运行。
基于前述方式,在确定当前的目标模型后,就可以在目标模型所属节点的存储区域中查找是否有空闲的工作进程,在检测到有空间的工作进程的情况下,就将空闲的工作进程作为目标模型对应的工作进程。示例性的,存储区域中有工作进程P1、工作进程P2、工作进程P3以及工作进程P4。在查询空闲进程的时候,若检测到工作进程P2处于空闲状态,则会将工作进程P2作为目标模型对应的工作进程P2,进而将目标模型加载到工作进程P2中运行。
需要说明的是,对于工作进程而言,可以将进程地址作为进程标识。那么对应的,可以配置进程队列来存储空闲进程的进程地址,进而可以通过检测进程队列中是否有可用的进程地址来确定是否有空闲的工作进程。其中,作为一种方式,本实施提供的方法还包括:检测目标模型所属节点对应的进程队列中是否有可用的进程地址,当检测到有可用的进程地址时,确定进程存储区域中有空闲的工作进程;将可用的进程地址从进程队列中取出,并基于可用的进程地址获取到空闲的工作进程。其中,可选的,进程队列可以是用于存储空闲的工作进程的进程地址的区域,进而可以在检测到进程队列中存储有进程地址时,就确定进程队列中有可用的进程地址。
基于工作进程运行目标模型,以对目标模型对应的阶段数据进行处理之后还包括:在处理完目标模型对应的阶段数据之后,将可用的进程地址存放回进程队列。
其中,在本实施例中全局的进程地址管理可以基于字典map的方式实现。在该字典map可以为map<gid,queue>,其中gid可以为前述节点的标识。且该gid可以对应有节点对应的进程队列。如图3所示,gid1对应有进程队列10,在该进程队列10中有进程地址1、进程地址2以及进程地址3,进而在确定所要取出的进程地址为进程地址1时,则可以将进程地址1取出,并存方到临时进程队列20中。那么就可以将进程地址1所对应的工作进程作为目标模型对应的工作进程,以将当前的目标模型加载到进程地址1对应的工作进程中。在当前的目标模型完成对阶段数据进行处理后,就可以将进程地址1从临时进程队列20中取出再存放回进程队列10中。其中,本实施例中的进程地址可以为基于Unix domain socket模式的进程地址。
S240:基于工作进程运行目标模型,以对目标模型对应的阶段数据进行处理,其中,调用顺序在最前的模型对应的阶段数据为输入数据,调用顺序在后的模型对应的阶段数据为调用顺序在前的模型的输出数据。
需要说明的是在本实施例中对于所确定的输入数据可以由待执行任务所对应的多个模型协同进行处理以得到最终输出给业务方的数据。而对于不同的模型因为各自所对应的调用顺序不同,进而每个模型所要处理的数据是不同的,那么其中每个模型所对应的阶段数据则可以为每个模型需要进行处理的数据。示例性的,若待执行任务对应的多个模型包括模型a和模型c,且模型a的调用顺序在模型c的调用顺序之前,那么对于模型a而言,模型a的阶段数据就为待执行任务对应的输入数据,模型a在对该输入数据进行处理后所得到的输出数据则会传递给模型c进行处理,那么对于模型c而言,模型a的输出数据则会模型c的阶段数据。例如,若待执行任务为识别图片中的人物性别,其中模型a是用于识别图片中有人脸的区域,模型c是用于根据人脸来识别人物性别,在这种方式下,还未进行任何识别操作的图片则可以理解为执行任务的输入数据,在经过模型a完成识别图片中有人脸的区域的图片则可以为模型a的输出数据,进而也会将完成识别图片中有人脸的区域的图片作为模型c的输入数据,并将完成识别图片中人物性别的图片作为模型c的输出数据。
S250:将调用顺序在最后的模型的输出数据进行输出。
其中,可以理解的是调用顺序在最后的模型的输出数据则为整个待执行任务最终所输出的数据,进而在得到调用顺序在最后的模型的输出数据后,就会将调用顺序在最后的模型的输出数据进行输出。
可选的,在本实施例中对于输出数据的输出可以有多种方式。
作为一种输出方式,可以将调用顺序在最后的模型的输出数据返回给发送数据处理请求的业务方。需要说明的是,对于业务方所发送的数据处理请求是对一些数据进行实时的处理,其中,实时的处理可以理解为对于处理之后数据会由业务方再转发到其他的设备中。在这种方式下,在得到调用顺序在最后的模型的输出数据后,则可以及时的输出给业务方。
作为另外一种输出方式,可以将调用顺序在最后的模型的输出数据输出到存储区域进行存储。需要说明的是,对于业务方所发送的数据处理请求可能并不是需要对数据进行实时的处理。例如,在一些情况下业务方所发送的数据处理请求是对一些需要存储的数据在存储之前的预处理。在这种方式下,当得到调用顺序在最后的模型的输出数据时,则可以将用顺序在最后的模型的输出数据输出到存储区域进行存储。其中,存储区域可以为本地的存储区域,也可以为外部设备中的存储区域。
本实施例提供的一种数据处理方法,实现了支持在计算任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行数据处理的效率。并且,在本实施例中,可以给每个所要运行的模型单独配置一个工作进程,进而使得不同的模型可以运行在不同的工作进程上,使得各个模型之间的运行可以相互隔离,避免相互干扰,提升了电子设备在运行本实施例提供的数据处理方法过程中的稳定性。再者,在不同模型均是运行于各自对应的工作进程的情况下,不同模型之间的数据可以通过进程通信的方式进行传递,继而不需要再通过发送数据处理请求的客户端进行中转,提升了数据传输效率,也减小了网络开销。
请参阅图4,图4所示为本申请一实施例提出的一种数据处理方法的流程图,该方法包括:
S310:响应于业务方发送的数据处理请求,获取数据处理请求对应的待执行任务。
S320:获取待执行任务对应的多个模型以及多个模型各自的调用顺序。
S330:通过数据获取节点的工作进程获取待执行任务对应的输入数据。
作为一种方式,通过数据获取节点的工作进程获取待执行任务对应的输入数据,并将获取的输入数据存储数据获取节点对应的阻塞队列中。
S340:当获取到待执行任务对应的输入数据后,基于调用顺序获取目标模型,目标模型为当前调用顺序对应的模型,调用顺序不同的模型所对应的工作进程不同。
S350:当目标模型所属节点的进程存储区域中有空闲的工作进程时,将空闲的工作进程作为目标模型对应的工作进程。
S360:若目标模型为调用顺序在最前的模型,则从数据获取节点对应的阻塞队列获取对应的阶段数据。
S370:若目标模型为调用顺序在后的模型,则从调用顺序在前的模型所属节点对应的阻塞队列获取对应的阶段数据。
S380:基于工作进程运行目标模型,以对目标模型对应的阶段数据进行处理,并将处理得到的输出数据存储到目标模型所属节点对应的阻塞队列中,其中,调用顺序在最前的模型对应的阶段数据为输入数据,调用顺序在后的模型对应的阶段数据为调用顺序在前的模型的输出数据。
S390:将调用顺序在最后的模型的输出数据进行输出。
在本实施例中,在前的数据获取节点以及后续的多个模型所属的节点都会对应有阻塞队列,进而使得每个节点所要输出的数据可以先存放到对应的阻塞队列中,而在后的进行数据处理的节点则可以从在前的节点的阻塞队列中获取数据。而对于阻塞队列需要说明的是,若阻塞队列没有存储空间时则无法再向阻塞队列中存放新的数据,进而就会使得需要向阻塞队列中输出数据的进程也处于阻塞状态,进而不再获取新的数据进行处理。
下面再通过图示的方式对阻塞队列的工作原理进行介绍,如图5所示,图5中的工作进程1可以为数据获取节点的工作进程,而其中的阻塞队列1为数据获取节点对应的阻塞队列。其中的工作进程2和工作进程3分别为在后调用的模型所对应的工作进程,其中阻塞队列2为工作进程2所属节点对应的阻塞队列。
图5中的箭头为数据处理的方向,在这种方式下,数据获取节点所获取到的数据(例如,输入数据)会存放到阻塞队列1中,而运行于工作进程2的模型则会从阻塞队列1中获取数据进行处理,并将输出数据存放到阻塞队列2中,之后会再从阻塞队列2中获取数据输入到运行于工作进程3中的模型中,在这种情况下,若工作进程3若无法及时的进行数据处理,那么也就会造成阻塞队列2中的数据无法及时取出,而在阻塞队列2没有数据被读取出的情况下,工作进程2也无法向阻塞队列2中存入数据,进而使得工作进程2也会处于阻塞状态,类似的,也使得工作进程1也处于阻塞状态,从而使得整个数据处理流程不会因为某一个节点的压力过大而造成崩溃,提升了数据处理的稳定性。
从而通过这种方式可以使得处理顺序在后的节点无法及时的进行数据处理的情况下,可以将数据处理的压力传递到在前的节点,以便在前的节点也减缓或者停止进行数据处理,以便可以通过调节各个节点的数据处理速度,并同时提升数据处理过程的稳定性。
作为一种方式,当满足指定条件时,控制数据获取节点的工作进程的数量,大于每个模型所属节点的进程存储区域中所有工作进程的数量。需要说明的是,对于每个节点而言可以对应有多个工作进程,例如,对于数据获取节点而言,除了可以包括有图5所示的工作进程1外,还可以包括更多的工作进程来进行数据获取,在这种情况下,若节点所对应的工程进程越多,那么输出数据的效率也就越高,进而也会对在后的节点带来更大的数据处理压力。在运行模型的任务由单独的硬件执行的情况下,通过控制数据获取节点的工作进程的数量,大于每个模型所属节点的进程存储区域中所有工作进程的数量的方式,可以使得运行模型的硬件具有更高的利用率。可选的,该硬件可以为GPU。
需要说明的是,对于本实施例所提供的数据处理方法可以由单独的工作流逻辑控制线程来进行控制,下面再通过图6来对基于工作流逻辑控制线程进行流程控制的方式进行说明。如图6所示,包括:
S301:客户端发送数据处理请求。
可以理解的是,数据处理请求用于调用前述的待执行任务。例如,可以为模型推理任务。
S302:工作流逻辑控制线程判断是否超过并发数。
S303:若否,工作流逻辑控制线程控制数据预处理节点下载/准备待处理数据。
S304:若是,向客户端返回服务繁忙。
S305:工作流逻辑控制线程接收待处理数据准备完成的通知。
S306:工作流逻辑控制线程调用模型a。
S307:工作流逻辑控制线程判断模型a所属的模型节点1是否繁忙。
S308:若否,工作流逻辑控制线程接收模型节点1返回输出数据。
S309:若是,工作流逻辑控制线程进入阻塞等待,接收模型节点1返回输出数据。
其中,在判断模型a所属的模型节点1处于繁忙状态时,则确定模型节点1对应的存储区域中没有可用的工作进程,进而工作流逻辑控制线程会处于阻塞等待的状态,直到模型节点1对应的存储区域中有可用的工作进程,然后对调用可用的工作进程进行数据处理,并接收模型节点1返回输出数据。
S311:工作流逻辑控制线程调用模型b。
S312:工作流逻辑控制线程接收模型节点2返回输出数据。
S313:工作流逻辑控制线程返回输出数据。
从图7所示的步骤可知,数据处理过程可以由工作流逻辑控制线程进行控制,并且待执行任务所对应的多个模型(例如,图7中的模型a和模型b)的调用顺序也可以由工作流逻辑控制线程进行编排,并且对于其中每个节点的返回的输出数据可以由工作流逻辑控制线程进行保存。
再者,需要说明的是,在本实施例中服务器中可以同时运行有多个工作流逻辑控制线程以分别并行响应不同的数据处理请求,进而可以在服务器接收到的数据处理请求有多个的情况下,可以分别针对每个数据处理请求配置一个工作流逻辑控制线程,以分别进行图7中所示的数据处理流程,从而通过这种方式可以提升数据处理效率,也可以提升资源利用率。
本实施例提供的一种数据处理方法,实现了支持在计算任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行数据处理的效率。并且,在本实施例中,对于其中需要后续的多个进行处理的数据是由数据获取节点获取的,而对于后续的多个模型也是独立运行于各自所属节点的工作进程中的,从而使得待执行任务的多个阶段可以分别由不同的节点来执行,进而使得多个阶段能够相互隔离,以便与能够更好的单独对其中的某个节点进行控制,以实现控制整体的数据处理流程。
请参阅图7,图7所示为本申请一实施例提出的一种数据处理方法的流程图,该方法包括:
S410:响应于业务方发送的数据处理请求,获取业务方对应的请求并发数量。
S420:当检测到请求并发数量小于阈值数量时,获取数据处理请求对应的待执行任务。
当检测到请求并发数量不小于阈值数量时,拒绝数据处理请求。可选的,在决绝数据处理请求时,可以向业务方返回服务繁忙的通知信息。
S440:获取待执行任务对应的多个模型以及多个模型各自的调用顺序。
S450:当获取到待执行任务对应的输入数据后,基于调用顺序获取目标模型对应的工作进程,目标模型为当前调用顺序对应的模型,调用顺序不同的模型所对应的工作进程不同。
S460:基于工作进程运行目标模型,以对目标模型对应的阶段数据进行处理,其中,调用顺序在最前的模型对应的阶段数据为输入数据,调用顺序在后的模型对应的阶段数据为调用顺序在前的模型的输出数据。
S470:将调用顺序在最后的模型的输出数据进行输出。
S480:当检测到有工作进程处于异常状态时,关闭处于异常状态的工作进程。
S490:基于被关闭的工作进程的工作参数,创建新的工作进程。
需要说明的是,S480和S490的执行顺序可以不一定在S470之后,也可以实在其他阶段执行。例如,可以在工作进程最初建立之后,就开始执行S480和S490。
作为一种方式,当检测到有工作进程在指定时间内未上报工作状态时,确定在指定时间内未上报工作状态的工作进程处于异常状态。
如前述内容所示,无论是输入数据的获取,还是后续所调用的模型都是由不同的节点来执行的。例如,前述的数据获取节点以及模型所属的节点,而对于这些界面可以配置管理进程进行管理。可选的,在每个节点都会对应有工作进程的情况下,该管理进程还可以保存有每个节点所需的工作进程所需的临时文件以及运行参数。在这种方式下,可以对临时文件中的参数进行修改,以触发上报工作状态。在这种方式下,配置管理进程在检测有工作进程在指定时间内未上报工作状态时,将该工作进程确定为处于异常状态。如图8所示,其中的工作流子节点1可以为数据获取节点,而工作流子节点2和工作流子节点3可以为模型所属的节点,若管理进程对工作流子节点1进行探活检测发现,工作流子节点1中有工作进程处于异常状态则会将处于异常状态的工作进程取消掉。
本实施例提供的一种数据处理方法,实现在获取到数据处理请求后,先获取到客户端所请求的并发数量,若并发数量小于阈值数量时再根据数据处理请求而确定待执行任务后,可以根据所要执行的任务与所需的模型以及模型的调用顺序的对应关系,而确定待执行任务对应的多个模型以及多个模型各自的调用顺序,并可以根据调用顺序来调用多个模型处理各自对应的阶段数据,从而实现了支持在计算任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行数据处理的效率。还有,在本实施例中会对业务方的客户端所请求的并发数量进行检测,以便可以提升数据处理过程中的稳定性,还有对于处于异常状态的工作进程会及时的进行关闭,并重新创建对应的新的工作进程,也提升了数据处理过程中的稳定性。
请参阅图9,图9所示为本申请一实施例提出的一种数据处理方法的流程图,本实施例提供的数据处理方法应用于视频台词生产场景中,该方法包括:
S510:接收台词生产请求。
S520:视频原片下载。
S530:视频抽帧。
S540:确定所需调用的模型包括文本框识别模型以及文本识别模型,其中文本框识别模型的调用顺序在文本识别模型的调用顺序之前。
S550:调用文本框识别模型。
S560:调用文本识别模型。
S570:生产结果保存。
其中,在图9所示的视频台词生成场景中,视频台词生成任务可以理解为前述的待执行任务,而其中的文本框识别模型以及文本识别模型为待执行任务对应的多个模型,且文本框识别模型的调用顺序在文本识别模型的调用顺序之前。并且,视频原片下载和视频抽帧可以为前述的数据下载和数据准备阶段。而通过数据抽帧所得到的视频帧则可以为前述的输入数据。
其中,S510、S520、S530、S550、S560以及S570,可以由不同的工作进程来执行。例如,其中的S520以及S530可以由前述实施例中所提出的数据获取节点对应的工作进程来运行,S550可以由文本框识别模型所属节点的工作进程来执行,S560可以由文本识别模型所属节点的工作进程来执行。并且,可选的,S510和S570可以由同一个工作进程来执行。从而因为前述的不同步骤所执行的数据处理类型不同,进而分别配置不同的工作进程进行处理,有利于提升数据处理效率。例如S520执行的是IO类型的数据处理任务,而S530、S550以及S560是CPU类型的数据处理任务,进而通过将S520配置单独的工作进程进行执行,有利于避免等待IO类型的数据处理流程,而造成CPU一直处理空闲状态。
本实施例提供的一种数据处理方法,实现了在接收台词生产请求后,
根据数据处理请求而确定待执行任务后,可以根据所要执行的任务与所需的文本框识别模型以及文本识别模型,以及该模型的调用顺序的对应关系,从而实现了支持在视频台词生成任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行视频台词生成的效率。
请参阅图10,图10所示为本申请一实施例提出的一种数据处理装置600,装置600包括:
请求响应单元610,用于响应于业务方发送的数据处理请求,获取数据处理请求对应的待执行任务。
作为一种方式,请求响应单元610,具体用于响应于业务方发送的数据处理请求,获取业务方对应的请求并发数量;当检测到请求并发数量小于阈值数量时,获取数据处理请求对应的待执行任务;当检测到请求并发数量不小于阈值数量时,拒绝数据处理请求。
模型获取单元620,用于获取待执行任务对应的多个模型以及多个模型各自的调用顺序。
数据处理单元630,用于当获取到待执行任务对应的输入数据后,基于调用顺序调用多个模型对各自对应的阶段数据进行处理,其中,调用顺序在最前的模型对应的阶段数据为输入数据,调用顺序在后的模型对应的阶段数据为调用顺序在前的模型的输出数据;
数据通信单元640,用于将调用顺序在最后的模型的输出数据进行输出。
作为一种方式,数据处理单元630,具体用于基于调用顺序获取目标模型对应的工作进程,目标模型为当前调用顺序对应的模型,调用顺序不同的模型所对应的工作进程不同;基于工作进程运行目标模型,以对目标模型对应的阶段数据进行处理。可选的,数据处理单元630,具体用于基于调用顺序获取目标模型;当目标模型所属节点的进程存储区域中有空闲的工作进程时,将空闲的工作进程作为目标模型对应的工作进程。数据处理单元630,还具体当目标模型所属节点对应的进程存储区域中没有空闲的工作进程时,方法进入阻塞状态。
可选的,数据处理单元630,具体用于检测目标模型所属节点对应的进程队列中是否有可用的进程地址;当检测到有可用的进程地址时,确定进程存储区域中有空闲的工作进程;将可用的进程地址从进程队列中取出,并基于可用的进程地址获取到空闲的工作进程。以及还具体用于,在处理完目标模型对应的阶段数据之后,将可用的进程地址存放回进程队列。
作为一种方式,数据处理单元630,具体用于通过数据获取节点的工作进程获取待执行任务对应的输入数据。在这种方式中,数据处理单元630,具体用于通过数据获取节点的工作进程获取待执行任务对应的输入数据,并将获取的输入数据存储数据获取节点对应的阻塞队列中。数据处理单元630,还具体用于若目标模型为调用顺序在最前的模型,则从数据获取节点对应的阻塞队列获取对应的阶段数据;若目标模型为调用顺序在后的模型,则从调用顺序在前的模型所属节点对应的阻塞队列获取对应的阶段数据;基于工作进程运行目标模型,以对目标模型对应的阶段数据进行处理,并将处理得到的输出数据存储到目标模型所属节点对应的阻塞队列中。
作为一种方式,数据处理单元630,还用于当满足指定条件时,控制数据获取节点的工作进程的数量,大于每个模型所属节点的进程存储区域中所有工作进程的数量。
可选的,如图11所示,装置600还包括:
进程管理单元650,用于当检测到有工作进程处于异常状态时,关闭处于异常状态的工作进程;基于被关闭的工作进程的工作参数,创建新的工作进程。可选的,进程管理单元650,具体用于当检测到有工作进程在指定时间内未上报工作状态时,确定在指定时间内未上报工作状态的工作进程处于异常状态。
本申请提供的一种数据处理装置,在响应于业务方发送的数据处理请求后,先获取所述数据处理请求对应的待执行任务,进而确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,然后可以当获取到所述待执行任务对应的输入数据后,基于所述调用顺序调用所述多个模型对各自对应的阶段数据进行处理,再将调用顺序在最后的模型的输出数据进行输出。从而通过上述方式可以实现在根据数据处理请求而确定待执行任务后,可以根据所要执行的任务与所需的模型以及模型的调用顺序的对应关系,而确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,并可以根据调用顺序来调用多个模型处理各自对应的阶段数据,从而实现了支持在计算任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行数据处理的效率。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图12对本申请提供的一种电子设备进行说明。
请参阅图12,基于上述的数据处理方法,本申请实施例还提供的另一种包括可以执行前述数据处理方法的处理器102的电子设备200,该电子设备200可以为智能手机、平板电脑、计算机或者便携式计算机等设备。电子设备200还包括存储器104以及网络模块106。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器102利用各种接口和线路连接整个电子设备200内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备200的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(RandomAccess Memory,RAM),也可以包括只读存储器(Read-OnlyMemory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如网络模块106可以发送广播数据,也可以对其他设备发送的广播数据进行解析。所述网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块106可以与基站进行信息交互。
请参考图13,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1100可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
综上所述,本申请提供的一种数据处理方法、装置、电子设备及存储介质,在响应于业务方发送的数据处理请求后,先获取所述数据处理请求对应的待执行任务,进而确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,然后可以当获取到所述待执行任务对应的输入数据后,基于所述调用顺序获取目标模型对应的工作进程,基于所述工作进程运行所述目标模型,以对所述目标模型对应的阶段数据进行处理,再将调用顺序在最后的模型的输出数据进行输出。从而通过上述方式可以实现在根据数据处理请求而确定待执行任务后,可以根据所要执行的任务与所需的模型以及模型的调用顺序的对应关系,而确定待执行任务对应的多个模型以及所述多个模型各自的调用顺序,并可以根据调用顺序来调用多个模型处理各自对应的阶段数据,从而实现了支持在计算任务中对多个模型进行调用,并且,因为可以良好的协调多个模型进行数据处理,也实现了提升电子设备通过模型来进行数据处理的效率。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
响应于业务方发送的数据处理请求,获取所述数据处理请求对应的待执行任务;
获取所述待执行任务对应的多个模型以及所述多个模型各自的调用顺序;所述多个模型中不同的模型运行在不同的节点上;各运行所述模型的节点上设有阻塞队列;
通过数据获取节点的工作进程获取所述待执行任务对应的输入数据,并将获取的输入数据存储在所述数据获取节点对应的阻塞队列中;
当从所述数据获取节点对应的阻塞队列获取到所述待执行任务对应的输入数据后,基于所述调用顺序获取目标模型对应的工作进程,所述目标模型为当前调用顺序对应的模型,且所述调用顺序不同的模型所对应的工作进程不同;
若所述目标模型为调用顺序在最前的模型,则从所述数据获取节点对应的阻塞队列获取对应的阶段数据;若所述目标模型为调用顺序在后的模型,则从所述调用顺序在前的模型所属节点对应的阻塞队列获取对应的阶段数据;基于所述工作进程运行所述目标模型,以对所述目标模型对应的阶段数据进行处理,并将处理得到的输出数据存储到所述目标模型所属节点对应的阻塞队列中;其中,调用顺序在最前的模型对应的所述阶段数据为所述输入数据,调用顺序在后的模型对应的所述阶段数据为调用顺序在前的模型的输出数据;
将调用顺序在最后的模型的输出数据进行输出。
2.根据权利要求1所述的方法,其特征在于,所述基于所述调用顺序获取目标模型对应的工作进程,包括:
基于所述调用顺序获取目标模型;
当所述目标模型所属节点的进程存储区域中有空闲的工作进程时,将所述空闲的工作进程作为所述目标模型对应的工作进程。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述目标模型所属节点对应的进程存储区域中没有空闲的工作进程时,所述方法进入阻塞状态。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:检测所述目标模型所属节点对应的进程队列中是否有可用的进程地址;当检测到有可用的进程地址时,确定所述进程存储区域中有空闲的工作进程;将所述可用的进程地址从所述进程队列中取出,并基于所述可用的进程地址获取到所述空闲的工作进程;
所述基于所述工作进程运行所述目标模型,以对所述目标模型对应的阶段数据进行处理之后还包括:在处理完所述目标模型对应的阶段数据之后,将所述可用的进程地址存放回所述进程队列。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当满足指定条件时,控制所述数据获取节点的工作进程的数量,大于每个模型所属节点的进程存储区域中所有工作进程的数量。
6.根据权利要求1所述的方法,其特征在于,所述工作进程对应有工作参数,所述方法还包括:
当检测到有工作进程处于异常状态时,关闭处于所述异常状态的工作进程;
基于所述被关闭的工作进程的工作参数,创建新的工作进程。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当检测到有工作进程在指定时间内未上报工作状态时,确定所述在指定时间内未上报工作状态的工作进程处于异常状态。
8.根据权利要求1所述的方法,其特征在于,所述响应于业务方发送的数据处理请求,获取所述数据处理请求对应的待执行任务,包括:
响应于业务方发送的数据处理请求,获取所述业务方对应的请求并发数量;
当检测到所述请求并发数量小于阈值数量时,获取所述数据处理请求对应的待执行任务;
当检测到所述请求并发数量不小于所述阈值数量时,拒绝所述数据处理请求。
9.一种数据处理装置,其特征在于,所述装置包括:
请求响应单元,用于响应于业务方发送的数据处理请求,获取所述数据处理请求对应的待执行任务;
模型获取单元,用于获取所述待执行任务对应的多个模型以及所述多个模型各自的调用顺序;所述多个模型中不同的模型运行在不同的节点上;各运行所述模型的节点上设有阻塞队列;
数据处理单元,用于通过数据获取节点的工作进程获取所述待执行任务对应的输入数据,并将获取的输入数据存储在所述数据获取节点对应的阻塞队列中;当从所述数据获取节点对应的阻塞队列获取到所述待执行任务对应的输入数据后,基于所述调用顺序获取目标模型对应的工作进程,所述目标模型为当前调用顺序对应的模型,且所述调用顺序不同的模型所对应的工作进程不同;若所述目标模型为调用顺序在最前的模型,则从所述数据获取节点对应的阻塞队列获取对应的阶段数据;若所述目标模型为调用顺序在后的模型,则从所述调用顺序在前的模型所属节点对应的阻塞队列获取对应的阶段数据;基于所述工作进程运行所述目标模型,以对所述目标模型对应的阶段数据进行处理,并将处理得到的输出数据存储到所述目标模型所属节点对应的阻塞队列中;其中,调用顺序在最前的模型对应的所述阶段数据为所述输入数据,调用顺序在后的模型对应的所述阶段数据为调用顺序在前的模型的输出数据;
数据通信单元,用于将调用顺序在最后的模型的输出数据进行输出。
10.根据权利要求9所述的装置,其特征在于,所述数据处理单元,还用于检测所述目标模型所属节点对应的进程队列中是否有可用的进程地址;当检测到有可用的进程地址时,确定所述进程存储区域中有空闲的工作进程;将所述可用的进程地址从所述进程队列中取出,并基于所述可用的进程地址获取到所述空闲的工作进程;在处理完所述目标模型对应的阶段数据之后,将所述可用的进程地址存放回所述进程队列。
11.一种电子设备,其特征在于,包括处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行以实现权利要求1-8任一所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010700144.3A CN111813529B (zh) | 2020-07-20 | 2020-07-20 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010700144.3A CN111813529B (zh) | 2020-07-20 | 2020-07-20 | 数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813529A CN111813529A (zh) | 2020-10-23 |
CN111813529B true CN111813529B (zh) | 2023-12-12 |
Family
ID=72866216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010700144.3A Active CN111813529B (zh) | 2020-07-20 | 2020-07-20 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813529B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139660A (zh) * | 2021-05-08 | 2021-07-20 | 北京首都在线科技股份有限公司 | 模型推理方法、装置、电子设备及存储介质 |
CN114996249A (zh) * | 2022-05-17 | 2022-09-02 | 苏州佳祺仕信息科技有限公司 | 数据处理方法、装置、电子设备、存储介质及产品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216768A (zh) * | 2014-09-22 | 2014-12-17 | 北京金山安全软件有限公司 | 一种数据处理方法及装置 |
CN104615490A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮集团有限公司 | 一种数据转换的方法及装置 |
CN109840597A (zh) * | 2017-11-28 | 2019-06-04 | 珠海市君天电子科技有限公司 | 一种模型预测方法、装置、电子设备及存储介质 |
CN110737534A (zh) * | 2019-10-29 | 2020-01-31 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN110765167A (zh) * | 2019-10-23 | 2020-02-07 | 泰康保险集团股份有限公司 | 保单数据的处理方法、装置及设备 |
CN111258774A (zh) * | 2020-01-07 | 2020-06-09 | 深圳壹账通智能科技有限公司 | 流程处理方法、装置、计算机设备及存储介质 |
CN111274019A (zh) * | 2019-12-31 | 2020-06-12 | 深圳云天励飞技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN111291059A (zh) * | 2020-05-12 | 2020-06-16 | 北京东方通科技股份有限公司 | 基于内存数据网格的数据处理方法 |
CN111340237A (zh) * | 2020-03-05 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 数据处理和模型运行方法、装置和计算机设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274713B2 (en) * | 2014-04-03 | 2016-03-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache |
FR3043222B1 (fr) * | 2015-11-04 | 2018-11-16 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procede de simulation parallele de niveau systeme electronique avec detection des conflits d'acces a une memoire partagee |
-
2020
- 2020-07-20 CN CN202010700144.3A patent/CN111813529B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216768A (zh) * | 2014-09-22 | 2014-12-17 | 北京金山安全软件有限公司 | 一种数据处理方法及装置 |
CN104615490A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮集团有限公司 | 一种数据转换的方法及装置 |
CN109840597A (zh) * | 2017-11-28 | 2019-06-04 | 珠海市君天电子科技有限公司 | 一种模型预测方法、装置、电子设备及存储介质 |
CN110765167A (zh) * | 2019-10-23 | 2020-02-07 | 泰康保险集团股份有限公司 | 保单数据的处理方法、装置及设备 |
CN110737534A (zh) * | 2019-10-29 | 2020-01-31 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN111274019A (zh) * | 2019-12-31 | 2020-06-12 | 深圳云天励飞技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN111258774A (zh) * | 2020-01-07 | 2020-06-09 | 深圳壹账通智能科技有限公司 | 流程处理方法、装置、计算机设备及存储介质 |
CN111340237A (zh) * | 2020-03-05 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 数据处理和模型运行方法、装置和计算机设备 |
CN111291059A (zh) * | 2020-05-12 | 2020-06-16 | 北京东方通科技股份有限公司 | 基于内存数据网格的数据处理方法 |
Non-Patent Citations (2)
Title |
---|
An analytic finite capacity queueing network model capturing the propagation of congestion and blocking;Carolina Osorio等;《European Journal of Operational Research》;第196卷(第3期);996-1007 * |
Java并发工具包对并发编程的优化;史广;《吉林省教育学院学报》;第32卷(第08期);78-81 * |
Also Published As
Publication number | Publication date |
---|---|
CN111813529A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113381B (zh) | 一种区块链中订阅主题的方法及装置 | |
CN112784989B (zh) | 推理系统、推理方法、电子设备及计算机存储介质 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
AU2019256257B2 (en) | Processor core scheduling method and apparatus, terminal, and storage medium | |
CN111538605B (zh) | 一种分布式数据访问层中间件及命令执行方法和装置 | |
CN113656176B (zh) | 云设备的分配方法、装置、系统、电子设备、介质及产品 | |
CN111464352A (zh) | 调用链路数据处理方法及装置 | |
CN111460038A (zh) | 一种数据准实时同步方法及装置 | |
CN115039392A (zh) | 消息处理方法、装置、系统以及服务器 | |
CN114710571A (zh) | 数据包处理系统 | |
CN110738156A (zh) | 一种基于消息中间件的人脸识别系统及方法 | |
CN112243016A (zh) | 一种中间件平台、终端设备、5g人工智能云处理系统及处理方法 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN105335313A (zh) | 一种基础数据的传输方法及装置 | |
CN115361382B (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN111901561B (zh) | 监控系统中的视频数据处理方法、装置、系统及存储介质 | |
CN115378937A (zh) | 任务的分布式并发方法、装置、设备和可读存储介质 | |
CN112988738B (zh) | 用于区块链的数据分片方法和装置 | |
CN114579054A (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN112099736A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111343172A (zh) | 网络访问权限动态处理方法及装置 | |
CN112396511A (zh) | 分布式风控变量数据处理方法、装置及系统 | |
CN112187916A (zh) | 一种跨系统的数据同步方法与装置 | |
CN113779021A (zh) | 数据处理方法、装置、计算机系统及可读存储介质 | |
CN117883789B (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 |