CN113761416A - 一种请求处理方法、装置、服务器和存储介质 - Google Patents

一种请求处理方法、装置、服务器和存储介质 Download PDF

Info

Publication number
CN113761416A
CN113761416A CN202011500882.XA CN202011500882A CN113761416A CN 113761416 A CN113761416 A CN 113761416A CN 202011500882 A CN202011500882 A CN 202011500882A CN 113761416 A CN113761416 A CN 113761416A
Authority
CN
China
Prior art keywords
request
target
task
matrix
processing
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
Application number
CN202011500882.XA
Other languages
English (en)
Inventor
罗辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202011500882.XA priority Critical patent/CN113761416A/zh
Publication of CN113761416A publication Critical patent/CN113761416A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种请求处理方法、装置、服务器和存储介质,该方法包括:从任务队列中周期性地获取批量的目标请求任务,任务队列用于缓存接收到的每个用户请求所对应的请求任务;对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得神经网络模型输出的目标结果矩阵;对目标结果矩阵进行分配处理,确定每个目标请求任务对应的请求处理结果。通过本发明实施例的技术方案,可以提高请求处理效率,并且无需额外部署机器,降低了机器使用成本。

Description

一种请求处理方法、装置、服务器和存储介质
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种请求处理方法、装置、服务器和存储介质。
背景技术
随着互联网技术的快速发展,各种神经网络模型被研发应用到各个领域中,比如服务器可以利用神经网络模型对用户请求进行处理,以便快速准确地响应用户请求。
目前,现有的神经网络模型是对服务器接收到的每个用户请求进行逐个处理。而在高并发请求的场景下,往往需要部署更多的机器来支持高并发请求的处理,从而提高请求处理效率。
然而,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
在高并发请求的场景下,通过部署更多的机器来提高请求处理效率的方式,会大大提高机器使用成本。
发明内容
本发明提供一种请求处理方法、装置、服务器和存储介质,以提高请求处理效率,并且无需额外部署机器,降低了机器使用成本。
第一方面,本发明实施例提供了一种请求处理方法,包括:
从任务队列中周期性地获取批量的目标请求任务,所述任务队列用于缓存接收到的每个用户请求所对应的请求任务;
对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;
将所述目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得所述神经网络模型输出的目标结果矩阵;
对所述目标结果矩阵进行分配处理,确定每个所述目标请求任务对应的请求处理结果。
第二方面,本发明实施例还提供了一种请求处理装置,包括:
任务获取模块,用于从任务队列中周期性地获取批量的目标请求任务,所述任务队列用于缓存接收到的每个用户请求所对应的请求任务;
任务合并模块,用于对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;
结果获取模块,用于将所述目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得所述神经网络模型输出的目标结果矩阵;
结果分配模块,用于对所述目标结果矩阵进行分配处理,确定每个所述目标请求任务对应的请求处理结果。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的请求处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的请求处理方法。
上述发明中的实施例具有如下优点或有益效果:
通过从任务队列中周期性地获取批量的目标请求任务,并对每个周期获取的各个目标请求任务对应的目标请求向量进行合并处理,确定目标请求矩阵,从而可以将每次获取的多个用户请求合并为一个批量请求。通过将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,并对神经网络模型输出的目标结果矩阵进行分配处理,确定出每个目标请求任务对应的请求处理结果,从而使得神经网络模型可以一次性地处理多个用户请求,实现了用户请求的统一批量处理,大大提高了请求处理效率,并且无需额外部署机器,降低了机器使用成本。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1为本发明实施例一所提供的一种请求处理方法的流程示意图;
图2为本发明实施例一所涉及的一种请求处理过程的示例;
图3为本发明实施例二所提供的一种请求处理方法的流程示意图;
图4为本发明实施例三所提供的一种请求处理装置的结构示意图;
图5为本发明实施例四所提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种请求处理方法的流程示意图,本实施例可适用于对接收到的用户请求进行批量处理的情况,尤其可以应用于在生产环境高并发请求的场景下对用户请求进行批量处理的情况。该方法可以由设置在服务器中的请求处理装置来执行,该装置可以由硬件和/或软件来实现,该方法具体包括如下步骤:
S110、从任务队列中周期性地获取批量的目标请求任务,任务队列用于缓存接收到的每个用户请求所对应的请求任务。
其中,用户请求可以是指客户端发送的,用于利用神经网络模型处理的请求。请求任务可以是基于用户请求生成的,用于处理用户请求的任务。每个用户请求可以对应一个请求任务。任务队列可以是预设设置的一个全局共享的缓存空间,用于缓存各个待处理的用户请求所对应的请求任务。例如,任务队列可以是但不限于blocking quene阻塞队列等线程安全的队列。目标请求任务可以是指每个周期从任务队列中所取出的请求任务。本实施例中的周期可以是指每次进行任务批量处理的时间间隔。例如,周期可以是但不限于10s,即每隔10s从任务队列中批量地获取待处理的各个目标请求任务。
具体地,可以对当前接收到的每个用户请求进行任务封装处理,生成每个用户请求对应的请求任务,并可以基于用户请求接收次序,依次将生成的每个请求任务缓存至任务队列中。图2给出了一种请求处理过程的示例。如图2所示,可以开启一个周期性运行的独立线程,通过周期运行该独立线程,可以基于预设获取方式,从线程安全的任务队列中周期性地取出批量的目标请求任务,并对每个周期所取出的各个目标请求任务进行批量处理。
示例性地,S110可以包括:从任务队列中周期性地获取预设数量的目标请求任务;或者,将任务队列中处于预设时间窗口内的各个请求任务确定为每个周期取出的目标请求任务。
其中,预设数量可以是基于业务需求预先设置的每个周期所获取的目标请求任务的个数。预设数量可以等于或者小于任务队列的缓存阈值,即任务队列可以存储的请求任务的最大数量。预设时间窗口可以是基于业务需求预先设置的具有相同时间间隔的时间段。例如,可以将时间轴划分为多个预设时间窗口,每个预设时间窗口包括起始时间点和结束时间点,以便获取任务队列中处于预设时间窗口的各个目标请求任务。
具体地,本实施例可以通过设置每个周期所取出的请求任务的数量的方式,基于任务队列中的各个请求任务的排列顺序,依次从任务队列中取出预设数量的目标请求任务,以便每次可以对固定数量的目标请求任务进行批量处理。也可以通过设置预设时间窗口的方式,基于任务队列中的每个请求任务的请求接收时刻,从任务队列中取出请求接收时刻处于预设时间窗口内的各个请求任务作为目标请求任务,以便对相同时间窗口内的目标请求任务进行批量处理,从而可以满足用户个性化需求。
S120、对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵。
其中,目标请求向量可以是指目标请求任务中的用户请求内容所对应的神经网络模型可处理的向量。例如,当用户请求内容为一句自然语言文本时,该目标请求任务对应的目标请求向量可以为相应的文本向量。目标请求矩阵可以是由每个周期获取的各个目标请求向量所组成的矩阵。
具体地,如图2所示,本实施例可以预先确定出每个用户请求对应的请求向量,并基于该请求向量生成相应的请求任务,从而在进行向量合并处理时,可以直接从各个目标请求任务中获取相应的各个目标请求向量。通过将各个目标请求向量进行合并处理,转化为一个目标请求矩阵。本实施例也可以直接基于用户请求生成相应的请求任务,从而在进行向量合并处理时,基于每个目标请求任务中的目标用户请求确定出相应的目标请求向量,再对各个目标请求向量进行合并处理,获得一个目标请求矩阵。本实施例通过将各个目标请求任务对应的各个目标请求向量进行合并处理,转换为一个目标请求矩阵,从而可以将每次获得的多个用户请求合并为一个批量请求。
S130、将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得神经网络模型输出的目标结果矩阵。
其中,神经网络模型可以是指任意一种训练好的深度学习预测模型,以便预测出用户请求的请求内容所属于的分类结果。例如,神经网络模型可以是文本分类模型等。神经网络模型可以是通过tensorflow平台训练得到的具备预测功能的模型。目标结果矩阵可以是指由各个目标请求任务对应的请求结果向量所组成的矩阵。
示例性地,在利用神经网络模型处理单个用户请求时,可以将单个用户请求对应的一个请求向量输入至神经网络模型中,利用神经网络模型的每个中间层中训练好的网络参数对该请求向量进行处理,从而获得神经网络模型输出的结果向量。可见,神经网络模型处理单个用户请求的过程可以为一个矩阵相乘的运算过程,即:
Figure BDA0002843561440000071
其中,[x1 x2 …… xn]为输入至神经网络模型的单个用户请求对应的请求向量;
Figure BDA0002843561440000072
为神经网络模型的各个中间层的网络参数所组成的权重参数矩阵;[y1 y2…… yc]为神经网络模型输出的结果向量,其可以用于表征最终预测的结果,即各种分类的可能性。
具体地,本实施例通过将每次获取的各个目标请求任务对应的目标请求向量合并为一个目标请求矩阵,从而可以将多个用户请求合并为一个批量请求。如图2所示,通过将该批量请求对应的目标请求矩阵输入至神经网络模型中进行矩阵并行处理,即神经网络模型可以利用权重参数矩阵,对每个目标用户请求对应的目标请求向量进行并行运算,从而可以获得由每个目标用户请求对应的目标结果向量所组成的目标结果矩阵,并将该目标结果矩阵进行输出,从而使得神经网络模型可以一次性处理多个用户请求,无需逐个处理每个用户请求,提高了请求处理效率,并且无需部署额外的机器设备,降低了机器使用成本。
S140、对目标结果矩阵进行分配处理,确定每个目标请求任务对应的请求处理结果。
其中,目标请求任务对应的请求处理结果可以是指利用神经网络模型预测出的请求内容所对应的分类结果。
具体地,如图2所示,可以基于各个目标请求向量的合并顺序,对各个目标请求任务对应的目标结果矩阵进行拆分,获得每个目标请求任务对应的目标结果向量,并可以对目标结果向量进行后处理,获得每个目标请求任务对应的预测分类结果,即请求处理结果,并将该请求处理结果返回至相应的客户端中,从而完成用户请求的批量响应处理。例如,当用户请求的请求内容为:“我快递怎么还没到啊?”时,对神经网络模型输出的目标结果矩阵进行分配,获得该用户请求对应的目标结果向量,即[0.92779,0.02840,…,0.01727],通过后处理可以获得每个分类结果对应的概率值为:{“物流查询”:0.92,“退换货”:0.02840,……,“售后咨询”:0.01727},从而可以获得预测分类结果为:“物流查询”,即该请求内容是用于请求物流查询的,此时可以将物流查询结果作为该用户请求对应的请求处理结果返回至相应的客户端中。
本实施例的技术方案,通过从任务队列中周期性地获取批量的目标请求任务,并对每个周期获取的各个目标请求任务对应的目标请求向量进行合并处理,确定目标请求矩阵,从而可以将每次获取的多个用户请求合并为一个批量请求。并通过将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,并对神经网络模型输出的目标结果矩阵进行分配处理,确定出每个目标请求任务对应的请求处理结果,从而使得神经网络模型可以一次性地处理多个用户请求,实现了用户请求的统一批量处理,大大提高了请求处理效率,并且无需额外部署机器,降低了机器使用成本。
在上述技术方案的基础上,在S110前,还可以包括:对接收到的每个用户请求的请求内容进行向量化,确定每个用户请求对应的请求向量;根据请求向量,确定每个用户请求对应的请求任务,并将每个请求任务添加至任务队列中。
具体地,本实施可以在生成包含请求向量的请求任务后再添加至任务队列中,以便后续可以直接从获得的目标请求任务中获得目标请求向量,提高向量合并处理效率,进一步提高请求处理效率。例如,如图2所示,在获取每个用户请求后,可以对每个用户请求进行预处理和向量化,获得每个用户请求对应的请求向量。例如,若用户请求的请求内容为一句自然语言文本,如:“我快递怎么还没到啊?”,则可以通过预处理,基于分词词典对该请求内容进行文本分词,获得的分词结果为:“我”、“快递”、“怎么”、“还”、“没”、“到”,并可以基于语言处理模型(比如连续单词包(Continuous Bag-of-Word,CBOW)或Skip-Gram等模型),根据每个词所对应的词向量进行处理,获得该用户请求对应的文本向量,即请求向量,比如[47,53,25,30,52,2,…]。可以通过对每个用户请求对应的请求向量进行封装处理,获得每个用户请求对应的请求任务,即每个请求任务中包含相应的请求向量,并可以基于用户请求接收时间的先后顺序,依次将每个请求任务添加至任务队列中。
示例性地,根据请求向量,确定每个用户请求对应的请求任务,可以包括:对每个用户请求分配一个结果存储变量;根据请求向量和结果存储变量,确定每个用户请求对应的请求任务;相应地,在S140之后,还可以包括:将每个目标请求任务对应的请求处理结果添加至相应的目标结果存储变量中。
其中,结果存储变量可以是用于存储用户请求对应的请求处理结果的对象。
具体地,可以利用java中的Future相关类的方式,对接收到的每个用户请求分配一个相应的结果存储变量,并对用户请求对应的请求向量和结果存储变量进行封装,使得封装后获得的请求任务可以包括请求向量与结果存储变量。在获得目标请求任务对应的请求处理结果之前,相应的目标结果存储变量的存储值为空值。周期运行的独立线程在得到目标请求任务对应的请求处理结果之后,可以将请求处理结果存储至相应的目标结果存储变量中,从而可以异步地对每个目标请求任务中的目标结果存储变量的值进行实时检测,直到检测到存在返回值时,可以异步地获得该目标请求任务对应的请求处理结果,并将该请求处理结果进行后处理返回至客户端中,进而进一步提高处理效率。
实施例二
图3为本发明实施例二提供的一种请求处理方法的流程示意图,本实施例在上述各实施例的基础上,对“对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵”进行了进一步优化。在此基础上,还可以进一步对“对目标结果矩阵进行分配处理,确定每个目标请求任务对应的请求处理结果”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例提供的请求处理方法包括以下步骤:
S310、从任务队列中周期性地获取批量的目标请求任务,任务队列用于缓存接收到的每个用户请求所对应的请求任务。
S320、基于各个目标请求任务对应的预设合并顺序,将每个周期获取的每个目标请求任务对应的目标请求向量作为矩阵的一个行向量进行合并,获得目标请求矩阵。
其中,预设合并顺序可以是指预先设置的,各个目标请求任务对应的各个目标请求向量的合并先后顺序,可以用于表征出每个目标请求向量在目标请求矩阵中的位置。例如,可以将目标请求任务在任务队列中的排列顺序作为预设合并顺序。
具体的,可以按照预设合并顺序,将每个目标请求任务对应的目标请求向量作为一个矩阵的行向量进行依次合并,获得用于批量请求的目标请求矩阵。例如,若当前周期所获得的三个目标请求任务对应的三个目标请求向量分别为:X1=[x11 x12 ...... x1n]、X2=[x21 x22 ...... x2n]、和X3=[x31 x32 ...... x3n],预设合并顺序为:X1-X2-X3,则合并后获得的目标请求矩阵为
Figure BDA0002843561440000111
Figure BDA0002843561440000112
S330、将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得神经网络模型输出的目标结果矩阵。
具体地,在将目标请求矩阵输入至神经网络模型后,神经网络模型对目标请求矩阵的并行运算过程可以一次大规模的矩阵运算,即:
Figure BDA0002843561440000113
其中,
Figure BDA0002843561440000114
为目标请求矩阵,其可以由m个目标请求向量X1 ......Xm合并构成,
Figure BDA0002843561440000115
为神经网络模型的各个中间层的网络参数所组成的权重参数矩阵;
Figure BDA0002843561440000116
为神经网络模型输出的目标结果矩阵。
示例性地,S330可以包括:利用处理器的单指令多数据流SIMD技术,对输入至神经网络模型中的目标请求矩阵进行矩阵并行处理,并将神经网络模型处理后获得的目标结果矩阵进行输出。
其中,SIMD(Single Instruction Multiple Data,单指令多数据流)技术可以是处理器本身所提供的,用于一次计算多个元素相乘的技术。处理器可以是指中央处理器CPU(Central Processing Unit)或者图形处理器GPU(Graphics Processing Unit)。需要说明的是,由于图形处理器GPU从硬件层面可以实现对大矩阵的并行运算的支持,使之具有更强的并行运算能力,从而相比于中央处理器CPU而言,利用图形处理器GPU中的单指令多数据流SIMD技术,可以更加快速地进行矩阵并行运算,进而可以进一步提高请求处理效率。
具体地,通过利用处理器的并行运算能力,可以对输入至神经网络模型中的目标请求矩阵中的每个目标请求向量进行并行处理,从而实现用户请求的批量处理,提高了请求处理效率和系统性能。
S340、将目标结果矩阵中的每个行向量作为一个请求处理结果;基于预设合并顺序,对各个请求处理结果进行分配,获得每个目标请求任务对应的请求处理结果。
具体地,通过将目标请求向量作为目标请求矩阵的一个行向量,使得获得的目标结果矩阵的每一个行向量可以为各个目标请求向量对应的请求处理结果。例如,目标结果矩阵
Figure BDA0002843561440000121
中的每个行向量可以作为一个目标结果向量,即请求处理结果,从而可以获得m个请求处理结果,并按照合并时的预设合并顺序,依次确定每个目标请求任务对应的请求处理结果。例如,目标结果矩阵中的第一个行向量[y11 ... y1c]可以确定为目标请求向量[x11 ... x1n]的对应的请求处理结果。也就是说,请求处理结果的分配顺序与预设合并顺序一致。通过按照预设合并顺序对目标结果矩阵进行结果分配,可以一次性地准确地获得多个用户请求对应的请求处理结果,实现了用户请求的批量处理,并且保证了请求处理结果的准确性。
本实施例的技术方案,通过基于各个目标请求任务对应的预设合并顺序,将每个周期获取的每个目标请求任务对应的目标请求向量作为矩阵的一个行向量进行合并,获得目标请求矩阵,从而将每次获取的多个用户请求更加准确地合并为一个批量请求。并通过将目标结果矩阵中的每个行向量作为一个请求处理结果;基于预设合并顺序,对各个请求处理结果进行分配,获得每个目标请求任务对应的请求处理结果,实现了用户请求的批量处理,保证了请求处理结果的准确性。
实施例三
图4为本发明实施例三提供的一种请求处理装置的结构示意图,本实施例可适用于对接收到的用户请求进行批量处理的情况,该装置具体包括:任务获取模块410、任务合并模块420、结果获取模块430以及结果分配模块440。
其中,任务获取模块410,用于从任务队列中周期性地获取批量的目标请求任务,任务队列用于缓存接收到的每个用户请求所对应的请求任务;任务合并模块420,用于对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;结果获取模块430,用于将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得神经网络模型输出的目标结果矩阵;结果分配模块440,用于对目标结果矩阵进行分配处理,确定每个目标请求任务对应的请求处理结果。
在本实施例中,通过任务获取模块从任务队列中周期性地获取批量的目标请求任务,并通过任务合并模块对获取的各个目标请求任务对应的目标请求向量进行合并处理,确定目标请求矩阵,从而可以将每次获取的多个用户请求合并为一个批量请求,并通过结果获取模块将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,并通过结果分配模块对输出的目标结果矩阵进行分配处理,确定出每个目标请求任务对应的请求处理结果,从而使得神经网络模型可以一次性地处理多个用户请求,实现了用户请求的统一批量处理,大大提高了请求处理效率,并且无需额外部署机器,降低了机器使用成本。
可选的,任务合并模块420具体用于:基于各个目标请求任务对应的预设合并顺序,将每个周期获取的每个目标请求任务对应的目标请求向量作为矩阵的一个行向量进行合并,获得目标请求矩阵。
可选的,结果分配模块440具体用于:将目标结果矩阵中的每个行向量作为一个请求处理结果;基于预设合并顺序,对各个请求处理结果进行分配,获得每个目标请求任务对应的请求处理结果。
可选的,结果获取模块430具体用于:利用处理器的单指令多数据流SIMD技术,对输入至神经网络模型中的目标请求矩阵进行矩阵并行处理,并将神经网络模型处理后获得的目标结果矩阵进行输出。
可选的,任务获取模块410包括:
请求向量确定单元,用于在从任务队列中周期性地获取批量的目标请求任务之前,对接收到的每个用户请求的请求内容进行向量化,确定每个用户请求对应的请求向量;
请求任务确定单元,用于根据请求向量,确定每个用户请求对应的请求任务,并将每个请求任务添加至任务队列中。
可选的,请求任务确定单元具体用于:对每个用户请求分配一个结果存储变量;根据请求向量和结果存储变量,确定每个用户请求对应的请求任务;
相应的,该装置还包括:结果添加模型,用于在对目标结果矩阵进行分配处理,确定每个目标请求任务对应的请求处理结果之后,将每个目标请求任务对应的请求处理结果添加至相应的目标结果存储变量中。
可选的,任务获取模块410具体用于:从任务队列中周期性地获取预设数量的目标请求任务;或者,将任务队列中处于预设时间窗口内的各个请求任务确定为每个周期取出的目标请求任务。
本发明实施例所提供的请求处理装置可执行本发明任意实施例所提供的请求处理方法,具备执行请求处理方法相应的功能模块和有益效果。
值得注意的是,上述系统所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
实施例四
图5是本发明实施例四提供的一种服务器的结构示意图。图5示出了适于用来实现本发明实施方式的示例性服务器12的框图。图5显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担用户请求处理功能的电子终端。
如图5所示,服务器12以通用计算设备的形式表现。服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
服务器12典型地包括多种计算机可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机装置可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机存储介质。仅作为举例,存储装置34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品40,该程序产品40具有一组程序模块42,这些程序模块被配置以执行本发明各实施例的功能。程序产品40,可以存储在例如存储器28中,这样的程序模块42包括但不限于一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
服务器12也可以与一个或多个外部设备14(例如键盘、鼠标、摄像头等和显示器)通信,还可与一个或者多个使得用户能与该服务器12交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网Wide AreaNetwork,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)装置、磁带驱动器以及数据备份存储装置等。
处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的请求处理方法,包括:
从任务队列中周期性地获取批量的目标请求任务,任务队列用于缓存接收到的每个用户请求所对应的请求任务;
对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;
将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得神经网络模型输出的目标结果矩阵;
对目标结果矩阵进行分配处理,确定每个目标请求任务对应的请求处理结果。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供的请求处理方法的技术方案。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的请求处理方法步骤,该方法包括:
从任务队列中周期性地获取批量的目标请求任务,任务队列用于缓存接收到的每个用户请求所对应的请求任务;
对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;
将目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得神经网络模型输出的目标结果矩阵;
对目标结果矩阵进行分配处理,确定每个目标请求任务对应的请求处理结果。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种请求处理方法,其特征在于,包括:
从任务队列中周期性地获取批量的目标请求任务,所述任务队列用于缓存接收到的每个用户请求所对应的请求任务;
对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;
将所述目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得所述神经网络模型输出的目标结果矩阵;
对所述目标结果矩阵进行分配处理,确定每个所述目标请求任务对应的请求处理结果。
2.根据权利要求1所述的方法,其特征在于,对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵,包括:
基于各个目标请求任务对应的预设合并顺序,将每个周期获取的每个目标请求任务对应的目标请求向量作为矩阵的一个行向量进行合并,获得目标请求矩阵。
3.根据权利要求2所述的方法,其特征在于,对所述目标结果矩阵进行分配处理,确定每个所述目标请求任务对应的请求处理结果,包括:
将所述目标结果矩阵中的每个行向量作为一个请求处理结果;
基于所述预设合并顺序,对各个所述请求处理结果进行分配,获得每个所述目标请求任务对应的请求处理结果。
4.根据权利要求1所述的方法,其特征在于,将所述目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得所述神经网络模型输出的目标结果矩阵,包括:
利用处理器的单指令多数据流SIMD技术,对输入至神经网络模型中的所述目标请求矩阵进行矩阵并行处理,并将所述神经网络模型处理后获得的目标结果矩阵进行输出。
5.根据权利要求1所述的方法,其特征在于,在从任务队列中周期性地获取批量的目标请求任务之前,还包括:
对接收到的每个用户请求的请求内容进行向量化,确定每个用户请求对应的请求向量;
根据所述请求向量,确定每个用户请求对应的请求任务,并将每个所述请求任务添加至任务队列中。
6.根据权利要求5所述的方法,其特征在于,根据所述请求向量,确定每个用户请求对应的请求任务,包括:
对每个用户请求分配一个结果存储变量;
根据所述请求向量和所述结果存储变量,确定每个用户请求对应的请求任务;
在所述对所述目标结果矩阵进行分配处理,确定每个所述目标请求任务对应的请求处理结果之后,还包括:
将每个所述目标请求任务对应的请求处理结果添加至相应的目标结果存储变量中。
7.根据权利要求1-6任一所述的方法,其特征在于,从任务队列中周期性地获取批量的目标请求任务,包括:
从任务队列中周期性地获取预设数量的目标请求任务;或者,
将任务队列中处于预设时间窗口内的各个请求任务确定为每个周期取出的目标请求任务。
8.一种请求处理装置,其特征在于,包括:
任务获取模块,用于从任务队列中周期性地获取批量的目标请求任务,所述任务队列用于缓存接收到的每个用户请求所对应的请求任务;
任务合并模块,用于对每个周期获取的各个目标请求任务对应的各个目标请求向量进行合并处理,确定目标请求矩阵;
结果获取模块,用于将所述目标请求矩阵输入至神经网络模型中进行矩阵并行处理,获得所述神经网络模型输出的目标结果矩阵;
结果分配模块,用于对所述目标结果矩阵进行分配处理,确定每个所述目标请求任务对应的请求处理结果。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的请求处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的请求处理方法。
CN202011500882.XA 2020-12-17 2020-12-17 一种请求处理方法、装置、服务器和存储介质 Pending CN113761416A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011500882.XA CN113761416A (zh) 2020-12-17 2020-12-17 一种请求处理方法、装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011500882.XA CN113761416A (zh) 2020-12-17 2020-12-17 一种请求处理方法、装置、服务器和存储介质

Publications (1)

Publication Number Publication Date
CN113761416A true CN113761416A (zh) 2021-12-07

Family

ID=78786178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011500882.XA Pending CN113761416A (zh) 2020-12-17 2020-12-17 一种请求处理方法、装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN113761416A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114760357A (zh) * 2022-03-23 2022-07-15 北京字节跳动网络技术有限公司 一种请求处理方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114760357A (zh) * 2022-03-23 2022-07-15 北京字节跳动网络技术有限公司 一种请求处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN110321958B (zh) 神经网络模型的训练方法、视频相似度确定方法
CN110546654A (zh) 通过构造接口的带宽控制来增强dnn模块的处理性能
CN113159091A (zh) 数据处理方法、装置、电子设备及存储介质
CN111091182A (zh) 数据处理方法、电子设备及存储介质
CN112650867A (zh) 图片匹配方法、装置、电子设备以及存储介质
CN112765387A (zh) 图像检索方法、图像检索装置和电子设备
CN114332590B (zh) 联合感知模型训练、联合感知方法、装置、设备和介质
CN110909527B (zh) 文本处理模型的运行方法、装置、电子设备、及存储介质
CN110909768B (zh) 一种标注数据获取方法及装置
CN116541492A (zh) 一种数据处理方法及相关设备
CN113721898B (zh) 机器学习模型部署方法、系统、计算机设备及存储介质
US11557047B2 (en) Method and apparatus for image processing and computer storage medium
US20210027064A1 (en) Parallel video processing neural networks
CN113761416A (zh) 一种请求处理方法、装置、服务器和存储介质
CN114554279A (zh) 基于远程分析的触发器响应剪辑提取
CN113468344A (zh) 实体关系抽取方法、装置、电子设备和计算机可读介质
CN117093619A (zh) 一种规则引擎处理方法、装置、电子设备及存储介质
CN116468970A (zh) 模型训练方法、图像处理方法、装置、设备及介质
CN116957006A (zh) 预测模型的训练方法、装置、设备、介质及程序产品
CN113450764B (zh) 文本语音识别方法、装置、设备及存储介质
CN115273148A (zh) 行人重识别模型训练方法、装置、电子设备及存储介质
US20210263961A1 (en) Coarse-to-fine multimodal gallery search system with attention-based neural network models
CN113392215A (zh) 生产问题分类模型的训练方法、生产问题分类方法及装置
CN111046146B (zh) 用于生成信息的方法和装置
CN116166920A (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