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

响应于来自多个客户端的机器学习请求的制作方法

2021-11-09 17:54:00 来源:中国专利 TAG:

响应于来自多个客户端的机器学习请求


背景技术:

1.深度学习是机器学习和人工智能的专门领域,其可以用在诸如计算机视觉、语音识别和文本翻译之类的不同领域中。在计算机视觉中,计算机学习如何解释图像来检测人并标识对象或场景。
附图说明
2.图1是图示根据一个示例的包括深度学习服务器的机器学习系统的框图。
3.图2是图示根据一个示例的图1中所示出的深度学习服务器的元件的框图。
4.图3是图示图1中所示出的机器学习系统的示例系统实现的框图。
5.图4是图示根据一个示例的预处理流水线的图解。
6.图5是图示根据一个示例的预处理流水线的图解,该预处理流水线接收单个视频流并为两个不同的机器学习模型预处理该视频流。
7.图6是图示根据一个示例的耦合到机器学习模型服务器的深度学习服务器的元件的框图。
8.图7是图示根据一个示例的响应于来自多个客户端的机器学习请求的方法的流程图。
具体实施方式
9.在以下详细描述中,对附图进行参考,附图形成了本发明的一部分,并且其中通过图示的方式示出了其中可以实践本公开的特定示例。将理解,在不脱离本公开的范围的情况下,可以利用其它示例,并且可以进行结构或逻辑改变。因此,以下详细描述不应被理解为限制性意义,并且本公开的范围由所附权利要求限定。将理解,除非以其它方式具体指出,否则本文中描述的各种示例的特征可以部分或全部彼此组合。
10.深度学习是机器学习和人工智能的专门领域,其可以用在诸如计算机视觉、语音识别和文本翻译之类的不同领域中。在计算机视觉中,计算机学习如何解释图像来检测人并标识对象或场景。深度学习模型通常使用广泛的资源,比如存储器和cpu能力。使更简单的客户端(诸如智能电话、数字助理、机器人或甚至具有低端图形的pc)来运行那些模型可能限制用户可以同时运行的模型的大小、准确度和数量。如果用户想要从若干视频源进行逐帧分析,则这可能超出了设备的能力。
11.尽管机器学习/深度学习应用可能部署在云中,但是某些应用具有激发本地部署的特定问题,诸如隐私、安全性、数据带宽和实时低时延决策。就隐私和安全性而言,有时存在信息是否离开家庭(例如,家庭的视频或语音)或办公室(例如,敏感信息的视频或语音)的本地网络的担心。关于数据带宽和时延,对于涉及处理视频流的情况,将数据从高分辨率帧持续发送到云涉及大的带宽,并且使其难以具有实时(或接近实时)的结果。对外部网络条件的依赖性可能导致无法实时进行推断(以及因此进行决策)。
12.一些边缘设备可能能够在边缘处理机器学习。然而,如果要施行多个任务,则这样
的设备可能是不足够的。例如,如果用户想要在房屋的多个相机流中执行对象检测、面部识别和语义分割,则边缘设备可能能够执行这些任务中的一个,但是可能不能够执行所有这些任务。无限地复制它们可能变得低效且繁琐。
13.本公开的一些示例针对称为深度学习服务器(dls)的本地服务器以提供对机器学习的若干实例的访问,并且针对更多实例可扩展。深度学习服务器系统可以包括多个计算机。深度学习服务器提供了接口,通过该接口,许多客户端可以基于来自多个不同传感器的传感器数据请求来自多个不同机器学习模型的推断,而无需向本地网络之外发送数据并且无需依赖于外部网络服务的带宽和时延。深度学习服务器可以具有可定制的物理和逻辑架构。深度学习服务器可以监视本地网络上的若干视频源,并当对视频源的预测或推断发生时通知客户端。深度学习服务器可以连接到分布式或在相同的服务器上运行的若干机器学习模型,并提供稳健且灵活的视频预处理流水线,从而为若干不同的客户端优化资源。客户端可能涉及许多不同类型的设备,包括机器人、打印机、移动电话、助手/信息亭等。
14.深度学习服务器的一些示例本质上组合了客户端对相同机器学习模型和相同传感器的请求以改进效率。当多个客户端对相同的数据源请求相同的机器学习模型时,深度学习服务器标识该情形,并对模型服务器进行单次调用。深度学习服务器的一些示例使用配置文件(例如,javascript对象符号(json)配置文件)来创建与模型服务器通信的流水线,并在数据被提供给机器学习模型之前对传感器数据施行预处理。深度学习服务器的一些示例运行在具有grpc协议的快速http/2上,其中二进制数据传送用于在预测和推断中实现高帧率。grpc协议是使用http/2进行传输并使用协议缓冲区作为接口描述语言的开源远程过程调用(rpc)协议。
15.图1是图示根据一个示例的包括深度学习服务器104的机器学习系统100的框图。系统100包括客户端计算设备102(1)和102(2)(统称为客户端102)、深度学习服务器104、模型服务器106(1)和106(2)(统称为模型服务器106)以及传感器110(1)和110(2)(统称为传感器110)。
16.传感器110向深度学习服务器104提供传感器数据。传感器数据可以提供事件发生的明确指示(例如,门传感器提供门已经被打开的指示),或者传感器数据可以是可以被提供给机器学习模型的数据,该机器学习模型被训练来进行关于数据(例如,被分析以施行面部检测的视频流)的推断。如本文中使用的术语“机器学习模型”一般指代先前已经经历过训练过程并且被配置为从接收到的数据进行推断的训练机器学习模型。每个模型服务器106包括至少一个机器学习模型108。客户端102可以向深度学习服务器104发送请求以监视传感器110中的某些传感器,并当那些传感器110检测到事件时向客户端102提供事件通知。客户端102还可以向深度学习服务器104发送请求以将机器学习模型108中的特定一个应用于来自传感器110中的特定一个的传感器数据,并将结果返回到客户端102。
17.图2是图示根据一个示例的图1中所示出的深度学习服务器104的元件的框图。深度学习服务器104包括至少一个处理器202、存储器204、输入设备230、输出设备232和显示器234。在图示的示例中,处理器202、存储器204、输入设备230、输出设备232和显示器234通过通信链路228彼此通信耦合。
18.输入设备230包括键盘、鼠标、数据端口和/或用于将信息输入到服务器104中的其它合适的设备。输出设备232包括扬声器、数据端口和/或用于从服务器104输出信息的其它
合适的设备。显示器234可以是向服务器104的用户显示信息的任何类型的显示设备。
19.处理器202包括中央处理单元(cpu)或另一个合适的处理器。在一个示例中,存储器204存储由处理器202执行的用于操作服务器104的机器可读指令。存储器204包括易失性和/或非易失性存储器的任何合适的组合,诸如随机存取存储器(ram)、只读存储器(rom)、闪速存储器和/或其它合适的存储器的组合。这些是非暂时性计算机可读存储介质的示例。存储器204在如下意义上是非暂时性的:其不涵盖暂时性信号,而是代替地由存储用于施行本文中描述的技术的机器可执行指令的至少一个存储器组件组成。
20.存储器204存储接口模块206、事件发布

订阅(发

订)管理器模块208、预处理流水线管理器模块210和预处理流水线212。处理器202执行模块206、208和210以及预处理流水线212的指令以施行本文中描述的技术。注意,模块206、208和210以及预处理流水线212的一些或全部功能可以使用云计算资源来实现。
21.接口模块206管理服务器104和客户端102之间以及服务器104和模型服务器106之间的通信。事件发

订管理器模块208管理来自客户端102的订阅请求以订阅某些事件通知,并将那些事件通知发布到客户端102。预处理流水线管理器模块210基于接收到的配置文件(例如,json文件)来生成预处理流水线212。预处理流水线212在将数据提供给机器学习模型108之前,对来自传感器110(图1)中某些传感器的传感器数据施行预处理。模块206、208和210施行的功能在下面进一步详细描述。
22.在一个示例中,服务器104的各种子组件或元件可以体现在多个不同的系统中,其中不同的模块可以跨多个不同的系统被分组或分布。为了实现其期望的功能,服务器104可以包括各种硬件组件。在这些硬件组件之中,可以是多个处理设备、多个数据存储设备、多个外围设备适配器和多个网络适配器。这些硬件组件可以通过使用多个总线和/或网络连接来互连。处理设备可以包括从数据存储设备检索可执行代码并执行该可执行代码的硬件架构。当由处理设备执行时,可执行代码可以使处理设备实现本文中公开的至少一些功能。
23.图3是图示图1中所示出的机器学习系统100的示例系统实现300的框图。系统300包括客户端302、接口310、实时流协议(rtsp)相机314(1)和314(2)(统称为rtsp相机314)、事件发

订管理器316、第一机器学习推断服务(“服务a”)310、传感器320(1)

320(3)(统称为传感器320)、接口322和第二机器学习推断服务(“服务b”)324。传感器320包括存在传感器320(1)、温度传感器320(2)和门传感器320(3)。接口310经由通信链路312通信耦合到rtsp相机314、事件发

订管理器316、机器学习推断服务318和接口322。rstp相机314通过rtsp协议流式传输视频。
24.在图示的示例中,第一机器学习服务318是场景识别服务,并且第二机器学习服务324是面部检测和图像分类服务。虚线321表示网络边界,其指示诸如服务324之类的机器学习推断服务可以从本地网络之外提供。图3中示出的其它元件在本地网络内。客户端302对应于客户端102(图1)中的一个。接口310对应于接口模块206(图2)。rstp相机314和传感器320对应于传感器110(图1)。事件发

订管理器316对应于事件发

订管理器208(图2)。机器学习服务318和324每个对应于模型服务器106(图1)中的一个。
25.接口310使用grpc协议接受来自诸如客户端302之类的客户端的连接。在一个示例中,客户端302和接口310使用标准调用/响应定义来进行推断。客户端302可以询问接口310它服务什么机器学习模型,以及它可以监视什么传感器,并且接口310将提供响应信息。客
户端302还可以要求接口310使用特定的机器学习模型和由客户端302提供的参数集来监视特定的传感器,并且返回检测(例如,监视具有模型m的传感器a,并且以95%的准确度将所有检测返回给我)。
26.事件发

订管理器316负责向客户端302通知来自传感器320以及来自定制规则的订阅事件。当传感器320中的一个检测到事件时,事件发

订管理器316经由接口310向已经订阅该事件的所有客户端发送事件通知308。事件可以是,例如存在传感器320(1)检测到人,或者温度传感器320(2)感测到的温度升高到某个阈值以上,或者门传感器320(3)监视的门刚刚打开。客户端302可以经由接口310向事件发

订管理器316发送订阅请求306(例如,来自存在传感器320(1)的对存在检测的订阅请求)以订阅指定的事件。事件可以是简单的验证,比如在温度的情况下,但是也可以是源自计算机器学习推断之后的某事。客户端302可以发送订阅请求306以订阅源自任何传感器320的事件,以及由机器学习服务318和324施行的推断产生的事件,并且接口310向客户端302发送客户端302已经订阅的所有事件的事件通知308。这可以以发布

订阅的方式来实现。
27.客户端302还可以与接口310进行双向通信304,这包括客户端302向接口310发送推断请求,并且作为响应,接口310向客户端302发送推断结果。在推断请求中,客户端302可以标识来自rtsp相机314(2)(或另一个相机)的视频流以及使用哪个机器学习推断服务318或324,并且还可以指定在要通知客户端之前推断要落入某些参数内。
28.在一个示例中,深度学习服务器104经由接口310访问特定推断请求和订阅事件的视频流;从这些视频流捕获帧;使用预处理流水线212(图2)对捕获的帧施行预处理;并且经由接口310(以及服务324的接口322)向机器学习推断服务318和324发送预处理的图像数据。为了效率,相同的预处理帧可以应用于多个机器学习推断服务318和324。作为响应,机器学习推断服务318和324将机器学习模型应用于接收到的图像数据,并向接口310发送所得到的推断。深度学习服务器104然后基于从机器学习推断服务318和324接收的推断经由接口310向客户端302(以及潜在其它客户端)发送推断结果。
29.接口310允许机器学习模型由除深度学习服务器104之外的机器服务。从服务器104的角度来看,具有多个gpu的多个机器可以以模型x、y和z在特定的ip地址和端口可用的方式布置。因此,如果期望更多的资源,则可以将更多的机器添加到该拓扑,并且可以在其上安装更多的模型。
30.多个客户端使用多个机器学习模型请求对来自远程相机(例如rtsp相机)的多个视频流的预测会创建一些问题,诸如:(1)对相同rtsp流的多次连接可能导致降低的效率;(2)多个客户端要求针对相同流的相同的预测(例如,图像分类)可能导致降低的效率;(3)单个客户端要求对相同流的多个预测可能导致降低的效率。本文中公开的深度学习服务器104的示例解决了这些问题,包括通过合并请求和利用模型批处理来高效地消耗计算资源,来处置多个客户端要求对多个视频流的多个推断。
31.在一些示例中,深度学习服务器104可以针对若干不同的客户端使用相同的视频流和相同的机器学习模型。例如,客户端可以连接到深度学习服务器104,并且当厨房中存在人时要求通知。深度学习服务器104然后连接到厨房相机,并开始监视其rtsp流,并用人检测机器学习模型在模型服务器上评估每个帧。当检测到人时,深度学习服务器104通知该客户端,并发送回其中其发生的帧。如果第二客户端连接到深度学习服务器104并要求在相
同相机上进行人检测,则深度学习服务器104可以使用相同的推断结果来回复第二客户端,因为针对给定相机的推断已经在进行。
32.不同的机器学习模型可能对不同类型的数据进行操作。例如,对象检测模型可以对具有三个颜色通道的299x299图像进行操作,用某个标准偏差进行标准化。预处理流水线可以用于将数据转换成适合于特定机器学习模型的格式。因为每个机器学习模型可能涉及不同的预处理,所以,由于其输入预期,深度学习服务器104为用户提供了为任何给定的机器学习模型指定预处理流水线的能力。下面参考图4进一步详细描述定义预处理流水线的过程。
33.图4是图示根据一个示例的预处理流水线的图解。预处理流水线的类图解402包括处理单元抽象类406以及具体子类408、410、412和414。具体子类408是调整图像大小的图像大小调整处理单元。具体子类410是将图像转换成灰度图像的灰度处理单元。具体子类412是将图像转换成二进制阈值图像的阈值处理单元。具体子类414是额外的示例,其指示可以提供附加具体子类。在一个示例中,深度学习服务器104包括用户可以用于创建预处理流水线的现有子类集,并且还向用户提供创建定制子类的能力。
34.具体子类408、410、412和414中的所选子类可以以指定的方式被实例化和链接在一起以生成实例化流水线404。如图4中所示出的,实例化流水线404包括如所示出的链接在一起的处理单元实例416(1)

416(7)(统称为处理单元实例416)。每个处理单元实例416是具体子类408、410、412和414中的一个的实例。在一个示例中,每个处理单元实例416接收数据向量作为输入,处理输入数据向量,并且向连接到该处理单元实例的输出的所有处理单元实例输出另一个向量。可以从单个输入生成多个输出。处理单元实例416(1)接收流水线404的输入数据,并且处理单元实例416(6)和416(7)生成流水线404的输出数据。实例化流水线(诸如流水线404)的配置可以由配置文件(例如,json配置文件)定义。以下伪代码示例1提供了用于定义预处理流水线的json配置文件的示例:伪代码示例i{}流水线_描述_模板.json
ꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
流水线”:[
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“馈送器”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
输入通道”:“视频流”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
类型”:“活动馈送器”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
参数”:[
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“最大线程数”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
值”:“1
”ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
},
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“队列大小”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
值”:“1
”ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
},
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“图像馈送器”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
类型”:“图像馈送器
”ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
},
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“原型

640x480”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
类型”:“调整大小”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
参数”:[
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“宽度”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
值”:“640
”ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
},
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“高度”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
值”:“480
”ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
],
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
输出”:[
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
名称”:“原型”,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ“
类型”:“张量

rgb
”ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀꢀꢀꢀ
]}。
[0035]
深度学习服务器104可以为多个客户端动态地重用预处理流水线,只要客户端要求对相同传感器数据的相同机器学习模型。例如,如果三个客户端要求对相同视频流的推断,则深度学习服务器104可以自动利用相同的流水线,并且将新的客户端附接到流水线的末端以接收来自机器学习模型的结果。预处理流水线使得预处理更高效,因为处理组件可以被重用,并且通过经由资源共享降低资源利用率,可以为在边缘处具有相同可用硬件的客户端提供更多的机器学习推断。预处理流水线也足够灵活来接受不同类型的数据源,诸如音频或视频。
[0036]
此外,当存在多个机器学习模型在相同视频流上工作,但是具有不同的预处理功能时,深度学习服务器104可以使用预处理流水线来处置该情形。图5是图示根据一个示例的预处理流水线500的图解,该预处理流水线500接收单个视频流,并且为两个不同的机器学习模型512和518预处理该视频流。预处理流水线500包括输入馈送器506、图像大小调整
处理单元508、第一张量处理单元510和第二张量处理单元516。虚线511表示深度学习服务器104和模型512和518的模型服务器之间的边界。在图示的示例中,输入馈送器506提供从相机502到视频流504的单个连接,所述输入馈送器506将视频流提供给图像大小调整处理单元508。单元508对接收到的视频流中的每个帧调整大小,并且然后具有分支到单元510和516的输出以将每个调整大小的帧转换成两种不同的类型。机器学习模型512和518中的每一个均具有针对图像的其自己特定的输入格式。在图示的示例中,单元510将每个调整大小的帧转换成用于机器学习模型512的uint8类型的帧,并且单元516将每个调整大小的帧转换成用于机器学习模型518的float32类型的帧。机器学习模型512是对象检测模型,其检测接收到的帧中的对象,并输出标识检测到的对象515(即,人、狗和两把椅子)的图像514。机器学习模型518是分割接收到的帧并输出分割图像520的图像分割模型。
[0037]
图6是图示根据一个示例的耦合到机器学习模型服务器的深度学习服务器104的元件的框图。深度学习服务器104包括预处理流水线601,其包括在流水线601末端处的三个处理单元602、604和606。
[0038]
在图示的示例中,处理单元602是tensorflow服务处理单元,其被配置为向tensorflow服务模型服务器608发送传感器数据和推断请求。tensorflow服务模型服务器608访问tensorflow运行时610和机器学习模型612,以将接收到的传感器数据提供给模型612,并将所得到的推断返回给tensorflow服务处理单元602。tensorflow服务处理单元602可以向多个客户端提供推断结果。如果客户端请求不同视频流的推断,则可以为该视频流创建tensorflow服务处理单元的新实例。
[0039]
tensorflow服务模型服务器608还访问keras运行时614和机器学习模型616,以将接收到的传感器数据提供给模型616,并将所得到的推断返回给tensorflow服务处理单元602。tensorflow服务处理单元602使得深度学习服务器104能够服务于tensorflow和keras机器学习模型,以及还有实现可服务接口的任何c 类。
[0040]
处理单元604是caffe服务处理单元,其被配置为向caffe服务模型服务器618发送传感器数据和推断请求。caffe服务模型服务器618将接收到的传感器数据提供给机器学习模型,并将所得到的推断返回给处理单元604。处理单元606是云api处理单元,其被配置为向云api 620发送传感器数据和推断请求。云api 620将接收到的传感器数据提供给机器学习模型,并将所得到的推断返回给处理单元606。预处理流水线601的灵活性允许任何后端插入到流水线中。因此,当创建其它模型服务解决方案时,可以添加它们。
[0041]
深度学习服务器104是灵活且可扩展的系统,其具有允许部署多个机器学习模型的资源,并且包括提供高效管理的组件和允许客户端访问其特征的通信接口。本文中公开的一些示例提供了用于边缘设备的机器学习方法的执行,而没有与云通信的负担和风险。深度学习服务器104的一些示例提供了以下特征:(1)避免向云发送私有数据;(2)避免与云建立安全连接的问题;(3)避免依赖于网络时延来实现实时决策(例如,对于机器人);(4)避免向云发送一些推断的所有数据的高带宽的成本;(5)为具有有限计算资源的设备(例如,移动电话、机器人、电视、打印机等)实现机器学习推断);(6)高效地管理多个推断请求和通知;(7)实现新的应用(例如,其中客户端请求被通知前门人的存在的应用,在所述情况下,客户端将服务器指向该相机视频流,并请求人检测推断和被通知事件);(8)简化新推断模型的部署;(9)基于grpc和http/2的高效通信基础设施;(10)高效管理多个数据源,比如家
庭/办公室相机;以及(11)在由可定制的预处理流水线提供的模型推断计算之前的高效数据准备。
[0042]
本公开的一个示例针对一种响应于来自多个客户端的机器学习请求的方法。图7是图示根据一个示例的响应于来自多个客户端的机器学习请求的方法700的流程图。在一个示例中,深度学习服务器104被配置为施行方法700。在方法700中的702处,计算设备从第一客户端接收标识机器学习模型和传感器的第一客户端请求。在704处,响应于第一客户端请求,计算设备向服务器发送调用以将标识的机器学习模型应用于来自标识的传感器的数据集。在706处,计算设备从第二客户端接收标识与第一客户端请求相同的机器学习模型和传感器的第二客户端请求。在708处,计算设备向第一客户端和第二客户端二者发送来自标识的机器学习模型的响应数据,而不响应于第二客户端请求而向服务器发送附加调用。
[0043]
注意,在方法700中发送给第一客户端和第二客户端二者的响应数据可以基于涉及传感器数据的部分重叠间隔的客户端请求,并且附加响应数据可以发送给第一客户端或第二客户端二者任一。例如,如果传感器生成视频流,则视频流可以被分离成帧,并且第一和第二客户端请求可以指定部分但不是完全重叠的帧集。基于重叠部分的响应数据可以被报告给两个客户端,而基于非重叠部分的附加响应数据可以仅被报告给标识那些部分的客户端。
[0044]
方法700可以进一步包括用计算设备从标识的传感器接收数据集;以及用计算设备对数据集施行预处理以生成预处理数据。方法700可以进一步包括用计算设备向模型服务器发送预处理数据以将标识的机器学习模型应用于预处理数据。
[0045]
方法700中对数据集的预处理可以由计算设备中的预处理流水线来施行,并且预处理流水线可以包括以配置文件定义的方式链接在一起的多个处理单元。每个处理单元可以接收输入向量,处理输入向量,并且输出输出向量。在预处理流水线开始处的处理单元中的第一个处理单元可以从标识的传感器接收数据集,并且在预处理流水线结束处的处理单元中的最后一个处理单元可以与模型服务器通信。处理单元中的最后一个处理单元可以向模型服务器发送预处理数据并接收响应数据。
[0046]
方法700中的计算设备、第一客户端和第二客户端全部可以是相同本地网络的一部分。模型服务器可以是相同本地网络的一部分,或不是相同本地网络的一部分。方法700中标识的传感器可以是相机传感器,并且来自标识的传感器的数据集可以是视频流。
[0047]
本公开的另一个示例针对存储指令的非暂时性计算机可读存储介质,当由处理器执行时,所述指令使处理器进行以下操作:从第一客户端接收标识机器学习模型和传感器的第一机器学习客户端请求;响应于第一机器学习客户端请求,使机器学习模型服务器将标识的机器学习模型应用于来自标识的传感器的传感器数据集,并接收响应推断数据;从至少一个附加客户端接收标识与第一机器学习客户端请求相同的机器学习模型和传感器的至少一个附加机器学习客户端请求;以及向第一客户端和至少一个附加客户端二者发送响应于第一机器学习客户端请求而接收的响应推断数据。
[0048]
非暂时性计算机可读存储介质可以进一步存储指令,当由处理器执行时,所述指令进一步使处理器进行以下操作:从标识的传感器接收传感器数据集;对传感器数据集施行预处理以生成预处理数据;并且向机器学习模型服务器发送预处理数据以将标识的机器学习模型应用于预处理数据。
[0049]
本公开的又另一示例针对一种系统,该系统包括服务器计算设备,该服务器计算设备包括接口,用于从第一客户端接收标识机器学习模型和传感器的第一客户端请求以及从第二客户端接收标识与第一客户端请求相同的机器学习模型和传感器的第二客户端请求。该系统包括服务器计算设备中的预处理流水线,用于响应于第一客户端请求,对来自标识的传感器的传感器数据施行预处理以生成预处理数据,向模型服务器发送预处理数据以将标识的机器学习模型应用于预处理数据集,并且从模型服务器接收响应推断数据。该接口向第一客户端和第二客户端二者发送响应推断数据。预处理流水线可以包括链接在一起的多个处理单元,并且每个处理单元可以接收输入向量,处理输入向量,并且输出输出向量。
[0050]
尽管本文中已经图示和描述了特定的示例,但是在不脱离本公开的范围的情况下,各种替代和/或等同的实现可以代替所示出和描述的特定示例。本技术意图覆盖本文中讨论的特定示例的任何适配或变型。因此,意图的是本公开仅由权利要求及其等同物来限制。
再多了解一些

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

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

相关文献