首页 > 乐器声学 专利正文
模型服务的更新方法、装置及存储介质与流程

时间:2022-02-17 阅读: 作者:专利查询

模型服务的更新方法、装置及存储介质与流程

1.本公开涉及互联网技术领域,尤其涉及一种模型服务的更新方法、装置及存储介质。


背景技术:

2.随着人工智能技术的广泛应用,算法模型工程化工作的重要性正在日益突出。在语音人工智能领域中,随着电话系统作为整个语音服务输入端的接入案例越来越多,实现语音模型服务的无损上线,成为整个语音工程的重要课题。传统技术是基于业务请求更新模型服务,但是更新模型服务需要记录当前语音流所属的会话和上下文信息,每个上下文信息会记录当前所属的会话在整个请求过程中的语音流片段和配置信息。而对于每一个会话存在多次业务请求,并且每次请求会上传整个语音流的不同片段信息,所以更新模型服务应该基于会话的维度,而不是基于业务请求的维度。
3.在实现本公开构思的过程中,发明人发现相关技术中至少存在如下技术问题:只可以基于业务请求更新模型服务,不能基于会话更新模型服务的问题。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种模型服务的更新方法、装置及存储介质,以至少解决现有技术中,只可以基于业务请求更新模型服务,不能基于会话更新模型服务的问题。
5.本公开的目的是通过以下技术方案实现的:
6.第一方面,本公开的实施例提供了一种模型服务的更新方法,包括:通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。
7.在一个示例性实施例中,所述通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,包括:在接收到模型上线请求的情况下,在所述管理中心与备用缓存服务之间建立第二通道,其中,所述备用缓存服务与所述模型服务存在对应关系;通过所述第一通道将属于当前会话的多个业务请求发送到所述模型服务;通过所述第二通道将属于所述当前会话之后的回话的多个业务请求发送到所述备用缓存服务。
8.在一个示例性实施例中,所述通过所述第一通道将属于当前会话的多个业务请求发送到所述模型服务之后,所述方法还包括:断开所述第一通道;将所述当前会话的多个业务请求携带的所述多个音频流片段组成所述完整音频流,使用所述完整音频流更新所述模型服务。
9.在一个示例性实施例中,所述使用所述完整音频流更新所述模型服务之后,所述
方法还包括:在所述管理中心与所述模型服务之间重新建立所述第一通道;通过所述第二通道将属于所述当前会话的多个业务请求发送到所述备用缓存服务;通过所述第一通道将属于所述当前会话之后的回话的多个业务请求发送到所述模型服务。
10.在一个示例性实施例中,所述通过所述第二通道将属于所述当前会话的多个业务请求发送到所述备用缓存服务之后,所述方法还包括:断开所述第二通道;在下一次更新所述模型服务时,根据所述备用缓存服务中的数据更新所述模型服务。
11.在一个示例性实施例中,所述在下一次更新所述模型服务时,根据所述备用缓存服务中的数据更新所述模型服务,包括:将所述备用缓存服务中的多个业务请求携带的所述多个音频流片段组成所述完整音频流;使用所述完整音频流更新所述模型服务。
12.在一个示例性实施例中,所述使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务,包括:根据所述请求标识计算所述业务请求的第一哈希值;获取多个模型服务的节点信息,并根据所述节点信息计算所述多个模型服务的第二哈希值;根据所述第一哈希值和所述第二哈希值从所述多个模型服务中确定所述会话对应的模型服务。
13.在一个示例性实施例中,所述将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务,包括:根据所述模型服务接收所述多个业务请求的顺序或者所述多个音频流片段的标识信息,将所述多个音频流片段组成所述完整音频流;使用所述完整音频流更新所述模型服务内的一个或者多个模型。
14.第二方面,本公开的实施例提供了一种模型服务的更新装置,包括:接收模块,用于通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;确定模块,用于使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;发送模块,用于通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;更新模块,用于将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。
15.第三方面,本公开的实施例提供了一种电子设备。上述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的模型服务的更新方法或图像处理的方法。
16.第四方面,本公开的实施例提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的模型服务的更新方法或图像处理的方法。
17.本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。因为,本公开实施例可以通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,将多个业务请求携带的多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务,因此,采用上述技术手段,可以解决现有技术中,只可以基于业务请求更新模型服务,不能基于会话更新模型服务
的问题,进而提供一种基于会话维度更新模型服务的方法。
附图说明
18.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
19.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1示意性示出了本公开实施例一种模型服务的更新方法的计算机终端的硬件结构框图;
21.图2示意性示出了本公开实施例的一种模型服务的更新方法的流程图;
22.图3示意性示出了本公开实施例的一种模型服务的更新方法的示意图;
23.图4示意性示出了本公开实施例的一种模型服务的更新装置的结构框图;
24.图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
具体实施方式
25.下文中将参考附图并结合实施例来详细说明本公开。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
26.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
27.本公开实施例所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1示意性示出了本公开实施例的一种模型服务的更新方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(microprocessor unit,简称是mpu)或可编程逻辑器件(programmable logic device,简称是pld)等处理装置和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
28.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本公开实施例中的模型服务的更新方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
29.传输设备106用于经由网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可
与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
30.在本公开实施例中提供了一种模型服务的更新方法,图2示意性示出了本公开实施例的一种模型服务的更新方法的流程图,如图2所示,该流程包括如下步骤:
31.步骤s202,通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;
32.步骤s204,使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;
33.步骤s206,通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;
34.步骤s208,将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。
35.通过本公开,通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。因为,本公开实施例可以通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,将多个业务请求携带的多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务,因此,采用上述技术手段,可以解决现有技术中,只可以基于业务请求更新模型服务,不能基于会话更新模型服务的问题,进而提供一种基于会话维度更新模型服务的方法。
36.在步骤s206中,通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,包括:在接收到模型上线请求的情况下,在所述管理中心与备用缓存服务之间建立第二通道,其中,所述备用缓存服务与所述模型服务存在对应关系;通过所述第一通道将属于当前会话的多个业务请求发送到所述模型服务;通过所述第二通道将属于所述当前会话之后的回话的多个业务请求发送到所述备用缓存服务。
37.需要说明的是,模型上线请求用于指示更新所述模型服务,因为每次更新模型服务时,所述模型服务就不可以再接收信息,所以在接收到上线请求时,需要在所述管理中心与备用缓存服务之间建立第二通道,更新模型服务时,通过备用缓存服务接收原本应该发送给所述模型服务的信息。所述模型服务可以理解为一个实例,每个实例对应一个或者一类模型。如果是集群模式部署,则会存在多个模型服务对应的实例。服务和模型之间在微服务领域中是1对1的关系,所以部署模型,就相当于将模型服务上的模型资源文件进行更新。
38.算法模型通常会随着不同的产品和项目进行迭代更新,包括各类定制化场景。不同客户在不同领域会对模型准确率有不同的需求,所以在产品或项目的迭代过程中,算法模型需要持续进行准确率优化和重新训练,每次优化后会输出一个新的模型。新模型文件已经与旧模型不同,需要上线到生产环境。新模型的准确率更高,所以,本公开实施例模型更新,可以提升算法准确率。
39.现有技术,只可以基于业务请求更新模型服务,这会造成流量损失,本公开实施例通过基于会话维度更新模型服务,可以保证模型上线过程中,流量或者信息无损失。
40.通过所述第一通道将属于当前会话的多个业务请求发送到所述模型服务之后,所述方法还包括:断开所述第一通道;将所述当前会话的多个业务请求携带的所述多个音频流片段组成所述完整音频流,使用所述完整音频流更新所述模型服务。
41.本公开实施例是在将属于当前会话的多个业务请求发送到所述模型服务之后,根据所述当前会话的多个业务请求携带的所述多个音频流片段更新所述模型服务,可以避免现有技术基于业务请求更新模型服务造成的损失。因为现有技术,基于业务请求更新模型服务,不会等到当前的会话完成所有的请求之后,在根据当前的会话更新模型服务,这样会导致后续的当前会话的信息的丢失,即便后续业务请求可以正常发送,但当前的会话也不再完整,后续得到的结果无法与之关联,当前会话的流量实际上是丢失的。正确的做法应该是在当前会话完全结束时再将连接切换到备用缓存服务上面,此后会话由于已经在备用缓存服务上进行处理,因此所有的信息都不会丢失,整体流量或者信息的无损。
42.备用缓存服务与所述模型服务的处理能力是同级的,所以在更新所述模型服务时,备用缓存服务完全可以满足负载的需求。为了保障模型服务上线过程平稳进行,每个模型服务都可以附带1个备用缓存服务,这取决于模型服务实例所在物理机或虚拟机的配置。
43.模型服务上线时,备用缓存服务承载本该会分流到模型服务上面的流量。因为模型服务更新时,需要下线并重启,期间会造成模型服务的短期不可用,所以此时需要由备用缓存服务来接收这部分流量并进行处理。
44.在模型服务更新完成后,之前在备用缓存服务上还未结束的会话带来的流量还将继续在备用缓存服务进行处理,而后续新的请求和会话的流量将会重新打到模型服务,不再分流到备用缓存服务,所以备用缓存服务的流量会被慢慢耗尽。
45.使用所述完整音频流更新所述模型服务之后,所述方法还包括:在所述管理中心与所述模型服务之间重新建立所述第一通道;通过所述第二通道将属于所述当前会话的多个业务请求发送到所述备用缓存服务;通过所述第一通道将属于所述当前会话之后的回话的多个业务请求发送到所述模型服务。
46.更新所述模型服务之后,模型服务可以再次接收信息了,此时重新建立所述第一通道,通过所述第一通道将属于所述当前会话之后的回话的多个业务请求发送到所述模型服务,其中,所述当前会话之后的回话可以是一个会话也可以是多个会话,此时发送的会话的数量由更新所述模型服务所需要的时间决定,也就是更新所述模型服务的完成时刻之后的会话由所述模型服务接收。因为本公开实施例是基于会话,所以更新所述模型服务的完成时刻所处的会话仍由所述备用缓存服务接收。
47.第一通道的含义是与模型服务建立的连接通道。由于之前模型服务更新模型时需要下线,所以原本的第一通道连接已经关闭了,此时第一通道也一并销毁。而重新建立的第一通道的含义实际上是管理中心恢复与模型服务的连接之后,重新建立与模型服务的通道。所以从连接的角度看,前后两个第一通道本质上确实不属于一个连接,第一通道也并非同一个,是重新创建的。
48.通过所述第二通道将属于所述当前会话的多个业务请求发送到所述备用缓存服务之后,所述方法还包括:断开所述第二通道;在下一次更新所述模型服务时,根据所述备用缓存服务中的数据更新所述模型服务。
49.使用所述完整音频流更新所述模型服务之后,并且通过所述第二通道将属于所述
当前会话的多个业务请求发送到所述备用缓存服务之后,断开所述第二通道。所述备用缓存服务中的数据可以在下一次更新所述模型服务时,用于更新所述模型服务。其中,所述备用缓存服务中的数据就是所述备用缓存服务中接受的请求或者信息。
50.本公开实施例可以实现在流式处理端到端语音交互过程中,模型服务的无损上线。
51.流式处理:通常是对音频流的处理。比如在语音识别场景中,边说话边返回实时的语音转写文本。这个过程中,请求的音频需要按照音频片段或者音频流的方式发送,服务端在收到音频流之后,会立刻将当前音频片段的识别结果进行返回。在语音识别场景中,如果仅处理当前请求的音频片段而没有结合前后文以及上下文信息的话,识别准确率会较差,所以流式处理需要保证:1)请求的数据需要流式发送;2)能够立刻将当前请求的数据流的处理结果进行实时返回;3)数据流的处理结果需要结合之前已经上传的部分进行缓存,结合上下文信息给出更为准确的结果。
52.非流式处理:例如要识别出一张图片中的商品信息,或者对某个电话录音文件进行文本转写,那么在这个过程中,请求的对象就是“一张图片”或者“一个音频文件”,此时在提交请求后,算法模型会一次性把整个图像的处理结果,或者整个音频的语音转写结果一次性返回。在这个过程中,我们看不到这个图片处理过程的状态,或者语音转成文本的实时状态(比如语音转文字中,边说话边出字),只有等待请求完成后才会返回对应的结果,这类情况就是非流式处理。
53.模型上线:将模型打包发布并更新到线上环境,此时由于模型文件需要更新和重载,所以会导致正在处理的音频流请求收到影响,而拿不到当前请求的音频流识别结果。
54.模型无损上线:模型上线过程中,所有流量(包括正在处理的任务和返回的结果)都不会有任何影响。
55.在下一次更新所述模型服务时,根据所述备用缓存服务中的数据更新所述模型服务,包括:将所述备用缓存服务中的多个业务请求携带的所述多个音频流片段组成所述完整音频流;使用所述完整音频流更新所述模型服务。
56.在步骤s204中,使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务,包括:根据所述请求标识计算所述业务请求的第一哈希值;获取多个模型服务的节点信息,并根据所述节点信息计算所述多个模型服务的第二哈希值;根据所述第一哈希值和所述第二哈希值从所述多个模型服务中确定所述会话对应的模型服务。
57.一致性哈希算法是一种特殊的哈希算法,主要作用是用来解决哈希算法的不均匀分布问题,避免流量负载不均导致的部分模型服务过载问题。本公开实施例,根据所述请求标识计算所述业务请求的第一哈希值,并将第一哈希值映射到0~2
32
的圆上;根据所述节点信息计算所述多个模型服务的第二哈希值,并第二哈希值映射到所述圆上。在所述圆上,以第一哈希值为起始点,逆时针查找第一哈希值对应的第二哈希值,以此从所述多个模型服务中确定所述会话对应的模型服务。
58.在步骤s208中,将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务,包括:根据所述模型服务接收所述多个业务请求的顺序或者所述多个音频流片段的标识信息,将所述多个音频流片段组成所述完整音频流;使用所述完整音频流更新所述模型服务内的一个或者多个模型。
59.更新所述模型服务实际上是更新所述模型服务内的一个或者多个模型。根据所述模型服务接收所述多个业务请求的顺序,将所述多个音频流片段组成所述完整音频流;或者根据所述多个音频流片段的标识信息,将所述多个音频流片段组成所述完整音频流。
60.需要说明的是,本公开实施例是基于rpc(远程过程调用协议)的切流方案,管理中心有一个rpc模块,用于实现发送业务请求。
61.为了更好的理解上述技术方案,本公开实施例还提供了一种可选实施例,用于解释说明上述技术方案。
62.图3示意性示出了本公开实施例的一种模型服务的更新方法的示意图,如图3所示:
63.管理中心在没有接收到模型上线请求的情况下,通过所述第一通道依次将属于同一个会话的多个业务请求发送到所述模型服务。
64.在接收到模型上线请求的情况下,在所述管理中心与备用缓存服务之间建立第二通道,通过所述第一通道将属于当前会话的多个业务请求发送到所述模型服务,断开所述第一通道;通过所述第二通道将属于所述当前会话之后的回话的多个业务请求发送到所述备用缓存服务。
65.使用所述完整音频流更新所述模型服务之后,在所述管理中心与所述模型服务之间重新建立所述第一通道;通过所述第二通道将属于所述当前会话的多个业务请求发送到所述备用缓存服务,断开所述第二通道;通过所述第一通道将属于所述当前会话之后的回话的多个业务请求发送到所述模型服务。
66.通过本公开,通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。因为,本公开实施例可以通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,将多个业务请求携带的多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务,因此,采用上述技术手段,可以解决现有技术中,只可以基于业务请求更新模型服务,不能基于会话更新模型服务的问题,进而提供一种基于会话维度更新模型服务的方法。
67.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read

only memory,简称为rom)、随机存取存储器(randomaccess memory,简称为ram)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,组件服务端,或者网络设备等)执行本公开各个实施例的方法。
68.在本实施例中还提供了一种模型服务的更新装置,该模型服务的更新装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
69.图4示意性示出了本公开可选实施例的一种模型服务的更新装置的结构框图,如图4所示,该装置包括:
70.接收模块402,用于通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;
71.确定模块404,用于使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;
72.发送模块406,用于通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;
73.更新模块408,用于将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。
74.通过本公开,通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。因为,本公开实施例可以通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,将多个业务请求携带的多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务,因此,采用上述技术手段,可以解决现有技术中,只可以基于业务请求更新模型服务,不能基于会话更新模型服务的问题,进而提供一种基于会话维度更新模型服务的方法。
75.可选地,发送模块406还用于在接收到模型上线请求的情况下,在所述管理中心与备用缓存服务之间建立第二通道,其中,所述备用缓存服务与所述模型服务存在对应关系;通过所述第一通道将属于当前会话的多个业务请求发送到所述模型服务;通过所述第二通道将属于所述当前会话之后的回话的多个业务请求发送到所述备用缓存服务。
76.需要说明的是,模型上线请求用于指示更新所述模型服务,因为每次更新模型服务时,所述模型服务就不可以再接收信息,所以在接收到上线请求时,需要在所述管理中心与备用缓存服务之间建立第二通道,更新模型服务时,通过备用缓存服务接收原本应该发送给所述模型服务的信息。所述模型服务可以理解为一个实例,每个实例对应一个或者一类模型。如果是集群模式部署,则会存在多个模型服务对应的实例。服务和模型之间在微服务领域中是1对1的关系,所以部署模型,就相当于将模型服务上的模型资源文件进行更新。
77.算法模型通常会随着不同的产品和项目进行迭代更新,包括各类定制化场景。不同客户在不同领域会对模型准确率有不同的需求,所以在产品或项目的迭代过程中,算法模型需要持续进行准确率优化和重新训练,每次优化后会输出一个新的模型。新模型文件已经与旧模型不同,需要上线到生产环境。新模型的准确率更高,所以,本公开实施例模型更新,可以提升算法准确率。
78.现有技术,只可以基于业务请求更新模型服务,这会造成流量损失,本公开实施例通过基于会话维度更新模型服务,可以保证模型上线过程中,流量或者信息无损失。
79.可选地,发送模块406还用于断开所述第一通道;将所述当前会话的多个业务请求携带的所述多个音频流片段组成所述完整音频流,使用所述完整音频流更新所述模型服务。
80.本公开实施例是在将属于当前会话的多个业务请求发送到所述模型服务之后,根据所述当前会话的多个业务请求携带的所述多个音频流片段更新所述模型服务,可以避免现有技术基于业务请求更新模型服务造成的损失。因为现有技术,基于业务请求更新模型服务,不会等到当前的会话完成所有的请求之后,在根据当前的会话更新模型服务,这样会导致后续的当前会话的信息的丢失,即便后续业务请求可以正常发送,但当前的会话也不再完整,后续得到的结果无法与之关联,当前会话的流量实际上是丢失的。正确的做法应该是在当前会话完全结束时再将连接切换到备用缓存服务上面,此后会话由于已经在备用缓存服务上进行处理,因此所有的信息都不会丢失,整体流量或者信息的无损。
81.备用缓存服务与所述模型服务的处理能力是同级的,所以在更新所述模型服务时,备用缓存服务完全可以满足负载的需求。为了保障模型服务上线过程平稳进行,每个模型服务都可以附带1个备用缓存服务,这取决于模型服务实例所在物理机或虚拟机的配置。
82.模型服务上线时,备用缓存服务承载本该会分流到模型服务上面的流量。因为模型服务更新时,需要下线并重启,期间会造成模型服务的短期不可用,所以此时需要由备用缓存服务来接收这部分流量并进行处理。
83.在模型服务更新完成后,之前在备用缓存服务上还未结束的会话带来的流量还将继续在备用缓存服务进行处理,而后续新的请求和会话的流量将会重新打到模型服务,不再分流到备用缓存服务,所以备用缓存服务的流量会被慢慢耗尽。
84.可选地,发送模块406还用于在所述管理中心与所述模型服务之间重新建立所述第一通道;通过所述第二通道将属于所述当前会话的多个业务请求发送到所述备用缓存服务;通过所述第一通道将属于所述当前会话之后的回话的多个业务请求发送到所述模型服务。
85.更新所述模型服务之后,模型服务可以再次接收信息了,此时重新建立所述第一通道,通过所述第一通道将属于所述当前会话之后的回话的多个业务请求发送到所述模型服务,其中,所述当前会话之后的回话可以是一个会话也可以是多个会话,此时发送的会话的数量由更新所述模型服务所需要的时间决定,也就是更新所述模型服务的完成时刻之后的会话由所述模型服务接收。因为本公开实施例是基于会话,所以更新所述模型服务的完成时刻所处的会话仍由所述备用缓存服务接收。
86.第一通道的含义是与模型服务建立的连接通道。由于之前模型服务更新模型时需要下线,所以原本的第一通道连接已经关闭了,此时第一通道也一并销毁。而重新建立的第一通道的含义实际上是管理中心恢复与模型服务的连接之后,重新建立与模型服务的通道。所以从连接的角度看,前后两个第一通道本质上确实不属于一个连接,第一通道也并非同一个,是重新创建的。
87.可选地,发送模块406还用于断开所述第二通道;在下一次更新所述模型服务时,根据所述备用缓存服务中的数据更新所述模型服务。
88.使用所述完整音频流更新所述模型服务之后,并且通过所述第二通道将属于所述当前会话的多个业务请求发送到所述备用缓存服务之后,断开所述第二通道。所述备用缓存服务中的数据可以在下一次更新所述模型服务时,用于更新所述模型服务。其中,所述备用缓存服务中的数据就是所述备用缓存服务中接受的请求或者信息。
89.本公开实施例可以实现在流式处理端到端语音交互过程中,模型服务的无损上
线。
90.流式处理:通常是对音频流的处理。比如在语音识别场景中,边说话边返回实时的语音转写文本。这个过程中,请求的音频需要按照音频片段或者音频流的方式发送,服务端在收到音频流之后,会立刻将当前音频片段的识别结果进行返回。在语音识别场景中,如果仅处理当前请求的音频片段而没有结合前后文以及上下文信息的话,识别准确率会较差,所以流式处理需要保证:1)请求的数据需要流式发送;2)能够立刻将当前请求的数据流的处理结果进行实时返回;3)数据流的处理结果需要结合之前已经上传的部分进行缓存,结合上下文信息给出更为准确的结果。
91.非流式处理:例如要识别出一张图片中的商品信息,或者对某个电话录音文件进行文本转写,那么在这个过程中,请求的对象就是“一张图片”或者“一个音频文件”,此时在提交请求后,算法模型会一次性把整个图像的处理结果,或者整个音频的语音转写结果一次性返回。在这个过程中,我们看不到这个图片处理过程的状态,或者语音转成文本的实时状态(比如语音转文字中,边说话边出字),只有等待请求完成后才会返回对应的结果,这类情况就是非流式处理。
92.模型上线:将模型打包发布并更新到线上环境,此时由于模型文件需要更新和重载,所以会导致正在处理的音频流请求收到影响,而拿不到当前请求的音频流识别结果。
93.模型无损上线:模型上线过程中,所有流量(包括正在处理的任务和返回的结果)都不会有任何影响。
94.在下一次更新所述模型服务时,根据所述备用缓存服务中的数据更新所述模型服务,包括:将所述备用缓存服务中的多个业务请求携带的所述多个音频流片段组成所述完整音频流;使用所述完整音频流更新所述模型服务。
95.可选地,确定模块404还用于根据所述请求标识计算所述业务请求的第一哈希值;获取多个模型服务的节点信息,并根据所述节点信息计算所述多个模型服务的第二哈希值;根据所述第一哈希值和所述第二哈希值从所述多个模型服务中确定所述会话对应的模型服务。
96.一致性哈希算法是一种特殊的哈希算法,主要作用是用来解决哈希算法的不均匀分布问题,避免流量负载不均导致的部分模型服务过载问题。本公开实施例,根据所述请求标识计算所述业务请求的第一哈希值,并将第一哈希值映射到0~2
32
的圆上;根据所述节点信息计算所述多个模型服务的第二哈希值,并第二哈希值映射到所述圆上。在所述圆上,以第一哈希值为起始点,逆时针查找第一哈希值对应的第二哈希值,以此从所述多个模型服务中确定所述会话对应的模型服务。
97.可选地,更新模块408还用于根据所述模型服务接收所述多个业务请求的顺序或者所述多个音频流片段的标识信息,将所述多个音频流片段组成所述完整音频流;使用所述完整音频流更新所述模型服务内的一个或者多个模型。
98.更新所述模型服务实际上是更新所述模型服务内的一个或者多个模型。根据所述模型服务接收所述多个业务请求的顺序,将所述多个音频流片段组成所述完整音频流;或者根据所述多个音频流片段的标识信息,将所述多个音频流片段组成所述完整音频流。
99.需要说明的是,本公开实施例是基于rpc(远程过程调用协议)的切流方案,管理中心有一个rpc模块,用于实现发送业务请求。
100.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
101.本公开的实施例提供了一种电子设备。
102.图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
103.参照图5所示,本公开实施例提供的电子设备500包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502和存储器503通过通信总线504完成相互间的通信;存储器503,用于存放计算机程序;处理器501,用于执行存储器上所存放的程序时,实现上述任一项方法实施例中的步骤。
104.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该输入输出设备与上述处理器连接。
105.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
106.s1,通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;
107.s2,使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;
108.s3,通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;
109.s4,将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。
110.本公开的实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
111.可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
112.s1,通过管理中心接收业务请求,并对所述业务请求进行解析处理,得到请求标识,其中,所述请求标识用于指示所述业务请求对应的会话;
113.s2,使用一致性哈希算法,根据所述请求标识确定所述会话对应的模型服务;
114.s3,通过第一通道将属于同一个所述会话的多个业务请求发送到所述模型服务,其中,每个业务请求均包括音频流片段;
115.s4,将多个音频流片段组成完整音频流,使用所述完整音频流更新所述模型服务。
116.该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
117.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
118.可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的
示例,本实施例在此不再赘述。
119.显然,本领域的技术人员应该明白,上述的本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
120.以上所述仅为本公开的优选实施例而已,并不用于限制于本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。