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

用于压缩人工智能模型的权重的方法和装置与流程

2022-06-25 04:37:14 来源:中国专利 TAG:


1.本公开总体上涉及机器学习,并且更具体地说,涉及用于压缩人工智能模型的权重的方法和装置。


背景技术:

2.近年来,机器学习和/或人工智能在流行性方面已经增加。例如,可以使用神经网络实现机器学习和/或人工智能。神经网络是受人脑的神经网络启发的计算系统。神经网络可以接收输入并生成输出。神经网络可以基于反馈而受训练(例如,可以学习),以使得输出对应于期望的结果。一旦受训练,神经网络就可以基于任何输入做出决策以生成输出。在一些示例中,神经网络的权重在第一设备(例如,服务器、数据中心等)处受训练和/或确定,并且被部署到第二设备以实现于第二设备处的模型中。神经网络用于人工智能和/或机器学习的新兴领域。
附图说明
3.图1是用于训练神经网络并压缩受训练神经网络的权重的示例服务器的示意性说明。
4.图2是图1的服务器的示例权重压缩器的框图。
5.图3是图1的物联网设备的示例权重解压缩器的框图。
6.图4是表示可以被执行为实现图1和/或图2的示例权重压缩器以压缩神经网络的权重的示例机器可读指令的流程图。
7.图5是表示可以被执行为实现图1和/或图3的示例权重压解缩器以解压缩待实现于神经网络中的权重的示例机器可读指令的流程图。
8.图6示出可以基于参考权重受压缩的权重和表示压缩的数据分组。
9.图7示出用于边缘计算的边缘云配置的概览。
10.图8示出端点、边缘云和云计算环境之间的操作层。
11.图9示出用于边缘计算系统中的连网和服务的示例方法。
12.图10是被构造为执行图4的指令以实现图1和/或图2的示例权重压缩器的示例处理平台的框图。
13.图11是被构造为执行图5的指令以实现图1和/或图3的示例权重解压缩器的示例处理平台的框图。
14.图12a提供边缘计算系统中的计算节点处部署的用于计算的示例组件的概览。
15.图12b提供边缘计算系统中的计算设备内的示例组件的进一步概览。
16.图13示出示例软件分发平台。
17.附图并非是按比例的。通常,贯穿附图和随附的书面描述将使用相同的附图标记以指代相同或相似的部件。除非另有指示,否则连接引用(例如,附着、耦合、连接和结合)应广义地受解释,并且可以包括要素集合之间的中间构件和要素之间的相对运动。故此,连接
引用不一定推断两个要素是直接连接的并且处于对彼此的固定关系中。虽然图中示出具有清楚线条和边界的层和区域,但是这些线条和/或边界中的一些或全部可能是理想化的。实际上,边界和/或线条可能是不可观察的、混合的和/或不规则的。
18.当标识可以分离地指代的多个要素或组件时,本文使用描述词“第一”、“第二”、“第三”等。除非基于其使用的上下文另外指定或理解,否则这些描述词并非旨在赋予列表中的优先级、实体顺序或布置或时间的排序的任何含义,而仅用作用于分离地指代多个要素或组件的标签以易于理解所公开的示例。在一些示例中,在具体实施方式中可以使用描述词“第一”以指代要素,而在权利要求中可以用不同的描述词(例如,“第二”或“第三”)指代同一要素。在这些情况下,应理解,仅为了易于引用多个要素或组件使用这些描述词。
具体实施方式
19.机器学习模型(例如,神经网络)用以能够执行任务(例如,对数据进行分类)。机器学习可以包括训练阶段,其用于使用上帝真相(ground truth)数据(例如,用特定分类正确地标记的数据)训练模型。训练传统神经网络调整神经网络的神经元的权重的层。在受训练之后,数据输入到受训练神经网络中,并且神经元的权重的层应用于输入数据,以能够处理输入数据以执行功能(例如,对数据进行分类)。
20.在一些示例中,在资源方面丰富的第一位置(例如,服务器、数据中心、一个或多个计算机等)处训练基于人工智能的模型。一旦受训练,训练了模型的设备就将对应于权重的信息部署到第二设备。以此方式,第二设备可以通过利用本地模型中的权重实现模型。随着基于人工智能的模型(例如,神经网络、学习模型、深度学习模型等)变得更加复杂(例如,随着模型包括渐增数量的层和/或权重以生成更准确的分类),用于获得和/或存储所生成的权重的第二设备处所需的存储器、处理能力和带宽的量增加。在一些示例中,如果模型的权重在服务器处进行训练期间得以确定并部署到iot设备。iot设备需要具有足够的存储器带宽、存储器和/或处理资源以获得并且存储所部署的权重信息。在这些示例中,iot设备可能具有有限的存储器带宽、存储器和/或处理资源。
21.为了减少在本地获得并且实现受训练权重信息所需的存储器带宽、存储器和/或处理资源,本文所公开的示例压缩受训练权重信息以减少受训练权重信息的大小。本文所公开的示例通过标识通道之间的时间冗余度压缩权重信息。如本文所使用的那样,通道是模型的特定层中的权重(例如,卷积核)的群组。本文所公开的示例可以比较模型的相同层内的或跨越不同层的通道。本文所公开的示例包括:基于足够相似的通道之间的差(例如,基于相似度阈值)编码和/或压缩数据。因为表达第一通道相对于第二通道所需的数据的量小于表达第一通道的所有权重所需的数据的量,所以基于相对于其他通道值的差表达通道减少所部署的数据的大小。以此方式,减少获得并且实现所部署的权重数据所需的存储器带宽、存储器和/或处理资源的量。附加地,本文所公开的示例可以实现为支持无损权重部署和有损权重部署。
22.通常,实现ml/ai系统涉及两个阶段——学习/训练阶段和推理阶段。在学习/训练阶段中,训练算法用以训练模型以基于例如训练数据根据模式和/或关联进行操作。通常,模型包括指导输入数据如何变换为输出数据(例如,通过模型内的一系列节点和连接以将输入数据变换为输出数据)的内部参数。此外,超参数(例如,学习率、机器学习模型中待使
用的层的数量等)可以用作训练过程的部分以控制如何执行学习。超参数定义为在发起训练过程之前所确定的训练参数。
23.可以基于ml/ai模型的类型和/或预期输出执行不同类型的训练。如本文所使用的那样,标记指代机器学习模型的预期输出(例如,分类、预期输出值等)。替代地,(例如,深度学习、机器学习的子集等中所使用的)无监督训练涉及:从输入推断模式,以选择用于ml/ai模型的参数(例如,没有预期(例如,所标记的)输出的益处)。
24.在本文所公开的示例中,执行训练,直到已经预测阈值数量的动作。在本文所公开的示例中,要么以本地方式(例如,在设备中)要么以远程方式(例如,在云中和/或在服务器处)执行训练。可以使用控制如何执行学习的超参数(例如,学习率、机器学习模型中待使用的层的数量等)执行训练。在一些示例中,可以执行重新训练。可以响应于新程序得以实现或新用户使用设备而执行该重新训练。使用训练数据执行训练。当可以使用有监督训练时,标记训练数据。在一些示例中,预处理训练数据。
25.一旦训练完成,模型就被部署以用于用作可执行构造,其处理输入并且基于模型中定义的节点和连接的网络提供输出。模型在本地存储在存储器中(例如,存储在缓存中并在受训练之后移动到存储器中)或可以存储在云中。计算机内核可以然后执行模型。
26.一旦受训练,所部署的模型就可以在推理阶段中得以操作以处理数据。在推理阶段中,待分析的数据(例如,实时数据)输入到模型中,并且模型执行以创建输出。该推理阶段可以看作ai“思考”以(例如,通过执行模型以将学到的模式和/或关联应用于实时数据)基于它从训练中学到的东西生成输出。在一些示例中,输入数据在被用作对机器学习模型的输入之前经历预处理。此外,在一些示例中,输出数据可以在其由ai模型生成之后经历后处理,以将输出变换为有用的结果(例如,数据的显示、机器待执行的指令等)。
27.在一些示例中,可以捕获并作为反馈提供所部署的模型的输出。通过分析反馈,可以确定所部署的模型的准确度。如果反馈指示所部署的模型的准确度小于阈值或其他准则,则可以使用反馈和更新后的训练数据集、超参数等触发更新后的模型的训练,以生成更新后的所部署的模型。
28.图1是用于部署受压缩权重信息以实现基于ai的模型的示例服务器100的示意性说明。示例服务器100包括示例神经网络(nn)训练器102、示例权重压缩器104、示例存储108和示例接口106。图1还包括iot设备110获得对应于受训练的基于ai的模型的压缩权重数据。示例iot设备110包括示例接口112、示例权重解压缩器114和示例神经网络116。虽然结合受训练神经网络描述图1的示例,但是可以在包括权重的任何基于ai的系统或模型中利用本文所公开的示例。附加地,虽然图1包括用于压缩权重数据的示例服务器100和用于解压缩权重数据的示例iot设备110,但是服务器100可以是数据中心和/或任何其他计算设备这,并且iot设备110可以是实现基于ai的模型的任何类型的计算设备。
29.图1的示例nn训练器102通过调整模型的层中的权重训练模型以能够基于输入数据执行任务(例如,标识图像中的对象)。最初,在模型受训练之前,模型的神经元/权重尚未受加权。为了训练模型,图1的示例nn训练器102使用训练数据(例如,用已知分类和/或输出标记的输入数据)以将模型配置为能够预测用于具有未知分类的输入数据的输出分类。示例nn训练器102可以用第一训练数据集合训练模型并用第二训练数据集合测试模型。如果基于测试的结果,模型的准确度低于阈值,则示例nn训练器102可以使用附加训练数据集调
谐(例如,调整、进一步训练等)模型的参数,并继续测试,直到准确度高于阈值。在nn训练器102已经训练模型之后,示例nn训练器102将受训练的权重提供给示例权重压缩器104。
30.图1的示例权重压缩器104获得并压缩由nn训练器102生成的权重数据。示例nn训练器102生成用于模型的每个层的数个权重。层的权重分拆为通道(例如,用于给定层的权重的群组)。在一些示例中,通道可以是权重的(例如,具有两个或更多个维度的)数组或矩阵。示例权重压缩器104通过(例如,在同一层中和/或在不同层中)将通道相互比较压缩权重数据,以寻找足够相似(例如,当两个通道的比较满足相似度阈值时)的通道。
31.为了增加足够相似的通道的数量,图1的示例权重压缩器104可以操作通道以生成多个受操作通道。操作可以包括:通过使值偏移、使值围绕某个轴旋转、对值进行翻转、对值进行反转等改变通道中的权重的顺序。示例权重压缩器104还比较受操作通道与其他通道以寻找足够相似的两个通道(例如,一对通道)。例如,对于给定通道,权重压缩器104对该通道执行多个操作,以生成对应于该给定通道的多个受操作通道。示例权重压缩器105然后比较通道和对应受操作通道与同一层内的或来自其他层的通道,以确定用于多个比较的相似度度量。示例权重压缩器105选择通道或受操作通道与导致最高相似度的另一通道的配对。如果相似度满足相似度阈值,则示例权重压缩器105生成基于所选择的通道配对之间的差的数据分组。以此方式,示例权重解压缩器114可以通过对数据分组进行解码确定权重值。因为受压缩数据分组比包括通道的所有权重的完整数据分组需要更少的数据,所以受压缩数据分组需要更少的要获得和/或实现的iot设备110的带宽和/或资源。在生成受压缩数据分组之后,示例权重压缩器104可以将受压缩加权数据存储在存储108中,和/或可以(例如,经由有线或无线网络连接和/或通信)使用示例接口106将受压缩加权数据发送到iot设备110。以下结合图1进一步描述示例权重压缩器104。
32.图1的示例iot设备110是获得受训练模型数据并在示例神经网络116中实现的设备。示例iot设备110可以是智能设备、传感器、边缘设备、边缘服务器、雾设备、雾服务器等。附加地或替代地,iot设备可以是终端用户设备(例如,计算机、平板设备、移动电话)和/或任何其他计算设备。
33.图1的iot设备110的示例接口112获得对应于权重的受压缩数据分组,以应用于示例神经网络115以实现受训练模型。在一些示例中,接口112可以将所获得的数据存储在主存储器(例如,动态随机存取存储器(dram))中。在这些示例中,权重解压缩器114存取来自主存储器的受压缩数据,以对数据进行解压缩,然后(例如,通过存储在本地存储器(例如,静态随机存取存储器(sram))中)实现于神经网络116中。在这些示例中,因为受压缩数据存储在主存储器中,所以主存储器可以比传统权重数据更小或存储更多的数据。
34.图1的示例权重解压缩器114解压缩所获得的数据分组。如上所述,权重解压缩器114可以直接从接口112获得数据分组,和/或可以从当在示例接口112处从服务器100接收时存储数据分组的主存储器获得数据分组。示例权重解压缩器114处理接收到的数据分组,以(例如,基于各自数据分组的数据或元数据)确定对应于受训练通道的各自数据分组对应于常规通道还是受压缩通道。如果数据分组对应于常规通道,则权重解压缩器114执行正常处理技术以,基于数据分组确定通道的权重,并在示例神经网络116的对应神经元、通道和/或层中实现这些权重。附加地,示例权重解压缩器114可以将关于通道的权重信息存储在本地存储器中。以此方式,如果随后的受压缩数据分组参考通道,则示例权重解压缩器114可
以使用通道的所存储的权重信息。
35.如果数据分组对应于受压缩通道,则图1的示例权重解压缩器114从数据分组的元数据标识参考通道和/或任何操作信息(例如,如何旋转、移动、翻转参考通道等)。示例权重解压缩器114从本地存储获得参考通道。在获得参考通道之后,示例权重解压缩器114从数据分组的残余数据净荷确定差值。差值标识参考通道或受操作参考通道与对应于当前处理的数据分组的通道有何不同。因此,示例权重解压缩器114通过差值调整参考通道或受操作参考通道,以获得关于数据分组的通道权重信息。在调整之后,示例权重解压缩器114根据操作信息(例如,如果元数据对应于操作)对参考通道的调整后的权重执行操作,如以下进一步描述的那样。示例权重解压缩器114在示例神经网络116的对应神经元、通道和/或层中实现这些所确定的权重信息。附加地,示例权重解压缩器114可以将关于通道的权重信息存储在本地存储器中。以此方式,如果随后的受压缩数据分组参考通道,则示例权重解压缩器114可以使用通道的所存储的权重信息。以下结合图3进一步描述示例权重解压缩器114。
36.图1的示例神经网络116基于从示例服务器100发送的权重信息实现受训练模型。最初,示例神经网络116未受加权。然而,在来自示例权重解压缩器114的权重应用于神经网络116的权重和/或神经元之后,示例神经网络116可以基于输入数据执行任务。例如,如果服务器100发送了数据以对图像中的动物进行分类,则在用对应权重信息训练神经网络116之后,神经网络116可以基于输入图像对动物进行分类。虽然示例iot设备110实现示例神经网络116,但是iot设备110可以附加地或替代地实现任何其他类型的包括权重的基于ai的模型。
37.在一些示例中,示例服务器100在资源(例如,处理资源、电源、存储器等)方面是丰富的,而示例iot设备110可能具有有限的资源。因此,示例服务器110能够在压缩侧执行与训练模型和压缩模型数据关联的繁重和/或复杂的计算。以此方式,可以在示例iot设备110处执行较不复杂的解压缩技术,由此节省iot设备110的资源,其中,资源可能受约束。限制对应于受压缩模型数据的附加开销,以确附加外开销将不影响整体压缩性能。
38.图2是图1的示例权重压缩器104的框图。图2的示例权重压缩器104包括示例组件接口200、示例通道操作器202、示例比较器204和示例数据分组生成器206。
39.图2的示例组件接口200从图1的示例nn训练器102获得对应于受训练模型的权重信息。如上所述,权重信息包括关于模型的任何数量的层分组到通道中的权重。示例组件接口200还将对应于加权信息(例如,受压缩加权数据)的数据分组发送到图1的示例接口106(例如,以部署到示例iot设备110(图1))和/或图1的示例存储108(例如,以存储在本地)。
40.当获得包括加权信息的通道时,图2的示例通道操作器202选择特定通道(例如,所分析的通道、处理中通道等),并对通道执行多个预定义操作,以生成多个受操作通道。如上所述,通道信息可以是包括权重的矩阵。示例通道操作器202可以偏移通道中的数据(例如,偏移矩阵的条目),旋转通道中的数据(例如,执行矩阵中的数据的旋转),翻转通道中的数据(例如,跨越矩阵的x轴、y轴和/或对角线轴翻转数据),反转通道中的数据(例如,如果数据分组括0和1,则将0反转为1,并且将1反转为零),和/或任何类型的操作的组合。
41.对于所分析的通道,图2的示例比较器204比较通道与参考通道(例如,用于模型的先前处理的通道),以确定通道与参考通道之间的相似度的量。例如,比较器205可以执行通道与每个参考通道之间的绝对差之和运算。附加地或替代地,示例比较器205可以执行两个
值集合之间的任何类型的相似度测量。附加地,示例比较器204比较受操作通道与每个参考通道。以此方式,对于所分析的通道,比较器204比较自身和/或自身的受操作版本之间的相似度与其他先前处理的通道(例如,参考通道),以生成多个相似度比较。在相似度比较之后,示例比较器204标识导致最高相似度(例如,最低绝对差)的相似度比较。示例比较器204比较所标识的最高相似度与相似度阈值。在一些示例中,代替选择最高相似度,比较器204可以比较所有所确定的相似度与相似度阈值,并且选择导致满足阈值的相似度的比较之一。如果示例比较器204确定所标识的最高相似度满足相似度阈值,则比较器204确定比较的对应通道之间的差(例如,参考通道与对应于比较的所分析的通道或受操作通道之间的差)。附加地,示例比较器204将比较的对应通道和所确定的差输出到数据分组生成器206。如果示例比较器204确定所标识的最高相似度不满足相似度阈值,则比较器204将相似度阈值关于通道尚未得以满足的指示输出到示例数据分组生成器206。
42.图2的示例数据分组生成器206生成用于对应于受训练模型的通道的数据分组。对于所分析的通道,如果示例数据分组生成器206获得关于通道的比较并未导致满足相似度阈值的指示,则数据分组生成器206生成标识用于通道的权重的数据分组。如果示例数据分组生成器206从比较器204获得比较的对应通道和差值,则数据分组生成器206生成包括操作数据(如果有)、指示参考通道的值和所分析的通道/受操作通道与参考通道之间的差的受压缩数据分组。受压缩数据分组包括比(例如,未压缩的)常规数据分组更少的数据,并且可以在iot设备110处得以解码,以确定并且实现用于所分析的通道的权重。
43.图3是图1的示例权重解压缩器114的框图。图3的示例权重解压缩器114包括示例组件接口210、示例数据分组分析器212、示例存储214和示例权重应用器216。
44.图2的示例组件接口210从示例接口112(图1)和/或(例如,如果接口112将接收到的数据分组存储在主存储器中,则)从主存储器获得数据分组。附加地,示例组件接口210与神经网络116(图1)进行接口,以在所获得的数据分组已经得以解码和/或解压缩之后将权重值应用于神经网络116的神经元和/或层。
45.图2的示例数据分组分析器212处理所获得的数据分组,以提取对应于通道的信息。例如,数据分组分析器212可以处理数据分组的元数据以确定数据分组中的信息是否标识通道中的权重或与(例如,需要受解码和/或解压缩以获得用于通道的权重的)参考通道的比较。如果示例数据分组分析器212确定数据分组包括(例如,不需要解压缩的)通道的权重信息,则数据分组分析器212将关于通道的权重信息存储在存储214中,并将权重信息发送到权重应用器216。如果示例数据分组分析器212确定数据分组包括与(例如,需要解压缩的)参考通道的比较,则数据分组分析器212从数据分组提取操作信息、参考通道信息和/或差值。操作信息可以是指示在示例权重压缩器104处如何操作通道的值,参考通道信息可以是指示权重压缩器104处的比较中使用的通道的值,并且差值是指示通道/受操作通道与参考通道之间的差的值。示例数据分组分析器212将所提取的信息提供给示例权重应用器216。
46.图2的示例存储214存储已处理的数据分组的关于通道的权重信息。以此方式,关于通道的先前权重信息可以用作参考通道,以用于对于随后所处理的通道的随后解压缩。示例存储214可以是本地存储器(例如,sram和/或任何类型的存储器)。
47.图2的示例性权重应用器216从数据分组分析器212获得对应于通道的权重信息
和/或所提取的信息。如果权重应用器216获得权重信息,则权重应用器216(例如,经由组件接口210)在示例神经网络116的对应通道处实现权重。如果示例权重应用器216获得对应于通道的所提取的信息,则权重应用器216从示例存储214存取所提取的信息中标识的参考通道。在获得参考通道之后,示例权重应用器216基于差值调整参考通道。如上所述,差值对应于参考值与(如果未受操作,则)所分析的通道或(如果所分析的通道受操作,则)受操作通道之间的差。因此,通过差值调整参考通道导致对应于所分析的通道或受操作通道的通道信息。如果所分析的通道并未受操作(例如,所提取的数据对应于无操作),则示例权重应用器216(例如,经由组件接口210)在示例神经网络116的对应通道处实现调整后的权重值。如果所分析的通道受操作(例如,所提取的数据对应于操作),则示例权重应用器216执行用于通道的调整后的权重值的反向操作。例如,如果从数据分组提取的数据标识第一方向上的达三个位置的通道中的权重的偏移,则权重应用器216将用于通道的调整后的权重在与第一方向相反的第二方向上偏移达三个位置。结果对应于所分析的通道的权重。在操作之后,示例权重应用器216(例如,经由组件接口210)在示例神经网络116的对应通道处实现调整后的和受操作的权重值。
48.虽然在图2中示出实现图1的权重压缩器104的示例方式,并且在图3中示出实现图1的权重解压缩器114的示例方式,但是可以通过任何其他方式组合、划分、重新布置、省略、消除和/或实现图1-图3所示的要素、过程和/或设备中的一个或多个。此外,硬件、软件、固件和/或硬件、软件和/或固件的任何组合实现可以图2的示例组件接口200、示例通道操作器202、示例比较器204、示例数据分组生成器206和/或更一般地,示例权重压缩器104和图3的示例组件接口210、示例数据分组分析器212、示例权重应用器216、示例存储214和/或更一般地,图3的示例权重解压缩器114。因此,例如,一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(pld)和/或现场可编程逻辑器件(fpld)可以实现图2的示例组件接口200、示例通道操作器202、示例比较器204、示例数据分组生成器206和/或更一般地,示例权重压缩器104和图3的示例组件接口210、示例数据分组分析器212、示例权重应用器216、示例存储214和/或更一般地,示例权重解压缩器114中的任何一个。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现方式时,图2的示例组件接口200、示例通道操作器202、示例比较器204、示例数据分组生成器206和/或更一般地,示例权重压缩器104和图3的示例组件接口210、示例数据分组分析器212、示例权重应用器216、示例存储214和/或更一般地,示例权重解压缩器114中的至少一个由此明确地定义为包括包含软件和/或固件的非瞬时计算机可读存储设备或存储盘(例如,存储器、数字通用盘(dvd)、压缩盘(cd)、蓝光盘等)。更进一步地,图1-图3的示例权重压缩器112和/或权重解压缩器114可以除了或代替图1-图3所示的之外还包括一个或多个元件、过程和/或设备,和/或可以包括任何或所有所示元件、过程和设备中的多于一个。如本文所使用的那样,短语“通信”(包括其变型)涵盖直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接实体(例如,有线)通信和/或持续通信,而是反而附加地包括以周期性间隔、受调度的间隔、非周期性间隔和/或一次性事件的选择性通信。
49.在图4和图5中示出表示用于实现图1-图3的示例权重压缩器104和/或示例权重解压缩器114的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程。机
器可读指令可以是用于由计算机处理器(例如,以下结合图10和/或图11讨论的示例处理器平台1000所示的处理器1012、1112)执行的一个或多个可执行程序或可执行程序的部分。程序可以体现于与处理器1012、1112关联的非瞬时计算机可读存储介质(例如,cd-rom、软盘、硬盘驱动器、dvd、蓝光光盘或存储器)上存储的软件中,但是整个程序和/或其部分可以替代地由除了处理器1012、1112之外的设备执行和/或体现于固件或专用硬件中。此外,虽然参照图4和/或图5所示的流程图描述示例程序,但是可以替代地使用实现示例权重压缩器104和/或示例权重解压缩器114的许多其他方法。例如,可以改变块的执行顺序,和/或可以改变、消除或组合所描述的一些块。附加地或替代地,被构造为在不执行软件或固件的情况下执行对应操作的一个或多个硬件电路(例如,分立和/或集成模拟和/或数字电路、fpga、asic、比较器、运算放大器(运放)、逻辑电路等)可以实现任何或所有块。
50.可以按压缩式格式、加密式格式、分段式格式、编译式格式、可执行格式、包封式格式等中的一种或多种存储本文描述的机器可读指令。本文描述的机器可读指令可以存储为可以利用以创建、制造和/或产生机器可执行指令的数据(例如,指令的部分、代码、代码的表示等)。例如,机器可读指令可以分段并且存储在一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要安装、修改、适配、更新、组合、补充、配置、解密、解压缩、解包封、分发、重新指派、编译等中的一项或多项,以使其可由计算设备和/或其他机器直接读取、解释和/或执行。例如,机器可读指令可以存储在单独地受压缩、加密并存储在分离的计算设备上的多个部分中,其中,部分当受解密、解压缩并组合时形成实现程序(例如,本文描述的程序)的可执行指令集合。
51.在另一示例中,机器可读指令可以在它们可以由计算机读取的状态下得以存储,但是需要添加库(例如,动态链路库)、软件开发套件(sdk)、应用编程接口(api)等,以在特定计算设备或其他设备上执行指令。在另一示例中,在可以完整地或部分地执行机器可读指令和/或对应程序之前,可能需要配置机器可读指令(例如,存储设置、输入数据、记录网络地址等)。因此,所公开的机器可读指令和/或对应程序旨在涵盖这些机器可读指令和/或程序,而无论当储存或以其他方式静置或在转移中时的机器可读指令和/或程序的特定格式或状态。
52.任何过去、现在或未来指令语言、脚本语言、编程语言等可以表示本文描述的机器可读指令。例如,可以使用以下语言中的任一种表示机器可读指令:c、c 、java、c#、perl、python、javascript、超文本标记语言(html)、结构化查询语言(sql)、swift等。
53.如上所述,可以使用非瞬时计算机和/或机器可读介质(例如,硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、缓存、随机存取存储器和/或存储信息达任何持续时间(例如,达延长的时间段、永久地、达简短时刻、达临时缓冲,和/或达信息的缓存)的任何其他存储设备或存储盘上存储的可执行指令(例如,计算机和/或机器可读指令)实现图4-图5的示例过程。如本文所使用的那样,术语非瞬时计算机可读介质明确地定义为包括任何类型的计算机可读存储设备和/或存储盘并且排除传播信号而且排除传输介质。
[0054]“包括(including)”和“包括(comprising)”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求作为序言或在任何种类的权利要求陈述内采用任何形式的“包括(includes)”或“包括(comprise)”(例如,包括(comprises)、包括(includes)、包括(comprising)、包括(including)、具有等)时,应理解,在不超出对应权利要求或陈述的范
围的情况下,可以存在附加要素、术语等。如本文所使用的那样,当短语“至少”用作例如权利要求的序言中的过渡术语时,它以与术语“包括(comprising)”和“包括(including)”相同的方式成为开放式的。术语“和/或”当以诸如a、b和/或c的形式使用时指代a、b、c的任何组合或子集(例如,(1)单独a、(2)单独b、(3)单独c、(4)a与b、(5)a与c、(6)b与c和(7)a与b与c)。如本文在描述结构、组件、条目、对象和/或事物的上下文中所使用的那样,短语“a和b中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个a、(2)至少一个b和(3)至少一个a和至少一个b。相似地,如本文在描述结构、组件、条目、对象和/或事物的上下文中所使用的那样,短语“a或b中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个a、(2)至少一个b和(3)至少一个a和至少一个b。如本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中所使用的那样,短语“a和b中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个a、(2)至少一个b和(3)至少一个a和至少一个b。相似地,如本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中所使用的那样,短语“a或b中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个a、(2)至少一个b和(3)至少一个a和至少一个b。
[0055]
如本文所使用的那样,单数引用(例如,“一个(a)”、“一个(an)”、“第一”、“第二”等)并不排除复数。如本文所使用的那样,术语“一个(a)”或“一个(an)”实体指代该实体中的一个或多个。在本文中可以可互换地使用术语“一个(a)”(或“一个(an)”)、“一个或多个”和“至少一个”。此外,虽然各自列出,但是多个装置、要素或方法动作可以由例如单个单元或处理器实现。附加地,虽然单独特征可以包括于不同的示例或权利要求中,但是它们可以可能地组合,并且包括在不同的示例或权利要求中并非暗指特征的组合是不可行的和/或有利的。
[0056]
图4是表示可以执行以实现图1和/或图2的权重压缩器104以压缩对应于受训练的基于ai的模型的权重数据的示例机器可读指令400的流程图。虽然结合图1的示例服务器100描述指令400,但是可以结合生成用于模型的权重的任何设备描述指令400。
[0057]
在块402,示例组件接口200(图2)确定是否已经从nn训练器102(图1)或存储108(图1)获得权重集合或权重通道。在训练基于ai的模型之后,示例nn训练器102可以将权重输出到示例权重压缩器104和/或存储108。如果示例组件接口200确定尚未获得权重集合或权重通道(块402:否),则控制返回块402,直到已经获得权重集合和/或权重通道。如果示例组件接口200确定已经获得权重集合或权重通道(块402:是),则示例数据分组生成器206(图2)从权重集合选择第一通道(块404)。
[0058]
在块406,示例数据分组生成器206生成用于第一通道的数据分组。数据分组标识用于通道的所有权重的权重值。当处理第一通道时,不存在可用的参考通道,因为不存在可以与第一所选择的通道进行比较的先前处理的通道。因此,数据分组生成器206在不尝试压缩关于通道的权重信息的情况下生成数据分组。然而,对于每一随后通道,权重压缩器104将比较随后通道与参考通道(例如,先前处理的通道),以尝试基于比较压缩通道,如下文进一步描述的那样。
[0059]
在块408,图2的示例通道操作器202从所获得的集合选择随后通道。通道的选择的顺序可以是以随后方式(例如,按通道顺序和/或层顺序),或者按任何其他顺序。选择的顺序应为权重解压缩器114(图1)所获知,以使得它可以按相同或相似的顺序选择通道。在块
410,示例通道操作器202对所选择的通道执行一个或多个操作,以生成受操作通道。操作可以是条目偏移(例如,在任何方向上达1个条目、2个条目、3个条目等)、条目的旋转、反转通道的权重(例如,如果权重w是0至1之间的值,则基于1-w反转权重),在一个或多个轴上翻转条目、和/或不同操作的组合。
[0060]
在块412,示例性比较器204基于(a)所选择的通道和/或受操作通道与(b)来自集合的先前处理的通道(例如,参考通道)之间的比较确定相似度。例如,如果通道操作器202对所选择的通道执行九种不同操作,则比较器204确定用于先前处理的通道(例如,用于所选择的通道和第一先前通道、第一受操作通道和第一先前通道、第二受操作通道和第一先前通道、...、以及第九受操作通道和最后先前通道)中的每一个的十个相似度。如上所述,示例比较器204可以使用绝对差之和运算或任何其他统计相似度确定协议执行比较。
[0061]
在块414,示例比较器204选择导致最高相似度(例如,最低绝对差之和运算)的比较。在块416,示例比较器204确定所选择的比较的所得相似度(例如,最高相似度)是否满足相似度阈值(例如,所确定的相似度是足够的)。如果示例比较器204确定所选择的比较的所得相似度不满足相似度阈值(块416:否),则控制继续到块422。如果示例比较器204确定所选择的比较的所得相似度满足相似度阈值(块416:是),则示例比较器204确定(a)来自所选择的比较的所选择的通道或受操作通道与(b)来自所选择的比较的先前处理的通道之间的差(块418)。在块420,示例数据分组生成器206基于以下项生成用于所选择的通道的数据分组:(a)对应于所选择的比较的所选择的通道或受操作通道、(b)对应于所选择的比较的先前处理的通道和(c)对应差。以下结合图6进一步描述包括对应信息的数据分组的示例。
[0062]
如果示例比较器204确定所选择的比较的所得相似度不满足相似度阈值(块416:否),则示例数据分组生成器206生成包括关于所选择的通道的权重信息的数据分组(例如,而不基于与参考通道的比较压缩数据)(块422)。在块424,示例通道操作器202确定是否存在要处理的集合中的另一通道。如果存在要处理的集合中的另一个(块424:是),则控制返回块408,处理随后通道以生成对应数据分组。如果不存在要处理的集合中的另一通道(块424:否),则组件接口200将所生成的数据分组存储在示例存储108(图1)中和/或将所生成的数据分组提供给示例接口106(图1)以发送到示例iot设备110(图1)(块426)。图4的示例指令结束。
[0063]
图5是表示可以执行以实现图1和/或图3的权重解压缩器114以对数据分组进行解压缩和/或解码以在iot设备110处实现受训练的基于ai的模型的示例机器可读指令500的流程图。虽然结合图1和/或3的示例iot设备110描述指令500,但是可以结合实现基于ai的模型的任何设备描述指令500。
[0064]
在块502,示例组件接口210(图2)(例如,从示例接口112(图1)和/或iot设备110(图1)的存储器)确定是否已经获得对应于受训练模型的数据分组。如果示例组件接口210确定尚未获得数据分组(块502:否),则控制返回块502,直到获得数据分组。如果示例组件接口210确定已经获得数据分组(块502:是),则示例数据分组分析器212(图2)从对应于受训练模型的数据分组集合选择第一数据分组(块504)。每个数据分组可以对应于受训练模型中的层的通道。
[0065]
在块506,示例数据分组分析器212处理所选择的数据分组以标识神经网络116(图1)中的通道和对应位置(例如,节点、层等的位置),以实现所选择的数据分组中标识的通道
的权重。在块508,示例权重应用器216(图2)基于神经网络116中节点的位置(例如,经由组件接口210)将数据分组的权重应用于神经网络116中的通道。在块510,示例权重应用器216结合示例存储214(图2)中的对应位置存储通道数据(例如,所标识的通道和对应权重)。以此方式,权重解压缩器114可以使用通道数据作为用于随后数据分组解压缩的参考。
[0066]
在块512,示例数据分组分析器212确定是否存在要处理的另一数据分组。如果示例数据分组分析器212确定不存在要处理的更多数据分组(块512:否),则控制结束。如果示例数据分组分析器212确定存在要处理的另一数据分组(块512:是),则示例数据分组分析器212选择随后数据分组(块514)。在块516,示例数据分组分析器212确定所选择的数据分组是受压缩数据分组还是未受压缩数据分组。示例数据分组分析器212可以基于标识压缩和/或解压缩的数据分组的值、数据分组的结构和/或数据分组的大小确定所选择的数据分组受压缩。如果示例数据分组分析器212确定所选择的数据分组不是受压缩数据分组(块516:否),则控制返回块506。
[0067]
如果示例数据分组分析器212确定所选择的数据分组是受压缩数据分组(块516:是),则示例数据分组分析器212分析数据分组以从数据分组标识(a)用于所选择的通道的神经网络116的层内的节点的对应位置和(b)用于所选择的通道的参考通道(块518)。例如,所选择的通道的位置和参考通道的标识可以包括于数据分组的元数据中。参考通道的标识可以是对应于通道相对于所选择的通道的位置(例如,距所选择的通道离开4个通道)的标识符或值。
[0068]
在块520,示例权重应用器216从示例存储214存取对应于所标识的参考通道的通道数据。在块522,示例数据分组分析器212从数据分组和受操作通道和/或参考通道之间的差确定操作类型(例如,偏移、反转、旋转等)和/或量。在块524,示例数据分组分析器212基于所确定的差调整参考通道权重。如上所述,差值标识参考通道的权重与(如果在压缩期间受操作,则在操作之后)当前处理的通道的权重之间的差。因此,差值用以移除参考通道与所处理的通道和/或受操作通道的权重之间的差。
[0069]
在块526,示例权重应用器216根据所确定的操作而操作调整后的参考通道。例如,如果操作是将通道的权重顺时针旋转达180度,则权重应用器216将调整后的权重逆时针旋转180度以得到压缩之前的通道的正确权重。如果并未标识出操作,则跳过块526,并且用于通道的权重对应于调整后的参考通道的权重。在块528,示例权重应用器216使用示例组件接口210将受操作的调整后的参考通道的权重应用于示例神经网络116中的所选择的通道的对应位置。
[0070]
在块530,示例权重应用器216结合所选择的通道的对应位置存储受操作的、调整后的参考通道的权重。以此方式,如果需要,则所选择的通道的权重可以用作用于随后数据分组的参考通道。在块532,示例数据分组分析器212确定是否存在要处理的用于另一数据分组的另一通道。如果示例数据分组分析器212确定存在要处理的用于另一通道的另一数据分组(块532:是),则控制返回块514以处理随后数据分组。如果示例数据分组分析器212确定不存在要处理的用于另一通道的另一数据分组(块532:否),则控制结束。
[0071]
图6示出用于对应于受训练模型的层的示例通道600和示例受压缩数据分组610。示例通道600包括示例所分析的通道602和示例参考通道604。示例受压缩数据分组610表示示例所分析的通道602并且包括示例元数据612和示例残余数据净荷614。示例元数据612包
括示例块大小字段66、示例运动信息字段618、示例参考标识符(id)信息字段620和示例旋转信息字段622。
[0072]
图2的示例通道600包括用于深度卷积神经网络(例如,alexnet)的大小11x11x3(例如,每通道的权重的矩阵的维度)的48个权重通道(例如,卷积核)。然而,可以结合任何类型数量/大小的通道和/或用于任何类型的基于ai的模型的任何层的任何维度利用本文公开的示例。使用本文公开的示例,示例权重压缩器104(图1)当处理/编码用于所分析的通道602的数据分组时,确定示例参考通道604与旋转后的版本(例如,围绕z轴的11x11x3通道中的权重的180度旋转)导致满足相似度阈值的相似度值。因此,示例权重压缩器104基于参考通道604与在旋转之后的所分析的通道602之间的差生成示例数据分组610。
[0073]
图6的示例数据分组610包括示例元数据612和示例残余数据净荷614。示例元数据612包括可以用以标识对应于满足相似度阈值的比较的操作信息的数据和可以用以标识参考通道604的数据。示例残余数据净荷614可以包括参考通道604与在旋转之后的所分析的通道602之间的差和/或所分析的通道602和/或层的位置的标识符。
[0074]
图6的示例元数据612包括块大小字段616以标识数据分组610的大小(例如,对于可变长度数据分组)。如果示例数据分组610受限为预定义大小,则可以从元数据612排除块大小字段616。示例运动信息字段618包括用于反映对应于操作的通道内的权重的类型或移动量的值,并且旋转信息字段622包括用于反映对应于操作的通道内的权重的类型或旋转量的值。附加地或替代地,示例元数据612可以包括对应于其他类型的操作(例如,反转、翻转等)的附加字段和/或可以反映多种不同类型的操作的一个字段。对于示例所分析的通道602,运动信息618包括指示无运动的值,并且旋转信息622包括指示围绕z轴的180度旋转的值。示例参考id信息字段620包括参考通道604的标识符。在一些示例中,标识符可以是对应于参考通道604距所分析的通道602离开多远的值。例如,因为参考通道604距所分析的通道602离开九个通道,所以参考id信息字段620可以包括值9以反映距离。
[0075]
图7是示出用于边缘计算的配置的概览的框图700,其包括许多以下示例中称为“边缘云”的处理层。如所示,边缘云710共同定位于边缘位置(例如,接入点或基站740、本地处理中枢750或中心局720)处,并且因此可以包括多个实体、设备和设备实例。边缘云710定位得比云数据中心730远更靠近端点(消费者和生产者)数据源760(例如,自主车辆761、用户设备762、商业和工业设备763、视频捕获设备764、无人机765、智慧城市和建筑设备766、传感器和iot设备767等)。在边缘云710中的边缘处供给的计算、存储器(memory)和存储(storage)资源对于提供用于端点数据源760所使用的服务和功能的超低时延响应时间以及减少从边缘云710朝向云数据中心730的网络回程业务(由此改进能耗和总体网络使用等益处)是关键的。在一些示例中,云数据中心730、中心局720和/或边缘云710中的一个或多个设备中的一个或多个可以实现图2的权重压缩器104,并且中心局720、边缘云710中的一个或多个设备和/或端点760中的一个或多个可以实现图3的权重解压缩器114。
[0076]
计算、存储器和存储是稀缺资源,并且通常取决于边缘位置而降低(例如,消费者端点设备处可用的处理资源比基站处或中心局处更少)。然而,边缘位置离端点(例如,ue)越靠近,空间和功率一般受约束就越多。因此,边缘计算尝试通过既在地理上又在网络接入时间方面定位得更靠近的更多资源的分布减少网络服务所需的资源的量。以此方式,边缘计算尝试在适当的情况下将计算资源带到工作负载数据中,或者将工作负载数据带到计算
云,当与使用情况805的设备和端点进行通信时具有低时延值)。应理解,构成“靠近”、“本地”、“近”、“中间”或“远”边缘的特定网络层的其他分类可以基于从任何网络层800-840中的源测量的时延、距离、网络跳转的数量或其他可测量的特性。在一些示例中,云数据中心845、网络数据中心835和/或设备825中的一个或多个可以实现图2的权重压缩器104,并且网络数据中心835、设备825和/或使用情况805的设备和端点中的一个或多个可以实现图3的权重解压缩器114。
[0081]
归因于多个服务利用边缘云,各种使用情况805可以在来自传入流的使用压力下接入资源。为了实现具有低时延的结果,在边缘云710内执行的服务鉴于以下方面平衡变化的要求:(a)优先级(吞吐量或时延)和服务质量(qos)(例如,用于自动驾驶汽车的业务鉴于响应时间要求可以具有比温度传感器更高的优先级;或者,取决于应用,性能敏感性/瓶颈可以存在于计算/加速器、存储器、存储或网络资源处);(b)可靠性和弹性(例如,取决于应用,需要对一些输入流采取行动,并以任务关键可靠性路由业务,而其他一些输入流可以容忍偶尔故障);和(c)实体约束(例如,电力、冷却和形数)。
[0082]
用于这些使用情况的端到端服务视图涉及服务流的概念并且与事务关联。事务详述对于消费服务的实体的整体服务要求以及用于资源、工作负载、工作流程以及商业功能和商业等级要求的关联服务。可以在服务的生命周期期间以确保关于事务的实时和运行时合同合规性的方式在每个层处管理用所描述的“条款”执行的服务。当事务中的组件错过其对sla的协定时,系统作为整体(事务中的组件)可以提供以下能力:(1)理解sla违反的影响;和(2)增强系统中的其他组件以恢复整体事务sla;和(3)实现步骤以进行补救。
[0083]
因此,考虑到这些变化和服务特征,边缘云710内的边缘计算可以提供用于实时或近乎实时服务于并且响应于使用情况805的多个应用(例如,对象跟踪、视频监控、所连接的汽车等)并满足对于这些多个应用的超低时延要求的能力。这些优势赋能归因于时延或其他限制而无法借助传统云计算的全新类的应用(虚拟网络功能(vnf)、功能即服务(faas)、边缘即服务(eaas)、标准过程等)。
[0084]
然而,随边缘计算的优势而来的是以下告诫。位于边缘处的设备一般是受资源约束的,并且因此对边缘资源的使用存在压力。典型地,通过存储器和存储资源的池化以用于由多个用户(租户)和设备使用解决该问题。边缘可能是受功率和冷却约束的,并且因此需要由正消耗最多功率的应用考虑功率使用。在这些池化存储器资源中可能存在固有的功率性能权衡,因为它们中的许多很可能使用新兴存储器技术,其中,更多的功率需要更大的存储器带宽。同样,因为边缘位置可能是无人化的,并且甚至可能需要受许可的接入(例如,当容纳于第三方位置中时),所以还需要改进的硬件安全性和信任根可信功能。这些问题在多租户、多拥有方或多接入设置中的边缘云710中被放大,其中,许多用户请求服务和应用,特别是随着网络使用动态地波动并且多个利益相关方的组成、使用情况和服务改变。
[0085]
在更一般的等级,边缘计算系统可以描述为涵盖边缘云710中进行操作的先前讨论的层(网络层800-840)处的任何数量的部署,其提供来自客户端和分布式计算设备的协调。一个或多个边缘网关节点、一个或多个边缘聚合节点以及一个或多个核心数据中心可以分布跨越网络的各个层,以通过或代表电信服务提供商(“telco”或“tsp”)、物联网服务提供商、云服务提供商(csp)、企业实体或任何其他数量的实体提供边缘计算系统的实现方式。例如,当受编排以满足服务目标时,可以动态地提供边缘计算系统的各种实现方式和配
置。
[0086]
与本文提供的示例一致,客户端计算节点可以体现为能够作为数据的生产者或消费者进行通信的任何类型的端点组件、设备、器具或其他事物。此外,边缘计算系统中所使用的标记“节点”或“设备”并不一定意指该节点或设备以客户端或代理/随从/跟随方角色进行操作;相反,边缘计算系统中的任何节点或设备指代包括分立的或连接的硬件或软件配置以促进或使用边缘云710的各自实体、节点或子系统。
[0087]
故此,边缘云710由受网络层810-830之间的边缘网关节点、边缘聚合节点或其他边缘计算节点操作并且处于其内的网络组件和功能特征形成。边缘云710可以体现为提供与本文讨论的有无线接入网(ran)能力的端点设备(例如,移动计算设备、iot设备、智能设备等)接近地定位的边缘计算和/或存储资源的任何类型的网络。换言之,边缘云710可以设想为连接端点设备和充当进入服务提供商核心网(包括移动运营商网络(例如,全球移动通信系统(gsm)网络、长期演进(lte)网络、5g/6g网络等))的入口点的传统网络接入点同时还提供存储和/或计算能力的“边缘”。也可以利用其他类型和形式的网络接入(例如,wi-fi、远距离无线网络、包括光网络的有线网络)代替这些3gpp运营商网络或与之组合。
[0088]
边缘云710的网络组件可以是服务器、多租户服务器、器具计算设备和/或任何其他类型的计算设备。例如,边缘云710可以包括器具计算设备,其为包括外壳、机壳、壳体或壳的自含式电子设备。在一些情况下,外壳可以关于便携性而受尺寸化,以使得其可以由人携带和/或运送。示例外壳可以包括形成部分地或完全地保护器具的内容物的一个或多个外表面的材料,其中,保护可以包括天气保护、危险环境保护(例如,emi、振动、极端温度)和/或赋能浸水性。示例外壳可以包括用于为固定和/或便携式实现方式提供功率的功率电路(例如,ac功率输入、dc功率输入、ac/dc或dc/ac转换器、功率调节器、变压器、充电电路、电池、有线输入和/或无线功率输入)。示例外壳和/或其表面可以包括或连接到安装硬件,以赋能对结构(例如,建筑物、电信结构(例如,杆、天线结构等)和/或机架(例如,服务器机架、刀片支架等))的附接。示例外壳和/或其表面可以支撑一个或多个传感器(例如,温度传感器、振动传感器、光传感器、声学传感器、电容传感器、接近度传感器等)。一个或多个这样的传感器可以包含于器具的表面中,由其承载,或以其他方式嵌入在器具的表面中和/或安装到器具的表面。示例外壳和/或其表面可以支撑机械连接性(例如,推进硬件(例如,轮、螺旋桨等)和/或铰接硬件(例如,机器人臂、可枢转配件等))。在一些情况下,传感器可以包括任何类型的输入设备(例如,用户接口硬件(例如,按钮、开关、拨盘、滑动件等))。在一些情况下,示例外壳包括包含于其中,由其承载,嵌入其中和/或附接至其的输出设备。输出设备可以包括显示器、触摸屏、灯、led、扬声器、i/o端口(例如,usb)等。在一些情况下,边缘设备是用于特定目的网络中的设备(例如,交通灯),但是可以具有可以出于其他目的而利用的处理和/或其他能力。这些边缘设备可以独立于其他连网设备,并且可以配备具有对于其主要目的合适的形数的外壳;也对于不干扰其主要任务的其他计算任务是可用的。边缘设备包括物联网设备。器具计算设备可以包括硬件和软件组件,以管理本地问题(例如,设备温度、振动、资源利用、更新、功率问题、实体和网络安全等)。结合图12b描述用于实现器具计算设备的示例硬件。边缘云710可以还包括一台或多台服务器和/或一台或多台多租户服务器。该服务器可以包括操作系统并且实现虚拟计算环境。虚拟计算环境可以包括管理(例如,量产、部署、销毁等)一个或多个虚拟机、一个或多个容器等的管理程序。这些虚拟计算
环境提供一个或多个应用和/或其他软件、代码或脚本可以在与一个或多个其他应用、软件、代码或脚本隔离的同时执行的执行环境。
[0089]
在图9中,(呈移动设备、计算机、自主车辆、商业计算设备、工业处理设备的形式的)各种客户端端点910交换对于端点网络聚合类型特定的请求和响应。例如,客户端端点910可以凭借通过驻地网络系统932交换请求和响应922而经由有线宽带网络获得网络接入。一些客户端端点910(例如,移动计算设备)可以凭借通过接入点(例如,蜂窝网络塔)934交换请求和响应924而经由无线宽带网络获得网络接入。一些客户端端点910(例如,自主车辆)可以通过位于街道的网络系统936经由无线车辆网络获得对于请求和响应926的网络接入。然而,无论网络接入的类型如何,tsp都可以在边缘云710内部署聚合点942、944以聚合流量和请求。因此,在边缘云710内,tsp可以(例如,在边缘聚合节点940处)部署各种计算和存储资源,以提供所请求的内容。边缘云710的边缘聚合节点940和其他系统连接到云或数据中心960,其使用回程网络950以履行来自云/数据中心的对网站、应用、数据库服务器等的更高时延请求边缘聚合节点940和聚合点942、944的附加或合并实例(包括单个服务器框架上部署的那些)也可以存在于边缘云710或tsp基础设施的其他区域内。在一些示例中,云或数据中心960、聚合节点940和/或系统932、934、936中的一个或多个可以实现图2的权重压缩器104,并且聚合节点940和/或系统932、934、936和/或端点910中的一个或多个可以实现图3的权重解压缩器114。
[0090]
图10是被构造为执行图4的指令以实现图1和/或图2的示例权重压缩器104的示例处理器平台1000的框图。处理器平台1000可以是例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,手机、智能手机、平板设备(例如,ipad
tm
)、个人数字助理(pda)、互联网器具或任何其他类型的计算设备。
[0091]
所示示例的处理器平台1000包括处理器1012。所示示例的处理器1012是硬件。例如,处理器1012可以由来自任何期望系列或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或控制器实现。硬件处理器1012可以是基于半导体(例如,基于硅)的设备。在该示例中,处理器1012实现图2的示例组件接口200、示例通道操作器202、示例比较器204和/或示例数据分组生成器206中的至少一个。
[0092]
所示示例的处理器1012包括本地存储器1013(例如,缓存)。所示示例的处理器1012经由总线1018与包括易失性存储器1014和非易失性存储器1016的主存储器进行通信。易失性存储器1014可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备实现。非易失性存储器1016可以由闪存和/或任何其他期望类型的存储设备实现。对主存储器1014、1016的存取由存储器控制器控制。
[0093]
所示示例的处理器平台1000还包括接口电路106。接口电路106可以由任何类型的接口标准(例如,以太网接口、通用串行总线(usb)、接口、近场通信(nfc)接口和/或pci高速接口)实现。
[0094]
在所示示例中,一个或多个输入设备1022连接到接口电路106。输入设备1022许可用户将数据和/或命令输入到处理器1012中。输入设备可以由例如音频传感器、麦克风、相机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球和/或语音识别系统实现。
[0095]
一个或多个输出设备1024也连接到所示示例的接口电路106。输出设备1024可以
例如由显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器(lcd)、阴极射线管显示器(crt)、平面开关(ips)显示器、触摸屏等)、触觉输出设备和/或扬声器实现。所示示例的接口电路106因此典型地包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。
[0096]
所示示例的接口电路106还包括通信设备(例如,发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口),以促进数据与外部机器(例如,任何种类的计算设备)经由网络1026的交换。通信可以经由例如以太网连接、数字用户线(dsl)连接、电话线连接、同轴电缆系统、卫星系统、直达线无线系统、蜂窝系统等。
[0097]
所示示例的处理器平台1000还包括用于存储软件和/或数据的一个或多个海量存储设备1028。这些海量存储设备1028的示例包括软盘驱动器、硬驱动器盘、压缩盘驱动器、蓝光盘驱动器、独立盘冗余阵列(raid)系统和数字多功能盘(dvd)驱动器。示例本地存储器1013、示例易失性存储器1014和/或示例非易失性存储器1016和/或一个或多个海量存储设备1028可以实现图1的示例存储108。
[0098]
图4中表示的机器可执行指令1032可以存储在海量存储设备1028中、易失性存储器1014中、非易失性存储器1016中和/或可拆卸非瞬时计算机可读存储介质(例如,cd或dvd)上。
[0099]
图11是被构造为执行图5的指令以实现图1和/或图3的示例权重解压缩器114的示例处理器平台1100的框图。处理器平台1100可以是例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,手机、智能手机、平板设备(例如,ipad
tm
)、个人数字助理(pda)、互联网器具或任何其他类型的计算设备。
[0100]
所示示例的处理器平台1100包括处理器1112。所示示例的处理器1112是硬件。例如,处理器1112可以由来自任何期望系列或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或控制器实现。硬件处理器1112可以是基于半导体(例如,基于硅)的设备。在该示例中,处理器1112实现图3的示例组件接口210、示例数据分组分析器212和/或示例权重应用器216中的至少一个。
[0101]
所示示例的处理器1112包括本地存储器1113(例如,缓存)。所示示例的处理器1112经由总线1118与包括易失性存储器1114和非易失性存储器1116的主存储器进行通信。易失性存储器1114可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备实现。非易失性存储器1116可以由闪存和/或任何其他期望类型的存储设备实现。对主存储器1114、1116的存取由存储器控制器控制。
[0102]
所示示例的处理器平台1100还包括接口电路122。接口电路122可以由任何类型的接口标准(例如,以太网接口、通用串行总线(usb)、接口、近场通信(nfc)接口和/或pci高速接口)实现。
[0103]
在所示示例中,一个或多个输入设备1122连接到接口电路122。输入设备1122许可用户将数据和/或命令输入到处理器1112中。输入设备可以由例如音频传感器、麦克风、相机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球和/或语音识别系统实现。
[0104]
一个或多个输出设备1124也连接到所示示例的接口电路122。输出设备1124可以例如由显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器(lcd)、阴极
射线管显示器(crt)、平面开关(ips)显示器、触摸屏等)、触觉输出设备和/或扬声器实现。所示示例的接口电路122因此典型地包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。
[0105]
所示示例的接口电路122还包括通信设备(例如,发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口),以促进数据与外部机器(例如,任何种类的计算设备)经由网络1126的交换。通信可以经由例如以太网连接、数字用户线(dsl)连接、电话线连接、同轴电缆系统、卫星系统、直达线无线系统、蜂窝系统等。
[0106]
所示示例的处理器平台1100还包括用于存储软件和/或数据的一个或多个海量存储设备1128。这些海量存储设备1128的示例包括软盘驱动器、硬驱动器盘、压缩盘驱动器、蓝光盘驱动器、独立盘冗余阵列(raid)系统和数字多功能盘(dvd)驱动器。示例本地存储器1113、示例易失性存储器1114和/或示例非易失性存储器1116和/或一个或多个海量存储设备1128可以实现图1的示例存储214。
[0107]
图5中表示的机器可执行指令1132可以存储在海量存储设备1128中、易失性存储器1114中、非易失性存储器1116中和/或可拆卸非瞬时计算机可读存储介质(例如,cd或dvd)上。
[0108]
在进一步的示例中,可以基于图12a和图12b中描绘的组件履行参照本边缘计算系统和环境讨论的任何计算节点或设备。相应边缘计算节点可以体现为一种类型的设备、器具、计算机或能够与其他边缘、连网或端点组件进行通信的其他“事物”。例如,边缘计算设备可以体现为个人计算机、服务器、智能电话、移动计算设备、智能器具、车载计算系统(例如,导航系统)、具有外部壳体、壳等的自含式设备或能够执行所描述的功能的其他设备或系统。
[0109]
在图12a中描绘的简化示例中,边缘计算节点1200包括计算引擎(本文也称为“计算电路”)1202、输入/输出(i/o)子系统1208、数据存储1210、通信电路子系统1212以及可选地一个或多个外围设备1214。在其他示例中,相应计算设备可以包括其他或附加组件(例如,典型地在计算机中发现的组件(例如,显示器、外围设备等))。附加地,在一些示例中,说明性组件中的一个或多个可以并入另一组件中或以其他方式形成另一组件的部分。
[0110]
计算节点1200可以体现为能够执行各种计算功能的任何类型的引擎、设备或设备集合。在一些示例中,计算节点1200可以体现为单个设备(例如,集成电路、嵌入式系统、现场可编程门阵列(fpga)、片上系统(soc)或其他集成系统或设备)。在说明性示例中,计算节点1200包括或体现为处理器1204和存储器1206。处理器1204可以体现为能够执行本文描述的功能(例如,执行应用)的任何类型的处理器。例如,处理器1204可以体现为多核处理器、微控制器、处理单元、专门或专用处理单元或其他处理器或处理/控制电路。在一些示例中,处理器1204实现图2和/或图3的示例权重压缩器104和/或示例权重解压缩器114。
[0111]
在一些示例中,处理器1204可以体现为、包括或耦合到fpga、专用集成电路(asic)、可重配置硬件或硬件电路或其他专用硬件,以促进执行本文所描述的功能。同样在一些示例中,处理器704可以体现为专用x处理单元(xpu)(也称为数据处理单元(dpu)、基础设施处理单元(ipu)或网络处理单元(npu))。这种xpu可以体现为独立电路或电路封装,集成于soc内,或与(例如,smartnic或增强型smartnic中的)连网电路、加速电路、存储设备或ai硬件(例如,gpu或编程式fpga)集成。这种xpu可以被设计为在cpu或通用处理硬件的外部
接收编程以处理一个或多个数据流并对于数据流执行特定任务和动作(例如,托管微服务、执行服务管理或编排、组织或管理服务器或数据中心硬件、管理服务网格,或收集并分发遥测)。然而,应理解,xpu、soc、cpu和处理器1204的其他变型可以彼此协调进行工作,以在计算节点1200内并代表计算节点1200执行许多类型的操作和指令。
[0112]
存储器1206可以被体现为能够执行本文描述功能的任何类型的易失性(例如,动态随机存取存储器(dram)等)或非易失性存储器或数据存储。易失性存储器可以是需要电力以维持由介质存储的数据状态的存储介质。易失性存储器的非限定性示例可以包括各种类型的随机存取存储器(ram)(例如,dram或静态随机存取存储器(sram))。可以在存储器模块中使用的一种特定类型的dram是同步动态随机存取存储器(sdram)。
[0113]
在示例中,存储器设备是块可寻址存储器设备(例如,基于nand或nor技术的存储器设备)。存储器设备可以还包括三维交叉点存储器设备(例如,3d xpoint
tm
存储器)或其他字节可寻址就地写入非易失性存储设备。存储器设备可以指代管芯自身和/或封装式存储器产品。在一些示例中,3d交叉点存储器(例如,3d xpoint
tm
存储器)可以包括无晶体管可堆叠交叉点架构,其中,存储器小单元坐落在字线和位线的交叉点处并且可以是可单独寻址的,并且其中,位存储基于体电阻的改变。在一些示例中,存储器1206的全部或一部分可以集成到处理器1204中。存储器1206可以存储在操作期间使用的各种软件和数据(例如,一个或多个应用、由应用操作的数据、库和驱动程序)。
[0114]
计算电路1202经由i/o子系统1208以通信方式耦合到计算节点1200的其他组件,i/o子系统1208可以体现为用于促进与计算电路1202(例如,与处理器1204和/或主存储器1206)和计算电路1202的其他组件的输入/输出操作的电路和/或组件。例如,i/o子系统1208可以体现为或以其他方式包括存储器控制器集线器、输入/输出控制集线器、集成传感器集线器、固件设备、通信链路(例如,点对点链路、总线链路、电线、电缆、光导、印制电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在一些示例中,i/o子系统1208可以形成片上系统(soc)的部分,并且连同处理器1204、存储器1206和计算电路1202的其他组件中的一个或多个一起合并到计算电路1202中。
[0115]
一个或多个说明性数据存储设备1210可以体现为被配置用于短期或长期数据存储的任何类型的设备(例如,存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其他数据存储设备)。单独数据存储设备1210可以包括存储用于数据存储设备1210的数据和固件代码的系统分区。单独数据存储设备1210可以还包括取决于例如计算节点的类型1200存储用于操作系统的数据文件和可执行文件的一个或多个操作系统分区。
[0116]
通信电路1212可以体现为能够赋能在计算电路1202与另一计算设备(例如,实现边缘计算系统的边缘网关)之间通过网络的通信的任何通信电路、设备或其集合。通信电路1212可以被配置为使用任何一种或多种通信技术(例如,有线或无线通信)和关联协议(例如,蜂窝网络协议(例如,3gpp 4g或5g标准)、无线局域网协议(例如,ieee)、无线广域网协议、以太网、蓝牙低能耗、iot协议(例如,ieee 802.15.4或)、低功耗广域网(lpwan)或低功耗广域(lpwa)协议等)以实行这种通信。
[0117]
说明性通信电路1212包括网络接口控制器(nic)1220,其也可以称为主机组构接口(hfi)。nic 1220可以体现为一个或多个加件板、子卡、网络接口卡、控制器芯片、芯片集或可以由计算节点1200用以与另一计算设备(例如,边缘网关节点)连接的其他设备。在一
些示例中,nic 1220可以体现为包括一个或多个处理器的片上系统(soc)的部分,或者包括于也包含一个或多个处理器的多芯片封装上。在一些示例中,nic 1220可以包括皆位于nic 1220本地的本地处理器(未示出)和/或本地存储器(未示出)。在这些示例中,nic 1220的本地处理器可以能够执行本文描述的计算电路1202的功能中的一个或多个。附加地或替代地,在这些示例中,nic 1220的本地存储器可以在板级、插槽级、芯片级和/或其他级集成到客户端计算节点的一个或多个组件中。
[0118]
附加地,在一些示例中,相应计算节点1200可以包括一个或多个外围设备1214。取决于计算节点1200的特定类型,这些外围设备1214可以包括计算设备或服务器中发现的任何类型的外围设备(例如,音频输入设备、显示器、其他输入/输出设备、接口设备和/或其他外围设备)。在进一步的示例中,计算节点1200可以由边缘计算系统中的相应边缘计算节点(无论是客户端、网关还是聚合节点)或类似形式的器具、计算机、子系统、电路或其他组件体现。
[0119]
在更加详述的示例中,图12b示出可以存在于边缘计算节点1250中以用于实现本文描述的技术(例如,操作、过程、方法和方法论)的组件的示例的框图。当实现为计算设备(例如,实现为移动设备、基站、服务器、网关等)或实现为其一部分时,该边缘计算节点1250提供节点1200的相应组件的更靠近的视图。边缘计算节点1250可以包括本文引用的硬件或逻辑组件的任何组合,并且它可以包括或耦合于可随边缘通信网络或这些网络的组合使用的任何设备。组件可以实现为边缘计算节点1250中适配的集成电路(ic)、其部分、分立式电子设备或其他模块、指令集、可编程逻辑或算法、硬件、硬件加速器、软件、固件或其组合,或者实现为以其他方式合并于更大系统的机架内的组件。
[0120]
边缘计算设备1250可以包括呈处理器1252的形式的处理电路,其可以是微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器、xpu/dpu/ipu/npu、专用处理单元、专门处理单元或其他已知处理元件。处理器1252可以是片上系统(soc)的部分,其中,处理器1252和其他组件形成为单个集成电路或单个封装(例如,来自加利福尼亚州圣克拉拉的英特尔公司的edison
tm
或galileo
tm
soc板)。作为示例,处理器1252可以包括基于architecture core
tm
的cpu处理器(例如,quark
tm
、atom
tm
、i3、i5、i7、i9或mcu类处理器、或可得自的另一该处理器)。然而,可以使用任何数量的其他处理器(例如,可得自加利福尼亚州桑尼维尔的advanced micro devices公司来自加利福尼亚州桑尼维尔的mips技术公司的基于的设计、授权自arm holdings有限公司或其客户、或其受许可人或采用方的基于的设计)。处理器可以包括例如来自公司的a5-a13处理器、来自技术公司的snapdragon
tm
处理器或来自texas instruments公司的omap
tm
处理器的单元。可以通过单插槽形数、多插槽形数或各种其他格式(包括:以有限硬件配置或包括少于图12b所示的所有元件的配置)提供处理器1252和伴随电路。在一些示例中,处理器1252实现图2和/或图3的示例权重压缩器104和/或示例权重解压缩器114。
[0121]
处理器1252可以通过互连1256(例如,总线)与系统存储器1254进行通信。可以使用任何数量的存储器设备以提供给定量的系统存储器。作为示例,存储器754可以是根据联合电子器件工程委员会(jedec)设计(例如,ddr或移动ddr标准(例如,lpddr、lpddr2、
lpddr3或lpddr4))的随机存取存储器(ram)。在特定示例中,存储器组件可以符合由jedec颁布的dram标准(例如,用于ddr sdram的jesd79f、用于ddr2 sdram的jesd79-2f、用于ddr3sdram的jesd79-3f、用于ddr4 sdram的jesd79-4a、用于低功耗ddr(lpddr)的jesd209、用于lpddr2的jesd209-2、用于lpddr3的jesd209-3和用于lpddr4的jesd209-4)。这些标准(和相似标准)可以称为基于ddr的标准,并且实现这些标准的存储设备的通信接口可以称为基于ddr的接口。在各种实现方式中,各自存储器设备可以是任何数量的不同封装类型(例如,单管芯封装(sdp)、双管芯封装(ddp)或四管芯封装(q17p))。在一些示例中,这些设备可以直接焊接到主板上以提供较低轮廓的解决方案,而在其他示例中,设备被配置作为一个或多个存储器模块,其进而由给定的连接器耦合到主板。可以使用任何数量的其他存储器实现方式(例如,其他类型的存储器模块(例如,包括但不限于microdimm或minidimm的不同种类的双列直插存储器模块(dimm)))。
[0122]
为了提供信息(例如,数据、应用、操作系统等)的永久存储,存储1258还可以经由互连1256耦合到处理器1252。在示例中,可以经由固态盘驱动器(ssdd)实现存储1258。可以用于存储1258的其他设备包括闪存卡(例如,安全数字(sd)卡、微sd卡、极限数字(xd)图片卡等)和通用串行总线(usb)闪存驱动器。在示例中,存储器设备可以是或可以包括使用硫属化物玻璃的存储器设备、多阈值级nand闪存、nor闪存、单级或多级相变存储器(pcm)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、反铁电存储器、合并忆阻器技术的磁阻式随机存取存储器(mram)存储器、电阻式存储器(包括金属氧化物基、氧空位基和导电桥随机存取存储器(cb-ram))、或自旋转移矩(stt)-mram)、基于自旋电子磁结存储器的设备、基于磁隧道结(mtj)的设备、基于dw(磁畴壁)和sot(自旋轨道转移)的设备、基于晶闸管的存储器设备、或上述任何组合、或其他存储器。
[0123]
在低功率实现方式中,存储1258可以是与处理器1252关联的管芯上存储器或寄存器。然而,在一些示例中,可以使用微硬盘驱动器(hdd)实现存储1258。此外,除了所描述的技术之外或代替所描述的技术,任何数量的新技术(例如,阻变存储器、相变存储器、全息存储器或化学存储器等)可以用于存储1258。
[0124]
组件可以通过互连1256进行通信。互连1256可以包括任何数量的技术,包括工业标准架构(isa)、扩展isa(eisa)、外围组件互连(pci)、外围组件互连扩展(pcix)、pci高速(pcie)或任何数量的其他技术。互连1256可以是例如在基于soc的系统中使用的专有总线。可以包括其他总线系统(例如,内部集成电路(i2c)接口、串行外围接口(spi)接口、点对点接口和电源总线等)。
[0125]
互连1256可以将处理器1252耦合到收发机1266,以用于与所连接的边缘设备1262的通信。收发机1266可以使用任何数量的频率和协议(例如,ieee 802.15.4标准下的2.4吉赫兹(ghz)传输、使用如由特别兴趣小组定义的低能耗(ble)标准或标准等)。被配置用于特定无线通信协议的任何数量的无线电可以用于对所连接的边缘设备1262的连接。例如,无线局域网(wlan)单元可以用以根据电气和电子工程师协会(ieee)802.11标准实现通信。此外,例如根据蜂窝或其他无线广域协议的无线广域通信可以经由无线广域网(wwan)单元而发生。
[0126]
无线网络收发机1266(或多个收发机)可以在不同范围关于通信使用多个标准或无线电。例如,边缘计算节点1250可以使用基于蓝牙低能耗(ble)的本地收发机或另一低功
率无线电与例如大约10米内的附近设备进行通信,以节省功率。可以通过zigbee或其他中等功率无线电到达例如大约50米内的更多远距的所连接的边缘设备1262。这两种通信技术可以在不同功率电平通过单个无线电而发生,或者可以通过分离的收发机(例如,使用ble的本地收发机和使用的分离网格收发机)而发生。
[0127]
可以包括无线网络收发机1266(例如,无线电收发机),以经由局域网协议或广域网协议与云(例如,边缘云1295)中的设备或服务进行通信。无线网络收发机1266可以是遵循ieee 802.15.4或ieee 802.15.4g标准等的低功耗广域(lpwa)收发机。边缘计算节点1250可以使用由semtech和lora联盟开发的lorawan
tm
(长距离广域网)在广阔区域上进行通信。本文描述的技术不限于这些技术,而是可以与实现长距离、低带宽通信的任何数量的其他云收发机(例如,sigfox)和其他技术一起使用。此外,可以使用ieee 802.15.4e规范中描述的其他通信技术(例如,时隙式信道跳转)。
[0128]
如本文所描述的那样,除了关于无线网络收发机1266提及的系统之外,还可以使用任何数量的其他无线通信和协议。例如,收发机1266可以包括使用扩频(spa/sas)通信以用于实现高速通信的蜂窝收发机。此外,可以使用任何数量的其他协议(例如,用于中速通信和提供网络通信的网络)。收发机1266可以包括本公开的结束进一步详述的与任何数量的3gpp(第三代伙伴项目)规范兼容的无线电(例如,长期演进(lte)和第五代(5g)通信系统)。可以包括网络接口控制器(nic)1268,以向边缘云1295的节点或向其他设备(例如,(例如,在网格中进行操作的)所连接的边缘设备1262)提供有线通信。有线通信可以提供以太网连接,或者可以基于其他类型的网络(例如,控制器区域网(can)、局部互连网络(lin)、devicenet、controlnet、data highway 、profibus或profinet等)。可以包括附加nic1268,以赋能连接到第二网络,例如,第一nic 1268通过以太网提供对云的通信,并且第二nic 1268通过另一类型的网络提供对其他设备的通信。
[0129]
给定从设备到另一组件或网络的各种类型的适用通信,由设备使用的适用通信电路可以包括或体现为组件1264、1266、1268或1270中的任何一个或多个。因此,在各种示例中,用于通信(例如,接收、发送等)的适用手段可以由该通信电路体现。
[0130]
边缘计算节点1250可以包括或耦合到加速电路1264,加速电路1264可以由一个或多个人工智能(ai)加速器、神经计算棒、神经形态硬件、fpga、gpu的布置、xpu/dpu/ipu/npu的布置、一个或多个soc、一个或多个cpu、一个或多个数字信号处理器、专用asic或被设计为完成一项或多项专门任务的其他形式的专用处理器或电路体现。这些任务可以包括ai处理(包括机器学习、训练、推理和分类操作)、视觉数据处理、网络数据处理、对象检测、规则分析等。这些任务可以还包括用于本文档其他地方讨论的服务管理和服务操作的特定边缘计算任务。
[0131]
互连1256可以将处理器1252耦合到用以连接附加设备或子系统的传感器集线器或外部接口1270。设备可以包括传感器1272(例如,加速度计、水平传感器、流量传感器、光传感器、相机传感器、温度传感器、全球导航系统(例如,gps)传感器、压力传感器、气压传感器等)。集线器或接口1270也可以用于将边缘计算节点1250连接到致动器1274(例如,电源开关、阀门致动器、可听声音生成器、视觉警告设备等)。
[0132]
在一些可选示例中,各种输入/输出(i/o)设备可以存在于边缘计算节点1250内或连接到边缘计算节点1250。例如,可以包括显示器或其他输出设备1284以显示信息(例如,
传感器读数或致动器位置)。可以包括输入设备1286(例如,触摸屏或小键盘),以接受输入。输出设备电路1284可以包括任何数量的形式的音频或视觉显示器,包括简单视觉输出(例如,二进制状态指示器(例如,发光二极管(led))和多字符视觉输出)或更复杂的输出(例如,显示器屏幕(例如,液晶显示器(lcd)屏幕)),其中,从边缘计算节点1250的操作生成或产生字符、图形、多媒体对象等的输出。显示器或控制台硬件在本系统的上下文中可以用以:提供输出并且接收边缘计算系统的输入;管理边缘计算系统的组件或服务;标识边缘计算组件或服务的状态;或进行任何其他数量的管理或行政功能或服务使用情况。
[0133]
电池1276可以对边缘计算节点1250供电,虽然在边缘计算节点1250安装在固定位置中的示例中,它可以具有耦合到电网的电源,或者电池可以用作备用或用于临时能力。电池1276可以是锂离子电池或金属-空气电池(例如,锌-空气电池、铝-空气电池、锂-空气电池等)。
[0134]
电池监控器/充电器1278可以包括于边缘计算节点1250中,以跟踪电池1276(如果包括)的充电状态(soch)。电池监控器/充电器1278可以用以监控电池1276的其他参数,以提供故障预测(例如,电池1276的健康状态(soh)和功能状态(sof))。电池监控器/充电器1278可以是电池监控集成电路(例如,来自linear technology的ltc4020或ltc2990、来自亚利桑那州凤凰城的on semiconductor的adt7488a或来自德克萨斯州达拉斯的texas instruments的ucd90xxx系列的ic)。电池监控器/充电器1278可以通过互连1256将关于电池1276的信息传递到处理器1252。电池监控器/充电器1278可以还包括模数(adc)转换器,其赋能处理器1252直接监控电池1276的电压或来自电池1276的电流。电池参数可以用以确定边缘计算节点1250可以执行的动作(例如,传输频率、网状网络操作、感测频率等)。
[0135]
电源块1280或耦合到电网的其他电源可以与电池监控器/充电器1278耦合以对电池1276进行充电。在一些示例中,可以用无线电力接收机代替电源块1280,以通过无线方式(例如,通过边缘计算节点1250中的环形天线)获得电力。无线电池充电电路(例如,来自加利福尼亚州米尔皮塔斯市的linear technology的ltc4020芯片等)可以包括于电池监控器/充电器1278中。可以基于电池1276的大小且因此所需的电流选择特定充电电路。可以使用由airfuel联盟颁布的airfuel标准、由无线电源联盟颁布的qi无线充电标准或由无线充电联盟颁布的rezence充电标准等执行充电。
[0136]
存储1258可以包括呈软件、固件或硬件命令的形式的指令1282,以实现本文描述的技术。虽然这些指令1282示出为存储器1254和存储1258中包括的代码块,但是可以理解,可以用(例如,内置到专用集成电路(asic)中的)硬连线电路代替任何代码块。
[0137]
在示例中,经由存储器1254、存储1258或处理器1252提供的指令1282可以体现为非瞬时机器可读介质1260,其包括用于引导处理器1252以在边缘计算节点1250中执行电子操作的代码。处理器1252可以通过互连1256存取非瞬时机器可读介质1260。例如,非瞬时机器可读介质1260可以由关于存储1258描述的设备体现,或者可以包括特定存储单元(例如,光盘、闪速驱动器或任何数量的其他硬件设备)。非瞬时机器可读介质1260可以包括用于引导处理器1252以执行特定动作序列或流程的指令,例如,如关于以上描绘的操作和功能的流程图和框图所描述的那样。如本文所使用的那样,术语“机器可读介质”和“计算机可读介质”是可互换的。
[0138]
同样在特定示例中,处理器1252上的指令1282(单独地,或与机器可读介质1260的
指令1282组合)可以配置可信执行环境(tee)1290的执行或操作。在示例中,tee 1290操作为对处理器1252可存取的受保护区域,以用于指令的安全执行和对数据的安全存取。例如,通过使用软件防护扩展(sgx)或硬件安全扩展、管理引擎(me)或融合安全可管理性引擎(csme),可以提供tee 1290的各种实现方式以及处理器1252或存储器1254中的伴随安全区域。可以通过tee 1290和处理器1252在设备1250中实现安全强化、硬件信任根以及受信任或受保护的操作的其他方面。
[0139]
图13示出用于向一个或多个设备(例如,示例处理器平台1300和/或示例所连接的边缘设备1250)分发软件(例如,图12的示例计算机可读指令1282)的示例软件分发平台1305。示例软件分发平台1305可以由能够存储软件并发送到其他计算设备(例如,第三方、图12的示例所连接的边缘设备1250)的任何计算机服务器、数据设施、云服务等实现。示例所连接的边缘设备可以是客户、客户端、管理设备(例如,服务器)、第三方(例如,拥有和/或操作软件分发平台1305的实体的客户)。示例所连接的边缘设备可以在商业和/或家庭自动化环境中进行操作。在一些示例中,第三方是软件(例如,图12的示例计算机可读指令1282)的开发者、销售者和/或许可者。第三方可以是购买和/或许可软件以用于使用和/或转售和/或再许可的客户、用户、零售商、oem等。在一些示例中,分布式软件使一个或多个用户接口(ui)和/或图形用户接口(gui)的显示标识地理上和/或逻辑上彼此分离的一个或多个设备(例如,所连接的边缘设备)(例如,特许有配水控制(例如,泵)、电力控制(例如,继电器)等的责任的实体上分离的iot设备)。
[0140]
在图13所示的示例中,软件分发平台1305包括一个或多个服务器和一个或多个存储设备。存储设备存储计算机可读指令1282,其可以对应于如上所述的图4和/或图5的示例计算机可读指令400、500。示例软件分发平台1305的一个或多个服务器与网络1310进行通信,网络1310可以对应于任何一个或多个互联网和/或任何上述示例网络1126。在一些示例中,作为商业交易的部分,一个或多个服务器响应于请求以将软件发送到请求方。对于软件的交付、销售和/或许可的支付可以由软件分发平台的一个或多个服务器和/或经由第三方支付实体处置。服务器赋能购买者和/或许可方以从软件分发平台1305下载计算机可读指令1282。例如,可以对应于图4和/或图5的示例计算机可读指令400、500的软件可以下载到示例处理器平台1300(例如,示例所连接的边缘设备),其将要执行计算机可读指令1282以实现图1-图3的权重压缩器104和/或权重解压缩器114。在一些示例中,软件分发平台1305的一个或多个服务器以通信方式连接到示例计算机可读指令1282的请求和传输必须通过的一个或多个安全域和/或安全设备。在一些示例中,软件分发平台1305的一个或多个服务器周期性地供给、发送和/或强制对软件(例如,图12的示例计算机可读指令1282)的更新,以确保改进、补丁、更新等分发到并且应用于终端用户设备处的软件。
[0141]
在图13所示的示例中,计算机可读指令1282以特定格式存储在软件分发平台1305的存储设备上。计算机可读指令的格式包括但不限于特定代码语言(例如,java、javascript、python、c、c#、sql、html等)和/或特定代码状态(例如,未编译的代码(例如,ascii)、解释型代码、链接型代码、可执行代码(例如,二进制)等)。在一些示例中,软件分发平台1305中存储的计算机可读指令1282当发送到示例处理器平台1300时呈第一格式。在一些示例中,第一格式是特定类型的处理器平台1300可以执行的可执行二进制。然而,在一些示例中,第一格式是需要一个或多个准备任务以将第一格式变换为第二格式以赋能示例处
理器平台1300上的执行的未编译的代码。例如,接收处理器平台1300可能需要编译呈第一格式的计算机可读指令1282以生成能够在处理器平台1300上执行的呈第二格式的可执行代码。在又其他示例中,第一格式是解释型代码,其在到达处理器平台1300时由解释器解释以促进指令的执行。
[0142]
本文公开用于压缩人工智能模型的权重的示例方法、装置、系统和制造物。进一步的示例及其组合包括以下:示例1包括:一种用于压缩对应于模型的数据分组的装置,所述装置包括:通道操作器,其用于操作受训练模型的通道的权重以生成受操作通道;比较器,其用于确定(a)所述通道或所述受操作通道中的至少一个与(b)参考通道之间的相似度;和数据分组生成器,其当所述相似度满足相似度阈值时,基于(a)所述通道或所述受操作通道中的所述至少一个与(b)所述参考通道之间的差生成受压缩数据分组。
[0143]
示例2包括:如示例1所述的装置,其中,所述通道操作器通过以下中的至少一个操作所述权重:在所述通道内移动所述权重,在所述通道内旋转所述权重,反转所述权重,或在所述通道内翻转所述权重。
[0144]
示例3包括:如示例1所述的装置,其中,所述比较器用于使用统计相似度运算确定所述相似度。
[0145]
示例4包括:如示例3所述的装置,其中,所述统计相似度运算是绝对差之和运算。
[0146]
示例5包括:如示例1所述的装置,其中,所述比较器用于基于成为最高的所述相似度选择所述通道或所述受操作通道中的所述至少一个,以及所述数据分组生成器用于基于所选择的通道生成所述受压缩数据。
[0147]
示例6包括:如示例1所述的装置,其中,所述参考通道是所述受训练模型的先前处理的通道。
[0148]
示例10包括:如示例1所述的装置,其中,所述受压缩数据分组包括指示所述参考通道的值和指示所操作的权重的操作的值。
[0149]
示例11包括:如示例1所述的装置,其中,所述受压缩数据分组包括呈压缩式格式的所述通道中的所述权重。
[0150]
示例9包括:一种用于解压缩对应于模型的数据分组的装置,所述装置包括:存储,其用于存储参考通道的第一权重;数据分组分析器,其用于对数据分组进行解码以标识:(a)用于在模型中实现的通道、(b)所述参考通道和(c)对应于所述通道的第二权重与所述参考通道的所述第一权重之间的差的差值;和权重应用器,其用于:存取所述参考通道的所述第一权重;基于所述差值调整所述参考通道的所述第一权重以生成第三权重;以及在所述模型中的所述通道处实现所述第三权重。
[0151]
示例10包括:如示例9所述的装置,其中,所述参考通道对应于与所述模型对应的先前解码的数据分组。
[0152]
示例11包括:如示例9所述的装置,其中,所述数据分组分析器用于对所述数据分组进行解码以标识所述通道的所述第二权重的操作。
[0153]
示例12包括:如示例11所述的装置,其中,所述权重应用器用于基于所述操作而操作调整后的第一权重以生成所述第三权重。
[0154]
示例13包括:如示例12所述的装置,其中,所述操作对应于以下中的至少一个:调整后的第一权重的偏移、所述通道内的所述调整后的第一权重的旋转、所述调整后的第一
权重的反转或所述通道内的所述调整后的第一权重的翻转。
[0155]
]示例14包括:如示例11所述的装置,所述权重应用器用于通过将所述第三权重应用于神经网络的神经元实现所述第三权重。
[0156]
示例15包括:如示例14所述的装置,其中,所述神经网络用于实现所述模型。
[0157]
示例16包括:如示例11所述的装置,其中,所述权重应用器用于在所述存储中结合所述通道存储所述第三权重。
[0158]
示例17包括:一种非瞬时计算机可读存储介质,包括指令,所述指令当执行时使一个或多个处理器至少:操作受训练模型的通道的权重以生成受操作通道;确定(a)所述通道或所述受操作通道中的至少一个与(b)参考通道之间的相似度;以及当所述相似度满足相似度阈值时,基于(a)所述通道或所述受操作通道中的所述至少一个与(b)所述参考通道之间的差生成受压缩数据分组。
[0159]
示例18包括:如示例17所述的计算机可读存储,其中,所述通道操作器通过以下中的至少一个操作所述权重:在所述通道内移动所述权重,在所述通道内旋转所述权重,反转所述权重,或在所述通道内翻转所述权重。
[0160]
示例19包括:如示例17所述的计算机可读存储,其中,所述指令使所述一个或多个处理器使用统计相似度运算确定所述相似度。
[0161]
示例20包括:如示例19所述的计算机可读存储,其中,所述统计相似度运算是绝对差之和运算。
[0162]
示例21包括:如示例17所述的计算机可读存储,其中,所述指令使所述一个或多个处理器:基于成为最高的相似度选择所述通道或所述受操作通道中的至少一个,以及基于所选择的通道生成所述受压缩数据。
[0163]
示例22包括:如示例17所述的计算机可读存储,其中,所述参考通道是所述受训练模型的先前处理的通道。
[0164]
示例23包括:如示例17所述的计算机可读存储,其中,所述受压缩数据分组包括指示所述参考通道的值和指示所操作的权重的操作的值。
[0165]
示例24包括:如示例17所述的计算机可读存储,其中,所述受压缩数据分组包括呈压缩式格式的所述通道中的所述权重。
[0166]
示例25包括:一种非瞬时计算机可读存储介质,包括指令,所述指令当执行时使一个或多个处理器至少:存储参考通道的第一权重;对数据分组进行解码以标识:(a)用于在模型中实现的通道、(b)所述参考通道和(c)对应于所述通道的第二权重与所述参考通道的所述第一权重之间的差的差值;存取所述参考通道的所述第一权重;基于所述差值调整所述参考通道的所述第一权重以生成第三权重;以及在所述模型中的所述通道处实现所述第三权重。
[0167]
示例26包括:如示例25所述的计算机可读存储,其中,所述参考通道对应于与所述模型对应的先前解码的数据分组。
[0168]
示例27包括:如示例25所述的计算机可读存储,其中,所述指令使所述一个或多个处理器对所述数据分组进行解码以标识所述通道的所述第二权重的操作。
[0169]
示例28包括:如示例27所述的计算机可读存储,其中,所述指令使所述一个或多个处理器基于所述操作而操作调整后的第一权重以生成所述第三权重。
[0170]
示例29包括:如示例28所述的计算机可读存储,其中,所述操作对应于以下中的至少一个:调整后的第一权重的偏移、所述通道内的所述调整后的第一权重的旋转、所述调整后的第一权重的反转或所述通道内的所述调整后的第一权重的翻转。
[0171]
示例30包括:如示例25所述的计算机可读存储,其中,所述指令使所述一个或多个处理器通过将所述第三权重应用于神经网络的神经元实现所述第三权重。
[0172]
示例31包括:如示例30所述的计算机可读存储,其中,所述指令使所述一个或多个处理器在所述神经网络中实现所述模型。
[0173]
示例32包括:如示例25所述的计算机可读存储,其中,所述指令使所述一个或多个处理器在存储中结合所述通道存储所述第三权重。
[0174]
示例33包括:一种用于压缩对应于模型的数据分组的方法,所述方法包括:通过用处理器执行指令,操作受训练模型的通道的权重以生成受操作通道;通过用所述处理器执行指令,确定(a)所述通道或所述受操作通道中的至少一个与(b)参考通道之间的相似度;以及当所述相似度满足相似度阈值时,通过用所述处理器执行指令,基于(a)所述通道或所述受操作通道中的所述至少一个与(b)所述参考通道之间的差生成受压缩数据分组。
[0175]
示例34包括:如示例33所述的方法,其中,所述通道操作器通过以下中的至少一个操作所述权重:在所述通道内移动所述权重,在所述通道内旋转所述权重,反转所述权重,或在所述通道内翻转所述权重。
[0176]
示例35包括:如示例33所述的方法,其中,所述相似度的所述确定包括:使用统计相似度运算。
[0177]
示例36包括:如示例35所述的方法,其中,所述统计相似度运算是绝对差之和运算。
[0178]
示例37包括:如示例33所述的方法,还包括:基于成为最高的所述相似度选择所述通道或所述受操作通道中的至少一个,所述受压缩数据的所述生成基于所选择的通道。
[0179]
示例38包括:如示例33所述的方法,其中,所述参考通道是所述受训练模型的先前处理的通道。
[0180]
示例39包括:如示例33所述的方法,其中,所述受压缩数据分组包括指示所述参考通道的值和指示所操作的权重的操作的值。
[0181]
示例40包括:如示例33所述的方法,其中,所述受压缩数据分组包括呈压缩式格式的所述通道中的所述权重。
[0182]
示例41包括:一种用于解压缩对应于模型的数据分组的方法,所述方法包括:存储参考通道的第一权重;通过用处理器执行指令,对数据分组进行解码以标识:(a)用于在模型中实现的通道、(b)所述参考通道和(c)对应于所述通道的第二权重与所述参考通道的所述第一权重之间的差的差值;存取所述参考通道的所述第一权重;通过用所述处理器执行指令,基于所述差值调整所述参考通道的所述第一权重以生成第三权重;以及在所述模型中的所述通道处实现所述第三权重。
[0183]
示例42包括:如示例41所述的方法,其中,所述参考通道对应于与所述模型对应的先前解码的数据分组。
[0184]
示例43包括:如示例41所述的方法,其中,所述数据分组的所述解码标识所述通道的所述第二权重的操作。
[0185]
示例44包括:如示例43所述的方法,还包括:基于所述操作而操作所述调整后的第一权重以生成所述第三权重。
[0186]
示例45包括:如示例44所述的方法,其中,所述操作对应于以下中的至少一个:调整后的第一权重的偏移、所述通道内的所述调整后的第一权重的旋转、所述调整后的第一权重的反转或所述通道内的所述调整后的第一权重的翻转。
[0187]
示例46包括:如示例41所述的方法,所述第三权重的所述实现包括:将所述第三权重应用于神经网络的神经元。
[0188]
示例47包括:如示例46所述的方法,其中,所述神经网络用于实现所述模型。
[0189]
示例48包括:如示例41所述的方法,还包括:在存储中结合所述通道存储所述第三权重。
[0190]
据上文应理解,已经公开压缩人工智能模型的权重的示例方法、装置和制造物。本文所公开的示例借助受训练神经网络的权重通道之间的时间相似度以基于差压缩通道数据。以此方式,部署并且实现受训练网络所需的无线带宽、存储器带宽、存储器大小和处理器资源得以减少。因此,所公开的方法、装置和制造物因此针对于计算机的功能化的一个或多个改进。
[0191]
虽然本文已经公开特定示例方法、装置和制造物,但是本专利的覆盖范围不限于此。相反,本专利涵盖完全落入本专利的权利要求范围内的所有方法、装置和制造物。
[0192]
所附权利要求由此合并到该具体实施方式中,其中,每项权利要求自身代表本公开的单独实施例。
再多了解一些

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

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

相关文献