当前位置: 首页 > 专利查询>英特尔公司专利>正文

在web浏览器环境中处理机器学习模型的方法和装置制造方法及图纸

技术编号:33423108 阅读:11 留言:0更新日期:2022-05-19 00:15
公开了在web浏览器环境中处理机器学习模型的方法、装置、系统和制品。一种示例装置包括图构建器来将机器学习操作累积为图。张量管理器响应于对访问与机器学习操作相关联的尚不可用的张量的请求,基于张量来识别图。图缓存管理器确定与所识别的图相对应的凝聚图是否可用。图凝聚器响应于图缓存管理器确定凝聚图不可用,生成凝聚图。图执行器执行凝聚图以创建张量。张量管理器提供张量作为对于对访问张量的请求的响应。量的请求的响应。量的请求的响应。

【技术实现步骤摘要】
【国外来华专利技术】在web浏览器环境中处理机器学习模型的方法和装置


[0001]本公开概括而言涉及机器学习,更具体而言,涉及在web浏览器环境中处理机器学习模型的方法和装置。

技术介绍

[0002]在计算行业中,有一种趋势是将机器学习(machine learning,ML)工作负载,尤其是深度学习(deep learning,DL)模型,部署到终端用户边缘设备,而不是服务器设备。最近,机器学习工作负载已在(一个或多个)web浏览器环境中被提供给终端用户边缘设备。有时,DL计算是通过将计算负载从中央处理单元(central processing unit,CPU)转移到图形处理单元(graphics processing unit,GPU)或其他电路而在边缘设备处完成的。
附图说明
[0003]图1图示了在web浏览器环境中执行机器学习任务的示例体系结构。
[0004]图2是执行操作来访问张量数据的示例WebNN实现方式的时间线。
[0005]图3图示了包括动态执行路径的示例动态计算图。
[0006]图4图示了示例延迟执行策略。
[0007]图5是表示图1的WebNN控制器的示例实现方式的框图。
[0008]图6是代表可被执行来实现图5的示例图执行器的示例机器可读指令的流程图。
[0009]图7是代表可被执行来实现图5的示例张量管理器的示例机器可读指令的流程图。
[0010]图8是代表可被执行来提供凝聚图(condensed graph)的推测性执行的示例机器可读指令的流程图。
[0011]图9是代表可被实现来执行缓存的图的示例机器可读指令的流程图。
[0012]图10是表示图的输入张量隐藏张量和输出张量的框图。
[0013]图11是表示用于跟踪张量、操作和图的生命周期的计数器值的表格。
[0014]图12是表示凝聚图的输入和输出张量的框图。
[0015]图13是被构造来执行图6、图7、图8和/或图9的指令以实现图1和/或图5的WebNN控制器的示例处理器平台的框图。
[0016]附图不是按比例的。一般而言,相同的标号将在各幅图和伴随的书面描述的各处被用于指代相同或相似的部件。
[0017]本文中在识别可被分开提及的多个元素或组件时使用描述语“第一”、“第二”、“第三”,等等。除非另有指明或者基于其使用上下文另有理解,否则这种描述语并不打算灌输优先级、物理顺序或者列表中的排列或者时间上的排序的任何含义,而只是被用作用于分开提及多个元素或组件的标签,以便容易理解所公开的示例。在一些示例中,描述语“第一”在详细描述中可被用于提及某一元素,而同一元素在权利要求中可被用不同的描述语来提及,例如“第二”或“第三”。在这种情况中,应当理解,这种描述语只是为了容易引用多个元素或组件而使用的。
具体实施方式
[0018]DL(深度学习)应用在图像识别、自然语言处理和策略游戏应用中已越来越重要并且被广泛应用。由于其全球影响力、规模经济和跨平台性,web平台对于许多web开发者而言已成为最大的应用开发平台。为了满足在(一个或多个)web浏览器中部署(一个或多个)DL应用的日益增长的需求,基于JavaScript(JS)的DL框架,例如TensorFlow.js和ONNX.js,已经出现,并且新的Web标准,Web神经网络API(Web Neural Network,WebNN),正在用于Web的W3C机器学习社区小组中被孵化,并且得到所有主要浏览器供应商的支持。
[0019]图1是用于在web浏览器环境中执行机器学习任务的示例体系结构的图。基于JavaScript的深度学习框架(包括例如TensorFlow.js)通常利用分层设计来提供易用性和灵活性。如图1所示,层应用编程接口(application programming interface,API)115允许开发者编写表示深度神经网络(deep neural network,DNN)操作的(一个或多个)静态计算图的JavaScript指令110。(一个或多个)静态计算图组织预定义的操作。较低级别操作API(Ops API)120提供了一种核心数据结构(例如,张量)和一组表示要在该数据结构上执行的计算(例如,卷积操作)的DNN操作。由层API 115构建的静态计算图利用Ops API 120来通过执行每一层的操作来完成计算。Ops API 120在急切模式(eager mode)中执行操作。在急切模式中,机器学习操作的计算(例如,执行)在操作被调用时立即发生。在此之下,Ops API 120被构造为利用支持不同web API实现方式的一个或多个不同的控制器。(一个或多个)后端122(例如,一个或多个控制器和/或其各自的(一个或多个)接口)在Ops API 120的指导下执行操作。在图1的图示示例中,Ops API 120利用WebGL/WebGPU接口125、WebAssembly接口127和WebNN接口130来实现与相应的WebGL/WebGPU控制器135、WebAssembly控制器137和WebNN控制器140的交互。
[0020]在一些示例中,不同的控制器是为不同的目的和/或在不同硬件上的执行而构造的。WebAssembly控制器137支持直接在web浏览器中运行的C/C++编译的字节码。示例WebGL/WebGPU控制器135向GPU的并行执行单元提供着色语言访问。以这种方式,示例WebAssembly控制器137和示例WebGL/WebGPU控制器135为特定的硬件设备(例如,移动设备、桌面型计算机、平板计算机,等等)暴露(expose)通用的计算基元。当利用基于JavaScript的框架的WebAssembly或WebGL/WebGPU后端时,web浏览器(例如,用户应用)对于机器学习操作没有任何了解。
[0021]控制器127和137在急切模式中操作,因此,尝试通过执行并且返回机器学习操作的执行结果来立即响应对于执行机器学习操作的任何请求。如上所述,图可能涉及多个不同的机器学习操作,这些操作形成了要执行的操作的有序集合。来自第一机器学习操作的输出(例如,张量)通常被作为输入提供给第二机器学习操作。然而,在先前的体系结构中,来自第一操作的输出被控制器127、137向上传递回到Ops API,从而使得Ops API可以确定要执行的下一个操作,然后该输出(例如,张量)被向下传递回到控制器127、137,来用作后续操作的输入。以这种方式这样来回传递输出(例如,张量)数据包括大量的通信开销。
[0022]如本文所公开的,WebNN控制器140使得能够以延迟的方式执行机器学习操作。当被以延迟方式操作时,WebNN控制器140可以知道输入和/或输出的结构,并且在内部将机器学习操作的结果(例如,张量)从一个操作传递到下一个操作,而不需要在WebNN控制器140之外提供这种结果,直到最终操作被完成和/或最终张量被请求为止。此外,还提供了根据
请求本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种在web浏览器中处理机器学习模型的装置,该装置包括:图构建器,用于在机器学习操作要被利用延迟执行模式来执行时将所述机器学习操作累积为图;张量管理器,用于响应于对访问与所述机器学习操作相关联的尚不可用的张量的请求,基于所述张量来识别所述图;图缓存管理器,用于确定与所识别的图相对应的凝聚图是否可用;图凝聚器,用于响应于所述图缓存管理器确定所述凝聚图不可用,生成所述凝聚图;以及图执行器,用于执行所述凝聚图以创建所述张量,所述张量管理器用于提供所述张量作为对于对访问所述张量的所述请求的响应。2.如权利要求1所述的装置,其中,所述图执行器用于响应于所述图缓存管理器确定所述凝聚图可用,取得所述凝聚图。3.如权利要求1所述的装置,其中,所述图缓存管理器用于基于所识别的图的散列来执行查找以确定所述凝聚图是否可用。4.如权利要求1所述的装置,其中,所述图执行器用于响应于确定所述机器学习操作要被利用直接执行模式来执行,执行所述机器学习操作。5.如权利要求1所述的装置,其中,所述张量管理器用于初始化与所述张量相关联的计数器,并且响应于提供所述张量作为所述响应,递减与所述张量相关联的所述计数器。6.如权利要求5所述的装置,其中,所述张量管理器用于响应于对释放所述张量的请求,递减与所述张量相关联的所述计数器。7.如权利要求5所述的装置,其中,所述张量管理器用于响应于执行所述凝聚图创建所述张量,递增与所述张量相关联的所述计数器。8.至少一个非暂态计算机可读介质,包括指令,所述指令当被执行时,使得至少一个处理器至少:在机器学习操作要被利用延迟执行模式来执行时将所述机器学习操作累积为图;响应于对访问与所述机器学习操作相关联的尚不可用的张量的请求,基于所述张量来识别所述图;确定与所识别的图相对应的凝聚图是否可用;响应于确定所述凝聚图不可用,生成所述凝聚图;执行所述凝聚图以创建所述张量;并且提供所述张量作为对于对访问所述张量的所述请求的响应。9.如权利要求8所述的至少一个计算机可读介质,其中所述指令当被执行时,使得所述至少一个处理器响应于确定所述凝聚图可用,取得所述凝聚图。10.如权利要求8所述的至少一个计算机可读介质,其中所述指令当被执行时,使得所述至少一个处理器基于所识别的图的散列来执行查找以确定所述凝聚图是否可用。11.如权利要求8所述的至少一个计算机可读介质,其中所述指令当被执行时,使得所述至少一个处理器响应于确定所述机器学习操作要被利用直接执行模式来执行,执行所述机器学习操作。12.如权利要求8所述的至少一个计算机可读介质,其中所述指令当被执行时,使得所
述至少一个处理器:初始化与所述张量相关联的计数器;并且响应于提供所述张量作为所述响应,递减与所述张量相关联的所述计数器。13.如权利要求12所述的至少一个计算机可读介质,其中所述指令当被执行时,使得所述至少一个处理器响应于对释放所述张量的请求,递减与所述张量相关联的所述计数器。14.如权利要求12所述的...

【专利技术属性】
技术研发人员:李剑慧胡宁馨李弋强伍勇罗元轲
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1