CN111897828A - 数据批处理实现方法、装置、设备及存储介质 - Google Patents
数据批处理实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111897828A CN111897828A CN202010763614.0A CN202010763614A CN111897828A CN 111897828 A CN111897828 A CN 111897828A CN 202010763614 A CN202010763614 A CN 202010763614A CN 111897828 A CN111897828 A CN 111897828A
- Authority
- CN
- China
- Prior art keywords
- data
- user request
- request data
- deep learning
- learning model
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 337
- 238000000034 method Methods 0.000 title claims abstract description 162
- 238000013136 deep learning model Methods 0.000 claims abstract description 229
- 230000008569 process Effects 0.000 claims abstract description 113
- 230000000875 corresponding effect Effects 0.000 claims description 171
- 238000007781 pre-processing Methods 0.000 claims description 96
- 230000015654 memory Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000013135 deep learning Methods 0.000 abstract description 17
- 230000004044 response Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000013519 translation Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据批处理实现方法、装置、设备及存储介质,其包括:获取多条用户请求数据;将用户请求数据和相应的数据标识关联写入临时数据库中;指示至少一个深度学习模型在临时数据库中抓取相匹配的用户请求数据及关联的数据标识,深度学习模型可处理的请求类型与相匹配的用户请求数据对应的请求类型相同;在抓取的用户请求数据满足批处理条件时指示深度学习模型批量处理用户请求数据并获取处理结果;根据数据标识将对应的处理结果关联写入临时数据库中;根据数据标识获取临时数据库中对应的处理结果,并反馈至对应的用户侧。上述方法可解决现有技术中利用深度学习进行数据处理时存在抢占深度学习资源及需要较长处理时间的技术问题。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种数据批处理实现方法、装置、设备及存储介质。
背景技术
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能领域中,利用深度学习的学习方式使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,因此,深度学习被广泛应用在各类人工智能场景。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:在利用深度学习进行数据处理时,通常采用串行处理的方式。但是,随着用户需求量的增多,需要深度学习模型处理的数据量越来越大,此时,会出现多条数据抢占深度学习资源的问题以及处理时间长的问题,不利于用户需求的快速响应。
发明内容
本申请提供了一种数据批处理实现方法、装置、设备及存储介质,以解决现有技术中利用深度学习进行数据处理时,存在抢占深度学习资源以及需要较长处理时间的技术问题。
第一方面,本申请实施例提供了一种数据批处理实现方法,包括:
获取多条用户请求数据,每条所述用户请求数据对应一个数据标识;
将所述用户请求数据和相应的数据标识关联写入临时数据库中;
指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识,所述深度学习模型可处理的请求类型与所述相匹配的用户请求数据对应的请求类型相同;
在抓取的用户请求数据满足批处理条件时,指示对应的深度学习模型批量处理所述用户请求数据,并获取处理结果,每条所述用户请求数据对应一条所述处理结果;
根据所述数据标识,将对应的处理结果关联写入所述临时数据库中;
根据所述数据标识获取所述临时数据库中对应的处理结果,并将所述处理结果反馈至对应的用户侧。
进一步的,所述获取多条用户请求数据包括:
接收用户侧发送的多条原始请求数据;
对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据,每条所述原始请求数据对应一条所述用户请求数据;
为每条所述用户请求数据创建对应的数据标识。
进一步的,所述对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据包括:
利用负载均衡服务将多条所述原始请求数据转发至多个预处理进程中,每个所述预处理进程接收至少一条所述原始请求数据;
指示所述预处理进程对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据。
进一步的,所述负载均衡服务为Nginx。
进一步的,所述将所述用户请求数据和相应的数据标识关联写入临时数据库中,还包括:
将所述临时数据库中的状态字段设置为第一字段,所述第一字段表示未处理状态,所述状态字段与当前写入的所述用户请求数据及相应的数据标识相对应。
进一步的,所述数据标识包括深度学习模型名称、时间戳和随机整数。
进一步的,所述指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识包括:
指示至少一个深度学习模型读取所述临时数据库中记录的数据标识;
若所述数据标识中记录的深度学习模型名称与当前进行读取的深度学习模型相符,则指示所述当前进行读取的深度学习模型读取所述临时数据库中与所述数据标识对应的状态字段;
若所述状态字段为所述第一字段,则指示所述当前进行读取的深度学习模型抓取所述临时数据库中记录的所述数据标识以及对应的用户请求数据。
进一步的,所述根据所述数据标识,将对应的处理结果关联写入所述临时数据库中时,还包括:
将所述临时数据库中与所述数据标识对应的状态字段设置为第二字段,所述第二字段表示已处理状态。
进一步的,所述根据所述数据标识获取所述临时数据库中对应的处理结果包括:
根据所述数据标识,指示预处理进程在所述临时数据库中查找与所述数据标识相对应的状态字段,所述预处理进程用于预处理原始请求数据以得到与所述数据标识对应的用户请求数据;
若所述状态字段为所述第二字段,则指示所述预处理进程获取所述临时数据库中与所述数据标识相关联的处理结果。
进一步的,所述批处理条件为抓取的用户请求数据的数量达到对应深度学习模型的数量处理阈值。
进一步的,所述批处理条件为当前所述深度学习模型未抓取到相匹配的用户请求数据及关联的数据标识。
进一步的,所述临时数据库包含多条临时数据,每条临时数据包括关键字部分和值部分,所述关键字部分中包括数据标识,所述值部分中包括所述数据标识对应的用户请求数据。
进一步的,所述临时数据库为Redis数据库。
第二方面,本申请实施例还提供了一种数据批处理实现装置,包括:
数据获取模块,用于获取多条用户请求数据,每条所述用户请求数据对应一个数据标识;
数据写入模块,用于将所述用户请求数据和相应的数据标识关联写入临时数据库中;
数据抓取模块,用于指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识,所述深度学习模型可处理的请求类型与所述相匹配的用户请求数据对应的请求类型相同;
数据处理模块,用于在抓取的用户请求数据满足批处理条件时,指示对应的深度学习模型批量处理所述用户请求数据,并获取处理结果,每条所述用户请求数据对应一条所述处理结果;
结果写入模块,用于根据所述数据标识,将对应的处理结果关联写入所述临时数据库中;
结果返回模块,用于根据所述数据标识获取所述临时数据库中对应的处理结果,并将所述处理结果反馈至对应的用户侧。
第三方面,本申请实施例还提供了一种数据批处理实现设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据批处理实现方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据批处理实现方法。
上述数据批处理实现方法、装置、设备及存储介质,通过获取多条存在数据标识的用户请求数据,之后,将用户请求数据和数据标识关联写入临时数据库中,并指示深度学习模型读取临时数据库中相匹配的用户请求数据,并在用户请求数据满足批处理条件时,由深度学习模型批量处理读取的用户请求数据,以得到处理结果,之后,根据数据标识将处理结果关联写入临时数据库,并根据数据标识访问临时数据库,以获取处理结果,进而根据数据标识将处理结果反馈至对应的用户侧的技术手段,可以解决现有技术中利用深度学习进行数据处理时,存在抢占深度学习资源以及需要较长处理时间的技术问题,通过设立批处理条件,实现深度学习模型的批处理,缩短了处理时间,同时,各用户请求数据存放在临时数据库中,由深度学习模型进行抽取,也避免了抢占资源的情况。
进一步的,通过设置临时数据库为中间件,还可以将数据批处理实现设备分为前端部分和后端部分,以使前端部分的处理过程和后端部分的处理过程互不干扰,即使某个部分出现了问题,仅需对该部分进行修复,不会影响其他部分的数据处理过程。
进一步的,通过设置数据标识可以避免用户请求混乱的情况,尤其是设置临时数据库后,前端部分和后端部分可以通过数据标识准确确定用户请求数据和处理结果的对应关系,保证将处理结果准确的返回给对应的用户侧。
进一步的,通过对接收到的原始请求数据进行预处理,可以得到符合深度学习模型识别规则的用户请求数据,便于深度学习模型对用户请求的处理,同时,通过创建多个预处理进程,并利用负载均衡服务将多个原始请求数据转发至多个预处理进程中,可以实现并行处理,提高预处理速度,合理利用资源。同时,利用预处理进程获取处理结果,并返回给对应的用户侧,可以提高处理结果的反馈速度。
附图说明
图1为本申请一个实施例提供的一种数据批处理实现方法的流程图;
图2为本申请实施例提供的每秒查询率-深度学习模型数量关系示意图;
图3为本申请另一个实施例提供的一种数据批处理实现方法的流程图;
图4为本申请实施例提供的数据处理逻辑架构示意图;
图5为本申请一个实施例提供的一种数据批处理实现装置的结构示意图;
图6为本申请一个实施例提供的一种数据批处理实现设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
本申请实施例中提供的数据批处理实现方法可以由数据批处理实现设备执行,该数据批处理实现设备可以通过软件和/或硬件的方式实现,该数据批处理实现设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。
实施例中,以数据批处理实现设备为服务器为例进行描述。其中,服务器在网络中为其它用户机(如电脑、智能手机、智能平板等用户终端、甚至是火车系统等大型设备)提供计算或者应用服务。实施例中,设定服务器为用户终端提供服务,其中,用户终端安装有安卓、Windows、IOS等至少一个操作系统,并且,该操作系统下安装有至少一个应用程序,其中,应用程序可以为操作系统自带的应用程序,也可以为从第三方设备或服务器中下载的应用程序。实施例中,设定用户终端中至少安装有通过数据批处理实现设备实现服务的应用程序,此时,当用户存在服务需求时,用户终端中安装的应用程序与数据批处理实现设备进行通信以响应用户的服务需求。其中,用户终端与数据批处理实现设备之间的通信规则实施例不做限定。需说明,实施例中,设定数据批处理实现设备同时为多个用户终端提供服务,用户终端的具体类别和数量实施例不做限定。
具体的,图1为本申请一个实施例提供的一种数据批处理实现方法的流程图。参考图1,该数据批处理实现方法包括如下步骤:
步骤110、获取多条用户请求数据,每条所述用户请求数据对应一个数据标识。
示例性的,用户请求数据是指包含用户具体的服务请求内容的数据。用户请求数据可以通过用户终端发送的请求内容和请求类型得到。其中,请求类型可以理解为在请求某个服务时,该服务对应的类型。请求类型的具体内容实施例不做限定,例如,请求类型为将汉语字段翻译成英语字段(即汉译英),对应的请求内容可以为待翻译的汉语字段,或者,请求类型为将英语字段翻译成汉语字段(即英译汉),对应的请求内容可以为待翻译的英语字段,或者,请求类型为图像处理服务,对应的请求内容可以为待处理的图像。需说明,用户请求数据的具体格式实施例不做限定。
一个实施例中,存在多个用户终端同时发送服务请求的情况,此时,数据批处理实现设备可以实时获取当前时刻确定的全部用户请求数据。实施例中,设定当前可以获取到多个用户请求数据。其中,不同用户请求数据可以由不同的用户终端发送。不同用户请求数据的请求类型可以相同或不同。
一个实施例中,用户请求数据为经过预处理后的数据,其中,预处理是指按照设定的预处理规则,对用户终端发送的原始请求数据进行处理,以使处理后的数据符合后续处理的格式或者使处理后的数据更便于后续使用。预处理规则可以根据请求类型以及后续处理使用的技术手段确定。举例而言,请求类型为汉译英,此时,接收的原始请求数据中应包含待翻译的汉语字段,后续处理使用的技术手段为采用深度学习模型进行翻译,此时,预处理规则可以是指对待翻译的汉语字段进行分词处理,以便于深度学习模型在进行翻译时可以直接对分词进行翻译。再举例而言,请求类型为图形识别服务,接收的原始请求数据中应包含需要识别的图形,后续处理使用的技术手段为采用深度学习模型进行识别,此时,预处理规则可以是对包含图形的图片进行二值化处理,以在深度学习模型进行识别时降低图片背景对识别结果的影响。
进一步的,每条用户请求数据对应一个数据标识。可选的,在获取用户请求数据时,同步生成数据标识。数据标识具有唯一性,其生成规则可以根据实际情况设定,例如,数据标识中包含请求类型ID、深度学习模型名称、用户请求数据获取时间等至少一项的内容,还包含随机数、唯一验证码等至少一项用于保证唯一性的内容。典型的,生成数据标识后,数据批处理实现设备记录数据标识和用户请求数据的对应关系,以在后续处理过程中,通过数据标识识别对应的用户请求数据,进而避免混淆用户请求数据。
步骤120、将所述用户请求数据和相应的数据标识关联写入临时数据库中。
具体的,临时数据库是指为临时数据提供的存储空间,其中,临时数据是指处理用户请求过程中生成的相关数据。临时数据库的类型可以根据实际情况设定,实施例中,以临时数据库为键值(key-value)数据库为例进行描述。key-value数据库是一种以键值对存储数据的数据库,key为关键字,value为值,key-value数据库也可以理解为通过查询key得到value的数据库。
可选的,用户请求处理完成后,可以删除临时数据库中存储的临时数据,或者,将临时数据库中存储的临时数据作为历史数据转存至历史数据库中,其中历史数据库可以由数据批处理实现设备的管理人员访问并进行数据管理。
实施例中,用户请求数据和数据标识均作为临时数据被写入至临时数据库中。在写入时,将数据标识作为key,将用户请求数据作为value,以便于后续处理流程通过数据标识获取对应的用户请求数据。可选的,value中除了用户请求数据外,还包含用于标识服务请求当前处理状态的字段,实施例中,将该字段记为状态字段,状态字段的具体格式实施例不做限定。具体的,在写入用户请求数据时,将状态字段设置为表示未处理的字段,以使后续处理流程明确用户请求数据还未被处理。
步骤130、指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识,所述深度学习模型可处理的请求类型与所述相匹配的用户请求数据对应的请求类型相同。
实施例中,采用深度学习模型处理用户请求数据。其中,深度学习模型是指依托于深度学习技术建立的模型数据,深度学习模型所采用的架构以及具体的结构实施例不做限定。典型的,本步骤中使用的深度学习模型为已经训练好的模型,相应的,建立深度学习模型后,先对深度学习模型进行训练,训练完成后便可以应用深度学习模型。其中,训练规则可以根据实际情况设定,例如,深度学习模型为处理汉译英服务的模型,此时,训练规则可以为预先采集大量的汉语字段和对应的英语字段作为训练数据,对深度学习模型进行训练,并在深度学习模型收敛(输出的结果稳定且准确率达到一定阈值)后,采集另外一定数量的汉语字段和对应的英语字段对深度学习模型进行验证,若验证结果为深度学习模型的输出结果稳定且准确率达到一定阈值,则确定验证成功,深度学习模型可以投入使用。
实施例中,使用一个或多个深度学习模型处理用户请求数据,一个深度学习模型可处理一种请求类型对应的用户请求数据。其中,在使用多个深度学习模型时,多个深度学习模型可以处理多种请求类型。具体的,某一请求类型可以由一个深度学习模型进行处理,也可以由多个深度学习模型进行处理。当某一请求类型由多个深度学习模型进行处理时,多个深度学习模型优选为相同结构的模型。
可选的,每个深度学习模型均设置有对应的深度学习模型名称,其中,在创建深度学习模型时同步创建名称,且名称的创建规则可以根据实际情况设定,例如,当前创建3个用于进行汉译英的深度学习模型,且对应的名称分别为:CN-EN1、CN-EN2、CN-EN3。再如,当前创建2个用于进行英译汉的深度学习模型,且对应的名称均为EN-CN。又如,当前创建1个用于进行图像处理的深度学习模型,且对应的名称为PIC。实施例中,以处理同一请求类型的深度学习模型具有相同的深度学习模型名称为例进行描述。
进一步的,指示多个深度学习模型读取临时数据库中存储的临时数据,以抓取用户请求数据。其中,优选指示当前处于未处理状态的深度学习模型进行抓取,其中,未处理状态也可以理解为空闲状态。其中,抓取到的与深度学习模型相匹配的用户请求数据是指可以由深度学习模型进行处理的用户请求数据,即所述深度学习模型可处理的请求类型与所述相匹配的用户请求数据对应的请求类型相同。可选的,深度学习模型可以周期性的进行读取,即重复读取临时数据库,以便于实时抓取新的用户请求数据,其中,一个周期对应一次读取的动作。一个实施例中,数据标识包含深度学习模型名称,相应的,深度学习模型在读取临时数据库时,读取key中的数据标识,以确认数据标识记录的深度学习模型名称是否与自身的名称相符合,若相符合,则说明该数据标识对应的用户请求数据的请求类型与深度学习模型可处理的请求类型相同,即该数据标识对应的用户请求数据与深度学习模型相匹配,之后,深度学习模型抓取该数据标识对应value中记录的用户请求数据,以进行后续处理。另一个实施例中,数据标识包含请求类型ID,相应的,深度学习模型在读取临时数据库时,读取key中的数据标识,以确认数据标识记录的请求类型ID是否与自身处理的请求类型相符合,若相符合,则确定该数据标识对应的用户请求数据与深度学习模型相匹配,之后,深度学习模型抓取该数据标识对应value中记录的用户请求数据,以进行后续处理。可选的,若value中包含状态字段,则在抓取用户请求数据前,先确定状态字段是否为表示未处理的字段,若是,则确定该条用户请求数据未被处理,进而抓取该用户请求数据,若否,则确定该条用户请求数据已经被处理,因此,无需抓取。一个实施例中,若同一请求类型对应多个深度学习模型,则可以多个深度学习模型轮流进行读取、或同时进行读取。实施例中,以多个深度学习模型不分先后进行读取为例进行描述,此时,当某一条用户请求数据被某个深度学习模型抓取后,临时数据库可以对该条用户请求数据所在的临时数据进行处理,以防止其他深度学习模型重复抓取该条用户请求数据。其中,对临时数据进行处理的手段实施例不作限定,例如,采用“锁”的机制锁定该条临时数据,或者,为该条临时数据添加标识,以标识该条临时数据已经被抓取。可理解,对临时数据进行处理后,该条临时数据无法被抓取,但是可以在其中写入新的数据和/或修改其中写入的数据,并且在写入新的数据和/或修改其中写入的数据后,撤销对该临时数据的处理,如解除“锁”的机制或者删除标识。
深度学习模型在抓取用户请求数据时,同步抓取数据标识,以便在对用户请求数据进行批处理后,通过数据标识确定对应的处理结果。
步骤140、在抓取的用户请求数据满足批处理条件时,指示对应的深度学习模型批量处理所述用户请求数据,并获取处理结果,每条所述用户请求数据对应一条所述处理结果。
其中,批处理是指对某对象进行批量处理,实施例中,批处理是指利用深度学习模型对用户请求数据进行批量处理,其中,一次处理的用户请求数据可以认为是深度学习模型的batch,batch也可以理解为深度学习模型一次数据处理过程中输入的数据量。
典型的,预先设定批处理条件,当任一深度学习模型抓取的用户请求数据满足批处理条件时,便可以由深度学习模型对用户请求数据进行批量处理。其中,批处理条件可以根据实际情况设定,实施例中,设定批处理条件包括下述两种方案:
方案一、批处理条件为抓取的用户请求数据的数量达到对应深度学习模型的数量处理阈值。
典型的,每个深度学习模型都设定有数量处理阈值,数量处理阈值是指深度学习模型一次处理过程中,输入的用户请求数据的最大数量。可理解,若数量处理阈值较小,那么,当用户请求数据的条数较多时,会有很多用户请求数据需要等待深度学习模型抓取并处理,这样会影响用户请求数据的响应速度,若数量处理阈值较大,那么,每次向深度学习模型输入的用户请求数据的条数较多,使得深度学习模型的数据处理量大,进而导致深度学习模型的处理速度下降。因此,数量处理阈值较大或较小都会影响用户请求数据的处理速度,即降低请求响应速度。实施例中,通过设定不同的数量处理阈值,并对数据批处理实现方法进行试验,以得到最优的数量处理阈值,即得到服务响应最高(处理速度快)的数量处理阈值,之后,将最优的数量处理阈值作为深度学习模型的数量处理阈值。举例而言,经过多次试验发现,数据批处理实现设备中采用单图形处理器(Graphics Processing Unit,GPU)建立深度学习模型响应用户请求数据时,使用NVidia 1080TI作为计算资源的情况下,数量处理阈值为45时可以使得数据批处理实现方法的服务响应最高。
可以理解,由于深度学习模型每次处理的用户请求数据的数量有限,因此,为了提高用户请求响应速度,可以建立多个深度学习模型,即同一请求类型,由多个深度学习模型协同作用。举例而言,图2为本申请实施例提供的每秒查询率-深度学习模型数量关系示意图,参考图2,其包含英译汉深度学习模型和汉译英深度学习模型,且图2中分别示出了一个深度学习模型、两个深度学习模型以及三个深度学习模型对应的每秒查询率,其中,每秒查询率也可以理解为每秒处理用户请求数据的数量,深度学习模型的数量与GPU的数量相等,即1GPU表示使用一个深度学习模型,2GPU表示使用2个深度学习模型,3GPU表示使用三个深度学习模型。由图2可知,当深度学习模型的数量增加时,每秒查询率同步增加。可以理解,深度学习模型数量越多,对数据批处理实现设备的要求越高,因此,可以结合实际情况设置合理的深度学习模型数量。
一个实施例中,某个深度学习模型抓取用户请求数据时,若确定抓取到的用户请求数据达到了数量处理阈值,则确定满足批处理条件。若当前抓取到的用户请求数据未达到数量处理阈值,则确定不满足批处理条件,此时,深度学习模型可以继续在临时数据库中抓取用户请求数据。
方案二、所述批处理条件为当前所述深度学习模型未抓取到相匹配的用户请求数据及关联的数据标识。
一个实施例中,批处理条件为当前未抓取到用户请求数据。具体的,深度学习模型在空闲状态时,会持续访问临时数据库,以重复进行抓取动作。当深度学习模型在本次抓取过程中,未在临时数据库中抓取到新的用户请求数据时,可以认为当前暂未有新的用户请求数据,此时,为了保证处理速度,需要对已抓取的用户请求数据进行处理,因此,确定满足批处理条件。
可理解,方案一和方案二可以结合使用,即当深度学习模型重复抓取动作,以抓取临时数据库中的用户请求数据,若当前已抓取的用户请求数据的数量达到数量处理阈值,则确定满足批处理条件,若未达到数量处理阈值,则继续进行抓取,直到达到数量处理阈值或当前未抓取到新的用户请求数据为止。
典型的,满足批处理条件后,将当前已抓取的用户请求数据输入至深度学习模型进行处理。具体的,当前已抓取到的用户请求数据可以被整合成一个batch,在满足批处理条件后,将batch输入至深度学习模型中。之后,深度学习模型对用户请求数据进行批量处理,并输出对应的处理结果,其中,该处理结果可以认为是对服务请求的响应结果,其具体内容由请求类型确定。一个实施例中,处理结果的数量与batch中用户请求数据的条数相等,例如,batch中用户请求数据的条数为45条,那么,深度学习模型输出45个处理结果,且每个处理结果与用户请求数据一一对应。其中,处理结果可以通过数据标识与用户请求数据一一对应,例如,将数据标识和用户请求数据同时输入至深度学习模型,以使深度学习模型输出处理结果以及对应的数据标识,再如,预先设定用户请求数据在batch中的排列位置,之后,建立排列位置与数据标识的对应关系,之后,控制深度学习模型根据按照排列位置输出对应的处理结果,并将处理结果与数据标识一一对应,以使处理结果与用户请求数据一一对应。
步骤150、根据所述数据标识,将对应的处理结果关联写入所述临时数据库中。
具体的,将处理结果作为临时数据写入至临时数据库中,其中,将数据标识作为key,处理结果作为value写入临时数据库,通过已经设置的key在临时数据库中查找对应的value,之后,将处理结果写入至value中。可选的,在value中设置应答字段和询问字段,在询问字段中写入用户请求数据,在应答字段中写入处理结果,其中,应答字段和询问字段的格式实施例不做限定。还可选的,用处理结果替换value中的用户请求数据,以实现处理结果的写入。一个实施例中,若value中设置有状态字段,则在写入处理结果后,将状态字段设置为表示已处理的字段,以通过该方式记录用户请求数据被处理。
可以理解,由于用户请求数据和处理结果均是通过临时数据库被写入和抓取,因此,临时数据库可以认为是一个中间件,其可以将数据批处理实现设备从逻辑上分为前端和后端,其中,后端为深度学习网络部分,前端为与用户终端进行数据通信的部分。此时,本实施例的各步骤中,步骤130-步骤150可以认为是后端处理步骤,其余步骤为前端处理步骤。
步骤160、根据所述数据标识获取所述临时数据库中对应的处理结果,并将所述处理结果反馈至对应的用户侧。
示例性的,访问临时数据库中记录的临时数据,以获取其中记录的与用户请求数据对应的处理结果。其中,该过程可以由前端部分的处理。具体的,通过key中记录的数据标识,在临时数据库中抓取与用户请求数据对应的处理结果,其中,前端部分不断读取临时数据库中key对应的value,以确认用户请求数据是否被处理,并在确认被处理时获取到处理结果。可选的,确认用户请求数据是否被处理的方式为:若value中的应答字段负责写入处理结果,则读取临时数据库中key对应的value时,主要读取应答字段,以确定应答字段是否写入数据,若写入数据,则确定用户请求数据被处理,进而获取value中记录的处理结果,否则,确认用户请求数据未被处理。还可选的,确认是否可以获取到处理结果的方式还可以为:若value中设置有状态字段,则读取临时数据库中key对应的value时,主要读取状态字段,以确定状态字段当前记录的字段表示已处理状态还是未处理状态,若是已处理状态,则确定用户请求数据被处理,进而获取value中记录的处理结果,否则,确认用户请求数据未被处理。
进一步的,用户侧可以理解为用户使用的终端,即用户终端。具体的,获取处理结果后,根据数据标识确定对应的用户终端,并将处理结果反馈至用户终端,以使用户终端明确用户请求数据的处理结果。
上述,通过获取多条存在数据标识的用户请求数据,之后,将用户请求数据和数据标识关联写入临时数据库中,并指示深度学习模型读取临时数据库中相匹配的用户请求数据,并在用户请求数据满足批处理条件时,由深度学习模型批量处理读取的用户请求数据,以得到处理结果,之后,根据数据标识将处理结果关联写入临时数据库,并根据数据标识访问临时数据库,以获取处理结果,进而根据数据标识将处理结果反馈至对应的用户侧的技术手段,可以解决现有技术中利用深度学习进行数据处理时,存在抢占深度学习资源以及需要较长处理时间的技术问题,通过设立批处理条件,实现深度学习模型的批处理,缩短了处理时间,同时,各用户请求数据存放在临时数据库中,由深度学习模型进行抽取,也避免了抢占资源的情况。进一步的,通过设置临时数据库为中间件,还可以将数据批处理实现设备分为前端部分和后端部分,以使前端部分的处理过程和后端部分的处理过程互不干扰,即使某个部分出现了问题,仅需对该部分进行修复,不会影响其他部分的数据处理过程。进一步的,通过设置数据标识可以避免用户请求混乱的情况,尤其是设置临时数据库后,前端部分和后端部分可以通过数据标识准确确定用户请求数据和处理结果的对应关系,保证将处理结果准确的返回给对应的用户侧。
图3为本申请另一个实施例提供的一种数据批处理实现方法的流程图,本实施例是在上述实施例的基础上进行具体化。
具体的,本实施例中,临时数据库中包含多条临时数据,每条临时数据包括关键字部分和值部分,所述关键字部分中包括数据标识,所述值部分中包括所述数据标识对应的用户请求数据。具体的,临时数据库中每个key-value数据便可以认为是一条临时数据,每个临时数据包含关键字部分和值部分,其中,关键字部分可以理解为key,值部分可以理解为value。进一步的,关键字部分用于写入数据标识,值部分用于写入用户请求数据。一个实施例中,设定值部分至少包括询问字段,询问字段为用于写入用户请求数据的字段,该询问字段在value中的具体位置实施例不做限定。典型的,在写入时,将数据标识写入key中,将对应的用户请求数据写入询问字段。
进一步的,临时数据库为Redis数据库。其中,Redis(Remote DictionaryServer),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。由于Redis数据库支持存储的value类型更多,因此,属于高性能的key-value数据库,被得到广泛的使用。
在上述基础上,参考图2,本实施例提供的数据批处理实现方法具体包括:
步骤210、接收用户侧发送的多条原始请求数据。
其中,原始请求数据为数据批处理实现设备接收的、由用户侧发送的包含请求内容以及请求类型的数据,其具体格式可以根据实际情况设定,例如,请求类型为汉译英,此时,原始请求数据包含汉译英中待翻译的汉语字段。可选的,用户侧除了发送原始请求数据外,还可以同步发送用户侧的地址或ID,以使数据批处理实现设备明确发送原始请求数据的用户侧。多个用户侧可以同时发送原始请求数据,相应的,数据批处理实现设备同时接收多条原始请求数据。
步骤220、对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据,每条所述原始请求数据对应一条所述用户请求数据。
实施例中,对原始请求数据进行预处理,以将原始请求数据转换为更符合深度学习模型识别规则的数据,其中,预处理后的数据便可以理解为用户请求数据,此时,每条原始请求数据都会预处理得到对应的一条用户请求数据。进一步的,符合深度学习模型识别规则是指预处理后的用户请求数据有利于深度学习模型处理,可便于提高深度学习模型处理速度和准确度。其中,预处理规则可以根据请求类型以及深度学习模型确定,当获取原始请求数据时,获取其记录的请求类型以及请求内容,之后,根据请求类型确定对应的预处理规则,进而根据预处理规则对用户请求内容进行预处理,以得到用户请求数据,此时,该用户请求数据中仅包含请求内容。预处理规则的具体内容实施例不做限定,举例而言,请求类型为汉译英时,预处理规则具体为:对待翻译的汉语字段进行分词,其中,分词规则可以根据实际情况设定,如以逗号或句号等标点符号为分割符对待翻译的汉语字段进行分词,再如利用语义识别技术对待翻译的汉语字段进行语义识别,之后,基于语义识别结果确定待翻译的汉语字段中的词组,进而基于词组进行分词。分词完成后,便可以得到用户请求数据。可以理解,分词后的汉语字段更利于深度学习模型进行识别,例如,深度学习模型仅需对每个分词进行翻译,之后将翻译结果整合便可以得到处理结果。
由于当前会接收到多个原始请求数据,若依次对原始请求数据进行预处理,会耗费较长的处理时间,此时,为了节省处理时间,一个实施例中,设定建立多个用于预处理的进程,并通过多个进程对原始请求数据进行并行处理,据此,设定步骤220具体包括步骤221-步骤222:
步骤221、利用负载均衡服务将多条所述原始请求数据转发至多个预处理进程中,每个所述预处理进程接收至少一条所述原始请求数据。
具体的,负载均衡是指将处理的任务分摊到多个操作单元上进行执行,从而共同完成工作任务。通过负载均衡可以提高响应速度,解决拥塞的问题。一个实施例中,利用负载均衡服务将接收到的原始请求数据转发至多个预处理进程中,以提高预处理速度。其中,负载均衡服务的具体分类和部署可以根据实际情况设定,实施例中,设定负载均衡服务为Nginx,其中,Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,可以作为负载均衡服务。可理解,在数据批处理实现设备中集成Nginx,并由Nginx将原始请求数据转发至预处理进程中。进一步的,预先建立多个用于预处理的进程,进程数量可以根据实际情况设定,其中,同一请求类型,可以对应多个预处理进程,且各预处理进程采用的预处理规则相同。还可选的,每个预处理进程可以仅对应一个请求类型,此时,Nginx按照请求类型将原始请求数据转发至对应的多个预处理进程。或者是,每个预处理进程可以对应多个请求类型,此时,Nginx直接将原始请求数据转发至多个预处理进程,相应的,预处理进程中预先记录有不同的预处理规则,并根据原始请求数据的请求类型选择对应的预处理规则进行预处理。
具体的,Nginx在转发时,可以先确定各预处理进程当前的资源占用情况,对于资源占用少的预处理进程而言,可以向其分配较多的原始请求数据,对于资源占用多的预处理进程而言,可以向其分配较少的原始请求数据或不向其分配原始请求数据,以实现负载均衡。
一个实施例中,每个预处理进程同一时刻仅能处理一条原始请求数据。若Nginx将多条原始请求数据转发至同一预处理进程,则同一预处理进程会先处理一条原始请求数据,并在处理完毕后,再处理另一条原始请求数据,依次类推。即对于单个预处理进程而言,其进行串行处理。
步骤222、指示所述预处理进程对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据。
各预处理进程接收到原始请求数据后,对其进行预处理,以得到用户请求数据。此时,各预处理进程分别输出用户请求数据进行后续处理。
步骤230、为每条所述用户请求数据创建对应的数据标识。
具体的,为了避免用户请求数据混淆,实施例中,为用户请求数据建立数据标识。实施例中,设定所述数据标识包括深度学习模型名称、时间戳和随机整数。深度学习模型名称、时间戳和随机整数拼接组成数据标识。
其中,根据原始请求数据中的请求类型确定对应的深度学习模型名称,并写入数据标识中。对于任一请求类型而言,由于其对应的深度学习模型采用相同的深度学习模型名称,因此,为用户请求数据创建数据标识时,可以直接将该深度学习模型的名称写入数据标识中。通过在数据标识中写入深度学习模型名称,可以在后续过程中使深度学习模型根据对应的名称准确的查到相匹配的数据标识及对应的用户请求数据。进一步的,数据标识中还包含接收原始请求数据时的时间戳以及随机整数,其中,时间戳的获取方式以及随机整数的生成方式可以采用现有技术,实施例不做限定。
可选的,创建数据标识后,保存数据标识和对应用户请求数据的关联关系,以及数据标识和用户侧的对应关系。
步骤240、将所述用户请求数据和相应的数据标识关联写入临时数据库中,将所述临时数据库中的状态字段设置为第一字段,所述第一字段表示未处理状态,所述状态字段与当前写入的所述用户请求数据及相应的数据标识相对应。
具体的,写入时,在临时数据库中生成一条新的key-value临时数据,之后,将key设置为数据标识,将value中的询问字段设置为用户请求数据。一个实施例中,设定临时数据库中的临时数据还包括状态字段,即临时数据库中每条用户请求数据和关联的数据标识均有对应的状态字段。该状态字段优选位于value中。状态字段用于表示当前用户请求数据的处理状态,状态字段在value中的具体位置实施例不做限定。其中,处理状态包括未处理状态和已处理状态,未处理状态是指当前还未对用户请求数据进行响应,其对应为第一字段,已处理状态是指当前已经对用户请求数据进行响应,其对应为第二字段。第一字段和第二字段的具体内容可以根据实际情况设定,例如,第一字段设置为“False”,第二字段设置为“True”。
由于当前将用户请求数据和数据标识写入临时数据库时,该用户请求数据还未被响应,因此,将状态字段设置为第一字段。
步骤250、指示至少一个深度学习模型读取所述临时数据库中记录的数据标识。
具体的,各深度学习模型处于空闲状态时读取临时数据库中的各数据标识,即读取临时数据库中记录的各条key。以确认在数据标识中记录的深度学习模型名称是否为自身的名称。可选的,若一个请求类型对应多个深度学习模型,则在多个深度学习模型中由当前处于空闲状态的深度学习模型同时进行读取。
步骤260、若所述数据标识中记录的深度学习模型名称与当前进行读取的深度学习模型相符,则指示所述当前进行读取的深度学习模型读取所述临时数据库中与所述数据标识对应的状态字段。
具体的,若key(数据标识)中记录的深度学习模型名称与当前进行读取的深度学习模型自身的名称一致,则说明该key对应的value中记录的用户请求数据的请求类型与深度学习模型对应的请求类型相同。此时,深度学习模型可以继续读取临时数据库中key对应的状态字段,即深度学习模型读取key对应的value,且优先读取value中的状态字段。若key中记录的深度学习模型名称与当前进行读取的深度学习模型自身的名称不一致,则说明该key对应的value中记录的用户请求数据的请求类型与深度学习模型对应的请求类型不相同,此时,可以继续读取下一条临时数据的key。
步骤270、若所述状态字段为所述第一字段,则指示所述当前进行读取的深度学习模型抓取所述临时数据库中记录的所述数据标识以及对应的用户请求数据。
具体的,确定状态字段是否为第一字段,若为第一字段,则确定状态字段对应的用户请求数据还未被响应,即状态字段所在value中记录的用户请求数据还未被响应,此时,当前进行读取的深度学习模型获取value中位于询问字段的用户请求数据。若为第二字段,则确定状态字段对应的用户请求数据已经被响应,此时,当前进行读取的深度学习模型放弃获取数据并继续读取下一条临时数据中的key。
可选的,由于多个深度学习模型共用一个名称,因此,某一深度学习模型抓取用户请求数据后,在临时数据库中标识该用户请求数据或锁定该用户请求数据,以使其他相同名称的深度学习模型明确用户请求数据已经被抓取。其中,标识方式及锁定方式实施例不做限定。
步骤280、在抓取的用户请求数据满足批处理条件时,指示对应的深度学习模型批量处理所述用户请求数据,并获取处理结果,每条所述用户请求数据对应一条所述处理结果。
一个实施例中,批处理条件为抓取的用户请求数据的数量达到数量处理阈值或当前未抓取到用户请求数据。可选的,深度学习模型每抓取到一条用户请求数据后,确定当前已抓取的用户请求数据的数量是否达到数量处理阈值,若达到数量处理阈值,则确定满足批处理条件,并将当前已抓取的用户请求数据输入深度学习模型,由深度学习模型进行处理。若未达到数量处理阈值,则继续读取。若深度学习模型本次未抓取到用户请求数据,则确定满足批处理条件,并将当前已抓取的用户请求数据输入深度学习模型,由深度学习模型进行处理。
步骤290、根据所述数据标识,将对应的处理结果关联写入所述临时数据库中,将所述临时数据库中与所述数据标识对应的状态字段设置为第二字段,所述第二字段表示已处理状态。
具体的,深度学习模型输出处理结果后,再次读取临时数据库中各临时数据的key,以查找与处理结果对应的数据标识相同的key,并获取查找到的key对应的value。其中,该value与处理结果为对应关系。
之后,将处理结果写入查找到的value中。一个实施例中,设定值部分还包括应答字段。该应答字段用于写入处理结果,该应答字段的位置实施例不做限定。当根据查找到的key获取对应的value后,将处理结果写入value中的应答字段。
示例性的,写入处理结果后,将对应的状态字段设置为第二字段,以表示当前已经完成对用户请求数据的响应。
步骤2100、根据所述数据标识,指示预处理进程在所述临时数据库中查找与所述数据标识相对应的状态字段,所述预处理进程用于预处理原始请求数据以得到与所述数据标识对应的用户请求数据。
具体的,将用户请求数据写入至Redis后,该条用户请求数据对应的预处理进程便会根据数据标识持续读取Redis中该条用户请求数据对应的临时数据,其中,在读取时,优选读取状态字段。需说明,预处理进程读取临时数据的过程中,不会同时对其他的原始请求数据进行预处理。
步骤2110、若所述状态字段为所述第二字段,则指示所述预处理进程获取所述临时数据库中与所述数据标识相关联的处理结果,并将所述处理结果反馈至对应的用户侧。
示例性的,若当前被读取的状态字段为第二字段,则前端的预处理进程确定用户请求数据已经被响应,并获取value中记录的处理结果(即获取value中应答字段记录的处理结果)。之后,前端的预处理进程确定该value对应的key,进而根据key中的数据标识确定对应的用户侧,之后,将处理结果反馈至对应的用户侧中,以使用户侧明确处理结果。或者是,前端的预处理进程获取value中记录的处理结果后,根据预先记录的用户侧的地址或ID将处理结果反馈至对应的用户侧中,以使用户侧明确处理结果。若当前被读取的状态字段为第一字段,则前端的预处理进程继续读取该临时数据中的状态字段,直到状态字段为第二字段为止。
可选的,将处理结果反馈至对应的用户侧后,前端的预处理进程确定原始请求数据处理完毕。之后,前端的预处理进程可以处理下一条原始请求数据。
可选的,在获取处理结果后,临时数据库删除该条临时数据,以保证临时数据库存储数据的合理性。
下面对本实施例提供的技术方案进行示例性描述,本示例采用的数据处理逻辑架构如图4所示,参考图4,数据批处理实现设备的逻辑架构由Nignx、预处理进程、Redis数据库和深度学习模型组成。具体的,接收多个原始请求数据后,通过Nignx将原始请求数据转发至多个预处理进程,每条原始请求数据对应一个预处理进程。之后,由预处理进程对原始请求数据进行预处理,得到用户请求数据,并创建数据标识,之后,将数据标识和用户请求数据写入Redis数据库,之后,各深度学习模型从Redis数据库中抓取匹配的用户请求数据,并在用户请求数据满足批处理条件时,进行批量处理,并得到处理结果。之后,将处理结果写入Redis数据库,并由预处理进程读取Redis数据库以获取对应的处理结果,之后,将处理结果返回至对应的用户侧。
其中,某条用户请求数据的具体处理过程如下:设定预处理后得到的某条用户请求数据为“i want to go to school”,其对应的请求类型为英译汉。该用户请求数据对应的数据标识为“enzh_1499825125497_178982”,其中,“enzh”为深度学习模型名称,“499825125497”为时间戳,“178982”为随机数。进一步的,Redis的value由Query字段(询问字段)、Status字段(状态字段)和Answer字段(应答字段)组成。
具体的,将“enzh_1499825125497_178982”写入Redis中一条临时数据的key中,同时,在对应的Query字段中写入“i want to go to school”,将Status字段设置为“False”(第一字段),设置Answer字段为空。之后,负责英译汉的深度学习模型读取Redis中的key,在读取到“enzh_1499825125497_178982”时,确定名称与自身模型的名称一致,并确定Status字段设置为“False”,之后,深度学习模型获取Query字段中的“i want to go toschool”。将当前获取的“i want to go to school”和其他用户请求数据整合成batch,当batch满足批处理条件时,将batch“喂”给深度学习模型进行英译汉处理,之后,获取深度学习模型的处理结果“我想去上学”。之后,读取Redis,以查询写入“enzh_1499825125497_178982”的key,之后,修改对应的Answer字段为“我想去上学”,并将Status字段设置为“True”(第二字段)。之后,预处理进程根据“enzh_1499825125497_178982”在Redis中实时进行读取,并在Status字段为“True”时获取对应的处理结果“我想去上学”,并将“我想去上学”返回给用户侧,至此,一条英译汉的用户请求处理完成。
上述,通过对接收到的原始请求数据进行预处理,可以得到符合深度学习模型识别规则的用户请求数据,便于深度学习模型对用户请求的处理,进而提高处理速度。同时,通过创建多个预处理进程,并利用负载均衡服务将多个原始请求数据转发至多个预处理进程中,可以实现原始请求数据的并行处理,提高了预处理速度,且合理利用进程资源。进一步的,将临时数据库设置为中间件,可以将数据批处理实现设备分为前端部分和后端部分,以使前端部分的处理过程和后端部分的处理过程互不干扰,且未被处理的用户请求数据存放在临时数据库中,可以避免深度学习资源被抢占的情况。同时,结合数据标识,可以在前端部分及后端部分相结合批处理用户请求数据时,避免用户请求数据混淆。进一步的,通过设置深度学习模型,不仅可以准确对用户请求进行响应,还可以实现多用户请求数据的批处理,提高了处理速度。
图5为本申请一个实施例提供的一种数据批处理实现装置的结构示意图,参考图5,该数据批处理实现装置包括:数据获取模块301、数据写入模块302、数据抓取模块303、数据处理模块304、结果写入模块305、结果返回模块306。
其中,数据获取模块301,用于获取多条用户请求数据,每条所述用户请求数据对应一个数据标识;数据写入模块302,用于将所述用户请求数据和相应的数据标识关联写入临时数据库中;数据抓取模块303,用于指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识,所述深度学习模型可处理的请求类型与所述相匹配的用户请求数据对应的请求类型相同;数据处理模块304,用于在抓取的用户请求数据满足批处理条件时,指示对应的深度学习模型批量处理所述用户请求数据,并获取处理结果,每条所述用户请求数据对应一条所述处理结果;结果写入模块305,用于根据所述数据标识,将对应的处理结果关联写入所述临时数据库中;结果返回模块306,用于根据所述数据标识获取所述临时数据库中对应的处理结果,并将所述处理结果反馈至对应的用户侧。
上述,通过获取多条存在数据标识的用户请求数据,之后,将用户请求数据和数据标识关联写入临时数据库中,并指示深度学习模型读取临时数据库中相匹配的用户请求数据,并在用户请求数据满足批处理条件时,由深度学习模型批量处理读取的用户请求数据,以得到处理结果,之后,根据数据标识将处理结果关联写入临时数据库,并根据数据标识访问临时数据库,以获取处理结果,进而根据数据标识将处理结果反馈至对应的用户侧的技术手段,可以解决现有技术中利用深度学习进行数据处理时,存在抢占深度学习资源以及需要较长处理时间的技术问题,通过设立批处理条件,实现深度学习模型的批处理,缩短了处理时间,同时,各用户请求数据存放在临时数据库中,由深度学习模型进行抽取,也避免了抢占资源的情况。进一步的,通过设置临时数据库为中间件,还可以将数据批处理实现设备分为前端部分和后端部分,以使前端部分的处理过程和后端部分的处理过程互不干扰,即使某个部分出现了问题,仅需对该部分进行修复,不会影响其他部分的数据处理过程。进一步的,通过设置数据标识可以避免用户请求混乱的情况,尤其是设置临时数据库后,前端部分和后端部分可以通过数据标识准确确定用户请求数据和处理结果的对应关系,保证将处理结果准确的返回给对应的用户侧。
在上述实施例的基础上,所述数据获取模块301包括:数据接收单元,用于接收用户侧发送的多条原始请求数据;预处理单元,用于对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据,每条所述原始请求数据对应一条所述用户请求数据;标识创建单元,用于为每条所述用户请求数据创建对应的数据标识。
在上述实施例的基础上,所述预处理单元包括:数据转发子单元,用于利用负载均衡服务将多条所述原始请求数据转发至多个预处理进程中,每个所述预处理进程接收至少一条所述原始请求数据;进程处理子单元,用于指示所述预处理进程对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据。
在上述实施例的基础上,所述负载均衡服务为Nginx。
在上述实施例的基础上,所述数据写入模块302在用于将所述用户请求数据和相应的数据标识关联写入临时数据库中时,还用于将所述临时数据库中的状态字段设置为第一字段,所述第一字段表示未处理状态,所述状态字段与当前写入的所述用户请求数据及相应的数据标识相对应。
在上述实施例的基础上,所述数据标识包括深度学习模型名称、时间戳和随机整数。
在上述实施例的基础上,所述数据抓取模块303包括:关键字读取单元,用于指示至少一个深度学习模型读取所述临时数据库中记录的数据标识;值读取单元,用于若所述数据标识中记录的深度学习模型名称与当前进行读取的深度学习模型相符,则指示所述当前进行读取的深度学习模型读取所述临时数据库中与所述数据标识对应的状态字段;请求抓取单元,用于若所述状态字段为所述第一字段,则指示所述当前进行读取的深度学习模型抓取所述临时数据库中记录的所述数据标识以及对应的用户请求数据。
在上述实施例的基础上,所述结果写入模块305在用于根据所述数据标识,将对应的处理结果关联写入所述临时数据库中时,还用将所述临时数据库中与所述数据标识对应的状态字段设置为第二字段,所述第二字段表示已处理状态。
在上述实施例的基础上,所述结果返回模块306包括:第二值查找单元,用于根据所述数据标识,指示预处理进程在所述临时数据库中查找与所述数据标识相对应的状态字段,所述预处理进程用于预处理原始请求数据以得到与所述数据标识对应的用户请求数据;结果获取单元,用于若所述状态字段为所述第二字段,则指示所述预处理进程获取所述临时数据库中与所述数据标识相关联的处理结果,将所述处理结果反馈至对应的用户侧。
在上述实施例的基础上,所述批处理条件为抓取的用户请求数据的数量达到对应深度学习模型的数量处理阈值。
在上述实施例的基础上,所述批处理条件为当前所述深度学习模型未抓取到相匹配的用户请求数据及关联的数据标识。
在上述实施例的基础上,所述临时数据库包含多条临时数据,每条临时数据包括关键字部分和值部分,所述关键字部分中包括数据标识,所述值部分中包括所述数据标识对应的用户请求数据。
在上述实施例的基础上,所述临时数据库为Redis数据库。
上述提供的数据批处理实现装置可用于执行上述任意实施例提供的数据批处理实现方法,具备相应的功能和有益效果。
值得注意的是,上述数据批处理实现装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
图6为本申请一个实施例提供的一种数据批处理实现设备的结构示意图。如图6所示,该数据批处理实现设备包括处理器40、存储器41、输入装置42、输出装置43和通信装置44;数据批处理实现设备中处理器40的数量可以是一个或多个,图6中以一个处理器40为例;数据批处理实现设备中的处理器40、存储器41、输入装置42、输出装置43和通信装置44可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的数据批处理实现方法对应的程序指令/模块(例如,数据批处理实现装置中的数据获取模块301、数据写入模块302、数据抓取模块303、数据处理模块304、结果写入模块305和结果返回模块306)。处理器40通过运行存储在存储器741中的软件程序、指令以及模块,从而执行数据批处理实现设备的各种功能应用以及数据处理,即实现上述的数据批处理实现方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至数据批处理实现设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与数据批处理实现设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备、扬声器等音频播放设备。通信装置44可以与用户终端进行数据通信。
上述数据批处理实现设备可以用于执行本申请任意实施例提供的数据批处理实现方法,具备相应的功能和有益效果。
此外,本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请任意实施例所提供的数据批处理实现方法中的相关操作,且具备相应的功能和有益效果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。
因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本发申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (16)
1.一种数据批处理实现方法,其特征在于,包括:
获取多条用户请求数据,每条所述用户请求数据对应一个数据标识;
将所述用户请求数据和相应的数据标识关联写入临时数据库中;
指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识,所述深度学习模型可处理的请求类型与所述相匹配的用户请求数据对应的请求类型相同;
在抓取的用户请求数据满足批处理条件时,指示对应的深度学习模型批量处理所述用户请求数据,并获取处理结果,每条所述用户请求数据对应一条所述处理结果;
根据所述数据标识,将对应的处理结果关联写入所述临时数据库中;
根据所述数据标识获取所述临时数据库中对应的处理结果,并将所述处理结果反馈至对应的用户侧。
2.根据权利要求1所述的数据批处理实现方法,其特征在于,所述获取多条用户请求数据包括:
接收用户侧发送的多条原始请求数据;
对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据,每条所述原始请求数据对应一条所述用户请求数据;
为每条所述用户请求数据创建对应的数据标识。
3.根据权利要求2所述的数据批处理实现方法,其特征在于,所述对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据包括:
利用负载均衡服务将多条所述原始请求数据转发至多个预处理进程中,每个所述预处理进程接收至少一条所述原始请求数据;
指示所述预处理进程对所述原始请求数据进行预处理,得到符合深度学习模型识别规则的用户请求数据。
4.根据权利要求3所述的数据批处理实现方法,其特征在于,所述负载均衡服务为Nginx。
5.根据权利要求1所述的数据批处理实现方法,其特征在于,所述将所述用户请求数据和相应的数据标识关联写入临时数据库中,还包括:
将所述临时数据库中的状态字段设置为第一字段,所述第一字段表示未处理状态,所述状态字段与当前写入的所述用户请求数据及相应的数据标识相对应。
6.根据权利要求5所述的数据批处理实现方法,其特征在于,所述数据标识包括深度学习模型名称、时间戳和随机整数。
7.根据权利要求6所述的数据批处理实现方法,其特征在于,所述指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识包括:
指示至少一个深度学习模型读取所述临时数据库中记录的数据标识;
若所述数据标识中记录的深度学习模型名称与当前进行读取的深度学习模型相符,则指示所述当前进行读取的深度学习模型读取所述临时数据库中与所述数据标识对应的状态字段;
若所述状态字段为所述第一字段,则指示所述当前进行读取的深度学习模型抓取所述临时数据库中记录的所述数据标识以及对应的用户请求数据。
8.根据权利要求5所述的数据批处理实现方法,其特征在于,所述根据所述数据标识,将对应的处理结果关联写入所述临时数据库中时,还包括:
将所述临时数据库中与所述数据标识对应的状态字段设置为第二字段,所述第二字段表示已处理状态。
9.根据权利要求8所述的数据批处理实现方法,其特征在于,所述根据所述数据标识获取所述临时数据库中对应的处理结果包括:
根据所述数据标识,指示预处理进程在所述临时数据库中查找与所述数据标识相对应的状态字段,所述预处理进程用于预处理原始请求数据以得到与所述数据标识对应的用户请求数据;
若所述状态字段为所述第二字段,则指示所述预处理进程获取所述临时数据库中与所述数据标识相关联的处理结果。
10.根据权利要求1所述的数据批处理实现方法,其特征在于,所述批处理条件为抓取的用户请求数据的数量达到对应深度学习模型的数量处理阈值。
11.根据权利要求1所述的数据批处理实现方法,其特征在于,所述批处理条件为当前所述深度学习模型未抓取到相匹配的用户请求数据及关联的数据标识。
12.根据权利要求1所述的数据批处理实现方法,其特征在于,所述临时数据库包含多条临时数据,每条临时数据包括关键字部分和值部分,所述关键字部分中包括数据标识,所述值部分中包括所述数据标识对应的用户请求数据。
13.根据权利要求1或12所述的数据批处理实现方法,其特征在于,所述临时数据库为Redis数据库。
14.一种数据批处理实现装置,其特征在于,包括:
数据获取模块,用于获取多条用户请求数据,每条所述用户请求数据对应一个数据标识;
数据写入模块,用于将所述用户请求数据和相应的数据标识关联写入临时数据库中;
数据抓取模块,用于指示至少一个深度学习模型在所述临时数据库中抓取相匹配的用户请求数据及关联的数据标识,所述深度学习模型可处理的请求类型与所述相匹配的用户请求数据对应的请求类型相同;
数据处理模块,用于在抓取的用户请求数据满足批处理条件时,指示对应的深度学习模型批量处理所述用户请求数据,并获取处理结果,每条所述用户请求数据对应一条所述处理结果;
结果写入模块,用于根据所述数据标识,将对应的处理结果关联写入所述临时数据库中;
结果返回模块,用于根据所述数据标识获取所述临时数据库中对应的处理结果,并将所述处理结果反馈至对应的用户侧。
15.一种数据批处理实现设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的数据批处理实现方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-13中任一所述的数据批处理实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010763614.0A CN111897828B (zh) | 2020-07-31 | 2020-07-31 | 数据批处理实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010763614.0A CN111897828B (zh) | 2020-07-31 | 2020-07-31 | 数据批处理实现方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897828A true CN111897828A (zh) | 2020-11-06 |
CN111897828B CN111897828B (zh) | 2024-07-19 |
Family
ID=73183192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010763614.0A Active CN111897828B (zh) | 2020-07-31 | 2020-07-31 | 数据批处理实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897828B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127735A (zh) * | 2021-04-02 | 2021-07-16 | 北京知藏云道科技有限公司 | 车货匹配方法、装置、计算机设备和介质 |
CN113364637A (zh) * | 2021-08-09 | 2021-09-07 | 中建电子商务有限责任公司 | 一种基于批量打包调度的网络通信优化方法及系统 |
WO2024108592A1 (zh) * | 2022-11-25 | 2024-05-30 | 深圳先进技术研究院 | 一种组学数据处理方法、装置及计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829790A (zh) * | 2018-06-01 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 一种数据批处理方法、装置及系统 |
CN109218024A (zh) * | 2017-07-04 | 2019-01-15 | 百度在线网络技术(北京)有限公司 | 用于控制权限的方法和装置 |
CN109522742A (zh) * | 2018-10-26 | 2019-03-26 | 贵州斯曼特信息技术开发有限责任公司 | 一种计算机大数据的批处理方法 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和系统 |
CN111200606A (zh) * | 2019-12-31 | 2020-05-26 | 深圳市优必选科技股份有限公司 | 深度学习模型任务处理方法、系统、服务器及存储介质 |
CN111221821A (zh) * | 2019-12-31 | 2020-06-02 | 武汉中海庭数据技术有限公司 | 一种ai模型迭代更新方法、电子设备及存储介质 |
CN111259029A (zh) * | 2020-01-15 | 2020-06-09 | 平安证券股份有限公司 | 数据读写批量处理方法、服务器及计算机可读存储介质 |
-
2020
- 2020-07-31 CN CN202010763614.0A patent/CN111897828B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109218024A (zh) * | 2017-07-04 | 2019-01-15 | 百度在线网络技术(北京)有限公司 | 用于控制权限的方法和装置 |
CN108829790A (zh) * | 2018-06-01 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 一种数据批处理方法、装置及系统 |
CN109522742A (zh) * | 2018-10-26 | 2019-03-26 | 贵州斯曼特信息技术开发有限责任公司 | 一种计算机大数据的批处理方法 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和系统 |
CN111200606A (zh) * | 2019-12-31 | 2020-05-26 | 深圳市优必选科技股份有限公司 | 深度学习模型任务处理方法、系统、服务器及存储介质 |
CN111221821A (zh) * | 2019-12-31 | 2020-06-02 | 武汉中海庭数据技术有限公司 | 一种ai模型迭代更新方法、电子设备及存储介质 |
CN111259029A (zh) * | 2020-01-15 | 2020-06-09 | 平安证券股份有限公司 | 数据读写批量处理方法、服务器及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127735A (zh) * | 2021-04-02 | 2021-07-16 | 北京知藏云道科技有限公司 | 车货匹配方法、装置、计算机设备和介质 |
CN113364637A (zh) * | 2021-08-09 | 2021-09-07 | 中建电子商务有限责任公司 | 一种基于批量打包调度的网络通信优化方法及系统 |
WO2024108592A1 (zh) * | 2022-11-25 | 2024-05-30 | 深圳先进技术研究院 | 一种组学数据处理方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111897828B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN111897828B (zh) | 数据批处理实现方法、装置、设备及存储介质 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
US20230259509A1 (en) | Data association query method and apparatus, device, and storage medium | |
CN110705235B (zh) | 业务办理的信息录入方法、装置、存储介质及电子设备 | |
CN111144132B (zh) | 一种语义识别方法及装置 | |
CN109299152B (zh) | 一种实时数据流的后缀数组索引方法及装置 | |
CN111435367B (zh) | 知识图谱的构建方法、系统、设备及存储介质 | |
CN110826342A (zh) | 一种实现模型管理的方法、装置、计算机存储介质及终端 | |
CN114338413A (zh) | 网络中设备的拓扑关系的确定方法、装置以及存储介质 | |
CN112597348A (zh) | 一种大数据存储优化的方法及装置 | |
CN114185873A (zh) | 数据迁移方法、装置、服务器及存储介质 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN113760242A (zh) | 一种数据处理方法、装置、服务器和介质 | |
CN110019295B (zh) | 数据库检索方法、装置、系统以及存储介质 | |
CN111651531B (zh) | 数据导入方法、装置、设备及计算机存储介质 | |
CN114547206A (zh) | 一种数据同步方法和数据同步系统 | |
CN113868249A (zh) | 一种数据存储方法、装置、计算机设备以及存储介质 | |
CN111552740A (zh) | 数据处理方法及装置 | |
CN112749189A (zh) | 数据查询方法及装置 | |
CN116976338A (zh) | 敏感词识别方法、装置、存储介质及电子设备 | |
CN112579855B (zh) | 微信文章的特征码提取方法及装置 | |
CN115238028A (zh) | 一种车辆用用户文本数据关键词匹配方法及装置 | |
CN116414771A (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 |