CN112015553A - 基于机器学习模型的数据处理方法、装置、设备和介质 - Google Patents
基于机器学习模型的数据处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN112015553A CN112015553A CN202010880704.8A CN202010880704A CN112015553A CN 112015553 A CN112015553 A CN 112015553A CN 202010880704 A CN202010880704 A CN 202010880704A CN 112015553 A CN112015553 A CN 112015553A
- Authority
- CN
- China
- Prior art keywords
- task
- requests
- request
- queue
- processed
- 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
- 238000003672 processing method Methods 0.000 title abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 196
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000003139 buffering effect Effects 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013519 translation Methods 0.000 claims description 12
- 239000003999 initiator Substances 0.000 claims description 9
- 230000003362 replicative effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 110
- 230000008569 process Effects 0.000 description 18
- 239000000872 buffer Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及人工智能技术,具体涉及一种基于机器学习模型的数据处理方法、装置、设备和介质。本方法包括:通过本地的生产者模块接收多于一个的任务请求,并将多于一个的任务请求缓存至任务队列中;通过本地的消费者模块从任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求,再调用与任务请求对应的机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各目标任务请求分别对应的处理结果;并且,将各处理结果缓存至结果队列中,并通过生产者模块反馈结果队列中的各处理结果。此外,本发明还涉及区块链技术,得到的处理结果可存储于区块链。采用本方法能够提高数据处理效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于机器学习模型的数据处理方法、装置、设备和介质。
背景技术
随着人工智能技术的发展,出现了机器学习模型,通过机器学习模型的使用,可以大大提高数据处理的效率。而在通过机器学习模型对数据进行处理时,通常是每接收单个请求,就通过相应的API(Application Programming Interface,系统编程接口)来调用机器学习模型进行处理。
然而,采用现有的通过API接口调用模型的方式处理请求时,由于请求通常是离散或单次的,也就是说,每个批次中的请求数量常常为1,导致GPU(Graphics ProcessingUnit,图形处理器)每次只处理单个请求,因而GPU常常处于较空闲状态,也就是GPU的计算资源利用率很低。其次,当接收到多个请求时,切换各请求间的延迟时间又较长。因而,存在由于计算资源利用率低和耗时久而导致数据处理效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据处理效率的基于机器学习模型的数据处理方法、装置、设备和介质。
一种基于机器学习模型的数据处理方法,所述方法包括:
通过本地的生产者模块接收多于一个的任务请求;所述任务请求包括待处理的任务数据;
通过所述生产者模块将所述多于一个的任务请求缓存至任务队列中;
通过本地的消费者模块从所述任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求;
通过所述消费者模块调用与所述任务请求对应的机器学习模型,并通过所述机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果;
通过所述消费者模块将各所述处理结果缓存至结果队列中,并通过所述生产者模块反馈所述结果队列中的各所述处理结果。
一种基于机器学习模型的数据处理装置,所述装置包括:
所述生产者模块,用于接收多于一个的任务请求;所述任务请求包括待处理的任务数据;将所述多于一个的任务请求缓存至任务队列中;反馈所述结果队列中的各所述处理结果;
所述消费者模块,用于从所述任务队列中复制满足分组条件的目标任务请求,将复制的目标任务请求共同作为同个批次的待处理请求;调用与所述任务请求对应的机器学习模型,并通过所述机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果;将各所述处理结果缓存至结果队列中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过本地的生产者模块接收多于一个的任务请求;所述任务请求包括待处理的任务数据;
通过所述生产者模块将所述多于一个的任务请求缓存至任务队列中;
通过本地的消费者模块从所述任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求;
通过所述消费者模块调用与所述任务请求对应的机器学习模型,并通过所述机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果;
通过所述消费者模块将各所述处理结果缓存至结果队列中,并通过所述生产者模块反馈所述结果队列中的各所述处理结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过本地的生产者模块接收多于一个的任务请求;所述任务请求包括待处理的任务数据;
通过所述生产者模块将所述多于一个的任务请求缓存至任务队列中;
通过本地的消费者模块从所述任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求;
通过所述消费者模块调用与所述任务请求对应的机器学习模型,并通过所述机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果;
通过所述消费者模块将各所述处理结果缓存至结果队列中,并通过所述生产者模块反馈所述结果队列中的各所述处理结果。
上述基于机器学习模型的数据处理方法、装置、设备和介质,通过生产者模块将接收到的多于一个的任务请求缓存至任务队列中,通过消费者模块从任务队列中复制满足分组条件的同个批次的待处理请求,并通过对应的机器学习模型进行并行处理,从而得到与各个处理结果。通过消费者模块将各个处理结果缓存至结果队列,以通过生产者模块反馈结果队列中的各处理结果。通过这样的方式,机器学习模型每次可并行处理同一批次中多个任务请求携带的任务数据,也就是提高了计算资源的利用效率,且减少了切换各个任务请求所造成的延迟时间,因而大大提高了数据的处理效率。此外,通过生产者和消费者的模式,可实现异步传递任务数据,也就是可同时实现获取任务请求以及处理任务请求中的任务数据,并且,通过任务队列和结果队列的实时缓存,可以有效地平衡计算资源,使得负载均衡,即提高计算资源的利用效率,进而大大提高了数据的处理效率。
附图说明
图1为一个实施例中基于机器学习模型的数据处理方法的应用环境图;
图2为一个实施例中基于机器学习模型的数据处理方法的流程示意图;
图3为一个实施例中多于一个的目标任务请求合并为一个批次的待处理请求的示意图;
图4为另一个实施例中基于机器学习模型的数据处理方法的流程示意图;
图5为又一个实施例中基于机器学习模型的数据处理方法的流程示意图;
图6为一个实施例中基于机器学习模型的数据处理装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于机器学习模型的数据处理方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行通信。终端110和服务器120均可单独用于执行本申请实施例中提供的基于机器学习模型的数据处理方法。终端110和服务器120也可协同用于执行本申请实施例中提供的基于机器学习模型的数据处理方法。其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
可以理解,图1中的终端和服务器均可称作计算机设备,以本申请由计算机设备执行为例进行说明:计算机设备通过本地的生产者模块接收多于一个的任务请求,任务请求包括待处理的任务数据。计算机设备通过生产者模块将多于一个的任务请求缓存至任务队列中,并且,计算机设备通过本地的消费者模块从任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。计算机设备通过消费者模块调用与任务请求对应的机器学习模型,并通过机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果。计算机设备再通过消费者模块将各处理结果缓存至结果队列中,并通过生产者模块反馈结果队列中的各处理结果。
在一个实施例中,如图2所示,提供了一种基于机器学习模型的数据处理方法,以该方法应用于计算机设备(该计算机设备具体可以是图1中的终端110或服务器120)为例进行说明,该基于机器学习模型的数据处理方法包括以下步骤:
S202,通过本地的生产者模块接收多于一个的任务请求;任务请求包括待处理的任务数据。
其中,生产者模块是运行于该计算机设备上的、且用于实现请求接收的一个功能模块,比如是实现任务请求接收的类、函数、线程或者进程等。相应地,消费者模块是运行于该计算机设备上的、且用于实现请求处理的一个功能模块,比如是实现任务请求处理的类、函数、线程或者进程等。
任务请求是客户端发送的包含待处理的任务数据的请求,该任务请求具体可以是识别请求,识别请求表示用于进行对应的识别处理,识别请求比如图像识别请求或者声音识别请求等识别请求,本申请实施例对此不作限定。其中,每一个任务请求可包括待处理的任务数据和发送该任务请求的客户端的设备标识信息等信息。
任务数据是任务请求携带的数据。比如,当任务请求为图像识别请求时,对应的任务数据为待识别的图像数据;当任务请求为声音识别请求时,对应的任务数据为待识别的声音数据。
设备标识信息是用于区分各个设备的信息,用于将各任务请求与对应的客户端进行绑定。设备标识信息具有唯一性,具体可以是设备的IP地址(Internet Protocol,网络之间互连的协议)、MAC地址(Media Access Control,媒体访问控制或者物理地址)、或者ID(Identification,身份标识)编号等信息,本申请对此不做限定。
具体地,各个客户端基于各自的任务需求,分别生成包含各自待处理的任务数据的任务请求,并将各个任务请求发送至计算机设备,计算机设备通过本地运行的生产者模块接收多于一个的任务请求。
在一个实施例中,计算机设备可以实时或者定期接收任务请求。比如计算机设备实时接收各个客户端发送的一个或者多个任务请求,或者按照预设周期,比如3s(second,秒),定时接收各个客户端发送的一个或者多个任务请求,本申请实施例对此不作限定。
在一个具体的应用场景中,比如,在用户需要进行解锁以登录客户端的应用场景中。用户可通过客户端所在终端的图像采集设备,比如摄像头,采集人脸图像,客户端可根据采集的人脸图像来生成相应的任务请求,并将该任务请求发送至计算机设备以进行处理,因而,计算机设备可采用本申请提供的方案对该客户端发送的任务请求进行处理。
S204,通过生产者模块将多于一个的任务请求缓存至任务队列中。
其中,任务队列是用于暂时存储任务请求的队列。可以理解,任务队列也可看作是无限的缓冲区或者管道。
具体地,计算机设备通过生产者模块接收到多于一个的任务请求后,将多于一个的任务请求按照预设缓存条件缓存至任务队列中。其中,预设缓存条件可以是接收各个任务请求的时间顺序、或者与各个任务请求对应的优先级顺序,本申请实施例对此不作限定。
在一个实施例中,计算机设备通过生产者模块确定接收各个任务请求的时间先后顺序,并将各个任务请求按接收到的时间先后顺序依次缓存至任务队列中。比如,计算机设备通过生产者模块接收到的第一个任务请求,也对应的第一个缓存至任务队列中。
在一个实施例中,客户端在生成任务请求时,为该任务请求设置对应的优先级。其中,优先级表征处理顺序,也可理解为紧急程度。优先级具体可分为高、中和低的等级,或者可分为一级、二级和三级的等级,本申请实施例对此不作限定。其中,优先级等级为高、或者优先级等级为一级的任务请求表示紧急程度的最高标准。
在一个实施例中,计算机设备通过生产者模块可为每个任务请求分配对应的任务序号,并按照该任务序号的顺序将各个任务请求缓存至任务队列中。其中,任务序号(taskID)是表示任务请求的先后顺序的号码,比如数字、英文字母、或者数字和英文字母的结合等,本申请实施例对此不作限定。
在一个实施例中,当计算机设备通过生产者模块为每个任务请求分配对应的任务序号之后,还可将每个任务请求与对应的任务序号进行关联和记录。比如将每个任务请求与对应的任务序号关联存储至数据库中,因此,当任务队列中的任务请求被删除后,计算机设备的生产者模块也可通过任务序号查找到对/应的任务请求。
S206,通过本地的消费者模块从任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
分组条件是本地的消费者模块复制任务请求时所遵循的约束条件,用于从任务队列中获取一定数量的任务请求,也就是将任务队列中的任务请求进行分组获取。分组条件具体可以是基于任务请求的任务时间段、或基于任务请求的数量等要求来进行划分。当然,分组条件也可称作分组标准、或者消费策略。其中,消费策略,顾名思义,是消费者模块执行相关操作的策略,相关操作也可理解为是消费处理的操作。
具体地,计算机设备通过本地的消费者模块从任务队列中逐个复制目标任务请求,当所复制的目标任务请求满足分组条件时,参考图3,图3为一个实施例中多于一个的目标任务请求合并为一个批次的待处理请求的示意图,消费者模块将已复制的目标任务请求共同合并成一个批次,以共同作为待处理请求。其中,目标任务请求是任务队列中待复制的任务请求。待处理请求是合并成同一个批次的目标任务请求。
在一个实施例中,步骤S206,也就是通过本地的消费者模块从任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求的步骤,具体包括:从上一组目标任务请求复制结束后,开始统计依次缓存至任务队列中的任务请求;当从上一组目标任务请求复制结束后至当前时间的任务时间段小于任务周期,且在任务时间段内统计的任务请求的数量达到预设数量时,将预设数量的任务请求作为当前组的目标任务请求;当从上一组目标任务请求复制结束后至当前时间的任务时间段等于任务周期,且在任务时间段内统计的任务请求的数量小于等于预设数量时,将统计的数量的任务请求作为当前组的目标任务请求;复制当前组的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
其中,任务周期是预设的固定周期。任务时间段是消费者模块在当前任务周期内进行复制任务的时间段,也就是从上一组目标任务请求复制结束后至当前时间的时间段,可以理解,任务时间段是小于等于任务周期的。预设数量是预先设置的任务请求的数量,可以理解为是消费者模块在任务周期内可复制的任务请求的最大数量。
具体地,计算机设备从上一组目标任务请求复制结束后,通过本地的消费者模块开始统计依次缓存至任务队列中的任务请求。计算机设备通过本地的消费者模块实时计算从上一组目标任务请求复制结束后至当前时间的任务时间段、以及在该任务时间段内统计的任务请求的数量。当出现任务时间段达到任务周期和统计的数量达到预设数量的任意一种情况时,消费者模块确定当前组的目标任务请求,复制当前组的目标任务请求,并将已复制的目标任务请求合并成一个批次,以共同作为待处理请求。
在一个具体的实施例中,比如,任务周期为5s;任务时间段为3s;统计的数量为16个;预设数量为16个。也就是说,消费者模块在从上一组目标任务请求复制结束后至当前时间的任务时间段(3s),该任务时间段小于任务周期(5s),从任务队列中一共统计了16个目标任务请求,也就是满足了预设数量,此时,消费者模块将预设数量(16个)的任务请求作为当前组的目标任务请求,提前结束当前的任务周期,复制当前组的目标任务请求,并将已复制的目标任务请求合并成一个批次,以共同作为待处理请求。这样,通过约束每个批次中的待处理请求的数量,可以达到优化吞吐量的作用,也就是可以保证计算资源的利用合理化。
在另一个具体的实施例中,比如,任务周期为5s;任务时间段为5s;任务数量为10个;预设数量为16个。也就是说,消费者模块在从上一组目标任务请求复制结束后至当前时间的任务时间段(5s),从任务队列中一共统计了10个目标任务请求,并未达到预设数量,但此时,任务时间段已达到任务周期。因此,消费者模块将统计的数量(10个)的任务请求作为当前组的目标任务请求,结束当前的任务周期,复制当前组的目标任务请求,并将已复制的目标任务请求合并成一个批次,以共同作为待处理请求。这样,通过约束获取每个批次中的待处理请求的时间,可以降低各任务请求的处理延时,也就是可以保证各个待处理任务请求的处理时效。
上述实施例中,计算机设备通过本地的消费者模块统计从上一组目标任务请求复制结束后至当前时间的任务时间段、以及在该任务时间段内统计的任务请求的数量,当任务时间段达到预设周期或统计的数量达到预设数量时,确定当前组的目标任务请求,复制当前组的目标任务请求,并将已复制的目标任务请求合并成一个批次,以共同作为待处理请求。通过这样的方式,不仅达到优化吞吐量的作用,即保证计算资源的利用合理化,而且,可以降低各任务请求的处理延时,也就是可以保证各个待处理任务请求的处理时效。
S208,通过消费者模块调用与任务请求对应的机器学习模型,并通过机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果。
其中,结果队列是用于暂时存储处理结果的队列。可以理解,结果队列也可看作是无限的缓冲区或者管道。处理结果是对待处理请求中携带的任务数据进行处理后所得到的结果。当然,处理结果中还可包含发送该待处理请求的客户端的设备标识信息、以及与该待处理请求关联的其他信息等,本申请对此不做限定。
机器学习模型涉及人工智能,是用于处理任务请求中携带的任务数据的模型,可以理解为是一种函数,机器学习模型的类别可以根据具体应用场景来决定,也就是说,当任务请求中携带的任务数据不同,对应的机器学习模型也可能不同。
具体地,计算机设备通过消费者模块获取API,并通过该API来调用与任务请求对应的机器学习模型,再通过该机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果。
在一个实施例中,该基于机器学习模型的数据处理方法中的任务请求包括图像识别请求;任务数据包括待处理的人脸图像和文本图像中的至少一种;当任务数据为人脸图像时,与任务请求对应的机器学习模型包括人脸识别模型,与任务请求对应的处理结果包括人脸识别结果;当任务数据为文本图像时,与任务请求对应的机器学习模型包括文本翻译模型,与任务请求对应的处理结果包括译文文本。
在一个实施例中,当任务请求为图像识别请求,且该任务请求中携带的任务数据为待处理的图像时,比如人脸图像,此时,计算机设备通过消费者模块获取调用与人脸识别模型对应的API接口,因而通过该API接口调用对应的人脸识别模型。其中,人脸识别模型具体可以是通过SSD算法(Single Shot MultiBox Detector,单镜头多盒检测器)、R-CNN算法(Region CNN,区域卷积神经网络)或YOLO算法(You Only Look Once,一种实时目标检测算法)等算法构造的人脸识别模型,本申请实施例对此不做限定。
进而,当通过人脸识别模型对任务请求中携带的人脸图像进行识别处理时,得到与该任务请求对应的人脸识别结果。其中,人脸识别结果具体是任务请求中携带的人脸图像与预设图像是否相符,也就是所识别的人脸图像与预设图像是否为同一个对象。可以理解,当所识别的人脸图像与预设图像为同一个对象时,人脸识别结果表示为人脸识别成功;当所识别的人脸图像与预设图像不是同一个对象时,人脸识别结果表示为人脸识别失败。
可以理解,在一个具体的应用场景中,当任务请求中携带的图像是人脸图像时,计算机设备通过消费者模块调用机器学习模型,并通过该机器学习模型将待识别的人脸图像与预设图像进行比对处理,得到的处理结果可以用0或者1来表示,比如0表示所处理的人脸图像与预设图像是相同的对象,1表示所处理的人脸图像与预设图像是不同的对象。其中,预设图像可以由任务请求携带,从而实现了人脸识别功能。
在另一个实施例中,当任务请求为图像识别请求,且该任务请求中携带的任务数据为待处理的图像时,比如文本图像,此时,计算机设备可通过OCR(Optical CharacterRecognition,光学字符识别)对该文本图像进行文本识别,获取该文本图像中的文本,再通过消费者模块获取调用与文本翻译模型对应的API接口,因而通过该API接口调用对应的文本翻译模型。其中,文本翻译模型具体可以是隐马尔科夫模型或CRF(conditional randomfield algorithm,条件随机场算法)模型,本申请实施例对此不做限定。
进而,当通过文本翻译模型对任务请求中携带的文本图像中的文本进行识别处理时,对应的处理结果可以是译文文本。其中,译文是对文本图像中文本进行识别和翻译后,所得到的翻译后的文本。文本图像中的文本可以是第一语种的文本,对应的译文文本可以是第二语种的文本。其中,文本具体可以是字符串。第一语种和第二语种分别表示不同的语种,比如第一语种为中文,第二语种为英文,本申请实施例对此不做限定。
可以理解,在一个具体的应用场景中,当任务请求中所携带的图像是包含中文字符串的图像时,计算机设备获取该图像中的中文字符串,再通过消费者模块调用与接口对应的文本翻译模型对该中文字符串进行处理,所得到的处理结果是对应的翻译后的英文字符串,从而实现中译英的功能。
上述实施例中,当任务请求为图像识别请求时,计算机设备通过消费者模块调用对应的人脸识别模型对任务请求中携带的人脸图像进行处理,从而得到人脸识别结果,也就是实现人脸识别功能;或者,计算机设备通过消费者模块调用对应的文本翻译模型对任务请求中携带的文本图像进行处理,从而得到译文文本,也就是实现文本翻译功能。通过这样的方式,实现了异步调用接口,避免了同步调用接口时所产生的堵塞的问题,从而大大提高了数据的处理效率。
在一个实施例中,计算机设备通过消费者模块每次可对同一批次的待处理请求进行并行处理,也就是同时处理多于一个的待处理请求,得到与各个目标任务请求分别对应的处理结果。可以理解,这样并行处理的方式可减少计算资源的浪费,从而大大提高计算资源的利用率。
S210,通过消费者模块将各处理结果缓存至结果队列中,并通过生产者模块反馈结果队列中的各处理结果。
具体地,当计算机设备通过消费者模块得到与各目标任务请求分别对应的处理结果后,再将各处理结果缓存至结果队列中,以使得计算机设备可通过生产者模块从结果队列中获取各个处理结果,并将各个处理结果反馈至对应的客户端。
在一个实施例中,步骤S210,也就是通过消费者模块将各处理结果缓存至结果队列中,并通过生产者模块反馈结果队列中的各处理结果的步骤,具体包括:通过消费者模块将各处理结果缓存至结果队列中,并将结果队列中的各处理结果存储至区块链中;基于各处理结果,通过消费者模块删除任务队列中对应的已处理的任务请求;通过生产者模块反馈结果队列中的各处理结果。
其中,区块链是指分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。具体地,区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
具体地,当计算机设备通过消费者模块将与各目标任务请求对应的处理结果缓存至结果队列后,还将结果队列中的各个处理结果存储至区块链中。并且,在任务队列中查找并删除对应的已处理的任务请求。其次,计算机设备可通过生产者模块从结果队列中获取各个处理结果,并将各个处理结果反馈至对应的客户端。
在一个实施例中,当计算机设备通过消费者模块将与各目标任务请求对应的处理结果缓存至结果队列时,还将结果队列中的各个处理结果上传并存储至区块链的节点中,以保证数据的私密性和安全性。
在一个实施例中,计算机设备通过消费者模块在任务队列中查找对应的已处理的任务请求,当查找到对应的已处理的任务请求时,计算机设备通过消费者模块删除对应的已处理的任务请求。可以理解,通过这样的删除方式,可避免任务队列中的各个任务请求被重复处理,这不仅保证了数据的处理准确性,还大大提高了数据的处理效率。
在一个实施例中,处理结果中还可包含发送该待处理请求的客户端的设备标识信息信息,也就是说,计算机设备通过生产者模块确认结果队列中各个处理结果所携带的设备标识信息,再根据该设备标识信息,确定发送待处理请求的客户端。因此,计算机设备通过生产者模块可将各个处理结果反馈至对应的客户端,也就是完成了一次数据处理。
在一个实施例中,由于计算机设备的消费者模块是同时处理一个批次的多个待处理请求,因此,计算机设备的生产者模块可按照反馈周期,定期将各个处理结果反馈至对应的客户端。其中,反馈周期是一个固定的周期,表示计算机设备通过生产者模块向客户端反馈处理结果的周期。
上述实施例中,计算机设备通过消费者模块将结果队列中的各个处理结果存储至区块链中,并在任务队列中查找并删除对应的已处理的任务请求。计算机设备再通过生产者模块将各个处理结果反馈至对应的客户端。通过这样的方式,可避免任务队列中的各个任务请求被重复处理,这不仅保证了数据的处理准确性,还大大提高了数据的处理效率。
上述基于机器学习模型的数据处理方法,通过生产者模块将接收到的多于一个的任务请求缓存至任务队列中,通过消费者模块从任务队列中复制满足分组条件的同个批次的待处理请求,并通过对应的机器学习模型进行并行处理,从而得到与各个处理结果。通过消费者模块将各个处理结果缓存至结果队列,以通过生产者模块反馈结果队列中的各处理结果。通过这样的方式,机器学习模型每次可并行处理同一批次中多个任务请求携带的任务数据,也就是提高了计算资源的利用效率,且减少了切换各个任务请求所造成的延迟时间,因而大大提高了数据的处理效率。此外,通过生产者和消费者的模式,可实现异步传递任务数据,也就是可同时实现获取任务请求以及处理任务请求中的任务数据,并且,通过任务队列和结果队列的实时缓存,可以有效地平衡计算资源,使得负载均衡,即提高计算资源的利用效率,进而大大提高了数据的处理效率。
在一个实施例中,步骤S204,也就是通过生产者模块将多于一个的任务请求缓存至任务队列中的步骤,具体包括:按照接收多于一个的任务请求的时间顺序,通过生产者模块为多于一个的任务请求分配对应的任务序号,并将分配任务序号后的相应任务请求按任务序号顺序依次缓存至任务队列中;步骤S206,也就是通过本地的消费者模块从任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求的步骤,具体包括:按照任务序号顺序,通过本地的消费者模块从任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
具体地,计算机设备通过生产者模块确定接收各个任务请求的时间先后顺序,并将各个任务请求按接收到的时间先后顺序分配对应的任务序号,再将分配好任务序号后的各个任务请求按照任务序号的顺序依次缓存至任务队列中。进而,计算机设备按照任务序号顺序,通过消费者模块从任务队列中逐个复制目标任务请求,当所复制的目标任务请求满足分组条件时,消费者模块将已复制的目标任务请求共同合并成一个批次,以共同作为待处理请求。
其中,任务序号是表示任务请求的先后顺序的号码,比如数字1,2,3…等。具体地,当任务序号是数字时,数字越小,表示计算机设备接收到该任务请求的时间越早。当然,任务序号也可以是英文字母、或者数字和英文字母的结合等,本申请实施例对此不作限定。可以理解,任务序号用于区分各个任务请求,一个任务序号表示一个任务请求,也就是任务序号具有唯一性。
在一个实施例中,当任务序号为数字时,计算机设备的生产者模块按照接收各个任务请求的时间先后顺序,分别为各个任务请求分配对应的任务序号。比如,生产者模块接收到的第一个任务请求分配任务序号为1,接收到的第二个任务请求分配任务序号为2,……以此类推。生产者模块将分配任务序号后的相应任务请求按任务序号顺序依次缓存至任务队列中,也就是说,生产者模块先将任务序号为1的任务请求缓存至任务队列,再将任务序号为2的任务请求缓存至任务队列,……以此类推。
进一步地,计算机设备按照任务序号顺序,通过消费者模块从任务队列中逐个复制目标任务请求,比如,计算机设备通过消费者模块先复制任务序号为1的目标任务请求,再复制任务序号为2的目标任务请求,……以此类推。当消费者模块复制目标任务请求时对应满足任务时间段达到任务周期、或任务数量达到预设数量的条件时,消费者模块将已复制的目标任务请求共同合并成一个批次,以共同作为待处理请求。
上述实施例中,计算机设备通过生产者模块为各个任务请求分配与接收时间对应的任务序号,再通过消费者模块按照该任务序号逐个复制目标任务请求。通过这样的方式,可以区分每个任务请求,便于统计各个任务请求的处理状况。并且,通过按照任务序号复制任务请求,可以降低各个任务请求的处理延时,也就是可以保证各个任务请求的处理时效。
在一个实施例中,该基于机器学习模型的数据处理方法还包括反馈表征任务处理失败的反馈消息的步骤,该反馈表征任务处理失败的反馈消息的步骤具体包括:当在预设时间段内通过生产者模块无法从结果队列中获取与任务请求对应的处理结果时,确定未得到处理结果的任务请求为任务失败请求;通过生产者模块,向任务失败请求所对应的请求发起方反馈表征任务处理失败的反馈信息。
其中,预设时间段也是一个固定的周期,具体可以是一个大于反馈周期的时间段,比如预设时间段是反馈周期的2倍或者3倍等,本申请实施例对此不做限定。
具体地,当在预设时间段内,计算机设备通过生产者模块无法从结果队列中获取与任务请求对应的处理结果时,计算机设备确定未得到处理结果的任务请求为任务失败请求,以使得计算机设备的生产者模块向任务失败请求所对应的请求发起方反馈表征任务处理失败的反馈消息。可以理解,请求发起方也就是上述提到的客户端,本申请实施例对此不作限定。
在一个实施例中,当每个任务请求分配有对应的任务序号时,计算机设备按照任务序号的顺序,并通过生产者模块在结果队列中查找与各个任务序号对应的处理结果。比如计算机设备的消费者模块在任务队列中删除一批目标任务请求后,表示该批次的目标任务请求中的任务数据已处理完成,此时,计算机设备的生产者模块可从结果队列中查找对应的处理结果。
在一个实施例中,当在预设时间段内,计算机设备通过生产者模块无法从结果队列中获取与任务请求对应的处理结果时,计算机设备通过生产者模块确定与任务失败请求对应的设备标识信息,再根据该设备标识信息,确定发送任务失败请求的请求发起方。因此,计算机设备通过生产者模块可将表征任务处理失败的反馈消息反馈至对应的请求发起方。
上述实施例中,当计算机设备通过生产者模块无法从结果队列中获取与任务请求对应的处理结果时,可将表征任务处理失败的反馈消息反馈至对应的请求发起方。通过这样的方式,可监测各任务请求的处理情况,当超过预设时间段时,及时反馈表征任务处理失败的反馈消息,因而保证了数据的处理时效性。
在一个实施例中,该基于机器学习模型的数据处理方法还包括添加任务请求的标志位的步骤,该添加任务请求的标志位的步骤具体包括:通过生产者模块为各任务请求添加对应的标志位;标志位用于表征任务请求对应的请求状态;请求状态包括未复制状态、已复制状态、任务未处理状态、以及任务已处理状态中的至少一种;其中,未复制状态为任务请求处于缓存至任务队列中、且未进行复制的时间段的状态;已复制状态为任务请求被复制后的状态;任务未处理状态为目标任务请求处于未被机器学习模型处理的状态;任务已处理状态为目标任务请求处于已被机器学习模型处理后的状态。
其中,标志位是用于区分任务请求的请求状态的信息,具体可以是一个bit型数据,比如用0或者1来表示。其中,0表示True,1表示False。
具体地,计算机设备通过生产者模块为接收到的每一个任务请求添加对应的标志位,并通过该标志位来表征任务请求所对应的请求状态。其中,请求状态包括未复制状态、已复制状态、任务未处理状态、以及任务已处理状态中的至少一种。
在一个实施例中,比如当计算机设备通过生产者模块将任务请求缓存至任务队列中,且该任务请求未进行复制之前,计算机设备通过生产者模块将此时处于任务队列中的任务请求设置为未复制状态,比如将此时处于任务队列中的任务请求的标志位标记为复制任务已处理=False;当处于任务队列中的任务请求被复制后,计算机设备将此时处于任务队列中的被复制的任务请求设置为已复制状态,比如将此时处于任务队列中的任务请求的标志位标从复制已处理=False更新为复制已处理=True;这样,通过任务队列中任务请求的标志位,如复制已处理=True和复制已处理=False,可区分任务队列中缓存的任务请求是否被复制,保证目标任务请求不会被反复复制,从而保证了数据的处理准确性。
进一步地,当计算机设备通过消费者模块在任务队列中复制了满足分组条件的目标任务请求后,将复制的目标任务请求合并为一个批次的待处理请求,并将同一个批次的待处理请求复制到窗口中。计算机设备通过消费者模块将此时处于窗口中的、且处于未被机器学习模型处理的目标任务请求设置为任务未处理状态,比如将此时处于窗口中的目标任务请求的标志位从复制已处理=True更新为任务已处理=False;当计算机设备通过消费者模块调用对应的API来获取机器学习模型,并通过调用的机器学习模型对窗口中的目标任务请求,也就是同一个批次的待处理请求中携带的任务数据进行并行处理后,计算机设备通过消费者模块将此时处于窗口中的、且处于已被机器学习模型处理的目标任务请求设置为任务已处理状态,比如将此时处于窗口中的目标任务请求的标志位从任务已处理=False更新为任务已处理=True。这样,通过窗口中目标任务请求的标志位,如任务已处理=True和任务已处理=False,可区分窗口中的待处理请求是否已调用机器学习模型进行处理,这样可保证待处理请求不会被重复处理,从而保证了数据的处理准确性。其中,窗口具体可以是一个操作界面。
上述实施例中,计算机设备通过生产者模块为各任务请求添加对应的标志位,并通过该标志位表征任务请求对应的请求状态。通过这样的方式,可区分各任务请求在不同时期以及不同位置时的请求状态,可监测各任务请求的处理状态,并避免了各任务请求被重复处理或者被忽略处理,从而保证了数据的处理准确性,因而大大提高了数据的处理效率。
在一个具体的实施例中,参考图4,该基于机器学习模型的数据处理的方法具体包括以下步骤:比如,在用户需要进行解锁以登录客户端的应用场景中。用户可通过客户端401的摄像头来采集人脸图像,客户端401可根据采集的人脸图像来生成相应的多于一个的图像识别请求,并将该多于一个的图像识别请求发送至计算机设备以进行处理。计算机设备通过生产者模块402接收到多于一个的图像识别请求后,将各图像识别请求缓存至任务队列403中。计算机设备通过本地的消费者模块按照消费策略从任务队列403中复制目标图像识别请求,当所复制的目标图像识别请求满足分组条件时,消费者模块将已复制的目标图像识别请求共同合并成一个批次,以共同作为待处理请求。计算机设备通过消费者模块调用与接口对应的机器学习模型404,再通过该机器学习模型对同个批次的待处理请求中携带的人脸图像进行并行处理,得到与各个目标图像识别请求分别对应的处理结果,比如人脸识别成功和人脸识别失败。计算机设备通过消费者模块将各处理结果缓存至结果队列405中,以使得计算机设备可通过生产者模块从结果队列405中获取各个处理结果,并将各个处理结果反馈至对应的客户端401。比如,当客户端接收到的处理结果为人脸识别成功时,可实现客户端的开锁功能。
在一个具体的实施例中,参考图5,该基于机器学习模型的数据处理的方法具体包括以下步骤:
S502,通过本地的生产者模块接收多于一个的任务请求。
S504,按照接收多于一个的任务请求的时间顺序,通过生产者模块为多于一个的任务请求分配对应的任务序号,并将分配任务序号后的相应任务请求按任务序号顺序依次缓存至任务队列中。
S506,从上一组目标任务请求复制结束后,开始统计依次缓存至任务队列中的任务请求。
S508,当从上一组目标任务请求复制结束后至当前时间的任务时间段小于任务周期,且在任务时间段内统计的任务请求的数量达到预设数量时,将预设数量的任务请求作为当前组的目标任务请求。
S510,当从上一组目标任务请求复制结束后至当前时间的任务时间段等于任务周期,且在任务时间段内统计的任务请求的数量小于等于预设数量时,将统计的数量的任务请求作为当前组的目标任务请求。
S512,复制当前组的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
S514,通过消费者模块调用与任务请求对应的机器学习模型,并通过机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果。
S516,通过消费者模块将各处理结果缓存至结果队列中,并将结果队列中的各处理结果存储至区块链中。
S518,基于各处理结果,通过消费者模块删除任务队列中对应的已处理的任务请求。
S520,通过生产者模块反馈结果队列中的各处理结果。
S522,当在预设时间段内通过生产者模块无法从结果队列中获取与任务请求对应的处理结果时,确定未得到处理结果的任务请求为任务失败请求。
S524,通过生产者模块,向任务失败请求所对应的请求发起方反馈表征任务处理失败的反馈信息。
应该理解的是,虽然图2、图4和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4和图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种基于机器学习模型的数据处理装置600,包括:生产者模块602和消费者模块604,其中:
生产者模块602,用于接收多于一个的任务请求;任务请求包括待处理的任务数据;将多于一个的任务请求缓存至任务队列中;反馈结果队列中的各处理结果。
消费者模块604,用于从任务队列中复制满足分组条件的目标任务请求,将复制的目标任务请求共同作为同个批次的待处理请求;调用与任务请求对应的机器学习模型,并通过机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果;将各处理结果缓存至结果队列中。
在一个实施例中,生产者模块602还用于按照接收多于一个的任务请求的时间顺序,为多于一个的任务请求分配对应的任务序号,并将分配任务序号后的相应任务请求按任务序号顺序依次缓存至任务队列中;按照任务序号顺序,消费者模块604还用于从任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
在一个实施例中,消费者模块604还用于从上一组目标任务请求复制结束后,开始统计依次缓存至任务队列中的任务请求;当从上一组目标任务请求复制结束后至当前时间的任务时间段小于任务周期,且在任务时间段内统计的任务请求的数量达到预设数量时,将预设数量的任务请求作为当前组的目标任务请求;当从上一组目标任务请求复制结束后至当前时间的任务时间段等于任务周期,且在任务时间段内统计的任务请求的数量小于等于预设数量时,将统计的数量的任务请求作为当前组的目标任务请求;复制当前组的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
在一个实施例中,消费者模块604还用于将各处理结果缓存至结果队列中,并将结果队列中的各处理结果存储至区块链中;基于各处理结果,删除任务队列中对应的已处理的任务请求;生产者模块602还用于反馈结果队列中的各处理结果。
在一个实施例中,生产者模块602还用于当在预设时间段内无法从结果队列中获取与任务请求对应的处理结果时,确定未得到处理结果的任务请求为任务失败请求;向任务失败请求所对应的请求发起方反馈表征任务处理失败的反馈信息。
在一个实施例中,生产者模块602还用于为各任务请求添加对应的标志位;标志位用于表征任务请求对应的请求状态;请求状态包括未复制状态、已复制状态、任务未处理状态、以及任务已处理状态中的至少一种;其中,未复制状态为任务请求处于缓存至任务队列中、且未进行复制的时间段的状态;已复制状态为任务请求被复制后的状态;任务未处理状态为目标任务请求处于未被机器学习模型处理的状态;任务已处理状态为目标任务请求处于已被机器学习模型处理后的状态。
在一个实施例中,该基于机器学习模型的数据处理装置600中的任务请求包括图像识别请求;任务数据包括待处理的人脸图像和文本图像中的至少一种;当任务数据为人脸图像时,与任务请求对应的机器学习模型包括人脸识别模型,与任务请求对应的处理结果包括人脸识别结果;当任务数据为文本图像时,与任务请求对应的机器学习模型包括文本翻译模型,与任务请求对应的处理结果包括译文文本。
上述基于机器学习模型的数据处理装置,通过生产者模块将接收到的多于一个的任务请求缓存至任务队列中,通过消费者模块从任务队列中复制满足分组条件的同个批次的待处理请求,并通过对应的机器学习模型进行并行处理,从而得到与各个处理结果。通过消费者模块将各个处理结果缓存至结果队列,以通过生产者模块反馈结果队列中的各处理结果。通过这样的方式,机器学习模型每次可并行处理同一批次中多个任务请求携带的任务数据,也就是提高了计算资源的利用效率,且减少了切换各个任务请求所造成的延迟时间,因而大大提高了数据的处理效率。此外,通过生产者和消费者的模式,可实现异步传递任务数据,也就是可同时实现获取任务请求以及处理任务请求中的任务数据,并且,通过任务队列和结果队列的实时缓存,可以有效地平衡计算资源,使得负载均衡,即提高计算资源的利用效率,进而大大提高了数据的处理效率。
关于基于机器学习模型的数据处理装置的具体限定可以参见上文中对于基于机器学习模型的数据处理方法的限定,在此不再赘述。上述基于机器学习模型的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备具体可以是终端或服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和通信接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI(Wireless Fidelity,无线局域网)、运营商网络、NFC(Near Field Communication,近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于机器学习模型的数据处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于机器学习模型的数据处理方法的步骤。此处基于机器学习模型的数据处理方法的步骤可以是上述各个实施例的基于机器学习模型的数据处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于机器学习模型的数据处理方法的步骤。此处基于机器学习模型的数据处理方法的步骤可以是上述各个实施例的基于机器学习模型的数据处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于机器学习模型的数据处理方法,其特征在于,所述方法包括:
通过本地的生产者模块接收多于一个的任务请求;所述任务请求包括待处理的任务数据;
通过所述生产者模块将所述多于一个的任务请求缓存至任务队列中;
通过本地的消费者模块从所述任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求;
通过所述消费者模块调用与所述任务请求对应的机器学习模型,并通过所述机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果;
通过所述消费者模块将各所述处理结果缓存至结果队列中,并通过所述生产者模块反馈所述结果队列中的各所述处理结果。
2.根据权利要求1所述的方法,其特征在于,所述通过所述生产者模块将所述多于一个的任务请求缓存至任务队列中,包括:
按照接收所述多于一个的任务请求的时间顺序,通过所述生产者模块为所述多于一个的任务请求分配对应的任务序号,并将分配所述任务序号后的相应任务请求按所述任务序号顺序依次缓存至任务队列中;
所述通过本地的消费者模块从所述任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求,包括:
按照所述任务序号顺序,通过本地的消费者模块从所述任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
3.根据权利要求1所述的方法,其特征在于,所述通过本地的消费者模块从所述任务队列中复制满足分组条件的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求,包括:
从上一组目标任务请求复制结束后,开始统计依次缓存至所述任务队列中的任务请求;
当从上一组目标任务请求复制结束后至当前时间的任务时间段小于任务周期,且在所述任务时间段内统计的任务请求的数量达到预设数量时,将所述预设数量的任务请求作为当前组的目标任务请求;
当从上一组目标任务请求复制结束后至当前时间的任务时间段等于所述任务周期,且在所述任务时间段内统计的任务请求的数量小于等于所述预设数量时,将统计的所述数量的任务请求作为当前组的目标任务请求;
复制所述当前组的目标任务请求,并将复制的目标任务请求共同作为同个批次的待处理请求。
4.根据权利要求1所述的方法,其特征在于,所述通过所述消费者模块将各所述处理结果缓存至结果队列中,并通过所述生产者模块反馈所述结果队列中的各所述处理结果,包括:
通过所述消费者模块将各所述处理结果缓存至结果队列中,并将所述结果队列中的各所述处理结果存储至区块链中;
基于各所述处理结果,通过所述消费者模块删除所述任务队列中对应的已处理的任务请求;
通过所述生产者模块反馈所述结果队列中的各所述处理结果。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当在预设时间段内通过所述生产者模块无法从所述结果队列中获取与所述任务请求对应的处理结果时,确定未得到处理结果的任务请求为任务失败请求;
通过所述生产者模块,向所述任务失败请求所对应的请求发起方反馈表征任务处理失败的反馈信息。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
通过所述生产者模块为各所述任务请求添加对应的标志位;所述标志位用于表征所述任务请求对应的请求状态;所述请求状态包括未复制状态、已复制状态、任务未处理状态、以及任务已处理状态中的至少一种;
其中,所述未复制状态为所述任务请求处于缓存至所述任务队列中、且未进行复制的时间段的状态;所述已复制状态为所述任务请求被复制后的状态;所述任务未处理状态为所述目标任务请求处于未被所述机器学习模型处理的状态;所述任务已处理状态为所述目标任务请求处于已被所述机器学习模型处理后的状态。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述任务请求包括图像识别请求;所述任务数据包括待处理的人脸图像和文本图像中的至少一种;当所述任务数据为人脸图像时,与所述任务请求对应的机器学习模型包括人脸识别模型,与所述任务请求对应的处理结果包括人脸识别结果;当所述任务数据为文本图像时,与所述任务请求对应的机器学习模型包括文本翻译模型,与所述任务请求对应的处理结果包括译文文本。
8.一种基于机器学习模型的数据处理装置,其特征在于,所述装置包括:
所述生产者模块,用于接收多于一个的任务请求;所述任务请求包括待处理的任务数据;将所述多于一个的任务请求缓存至任务队列中;反馈所述结果队列中的各所述处理结果;
所述消费者模块,用于从所述任务队列中复制满足分组条件的目标任务请求,将复制的目标任务请求共同作为同个批次的待处理请求;调用与所述任务请求对应的机器学习模型,并通过所述机器学习模型对同个批次的待处理请求中携带的任务数据进行并行处理,得到与各个目标任务请求分别对应的处理结果;将各所述处理结果缓存至结果队列中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880704.8A CN112015553A (zh) | 2020-08-27 | 2020-08-27 | 基于机器学习模型的数据处理方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880704.8A CN112015553A (zh) | 2020-08-27 | 2020-08-27 | 基于机器学习模型的数据处理方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112015553A true CN112015553A (zh) | 2020-12-01 |
Family
ID=73503322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010880704.8A Pending CN112015553A (zh) | 2020-08-27 | 2020-08-27 | 基于机器学习模型的数据处理方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015553A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268328A (zh) * | 2021-05-26 | 2021-08-17 | 平安国际融资租赁有限公司 | 批处理方法、装置、计算机设备和存储介质 |
CN114170335A (zh) * | 2021-10-18 | 2022-03-11 | 深圳追一科技有限公司 | 数字人视频的生成方法、装置、计算机设备及存储介质 |
CN114900422A (zh) * | 2021-01-26 | 2022-08-12 | 瞻博网络公司 | 用于网络管理的增强型交谈界面 |
CN116627357A (zh) * | 2023-07-21 | 2023-08-22 | 美智纵横科技有限责任公司 | 数据处理方法、深度学习模型的部署方法、装置及芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425519A (zh) * | 2012-05-16 | 2013-12-04 | 富士通株式会社 | 分布式计算方法和分布式计算系统 |
CN108566346A (zh) * | 2018-03-14 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 网络请求的处理方法及装置 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和系统 |
WO2019183861A1 (zh) * | 2018-03-28 | 2019-10-03 | 深圳市大疆创新科技有限公司 | 任务处理方法、设备及机器可读存储介质 |
CN111200606A (zh) * | 2019-12-31 | 2020-05-26 | 深圳市优必选科技股份有限公司 | 深度学习模型任务处理方法、系统、服务器及存储介质 |
-
2020
- 2020-08-27 CN CN202010880704.8A patent/CN112015553A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425519A (zh) * | 2012-05-16 | 2013-12-04 | 富士通株式会社 | 分布式计算方法和分布式计算系统 |
CN108566346A (zh) * | 2018-03-14 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 网络请求的处理方法及装置 |
WO2019183861A1 (zh) * | 2018-03-28 | 2019-10-03 | 深圳市大疆创新科技有限公司 | 任务处理方法、设备及机器可读存储介质 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和系统 |
CN111200606A (zh) * | 2019-12-31 | 2020-05-26 | 深圳市优必选科技股份有限公司 | 深度学习模型任务处理方法、系统、服务器及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900422A (zh) * | 2021-01-26 | 2022-08-12 | 瞻博网络公司 | 用于网络管理的增强型交谈界面 |
CN113268328A (zh) * | 2021-05-26 | 2021-08-17 | 平安国际融资租赁有限公司 | 批处理方法、装置、计算机设备和存储介质 |
CN114170335A (zh) * | 2021-10-18 | 2022-03-11 | 深圳追一科技有限公司 | 数字人视频的生成方法、装置、计算机设备及存储介质 |
CN116627357A (zh) * | 2023-07-21 | 2023-08-22 | 美智纵横科技有限责任公司 | 数据处理方法、深度学习模型的部署方法、装置及芯片 |
CN116627357B (zh) * | 2023-07-21 | 2023-09-29 | 美智纵横科技有限责任公司 | 数据处理方法、深度学习模型的部署方法、装置及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015553A (zh) | 基于机器学习模型的数据处理方法、装置、设备和介质 | |
CN110866491B (zh) | 目标检索方法、装置、计算机可读存储介质和计算机设备 | |
CN110222048B (zh) | 序列生成方法、装置、计算机设备及存储介质 | |
US11329928B2 (en) | Dynamic allocation of network resources using external inputs | |
CN109040227B (zh) | 基于区块链的业务请求响应方法、装置和计算机设备 | |
CN112015674B (zh) | 基于多层级的缓存资源访问方法、装置和计算机设备 | |
CN109299144B (zh) | 一种数据处理方法、装置、系统及应用服务器 | |
US10043220B2 (en) | Method, device and storage medium for data processing | |
WO2018201980A1 (zh) | 保单服务任务分配方法、装置、计算机设备和存储设备 | |
JP7164719B2 (ja) | 顔サンプルライブラリのデプロイ方法、顔認識による業務処理方法及び装置 | |
CN111190727A (zh) | 内存的异步析构方法、装置、计算机设备及存储介质 | |
CN108965450B (zh) | 业务请求响应方法、装置、计算机设备和存储介质 | |
CN114598597B (zh) | 多源日志解析方法、装置、计算机设备及介质 | |
CN112199344A (zh) | 一种日志分类的方法和装置 | |
CN111625348A (zh) | 任务分配方法、装置、服务器及存储介质 | |
US11080859B2 (en) | Image communication based on hit image block conditions | |
CN110442696B (zh) | 查询处理方法及装置 | |
WO2023115974A1 (zh) | 多媒体资源推荐、对象表征网络的生成方法及装置 | |
CN116578984A (zh) | 一种业务数据的风险管控方法、系统、设备和介质 | |
US20150106884A1 (en) | Memcached multi-tenancy offload | |
CN111209100B (zh) | 一种业务处理和数据源确定方法 | |
CN111143161B (zh) | 日志文件的处理方法、装置、存储介质和电子设备 | |
CN108834087B (zh) | 短信发送方法、装置、计算机设备和存储介质 | |
CN113873025A (zh) | 数据处理方法及装置、存储介质及电子设备 | |
CN112579809B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201201 |
|
RJ01 | Rejection of invention patent application after publication |