一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于神经网络模型的请求处理方法及装置与流程

2021-10-23 00:22:00 来源:中国专利 TAG:神经网络 请求 模型 特别 计算机


1.本发明涉及计算机技术领域,特别是涉及一种基于神经网络模型的请求处理方法。


背景技术:

2.随着计算机技术的快速发展,神经网络模型逐渐被应用于计算机视觉和自然语言处理等各个方面,并取得了较好的效果。并且随着数据处理需求的增多,需要部署的神经网络模型的规模越来越大。例如,一项数据处理需要支持20多种语言的翻译功能,每一个语向(比如从中文到英文为一个语向)都需要至少一个模型提供服务,这么多语向之间如果都支持互译,那么系统需要支持的模型需要400多个。
3.每个神经网络模型在执行时,都需要先加载到网络处理器(neural-network processing unit,简称npu)中,但是单个网络处理器的显存是很有限的,故无法将如此多的神经网络模型都部署在同一个网络处理器上。为了能够支持大规模模型的服务,目前的方法是:部署多个网络处理器搭建成服务集群,每个网络处理器只需负责加载一部分神经网络模型(例如负责加载10-20个模型)。但是,硬件资源无法动态地随着流量的变化而快速变化,例如当流量短时间内增大时,无法快速新增网络处理器来进行流量分担,灵活性较差。


技术实现要素:

4.有鉴于此,本发明提供的基于神经网络模型的请求处理方法及装置,其目的在于解决现有技术中硬件资源无法动态地随着流量的变化而快速变化,灵活性差的问题。
5.第一方面,本发明提供了一种基于神经网络模型的请求处理方法,所述方法包括:
6.判断至少一个目标神经网络模型是否存储在网络处理器的显存中,所述目标神经网络模型包括待处理请求队列所对应的神经网络模型;
7.若所述目标神经网络模型未存储在所述显存中,则从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型;
8.基于所述显存中存储的所述目标神经网络模型对所述待处理请求队列中的请求进行处理。
9.可选的,从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型包括:
10.从所述内存中预取所述目标神经网络模型;
11.判断所述显存中是否含有处于未执行状态的神经网络模型;
12.若所述显存中含有处于未执行状态的神经网络模型,则基于覆盖策略,使得所述目标神经网络模型覆盖处于未执行状态的至少一个神经网络模型。
13.可选的,所述方法还包括:
14.若所述显存中没有处于未执行状态的神经网络模型,则判断所述显存的剩余空间
大小是否大于或等于所述目标神经网络模型的大小;
15.若所述剩余空间大小大于或等于所述目标神经网络模型的大小,则将所述目标神经网络模型直接加载到所述显存中。
16.可选的,基于覆盖策略,使得所述目标神经网络模型覆盖处于未执行状态的至少一个神经网络模型包括:
17.若所述显存的预留空间大于预设空间阈值,则随机选取一个处于未执行状态的神经网络模型,使用所述目标神经网络模型覆盖选取的神经网络模型;
18.若所述显存的预留空间小于预设空间阈值,则根据所述处于未执行状态的神经网络模型的大小和所述目标神经网络模型的大小,使用所述目标神经网络模型覆盖所述处于未执行状态的至少一个神经网络模型。
19.可选的,从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型包括:
20.预取线程通知所述网络处理器从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型。
21.可选的,基于所述显存中存储的所述目标神经网络模型对所述待处理请求队列中的请求进行处理包括:
22.预取线程将所述目标神经网络模型的名称添加到预取任务队列中;
23.所述预取线程通知工作线程对所述预取任务队列中所述目标神经网络模型的名称所对应的请求队列中请求进行处理。
24.可选的,在预取线程将所述目标神经网络模型的名称添加到预取任务队列中之后,所述方法还包括:
25.若所述预取任务队列中含有的名称个数大于或等于预设个数阈值,则所述预取线程等待所述预取任务队列中含有的名称个数减少至小于所述预设个数阈值时,针对下一个待处理请求队列所对应的目标神经网络模型进行处理;
26.若所述预取任务队列中含有的名称个数小于预设个数阈值,则所述预取线程针对下一个待处理请求队列所对应的目标神经网络模型进行处理。
27.可选的,所述判断至少一个目标神经网络模型是否存储在网络处理器的显存中包括:
28.若所述待处理请求队列中存在请求,则判断所述待处理请求队列所对应的至少一个目标神经网络模型是否存储在所述显存中。
29.第二方面,本发明提供一种基于神经网络模型的请求处理方法,所述方法包括:
30.判断至少一个目标语言翻译模型是否存储在图形处理器的显存中,所述目标语言翻译模型包括待处理请求队列所对应的、用于进行语言翻译的神经网络模型;
31.若所述目标语言翻译模型未存储在所述显存中,则从内存中预取所述目标语言翻译模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个语言翻译模型;
32.基于所述显存中存储的所述目标语言翻译模型对所述待处理请求队列中的请求进行处理;
33.输出所述待处理请求队列中的请求所对应的翻译结果。
34.第三方面,本发明提供一种基于神经网络模型的请求处理方法,所述方法包括:
35.接收请求方发送的请求;
36.根据所述请求,确定处理所述请求所需的至少一个目标神经网络模型;
37.判断所述目标神经网络模型是否存储在第一存储空间中;
38.若所述目标神经网络模型未存储在所述第一存储空间中,则从第二存储空间中预取所述目标神经网络模型加载至所述第一存储空间中,以覆盖所述第一存储空间中预先存储的至少一个神经网络模型;
39.基于所述第一存储空间中存储的所述目标神经网络模型对所述请求进行处理;
40.将处理结果发送给所述请求方。
41.第四方面,本发明提供一种基于神经网络模型的请求处理装置,所述装置包括:
42.判断单元,用于判断至少一个目标神经网络模型是否存储在网络处理器的显存中,所述目标神经网络模型包括待处理请求队列所对应的神经网络模型;
43.加载单元,用于若所述目标神经网络模型未存储在所述显存中,则从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型;
44.处理请求单元,用于基于所述显存中存储的所述目标神经网络模型对所述待处理请求队列中的请求进行处理。
45.可选的,所述加载单元包括:
46.预取模块,用于从所述内存中预取所述目标神经网络模型;
47.判断模块,用于判断所述显存中是否含有处于未执行状态的神经网络模型;
48.覆盖模块,用于若所述显存中含有处于未执行状态的神经网络模型,则基于覆盖策略,使得所述目标神经网络模型覆盖处于未执行状态的至少一个神经网络模型。
49.可选的,所述判断单元,还用于若所述显存中没有处于未执行状态的神经网络模型,则判断所述显存的剩余空间大小是否大于或等于所述目标神经网络模型的大小;
50.所述加载单元,还用于若所述剩余空间大小大于或等于所述目标神经网络模型的大小,则将所述目标神经网络模型直接加载到所述显存中。
51.可选的,所述覆盖模块,用于若所述显存的预留空间大于预设空间阈值,则随机选取一个处于未执行状态的神经网络模型,使用所述目标神经网络模型覆盖选取的神经网络模型;若所述显存的预留空间小于预设空间阈值,则根据所述处于未执行状态的神经网络模型的大小和所述目标神经网络模型的大小,使用所述目标神经网络模型覆盖所述处于未执行状态的至少一个神经网络模型。
52.可选的,所述加载单元,用于由预取线程通知所述网络处理器从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型。
53.可选的,所述处理请求单元包括:
54.添加模块,用于由预取线程将所述目标神经网络模型的名称添加到预取任务队列中;
55.通知处理模块,用于由所述预取线程通知工作线程对所述预取任务队列中所述目标神经网络模型的名称所对应的请求队列中请求进行处理。
56.可选的,所述装置还包括:
57.等待处理单元,用于在预取线程将所述目标神经网络模型的名称添加到预取任务队列中之后,若所述预取任务队列中含有的名称个数大于或等于预设个数阈值,则所述预取线程等待所述预取任务队列中含有的名称个数减少至小于所述预设个数阈值时,针对下一个待处理请求队列所对应的目标神经网络模型进行处理;
58.处理单元,用于若所述预取任务队列中含有的名称个数小于预设个数阈值,则所述预取线程针对下一个待处理请求队列所对应的目标神经网络模型进行处理。
59.可选的,所述判断单元,用于若所述待处理请求队列中存在请求,则判断所述待处理请求队列所对应的至少一个目标神经网络模型是否存储在所述显存中。
60.第五方面,本发明提供一种基于神经网络模型的请求处理装置,所述装置包括:
61.判断单元,用于判断至少一个目标语言翻译模型是否存储在图形处理器的显存中,所述目标语言翻译模型包括待处理请求队列所对应的、用于进行语言翻译的神经网络模型;
62.加载单元,用于若所述目标语言翻译模型未存储在所述显存中,则从内存中预取所述目标语言翻译模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个语言翻译模型;
63.处理请求单元,用于基于所述显存中存储的所述目标语言翻译模型对所述待处理请求队列中的请求进行处理;
64.输出单元,用于输出所述待处理请求队列中的请求所对应的翻译结果。
65.第六方面,本发明提供一种基于神经网络模型的请求处理装置,所述装置包括:
66.接收单元,用于接收请求方发送的请求;
67.确定单元,用于根据所述请求,确定处理所述请求所需的至少一个目标神经网络模型;
68.判断单元,用于判断所述目标神经网络模型是否存储在第一存储空间中;
69.加载单元,用于若所述目标神经网络模型未存储在所述第一存储空间中,则从第二存储空间中预取所述目标神经网络模型加载至所述第一存储空间中,以覆盖所述第一存储空间中预先存储的至少一个神经网络模型;
70.处理单元,用于基于所述第一存储空间中存储的所述目标神经网络模型对所述请求进行处理;
71.发送单元,用于将处理结果发送给所述请求方。
72.第七方面,本发明提供一种存储介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如第一方面或第二方面所述的基于神经网络模型的请求处理方法。
73.第八方面,本发明提供一种电子设备,所述电子设备包括存储介质和处理器;
74.所述处理器,适于实现各指令;
75.所述存储介质,适于存储多条指令;
76.所述指令适于由所述处理器加载并执行如第一方面或第二方面所述的基于神经网络模型的请求处理方法。
77.借由上述技术方案,本发明提供的基于神经网络模型的请求处理方法及装置,能够预先将至少一个神经网络模型存储在存储空间远大于显存的内存中,当需要使用待处理
请求队列所对应的至少一个目标神经网络模型对请求进行处理时,若该目标神经网络模型没有存储在网络处理器的显存中,则可以从内存中预取目标神经网络模型,并通过覆盖显存中预先存储的至少一个神经网络模型的方式,将目标神经网络模型成功加载到显存中实现对请求的处理,而不会因为显存空间不够而导致目标神经网络模型无法加载,从而通过内存实现了对显存的间接扩容,进而实现了利用单个网络处理器加载大规模神经网络模型的功能,并通过软件资源可以动态地随着流量的变化而快速变化,提高了灵活性。
78.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
79.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
80.图1示出了本发明实施例提供的一种基于神经网络模型的请求处理方法的流程图;
81.图2示出了本发明实施例提供的另一种基于神经网络模型的请求处理方法的流程图;
82.图3示出了本发明实施例提供的一种基于语言翻译模型处理请求的方法的流程图;
83.图4示出了本发明实施例提供的一种基于神经网络模型的请求处理的示例图;
84.图5示出了本发明实施例提供的一种基于神经网络模型的请求处理装置的组成框图;
85.图6示出了本发明实施例提供的另一种基于神经网络模型的请求处理装置的组成框图;
86.图7示出了本发明实施例提供的又一种基于神经网络模型的请求处理装置的组成框图;
87.图8示出了本发明实施例提供的再一种基于神经网络模型的请求处理装置的组成框图。
具体实施方式
88.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
89.在需要部署大规模神经网络模型的情况下,可以通过多个网络处理器来构建服务集群,使得多个网络处理器分别加载一部分神经网络模型来实现,但是这种硬件部署方式受资源调动和分配不灵活的限制。为了解决该技术问题,本发明实施例提供了一种基于神经网络模型的请求处理方法,该方法通过存储空间相对较大的内存来临时存储需要的神经
网络模型,当需要使用显存时,再将存储在内存中的神经网络模型加载到显存中,从而只需要单个网络处理器就可以实现显存的间接扩容功能。如图1所示,所述方法的具体实现流程包括:
90.101、判断至少一个目标神经网络模型是否存储在网络处理器的显存中。
91.其中,所述目标神经网络模型包括待处理请求队列所对应的神经网络模型。npu包括但不限于图形处理器(graphics processing unit,简称gpu)、tpu,张量处理器(tensor processing unit,tpu)等。
92.当接收到新的请求后,可以先根据请求中的内容(可以为模型标识)确定该请求需要使用哪个神经网络模型(可能需要一个,也可能需要多个)来处理,并将该请求加入到确定的神经网络模型所对应的请求队列中,以等待被处理。由于本发明实施例是通过内存来临时存储一些神经网络模型的,当需要使用神经网络模型时,还是要加载到显存中,所以为了提高请求的处理效率,可以预先将需要的神经网络模型加载到显存中,以便需要使用该神经网络模型时,可以直接使用。一个请求队列可以对应一个神经网络模型,也可以对应多个神经网络模型,比如有的请求需要多个神经网络模型依次处理。
93.具体的,可以先轮询所有请求队列;判断当前轮询到的待处理请求队列中是否存在请求;若所述待处理请求队列中存在请求,则判断所述待处理请求队列所对应的至少一个目标神经网络模型是否存储在所述显存中,并根据判断结果来确定是否需要对目标神经网络模型进行预加载;若所述待处理请求队列中没有请求,则无需对该待处理请求队列进行处理,并继续轮询下一个请求队列。
94.102、若所述目标神经网络模型未存储在所述显存中,则从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型。
95.初始使用网络处理器时,其显存中有足够的存储空间,可以直接将即将使用的至少一个神经网络模型加载到显存中进行使用;对于之后需要使用的神经网络模型可以先存储到内存中,当将要使用内存中的目标神经网络模型时,为了能够成功使用目标神经网络模型,可以从内存中预取目标神经网络模型加载到显存中,以覆盖显存中预先存储的至少一个神经网络模型。
96.其中,从内存中预取目标神经网络模型加载到显存中,以覆盖显存中预先存储的至少一个神经网络模型的具体实现方式可以为:从所述内存中预取所述目标神经网络模型;判断所述显存中是否含有处于未执行状态的神经网络模型;若含有处于未执行状态的神经网络模型,则基于覆盖策略,使得所述目标神经网络模型覆盖处于未执行状态的至少一个神经网络模型;若所述显存中没有处于未执行状态的神经网络模型(即显存中的神经网络模型均处于执行状态),则可以等待显存中出现执行完毕的神经网络模型时再进行覆盖。为了充分利用显存的存储空间,若所述显存中没有处于未执行状态的神经网络模型,则也可以先判断显存的剩余空间大小是否大于或等于目标神经网络模型的大小,若所述剩余空间大小大于或等于所述目标神经网络模型的大小,则将所述目标神经网络模型直接加载到所述显存中;若所述剩余空间大小小于所述目标神经网络模型的大小,则可以等待显存中出现执行完毕的神经网络模型时,通过覆盖其他神经网络模型的形式来加载目标神经网络模型。
97.为了充分利用显存的存储空间,也可以在确定目标神经网络模型未存储在显存中
时,先判断显存的剩余空间大小是否大于或者等于目标神经网络模型的大小;若显存的剩余空间大小是否大于或者等于目标神经网络模型的大小,则从内存中预取目标神经网络模型后,直接将目标神经网络模型加载到显存中;若显存的剩余空间大小是否小于目标神经网络模型的大小,则从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型。
98.基于覆盖策略,使得所述目标神经网络模型覆盖处于未执行状态的至少一个神经网络模型的具体实施方式可以为:若所述显存的预留空间大于预设空间阈值,则随机选取一个处于未执行状态的神经网络模型,使用所述目标神经网络模型覆盖选取的神经网络模型,也可以从处于未执行状态的神经网络模型中选取一个执行顺序位于目标神经网络模型以后的神经网络模型被目标神经网络模型覆盖;若所述显存的预留空间小于预设空间阈值,则根据所述处于未执行状态的神经网络模型的大小和所述目标神经网络模型的大小,使用所述目标神经网络模型覆盖所述处于未执行状态的至少一个神经网络模型。其中,预留空间不是显存实时的剩余空间,而是在加载神经网络模型时,预先留出的存储空间。
99.例如,若显存中可以存储5个神经网络模型,在具体实施时,设置为最多可以只存储3个神经网络模型,而保留出2个神经网络模型的预留空间。在这种情况下,无论下一个目标神经网络模型的大小是多少,随机选择一个神经网络模型进行覆盖,就可以成功加载目标神经网络模型。
100.而预留空间小于预设空间阈值时,则可能无法实现随机覆盖,需要根据实际情况选择覆盖哪个神经网络模型。具体的,可以先确定每个处于未执行状态的神经网络模型的大小和目标神经网络模型的大小;若存在某个处于未执行状态的神经网络模型的大小大于等于目标神经网络模型的大小,则可以直接使用目标神经网络模型覆盖该神经网络模型;若所有处于未执行状态的神经网络模型的大小均小于目标神经网络模型的大小,则可以使用目标神经网络模型覆盖其中两个神经网络模型的大小。
101.103、基于所述显存中存储的所述目标神经网络模型对所述待处理请求队列中的请求进行处理。
102.当目标神经网络模型是预先加载到显存中时,可以在需要调用目标神经网络模型时,调用目标神经网络模型对相应的请求一一进行处理。
103.本发明实施例提供的基于神经网络模型的请求处理方法,能够预先将至少一个神经网络模型存储在存储空间远大于显存的内存中,当需要使用待处理请求队列所对应的至少一个目标神经网络模型对请求进行处理时,若该目标神经网络模型没有存储在网络处理器的显存中,则可以从内存中预取目标神经网络模型,并通过覆盖显存中预先存储的至少一个神经网络模型的方式,将目标神经网络模型成功加载到显存中实现对请求的处理,而不会因为显存空间不够而导致目标神经网络模型无法加载,从而通过内存实现了对显存的间接扩容,进而实现了利用单个网络处理器加载大规模神经网络模型的功能,并通过软件资源可以动态地随着流量的变化而快速变化,提高了灵活性。
104.可选的,图1所示的方法实施例可以由预取线程和工作线程来完成,如图2所示,具体实现过程包括:
105.201、预取线程判断至少一个目标神经网络模型是否存储在网络处理器的显存;若存储在所述显存中,则执行步骤202;若未存储在所述显存中,则执行步骤203-205。
106.具体的,预取线程轮询所有请求队列;预取线程判断当前被轮询的待处理请求队列中是否含有请求;若含有请求,则预取线程判断至少一个目标神经网络模型是否存储在网络处理器的显存;若没有请求,则继续轮询下一个请求队列。
107.预取线程判断至少一个目标神经网络模型是否存储在网络处理器的显存的具体实现方式与上述步骤101相同,在此不再赘述。
108.202、预取线程通知工作线程基于所述目标神经网络模型对待处理请求队列中的请求进行处理。
109.本发明实施例可以使用一个工作线程,通过时分复用的方式对不同神经网络模型对应的请求队列进行处理;也可以启动多个工作线程,不同工作线程分别处理不同神经网络模型对应的请求队列。
110.203、预取线程通知所述网络处理器从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型。
111.网络处理器从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型的具体实现方式与上述步骤102相同,在此不再赘述。
112.204、预取线程将所述目标神经网络模型的名称添加到预取任务队列中。
113.由于目标神经网络模型是预先加载到显存中的,距离其使用可能还需要一段时间,所以可以在将目标神经网络模型加载到显存中后,先将目标神经网络模型的名称添加到预取任务队列中,以便后续工作线程根据预取任务队列确定需要处理哪个神经网络模型对应的请求队列。
114.在实际应用中,在工作线程处理请求队列的同时,预取线程会进行神经网络模型预加载过程,若请求队列中的请求较多,则工作线程处理该请求队列需要的时间相对较多,同时预取线程预加载的神经网络模型也会增多,从而造成预加载速度远大于请求处理速度的问题,进而会造成预取线程资源浪费的情况。为了避免预取线程资源浪费,可以在预取线程将所述目标神经网络模型的名称添加到预取任务队列中之后,判断所述预取任务队列中含有的名称个数是否大于或等于预设个数阈值;若所述预取任务队列中含有的名称个数大于或等于预设个数阈值,则所述预取线程等待所述预取任务队列中含有的名称个数减少至小于所述预设个数阈值时,针对下一个待处理请求队列所对应的目标神经网络模型进行处理;若所述预取任务队列中含有的名称个数小于预设个数阈值,则所述预取线程针对下一个待处理请求队列所对应的目标神经网络模型进行处理。其中,预设个数阈值可以为2,也可以为其他数值,具体根据实际经验而定。
115.205、所述预取线程通知工作线程对所述预取任务队列中所述目标神经网络模型的名称所对应的请求队列中请求进行处理。
116.工作线程判断预取任务队列中是否含有神经网络模型的名称;若含有名称,则可以从该名称对应的请求队列中获取一批请求,并将获取的请求提交给网络处理器基于目标神经网络模型进行处理,处理完成后,工作线程通知预取线程,并返回处理结果。
117.本发明实施例提供的基于神经网络模型的请求处理方法,能够由预取线程从内存中预取至少一个目标神经网络模型加载到显存中,以覆盖显存中预先存储的至少一个神经网络模型,并通知工作线程来对目标神经网络模型所对应的请求队列进行处理,而不会因
为显存空间不够而导致目标神经网络模型无法加载,从而通过内存实现了对显存的间接扩容,进而实现了利用单个网络处理器加载大规模神经网络模型的功能,并通过软件资源可以动态地随着流量的变化而快速变化,提高了灵活性。
118.进一步的,上述方法实施例可以应用于多种场景中,例如语言翻译场景、图像处理场景等。下面以语言翻译场景为例,对上述方法进行阐述,如图3所示,所述方法包括:
119.301、判断至少一个目标语言翻译模型是否存储在图形处理器的显存中。
120.所述目标语言翻译模型包括待处理请求队列所对应的、用于进行语言翻译的神经网络模型。
121.302、若所述目标语言翻译模型未存储在所述显存中,则从内存中预取所述目标语言翻译模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个语言翻译模型。
122.303、基于所述显存中存储的所述目标语言翻译模型对所述当前请求队列中的请求进行处理。
123.步骤301-303的具体实现方式可以参考图1或2所示的实施例,在此不再赘述。
124.304、输出所述待处理请求队列中的请求所对应的翻译结果。
125.本发明实施例对翻译结果的输出方式不做限定,可以将请求输出在页面的左侧,翻译结果输出在页面右侧,并标注出该翻译结果是哪个请求的翻译结果。
126.本发明实施例提供的基于神经网络模型的请求处理方法,能够预先将至少一个语言翻译模型存储在存储空间远大于显存的内存中,当需要使用待处理请求队列所对应的至少一个目标语言翻译模型对请求进行处理时,若该目标语言翻译模型没有存储在网络处理器的显存中,则可以从内存中预取目标神经网络模型,并通过覆盖显存中预先存储的至少一个语言翻译模型的方式,将目标语言翻译模型成功加载到显存中实现对请求的处理,并输出翻译结果,而不会因为显存空间不够而导致目标语言翻译模型无法加载,从而通过内存实现了对显存的间接扩容,进而实现了利用单个网络处理器加载大规模语言翻译模型的功能,并通过软件资源可以动态地随着流量的变化而快速变化,提高了灵活性。
127.进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种基于神经网络模型的请求处理方法,所述方法应用于接收方,所述方法包括:
128.s1、接收请求方发送的请求;
129.s2、根据所述请求,确定处理所述请求所需的至少一个目标神经网络模型;当所述请求中包括模型标识时,可以根据模型标识确定目标神经网络模型。
130.s3、判断所述目标神经网络模型是否存储在第一存储空间中;
131.s4、若所述目标神经网络模型未存储在所述第一存储空间中,则从第二存储空间中预取所述目标神经网络模型加载至所述第一存储空间中,以覆盖所述第一存储空间中预先存储的至少一个神经网络模型;
132.其中,第一存储空间是利用目标神经网络模型处理请求时所需要的存储空间,第二存储空间可以为除第一存储空间以外的存储空间。例如,网络处理器需要利用目标神经网络模型处理请求时,第一存储空间为显存,相应的,第二存储空间可以为内存。
133.s5、基于所述第一存储空间中存储的所述目标神经网络模型对所述请求进行处理;
134.s6、将处理结果发送给所述请求方。
135.示例性的,如图4所示,若发送方为用户端,接收方为服务端,第一存储空间为显存,第二存储空间为内存,则在用户端向服务端发送请求后,服务端先根据请求的内容确定目标神经网络模型是模型1,并判断模型1是否存储在显存中,由于显存中只存储有模型2-模型5,所以模型1没有存储在显存中。此时,可以从存储有模型1-模型6的内存中预取出模型1,并将模型1加载至显存中覆盖模型5,使得显存中现存的模型有模型1-模型4,再利用模型1处理请求,最后将处理结果反馈给用户端。
136.进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种基于神经网络模型的请求处理装置,如图5所示,所述装置包括:
137.判断单元41,用于判断至少一个目标神经网络模型是否存储在网络处理器的显存中,所述目标神经网络模型包括待处理请求队列所对应的神经网络模型;
138.加载单元42,用于若所述目标神经网络模型未存储在所述显存中,则从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型;
139.处理请求单元43,用于基于所述显存中存储的所述目标神经网络模型对所述待处理请求队列中的请求进行处理。
140.可选的,如图6所示,所述加载单元42包括:
141.预取模块421,用于从所述内存中预取所述目标神经网络模型;
142.判断模块422,用于判断所述显存中是否含有处于未执行状态的神经网络模型;
143.覆盖模块423,用于若所述显存中含有处于未执行状态的神经网络模型,则基于覆盖策略,使得所述目标神经网络模型覆盖处于未执行状态的至少一个神经网络模型。
144.可选的,所述判断单元41,还用于若所述显存中没有处于未执行状态的神经网络模型,则判断所述显存的剩余空间大小是否大于或等于所述目标神经网络模型的大小;
145.所述加载单元42,还用于若所述剩余空间大小大于或等于所述目标神经网络模型的大小,则将所述目标神经网络模型直接加载到所述显存中。
146.可选的,所述覆盖模块423,用于若所述显存的预留空间大于预设空间阈值,则随机选取一个处于未执行状态的神经网络模型,使用所述目标神经网络模型覆盖选取的神经网络模型;若所述显存的预留空间小于预设空间阈值,则根据所述处于未执行状态的神经网络模型的大小和所述目标神经网络模型的大小,使用所述目标神经网络模型覆盖所述处于未执行状态的至少一个神经网络模型。
147.可选的,所述加载单元42,用于由预取线程通知所述网络处理器从内存中预取所述目标神经网络模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个神经网络模型。
148.可选的,如图6所示,所述处理请求单元43包括:
149.添加模块431,用于由预取线程将所述目标神经网络模型的名称添加到预取任务队列中;
150.通知处理模块432,用于由所述预取线程通知工作线程对所述预取任务队列中所述目标神经网络模型的名称所对应的请求队列中请求进行处理。
151.可选的,如图6所示,所述装置还包括:
152.等待处理单元44,用于在预取线程将所述目标神经网络模型的名称添加到预取任
务队列中之后,若所述预取任务队列中含有的名称个数大于或等于预设个数阈值,则所述预取线程等待所述预取任务队列中含有的名称个数减少至小于所述预设个数阈值时,针对下一个待处理请求队列所对应的目标神经网络模型进行处理;
153.处理单元45,用于若所述预取任务队列中含有的名称个数小于预设个数阈值,则所述预取线程针对下一个待处理请求队列所对应的目标神经网络模型进行处理。
154.可选的,所述判断单元41,用于若所述待处理请求队列中存在请求,则判断所述待处理请求队列所对应的目标神经网络模型是否存储在所述显存中。
155.本发明实施例提供的基于神经网络模型的请求处理装置,能够预先将至少一个神经网络模型存储在存储空间远大于显存的内存中,当需要使用待处理请求队列所对应的至少一个目标神经网络模型对请求进行处理时,若该目标神经网络模型没有存储在网络处理器的显存中,则可以从内存中预取目标神经网络模型,并通过覆盖显存中预先存储的至少一个神经网络模型的方式,将目标神经网络模型成功加载到显存中实现对请求的处理,而不会因为显存空间不够而导致目标神经网络模型无法加载,从而通过内存实现了对显存的间接扩容,进而实现了利用单个网络处理器加载大规模神经网络模型的功能,并通过软件资源可以动态地随着流量的变化而快速变化,提高了灵活性。
156.进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种基于神经网络模型的请求处理装置,如图7所示,所述装置包括:
157.判断单元51,用于判断至少一个目标语言翻译模型是否存储在图形处理器的显存中,所述目标语言翻译模型包括待处理请求队列所对应的、用于进行语言翻译的神经网络模型;
158.加载单元52,用于若所述目标语言翻译模型未存储在所述显存中,则从内存中预取所述目标语言翻译模型加载至所述显存中,以覆盖所述显存中预先存储的至少一个语言翻译模型;
159.处理请求单元53,用于基于所述显存中存储的所述目标语言翻译模型对所述待处理请求队列中的请求进行处理;
160.输出单元54,用于输出所述待处理请求队列中的请求所对应的翻译结果。
161.本发明实施例提供的基于神经网络模型的请求处理装置,能够预先将至少一个语言翻译模型存储在存储空间远大于显存的内存中,当需要使用待处理请求队列所对应的至少一个目标语言翻译模型对请求进行处理时,若该目标语言翻译模型没有存储在网络处理器的显存中,则可以从内存中预取目标语言翻译模型,并通过覆盖显存中预先存储的至少一个语言翻译模型的方式,将目标语言翻译模型成功加载到显存中实现对请求的处理,并输出翻译结果,而不会因为显存空间不够而导致目标翻译模型无法加载,从而通过内存实现了对显存的间接扩容,进而实现了利用单个网络处理器加载大规模语言翻译模型的功能,并通过软件资源可以动态地随着流量的变化而快速变化,提高了灵活性。
162.进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种基于神经网络模型的请求处理装置,如图8所示,所述装置包括:
163.接收单元61,用于接收请求方发送的请求;
164.确定单元62,用于根据所述请求,确定处理所述请求所需的至少一个目标神经网络模型;
165.判断单元63,用于判断所述目标神经网络模型是否存储在第一存储空间中;
166.加载单元64,用于若所述目标神经网络模型未存储在所述第一存储空间中,则从第二存储空间中预取所述目标神经网络模型加载至所述第一存储空间中,以覆盖所述第一存储空间中预先存储的至少一个神经网络模型;
167.处理单元65,用于基于所述第一存储空间中存储的所述目标神经网络模型对所述请求进行处理;
168.发送单元66,用于将处理结果发送给所述请求方。
169.进一步的,本发明的另一个实施例还提供了一种存储介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如上所述的基于神经网络模型的请求处理方法。
170.进一步的,本发明的另一个实施例还提供了一种电子设备,所述电子设备包括存储介质和处理器;
171.所述处理器,适于实现各指令;
172.所述存储介质,适于存储多条指令;
173.所述指令适于由所述处理器加载并执行如上所述的基于神经网络模型的请求处理方法。
174.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
175.可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
176.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
177.在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的一种实施方式。
178.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
179.类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
180.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单
元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
181.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
182.本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的基于神经网络模型的请求处理方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
183.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜