CN116011511A - 用于功率感知硬件的机器学习模型缩放系统 - Google Patents
用于功率感知硬件的机器学习模型缩放系统 Download PDFInfo
- Publication number
- CN116011511A CN116011511A CN202211146718.2A CN202211146718A CN116011511A CN 116011511 A CN116011511 A CN 116011511A CN 202211146718 A CN202211146718 A CN 202211146718A CN 116011511 A CN116011511 A CN 116011511A
- Authority
- CN
- China
- Prior art keywords
- model
- platform
- models
- mlms
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/285—Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/776—Validation; Performance evaluation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及机器学习模型交换(MLMS)框架,其用于以能量和通信高效的方式来选择和互换机器学习(ML)模型,同时使ML模型适配于系统约束的实时变化。MLMS框架包括ML模型搜索策略,该ML模型搜索策略能够使ML模型灵活地适配于种类众多的计算系统和/或环境变化。通过使用基于相似性的ML模型选择过程来实现能量和通信效率,该基于相似性的ML模型选择过程从当前部署的ML模型中选择在经预训练参数中具有最多重叠的替换ML模型,以最小化存储器写操作开销。可描述和/或要求保护其它实施例。
Description
技术领域
本文中所描述的实施例一般涉及人工智能(AI)、机器学习(ML)和神经架构搜索(NAS)技术,并且尤其涉及用于硬件感知AI/ML模型搜索的技术。
背景技术
机器学习(ML)是对通过经验和通过使用数据而自动改进的计算机算法的研究。执行机器学习涉及创建统计模型(或简称为“模型”),所述统计模型被配置成处理数据以做出预测和/或推理。ML算法使用样本数据(称为“训练数据”)和/或基于过去的经验来建立模型,以便在没有被明确编程为这么做的情况下做出预测或决策。ML模型在资源消耗、速度、准确度和其它性能度量方面的效率部分基于用于ML模型的模型参数和/或超参数(hyperparameter)的数量和类型。对模型参数和/或超参数的改变能够极大地影响给定ML模型的性能。尤其是,减少参数的数量可能降低模型的准确度,但与模型具有大量参数相比,可允许模型运行得更快并使用更少的存储器。
ML模型设计是漫长的过程,其涉及用于调整给定ML模型的结构、参数和/或超参数的训练和验证的高度迭代循环。对于诸如深度神经网络(DNN)等的较大ML架构,训练和验证可能是特别耗时且资源密集的。传统的ML设计技术还可能需要超出许多用户的能力范围(beyond the reach of many users)的相对大量的计算资源。此外,在许多情况下,这些ML模型(例如,DNN)没有针对跨不同硬件平台(例如,不同的中央处理单元(CPU)、图形处理单元(GPU)、移动装置、片上系统(SoC)装置、物联网(IoT)装置等)的推理而特别优化。
代替手动设计ML模型,可使用神经架构搜索(NAS)算法来自动发现用于特定任务的理想ML模型(参见例如Abdelfattah等人的“Zero-Cost Proxies for LightweightNAS”,ArXiv abs/2101.08134(2021年1月20日)(“[Abdelfattah]”))。NAS是将架构工程自动化的过程。然而,NAS也可能是耗时且计算密集的。通常,使用NAS可能花费许多小时或许多天来完全训练单个神经网络(参见[Abdelfattah])。传统的NAS技术是耗时的并且在计算上渴求资源。
附图说明
在不一定按比例绘制的附图中,相似标号可描述不同视图中的类似组件。具有不同字母后缀的相似数字可以代表类似组件的不同实例。在附图的图中以示例而非限制的方式示出了一些实施例,在附图中:
图1描绘了根据各种实施例的机器学习模型交换(MLMS)系统的概述。图2描绘了根据各种实施例的子网编码的示例。图3描绘了根据各种实施例的示例MLMS。
图4描绘了示例神经网络(NN)。图5a示出了示例加速器架构。图5b示出了计算系统的示例组件。图6描绘了可用于实践本文中讨论的各种实施例的示例过程。
具体实施方式
本公开涉及用于优化人工智能(AI)和/或机器学习(ML)模型以减少资源消耗同时改进AI/ML模型性能的技术。特别地,本公开提供了ML架构搜索(MLAS)框架,其涉及通用的和/或硬件(HW)感知的ML架构。
AI/ML研究人员通过针对不同的应用领域(例如,计算机视觉、语言翻译等)创建新的ML模型和算法(例如,包括DNN)来不断推动最新技术发展水平。在许多情况下,ML模型是在研究人员当时可用的HW平台(例如,具有基于标准消费者的平台和/或图形处理单元(GPU)的桌上型计算机)上创建和评估的。此外,当评估ML模型时,研究人员可能仅考虑性能度量的狭窄集合(例如,准确度)。因此,ML模型针对研究人员在研究时可用的HW平台和研究的特定度量而被固有地优化。试图解决相同问题(曾针对其来设计ML模型)的用户可能只能访问与AI/ML研究人员使用的HW平台不同的HW平台,或者可能想到用于部署特定ML模型的特定HW平台。此外,一些用户可能对不同的和/或多个性能度量(例如,准确度、时延、功耗等)感兴趣。因而研究人员提供的ML模型的性能对于这些用户来说是次优的。
然而,针对各个HW平台和特定性能度量来优化ML模型是非常耗时的工作,这需要高度专业化的知识。由于HW平台的某些特性(例如,时钟速度、处理器核的数量、高速缓存存储器的数量等)将影响优化过程,这种类型的优化通常是在对HW平台有大量深入理解的情况下手动完成的。优化过程还被到ML模型的输入数据的特性(例如,批大小、图像大小、轮/迭代次数等)的影响。最后,对性能度量(例如,从时延到功耗)、输入数据特征(例如,增加批大小)、HW特征(例如,增加处理器核的数量)或HW平台(例如,从GPU到CPU)的任何改变都将需要再次开始这种昂贵的优化过程。
此外,AI/ML应用被用于跨越各种细分市场的种类众多的硬件平台,诸如云、边缘、和客户端装置。随着计算系统和网络技术变得更加普及,不同的计算系统/装置可以被部署在大量环境中,从而使这些系统/装置经受不同的环境条件。在第一示例中,随着部分服务器从云(例如,数据中心)迁移到边缘计算环境,这些服务器可能经历与数据中心内通常遇到的环境条件不同的环境条件。在另一示例中,诸如自主传感器之类的IoT装置可能需要被部署在来自工厂或制造厂内部、其它装置内部、在城市环境和荒野区域中的大量环境中。
虽然对于不同HW平台的ML模型优化有很强的行业和研究关注,但是对于应当如何以高效方式在特定HW平台内选择和部署(或互换)ML模型(例如,DNN)很少有关注。本公开提供了ML模型缩放(MLMS)系统,其以能量和通信高效的方式选择和部署ML模型,同时考虑系统/HW约束的实时变化。此外,本文中讨论的MLMS系统在适配种类众多的HW平台组合方面高度健壮。
目前,没有以能量和通信(数据传输)高效的方式直接解决选择和互换ML模型的现有解决方案。顺带地,对于模型适配,聚焦于关于变化的HW功率约束来适配ML模型的现有解决方案针对每个可能硬件功率模式定义了特定且单独的模型,例如,针对在低功率模式下操作的HW平台定义了具有较少参数的较小DNN模型,并针对在高功率模式下操作的HW平台定义了单独的较大模型(参见例如Howard等人的“Searching for MobileNet V3”,Proceedings of the IEEE/Computer Vision Foundation (CVF) Int'l Conference onComputer Vision (ICCV 2019),1314-1324页(2019年10月)(“[Howard]”),其内容特此通过引用以其整体而被合并)。然而,当考虑到HW配置中相对小的变化时,可能存在需要被搜索以用于训练这些单独ML模型的大约1019个不同解决方案。此外,ML模型参数计数与乘法和累加(MAC)运算相关,并且因此与功耗相关。因此,在现有解决方案中,每个硬件功率模式都将要求执行手动搜索或NAS。这些现有解决方案忽略了部署或替换ML模型(例如,DNN模型等)的能量/通信开销。没有当前现有解决方案适配如何基于变化的系统约束来部署和/或替换ML模型。
本公开提供了MLMS系统,其以能量和通信高效的方式选择和互换ML模型(例如子网),同时使ML模型(例如子网)适配于系统(HW平台)约束的实时(或接近实时)变化。本文中讨论的MLMS系统对于用于ML模型搜索(例如,NAS)和用于ML模型(例如,超网)权重共享的特定方法是不可知的。MLMS系统实现独特且健壮的ML模型搜索和交换策略,该ML模型搜索和交换策略可以灵活地使ML模型适配于种类众多的检测到的计算系统操作变化和/或环境变化。通过使用基于相似性的ML模型选择过程来实现能量和通信效率,其中MLMS系统从当前部署的ML模型(例如,经预训练的超网)中选择在经预训练参数中具有最多重叠的替换ML模型,以最小化存储器写操作开销。
本文中讨论的MLMS系统允许在动态变化的环境条件(例如,温度、电池电量)和HW配置(例如,所利用的核、功率模式等)下在HW平台上执行预测/推理任务,同时维持预测/推理结果的相同或相似性能水平(例如,准确度、时延等),就好像HW平台在更稳定的环境中操作和/或以静态HW配置操作一样。此外,本文中讨论的MLMS系统提供了相对低的动态功率签名(例如,在ML模型交换期间)以及在模型互换操作期间相对快的存储器写时间和/或模型加载时间。
MLMS系统从整体上使ML模型适配于广泛范围的AI/ML应用(例如,图像识别、分割、推荐、语言翻译等)和诸如功率、吞吐量、性能等各种关键性能指示符(KPI)的硬件场景。能量高效的ML模型交换的并入降低了AI/ML应用的数据传输成本(就资源消耗而言),并为资源受约束的HW平台(诸如,例如边缘计算节点、IoT装置、SoC和/或诸如此类)的功率和性能提供了独特的优势。此外,通过用本文中讨论的MLMS系统使弹性超网方法流水线化,实现了稳健且高度适配的ML模型交换能力,这将保证实时的(或接近实时的)针对宽范围的系统约束和配置的最优模型选择。
1.机器学习(ML)模型交换框架
1.1系统概况
图1示出了ML模型缩放(MLMS)系统100的主要组件和交互。MLMS系统100提供了整体系统,其以能量和通信高效的方式来选择和互换ML模型,而同时使模型适配系统约束、条件和/或配置的实时变化。MLMS系统100不知道正被操作/部署的特定ML模型。MLMS系统100通过使用基于相似性的子网选择过程来实现能量和通信效率,其中从子网池中选择在来自现有子网的经预训练参数中具有最多重叠的子网,以最小化存储器写操作开销。MLMS系统100包括MLMS引擎140和ML模型适配决策器120,该ML模型适配决策器120包括性能审计器125。MLMS引擎140包括MLMS接口(MLMSI)110、子网选择器141,所述子网选择器141经由ML模型适配决策器120向性能审计器125提供推理模型结果142和应用质量度量143。
在图1中,客户端装置101向MLMSI 110a提供ML配置(config)。在该示例中,客户端装置101被示为膝上型计算机,然而,客户端装置101可以是任何其它类型的客户端或用户装置,诸如本文中讨论的那些。为了与MLMSI 110a交互,客户端装置101操作MLMSI客户端应用(app)110b(以下称为“MLMSI 110b”),其可以是合适的客户端,诸如web浏览器、桌面app、移动app、web app和/或配置成经由合适的通信协议(例如,超文本传输协议(HTTP)(或其变体)、消息队列遥测传输(MQTT)、实时流传输协议(RTSP)和/或诸如此类)与MLMSI 110a一起操作的其它类似元件。MLMSI 110a允许客户端装置101的用户管理(或指定)MLMS系统100将如何搜索最优ML架构。
为了本公开的目的,术语“ML架构”可以指具有ML参数的特定集合的特定ML模型和/或配置成在特定HW平台上操作的这种ML模型。这里,ML参数的集合可以指“模型参数”(也简称为“参数”)和/或“超参数”。模型参数是经由训练而导出的参数,而超参数是其值被用于控制学习过程的各方面并且通常必须在运行ML模型之前设置的参数(例如,权重)。另外,为了本公开的目的,超参数可以被分类为架构超参数或训练超参数。架构超参数是与ML模型的架构方面相关的超参数,诸如例如DNN中的层数、DNN中的特定层类型(例如,卷积层、多层感知(MLP)层等)、输出通道的数量、内核大小和/或诸如此类。训练超参数是控制ML模型的训练过程的超参数,诸如例如,轮数、学习速率等。为了本公开的目的,如本文中所使用的术语“ML参数”可以指模型参数、超参数、或者模型参数和超参数两者,除非上下文另有规定。
MLMSI 110a是允许用户使用他们的MLMSI 110b向系统100提供输入的服务器侧app等。例如,MLMSI 110a和MLMSI 110b(统称为“MLMSI 110”)提供了允许ML模型设计者、开发者和/或其它类型的用户创建、编辑和/或操纵ML模型和/或ML应用的平台或框架。MLMSI110包括图形用户界面(GUI),其包括允许用户添加、更新和/或改变各种ML架构搜索参数和/或(经预训练的)超网和/或其它类似ML模型方面的各种图形元素/对象。MLMSI 110还允许客户端装置101的用户获得(例如,下载)由MLMS系统100发现的最优ML架构/模型。在一些实现中,MLMSI 110b可以是与命令行接口和/或与用于app开发的软件开发环境(SDE)、集成开发环境(IDE)、软件开发工具包(SDK)、软件开发平台(SDP)等相同或类似的开发环境。在各种实现中,MLMSI 110可以包括合适的文件传输机制或上载组件,其使得客户端装置101的用户能够向系统100提供ML配置。此外,MLMSI 110a包括应用编程接口(API)以访问系统100的其它子系统、管理ML搜索参数更新(例如,新的或更新的ML配置)、和调用任何支持的ML操作库(例如,如ML配置所指示的)。
在备选实现中,MLMS系统100可以由相同的计算节点(例如,客户端装置、边缘计算节点、网络接入节点、云服务、无人机、网络设备等)操作。在这些实现中,MLMSI 110可以是合适的应用编程接口(API)、中间件、或计算节点的一个或多个应用和/或组件之间的一些其它接口。
在各种实现中,ML配置包括参考ML模型130(在本文中称为“超网络130”或“超网130”)、应用质量度量、系统约束、和/或性能审计器设置。超网130可以是为特定AI/ML任务所配置和/或训练的ML模型,MLMS系统100将从该ML模型中发现或生成更小的和/或衍生的ML模型(在本文中称为“子网络”或“子网”)。超网可以包含过参数化(overparameterized)的操作集合,在MLMS系统100的操作期间,从该过参数化的操作集合中选择一个或多个子网135。作为示例,超网130可以是最终用户已经开发的相对较大、过参数化、和/或密集的ML模型,但是在计算、存储和/或功耗方面操作起来很昂贵。该超网130可以包括对预测和/或推理确定没有显著贡献的参数和/或权重,并且这些参数和/或权重对超网的整体计算复杂度和密度有贡献。因此,超网130包含一个或多个更小的子网(例如,图1中的子网池147中的子网135),所述一个或多个更小的子网当被孤立地训练时可以匹配和/或提供各种目标和/或性能度量的折衷,诸如原始超网130在被训练达相同数量的迭代或轮时的准确度和/或时延。鉴于子网135,超网130允许目标的许多折衷,但是在某些情况下,不能保证子网135在每个目标上都胜过超网130。在一些实现中,用户提供的超网130可被预训练,或者MLMS系统100可以训练超网130。此外,超网130可以是弹性超网130,其可以是具有弹性ML参数的超网。这里,“弹性度(elasticity)”是指超网130中的一个分量,并且其对应的算子可以在几个维度上变化。例如,在卷积网络中,这将允许选择不同内核大小(例如,弹性内核)、某组元素的深度(例如,弹性深度)以及所选分量的信道数量(例如,弹性宽度)。在本公开的上下文中,术语“弹性”指的是弹性超网130在不重启运行框架和/或运行ML模型的情况下添加和/或移除不同ML参数和/或子网135的能力。附加地或备选地,弹性子网135可以相对于另一个子网135“添加”或“移除”模型分量(例如,块深度)。弹性参数以这样的方式被矢量化,在所述方式中MLMS引擎140可以跟踪不同的子网135以执行能量高效的交换(参见例如下文讨论的图2)。在其它实现中,代替矢量化,可以使用其它数据结构(诸如计算图)。传统的方法通常针对不同的HW平台来训练和微调单独的ML模型,并且那些ML模型可以具有非常不同的架构配置、签名和/或指纹,这将使得高效的交换更难以执行得多。
应用质量度量是用于确定最终用户认为对跟踪很重要的一个或多个预测或推理结果指示符和/或此类结果的可接受界限/范围的值和/或阈值。预测或推理结果指示符可以基于用于触发MLMS的当前所部署的超网130或子网135的一个或多个性能度量。可用于应用质量度量的性能度量的示例在下文1.4节中讨论。
系统约束是用于确定最终用户认为对跟踪很重要的一个或多个系统状态变化和/或此类系统状态(操作)变化的可接受范围/界限的值和/或阈值。例如,系统约束可以指示一个或多个HW组件的特定电压或电流负载范围/值、存储器利用率范围/值、处理器利用率范围/值、功率/能量水平、操作系统(OS)状态/指示符、要满足(或不满足)的应用要求、和/或应该用于触发新MLMS的以上各项的(一个或多个)组合。可用于系统约束的不同类型的参数、度量和/或测量的示例在下文1.2节中讨论。
性能审计器设置是用于确定触发新搜索和MLMS的预测/推理结果142、质量度量143、和上下文信息105(例如,软件(SW)和/或HW条件)变化的组合的值、参数等。例如,性能审计器设置可以定义应当用于触发MLMS的应用质量度量和/或系统约束的不同组合。在一些实现中,性能审计器设置可以包括要由子网选择器141使用的不同搜索参数,以基于检测到的系统约束/操作变化来搜索合适的替换子网135。
附加地或备选地,ML配置包括值、变量、对象、数据、或其它信息,其包括或指示以下项中的期望的一项或多项:(一个或多个)AI/ML领域、(一个或多个)AI/ML任务、(一个或多个)合适的数据集、支持的库(例如PyTorch、TensorFlow、Apache™ MXNet等)、HW平台信息(HPI)、性能度量(例如,时延、准确度、功耗等)、ML参数、和/或其它类似的参数、信息和/或数据。
AI/ML任务可以描述要解决的期望问题,并且AI/ML领域可以描述要实现的期望目标。ML任务的示例包括聚类、分类、回归、异常检测、数据清理、自动化ML(autoML)、关联规则学习、强化学习、结构化预测、特征工程、特征学习、在线学习、监督学习、半监督学习(SSL)、无监督学习、机器学习排序(MLR)、语法归纳和/或诸如此类。ML领域包括推论和问题解决、知识表示和/或本体论、自动规划、自然语言处理(NLP)、感知(例如,计算机视觉、语音识别等)、自主运动和操纵(例如,定位、机器人移动/行进、自主驾驶等)、社交智能、强化学习等。
ML配置还可以包括适当格式化的数据集(或者对这种数据集的参考)。这里,适当格式化的数据集指的是对应于特定的ML架构、指定的AI/ML任务、和/或AI/ML领域的数据集。例如,将用于NLP领域的数据集将可能不同于用于计算机视觉领域的数据集。(一个或多个)数据集是数据的集合,其可以包括一个或多个数据库表、电子文档、文件、和/或其它数据结构。(一个或多个)数据集可以采用任何合适的格式,诸如列式文件格式(例如,分层数据格式(HDF)(包括HDF4、HDF5等);Hadoop分布式文件系统(HDFS);Apache® Parquet;petastorm等)、表格格式(例如逗号分隔值(csv)、电子表格文件格式(例如,xlsx等)等)、数据串行化格式(例如,Apache® Parquet、ASN.1、可扩展数据符号(EDN)、高效XML交换(EXI)、Google® Protobufs、Google® FlatBuffers、MessagePack、Ethereum®递归长度前缀(RLP)、XML、YAML等)、属性关系文件格式(ARFF)和/或诸如此类。附加地或备选地,(一个或多个)数据集可以特定于特定类型的AI/ML任务,诸如例如用于NLP任务的Stanford问答数据集(SQuAD)、Wikipedia®语料库、和/或多体裁自然语言推理(MNLI)数据集,用于计算机视觉(CV)领域的ImageNet和/或Cityscapes数据集,用于对象识别任务的经修改的国家标准与技术研究所(MNIST)数据库,和/或诸如此类。附加地或备选地,(一个或多个)数据集可以是由客户端装置101的用户收集和/或准备的(一个或多个)定制数据集。
另外,ML配置可以包括HPI。HPI可以包括用户打算在其上部署ML模型130/135的期望HW平台和/或各个HW组件的配置、规格、技术细节、特性和/或其它方面。在一些实现中,ML配置可以包括特定HW平台的特定标识符(ID)或信息(例如,系统型号、品牌或产品线、型号编号、世代或版本号、库存保管单位(SKU)、产品线后缀、序列号、装置ID、装置名称、产品ID等),其然后将被用于获得该平台针对ML架构搜索的相关信息。在这些实现的一个示例中,ML配置可以指定期望的系统或装置,诸如“Dell® PowerEdge® R750机架式服务器”、“Intel Quark™ SE微控制器C1000平台”、“Mobotix® M73”、“Samsung® Galaxy® S21Ultra 5G”等。附加地或备选地,诸如例如通过指定Google Cloud® Vertex AI、Amazon®SageMaker™、Microsoft® Azure机器学习和/或诸如此类,用户可以输入或以其它方式指示特定的云计算平台/服务(以及可选地,指示基于他们的云服务订阅、账户详情等的可用资源)。
附加地或备选地,可以为各个HW组件(例如,(一个或多个)处理器、存储器装置、芯片集、传感器类型等)提供类似的ID/信息,诸如例如特定处理器、各个存储器装置、各个存储装置、主板、基板、I/O装置、网卡等的ID/信息。附加地或备选地,ML配置可以包括不同HW装置或平台的规格,诸如例如处理器规格(例如,核或线程的数量、时钟频率或时钟速率(例如,基本时钟速率和/或提升的时钟速率)、高速缓存大小、总线速度、存储器带宽、热设计功率(TDP)等)、存储器装置规格(例如,容量、单元类型、棒类型、时钟频率等)、存储装置规格(例如,读/写速度、每秒输入/输出操作(IOPS)、存储容量、存储器单元类型等)和/或其它类似的规格(诸如用于制造集成电路的光刻或半导体技术)、和/或诸如此类。
在本文中讨论的任何实现中,ML配置可以是信息对象、文件、电子文档等,其采用任何合适的形式或格式,诸如例如合适的标记语言文档(例如,超文本标记语言(HTML)、可扩展标记语言(XML)、AI标记语言(AIML)、JavaScript对象符号(JSON)、通用标记语言(GML)、标准化GML(SGML)、预测模型标记语言(PMML)等)、模型文件格式(例如,Google®协议缓冲文件(protobufs,.pb文件扩展名)、Keras(.h5文件扩展名)、python(.pkl文件扩展名)、PyTorch模型(.pt文件扩展名)、核心ML模型(.mlmodel文件扩展名)等)、列式文件格式(例如,诸如本文中讨论的那些)、表格文件格式(例如,诸如本文中讨论的那些)和/或诸如此类。
在客户端装置101经由MLMSI 110向MLMS引擎140提供ML配置和/或超网130之后,超网130被放置在ML模型池145中。ML模型池145可以是MLMS引擎140的一部分,或者可以远离MLMS引擎140(例如,作为边缘计算服务和云计算服务的一部分和/或诸如此类)。在任一实现中,子网选择器141有权访问ML模型池145。ML模型池145还包含子网池147,所述子网池147包括各种子网135,其中每个子网135根据超网130来适配并针对目标HW平台的不同操作条件和/或系统约束而被优化。注意,为了清楚起见,在图1中没有标出所有的子网135。子网135可以根据以下项中讨论的过程从超网130生成:美国申请第17/497,736号(代理人案卷号136727-266649(AD8302-US))(“[AD8302-US]”)、于2021年10月19日提交的美国申请第17/505,568号(代理人案卷号136727-266650(AD8304-US))(“[AD8304-US]”)、于2021年10月18日提交的美国申请第17/504,282号(代理人案卷号136727-266651(AD8305-US))(“[AD8305-US]”)、和/或于2021年10月19日提交的美国专利第17/504,996号(代理人案卷号136727-266651(AD8308-US))(“[AD8308-US]”),其中每个申请的内容特此通过引用以其整体而被并入。附加地或备选地,ML模型优化(包括HW感知的模型压缩,诸如剪枝和量化)也可以用于生成子网135。这些方法提供了具有固定参数、FLOP和/或时延值的静态ML架构,其旨在在提供固定(不变)资源(在计算单元/张量运算、存储器、或核方面)的HW平台上执行。然而,诸如量化之类的方法可以结合子网选择141而与MLMS系统100集成(参见例如Zhu等人的“Trained Ternary Quantization”,arXiv:1612.01064v3 [cs.LG](2017年2月23日)、Rastegari等人的“XNOR-Net: Imagenet Classification Using Binary ConvolutionalNeural Networks”,European Conference on Computer Vision,Springer,Cham.,第525-542页(2016年10月08日)、Frankle等人的“The Lottery Ticket Hypothesis: FindingSparse,Trainable Neural Networks”,arXiv:1803.03635v5 [cs.LG](2019年3月4日)、和Han等人的“Deep Compression: Compressing Deep Neural Networks with Pruning,Trained Quantization and Huffman Coding”,arXiv:1510.00149v5 [cs.CV](2016年2月15日),其中每个文献的内容特此通过引用以其整体而被并入)。附加地或备选地,MLMS引擎140(或子网选择器141)可以使用一个或多个ML搜索功能和/或NAS算法(诸如本文中讨论的那些)来发现合适的子网135以填充子网池147。
ML配置和/或超网130的接收使得性能审计器125开始其(一个或多个)后台进程,以监测在其上部署超网130的HW平台(例如,计算节点550等)。在一些实现中,HW平台可以是客户端装置101。在一些实现中,HW平台可以是用户希望在其上部署ML模型或希望执行一些AI/ML任务的一些其它期望计算节点或装置。例如,客户端装置101的用户可以将HW平台指定为一个或多个IoT装置、自主传感器、无人机或机器人、自主交通工具、网络设备、网络元件(例如,(一个或多个)基站、(一个或多个)接入点、网关装置等)、边缘计算服务(例如,其中ML模型将是边缘应用)、云计算服务(例如,其中ML模型将被部署在虚拟机或容器中)和/或诸如此类。在一些实现中,客户端装置101的用户可以指定将在其上部署相同或不同ML模型的多个不同类型的HW平台。在一些实现中,HW平台可以是正操作MLMS引擎130的同一平台,例如当HW平台是高度专业化的无人机或自主交通工具时。
在操作期间,性能审计器125基于推理模型结果142和应用质量度量143来监测ML模型性能,推理模型结果142和应用质量度量143由MLMS引擎140经由ML模型适配决策器120的ML模型监测API来提供。性能审计器125使用该数据/信息在一个或多个期望性能度量(例如,准确度、时延、和/或其它类似的度量,诸如本文中讨论的那些)方面监测推理/预测性能的变化。性能度量包括对所生成/发现的ML模型/子网135的性能的某种形式的(一个或多个)测量。至少在一些实施例中,性能度量可以被称为性能指示符、关键性能指示符(KPI)和/或诸如此类。在下文第1.4节中讨论性能度量的示例。所监测的性能度量可以基于超网130的特定AI/ML任务和/或AI/ML领域。
性能审计器125还监测各种上下文信息105,包括操作模式(MO)106(也称为“全芯片功率模式106”等)、系统状态信息(SSI)107、物理环境信息(PEI)108和/或联网环境信息(NEI)109。上下文信息105的附加细节将在下文1.2节中更详细地讨论。
在各种实现中,各种上下文状态(例如,由度量142、143、MO 106、SSI 107、PEI 108和/或NEI 109指示的)相互通知,并且一起被性能审计器125用来确定超网130(或子网)正在其上操作的HW平台的状态变化。状态变化可以是如由ML配置中的各种度量/阈值/设置所定义的HW平台的一个或多个操作条件的任何变化。例如,当检测到推理时延的变化(例如,由度量142、143所指示的)和/或一个或多个HW组件传递了这个(这些)HW组件失去对几个核/线程的访问的信息(例如,由计算能力107所指示的)时,性能审计器125触发子网选择器141执行子网搜索,以针对新的硬件约束来寻找更好的替换子网。性能审计器125通过生成状态变化指示符127(也称为“触发127”)并将其直接或经由MLMSI 110a发送到子网选择器141来触发子网搜索。状态变化指示符127可以包括关于变化的HW条件和/或推理度量142、143的信息,以帮助子网选择器141从子网池147中标识合适的替换ML模型(例如子网)。
替换适配HW变化的ML模型(例如子网135)通常将需要大量的数据传输成本(例如动态写功率)来在模型之间传输权重/参数。为了进一步降低该数据传输成本,采用能量和通信高效的MLMS策略(下文讨论的),其减轻了数据传输成本和/或减轻了其它资源消耗开销。一旦选择了替换子网135,性能审计器125将针对可能触发下一次搜索的指示符而继续监测推理结果142、质量度量143、和上下文信息105(例如,HW平台状态等)。
子网选择器141可以使用一个或多个ML搜索功能和/或NAS算法来从子网池147中标识合适的子网147。在一些实现中,子网选择器141可以实现多目标进化型算法(MOEA),诸如在以下文献中讨论的那些:Huang等人的“Survey on Multi-Objective EvolutionaryAlgorithms”,IOP Conf. Series: J. of Physics: Conf. Series,第1288卷,第1期,第012057页(2019年8月1日)(“[Huang]”)和Deb的“Multi-Objective Optimization UsingEvolutionary Algorithms”,Indian Institute of Technology- Kanpur,Dept. ofMechanical Engineering,Kanpur, India,KanGAL报告第2011003号(2011年2月10日),可从https://www.egr.msu.edu/~kdeb/papers/k2011003.pdf获得(“[Deb1]”),其中每个文献的内容特此通过引用以其整体而被并入(还参见Eiben等人的“Introduction toevolutionary computing”,第二版,Springer,Berlin(2015)(“[Eiben]”),其内容特此通过引用以其整体而被并入)。附加地或备选地,子网选择器141可以使用多样性保持来实现增强的进化型算法搜索(参见例如Deb等人的“A Fast and Elitist MultiobjectiveGenetic Algorithm: NSGA-II”,IEEE Transactions on Evolutionary Computation,第6卷,第2期,(2002年4月)(“[Deb2]”)和Igel等人的“Covariance Matrix Adaptation forMulti-objective Optimization”,Evolutionary Computation,第15卷,第1期,第1-28页(2007年3月1日)(“[Igel]”),其中每个文献的内容特此通过引用以其整体而被并入)。附加地或备选地,子网选择器141可以使用非功能架构避免来实现增强的进化型算法搜索(参见例如Stanley等人的“Evolving Neural Networks Through Augmented Topologies”,Evolutionary Computation,第10卷,第2期,第99-127页(2002年6月10日)(“[Stanley]”),其内容特此通过引用以其整体而被并入)。附加地或备选地,子网选择器141可以实现强度Pareto进化型算法2(SPEA-2)(参见例如Zitzler等人的“SPEA2: Improving thePerformance of the Strength Pareto Evolutionary Algorithm”,技术报告103,Computer Engineering and Communication Networks Lab (TIK),Swiss FederalInstitute of Technology (ETH) Zurich,CH,Tik-Report 103(2001年5月),其内容特此通过引用以其整体而被并入)。附加地或备选地,子网选择器141可以实现非支配排序遗传算法-II(NSGA-II)(参见例如[Deb2]和Lu等人的“NSGA-Net: Neural ArchitectureSearch using Multi-Objective Genetic Algorithm”,arXiv:1810.03522v2 [cs.CV](2019年4月18日)(“[Lu]”,其内容特此通过引用以其整体而被并入和/或如在[AD8304-US]中讨论的增强的NSGA-II。附加地或备选地,子网选择器141可以实现如在[AD8308-US]中讨论的多目标ML架构搜索。
附加地或备选地,子网选择器141可以实现一些其它合适的NAS算法,诸如例如在以下无线中讨论的那些:Liu等人的“DARTS:Differentiable Architecture Search”,arXiv:1806.09055v2 [cs.LG](2019年4月23日)(“[Liu]”)、Cai等人的“Once-for-All:Train One Network and Specialize it for Efficient Deployment”arXiv:1908.09791v5 [cs.LG](2020年4月29日)(“[Cai1]”)以及Cai等人的“ProxylessNAS:Direct Neural Architecture Search on Target Task and Hardware”,arXiv:1812.00332v2 [cs.LG](2019年2月23日)(“[Cai2]”)、Wang等人的“HAT: Hardware-AwareTransformers for Efficient Natural Language Processing”,arXiv:2005.14187v1[cs.CL](2020年5月28日)(“[Wang]”)、Wang等人的“Multi-Objective NeuralArchitecture Search Based on Diverse Structures and Adaptive Recommendation”,arXiv:2007.02749v2 [cs.CV](2020年8月13日)(“[Wang2]”)、Guerrero-Viu等人的“Bagof Baselines for Multi-objective Joint Neural Architecture Search andHyperparameter Optimization”,arXiv:2105.01015v1 [cs.LG](2021年05月03日)(“[Guerrero-Viu]”)、Xie等人的“Weight-Sharing Neural Architecture Search: ABattle to Shrink the Optimization Gap”,arXiv:2008.01475v2 [cs.CV](2020年8月05日),其中每篇的内容特此通过引用以其整体而被并入。
尽管超网NAS方法有助于实时ML模型选择,但是各种ML模型搜索算法和/或其它NAS方法可以被替代。在一些实现中,由子网选择器141所使用的搜索算法是模块化且灵活的,其中不同的搜索功能(包括新的最新技术发展水平算法)可以容易地在MLMS引擎140中换入和换出。以这种方式,可以使用更好地适合于特定ML架构和/或特定类型的子网135的不同搜索功能,这可以节省计算资源和/或提供如何使用这些资源的效率。在一些实现中,最终用户(例如,客户端装置101的用户)可以在ML配置中指定它们希望用于选择过程的特定搜索功能/NAS算法。
1.2上下文信息
如先前所述,状态变化事件127可以基于性能审计器125的初始定义的阈值定义和/或值(例如,应用质量度量阈值、HW约束阈值和/或性能审计器设置)促成新的ML模型搜索和/或交换。当这发生时,开始新的子网搜索,继之以满足新的性能和/或HW约束准则的新子网选择(例如,通过子网选择器141)。例如,可以通过使所部署的ML应用适配诸如MO 106、SS1 107、PEI 108和/或NEI 109的类别的底层HW的动态状态的变化来改进所部署的ML应用的性能。新子网搜索的触发基于HW平台的上下文信息105。
上下文信息105可以基于当前系统上下文。HW平台的系统上下文(也称为“平台上下文”、“上下文信息”或简称为“上下文”)可以是关于HW平台如何操作和/或HW平台操作所处于的条件的任何类型的信息。系统上下文可以包括或指示HW平台的操作模式(例如MO106)、HW平台的系统状态(例如SSI 107)、HW平台的物理环境(例如PEI 108)和/或HW平台的联网环境(例如NEI 109)。附加地或备选地,上下文可以包括HW平台外部和内部的其它信息、数据、和/或可以从该信息和数据得出的结论。
MO 106(或“功率模式106”)(诸如睡眠模式、空闲模式、正常(唤醒)模式、突发等)在HW平台(例如固件等)上的电源设置中被定义,并且当满足某些条件或准则(例如不活动、一天中的时间、内部温度等)时被触发。
SSI 107可包括或指示关于HW平台(或HW平台的各个HW组件)的操作条件和/或硬件性能度量的数据,诸如例如各个组件的温度、组件负载、处理器性能、计算能力、存储器和/或存储装置利用率、存储器/存储装置空闲空间量、电源状态(例如功耗、电压水平、电流水平等)和/或电池状态(例如,可用电力/能量、电池的热数据等)、OS和/或应用参数和要求(诸如计算需求)、输入/输出特性、和交换数据量(上载或下载);应用或HW平台本身经历的过载情况;和/或诸如此类。计算能力指示可用核和/或线程的数量。可用核和/或线程的数量可由于功率模式或现场事件(诸如硬辐射事件、由诸如自热或电迁移等问题导致的硅缺陷、和/或诸如此类)而改变。
制造工艺(也称为“半导体工艺”)可以被认为是一种类型的SSI 107。半导体工艺是指芯片、集成电路、或其它HW元件的每个层上的特征的最小尺寸和间距的特定规则。半导体工艺和/或特定HW元件具有独特的硅老化效应(Vt),其随着时间而改变晶体管阈值电压,并因此改变功率和性能。此外,硅制造工艺偏差或工艺批次(例如,快速快速(FF)、慢速快速(SF)、慢速慢速(ss)、快速慢速(FS)、典型典型(TT))在晶圆测试(sort)和分拣(binning)期间是已知的,并且可以告知HW平台在互连和晶体管特性(例如,泄漏、电容等)方面的功率/性能特性。从该信息中,可以基于HW平台的年龄和硅制造工艺本身的各个方面来确定预期的功率使用和/或性能特性。
PEI 108可以包括或指示关于HW平台外部的元件的数据,包括各种组件和外围设备(诸如电池、传感器、致动器等),以及HW平台周围的环境,诸如例如当前(外部)温度、湿度、水分、海拔、环境光、环境声音/音量、与地理对象(例如,山)和/或人造对象(例如,建筑物、高速公路等)相关的信息/数据、给定位置的天气数据、和/或其它类似的环境测量。类似温度的环境状态具有硅功耗的指数效应,因为它们改变晶体管阈值电压和互连电阻。各种内部和外部传感器(诸如本文中讨论的那些)可以用于收集PEI 108。
NEI 108可以包括或指示关于HW平台连接到或能够连接/附接到的(一个或多个)网络的数据。作为示例,NEI 108可以包括以下项中的一项或多项:带宽(BW)、网络或小区负载、时延、抖动(jitter)、阿尔法公平性(“α公平性”)、往返程时间(RTT)、中断数量、数据分组的无序传递、传输功率、误比特率、误比特率(BER)、误块率(BLER)、分组延迟测量、分组丢失率、分组接收率(PRR)、分组丢弃率、数据量测量、网络连接性度量、数据传输速率、网络和/或会话参数(例如,网络ID/地址、会话ID、端口号等)、当前附接的网络的安全方面、端到端(e2e)延迟、信噪比(SNR)、信干噪比(SINR)、信号加噪声加失真对噪声加失真(SINAD)比、载波对干扰加噪声比(CINR)、加性高斯白噪声(AWGN)、每比特能量对噪声功率密度比(Eb/N0)、每比特能量对干扰功率密度比(Ec/I0)、峰均功率比(PAPR)、参考信号接收功率(RSRP)、接收信号强度指示符(RSSI)、参考信号接收质量(RSRQ)、信道质量指示符(CQI)相关测量、调制编码方案(MCS)相关测量、与(一个或多个)虚拟化资源相关的测量、服务质量(QoS)测量和/或QoS流度量、移动性管理(MM)信息、用于E-UTRAN或5G/NR的UE定位的小区帧的GNSS定时(例如,给定GNSS的AP或RAN节点参考时间和GNSS特定参考时间之间的定时)、GNSS码测量、GNSS载波相位测量和/或累积增量范围(ADR)、信道干扰测量、热噪声功率测量、接收干扰功率测量、和/或其它类似测量。RSRP、RSSI和/或RSRQ测量可以包括针对3GPP网络(例如,LTE或5G/NR)的小区特定参考信号、信道状态信息参考信号(CSI-RS)和/或同步信号(SS)或SS块的RSRP、RSSI和/或RSRQ测量,以及针对IEEE 802.11 WLAN/WiFi网络的各种信标、快速初始链路建立(FILS)发现帧、或探测响应帧的RSRP、RSSI和/或RSRQ测量。附加地或备选地,可以使用其它测量,诸如在3GPP TS 36.214 v16.2.0(2021-03-31)、3GPP TS 38.215v16.4.0(2020-12)、3GPP TS 28.552 v17.3.1(2021-06-24)、IEEE 802.11-2020“IEEEStandard for Information Technology--Telecommunications and InformationExchange between Systems - Local and Metropolitan Area Networks--SpecificRequirements - Part 11: Wireless LAN Medium Access Control (MAC) and PhysicalLayer (PHY) Specifications”(2021-02-26)和/或诸如此类中讨论的那些测量。
在一些实现中,上下文105可以基于对HW平台的操作状态的预评估,该预评估可以基于先前指示的上下文105。这可以涉及例如评估不同数据传输所需的计算和通信资源、阈值准则或期望的可靠性水平、计算节点能力的数量或类型(例如,由HW平台实现的RAT电路模块、存储器/存储装置容量、特定的处理器速度等)、操作约束(HW平台正在其下进行操作)的类型(例如,无线电条件和/或链路质量、周围环境条件(例如,温度、湿度、海拔等)、组件温度等)和/或诸如此类。
背景信息105可以由平台和/或环境感测机构来感测和/或收集。平台和/或环境感测机构可以包括系统监测器,该系统监测器被配置成监测HW平台的系统资源和性能,并标识关于由HW平台实现的HW和SW子系统的详细信息。系统监测器被配置成监测和编译由HW平台实现的关于已安装的HW装置(例如,嵌入或附接到HW平台的各个传感器和/或各个致动器)、驱动程序、应用、系统设置、系统SW程序、AI代理、内核扩展/模块等的信息。
在一些实现中,系统监测器监测并编译来自平台/系统感测机构的数据,所述平台/系统感测机构可以包括例如一个或多个内部组件的温度传感器(例如,处理器数字热传感器(DTS)、系统存储器管芯上热传感器(TSOD)、热电偶、电阻温度检测器(RTD)、热敏电阻、双极结型晶体管(BJT)等)、触摸传感器、加速度计、陀螺仪、高度计、水分传感器、湿度传感器、光传感器;环境光传感器、压力传感器、信号相关传感器(例如,红外(IR)、激光等)、用户存在检测(UPD)装置、平台功率传感器、压力传感器、磁力计、接近度传感器(例如,基于IR的)、生物统计传感器等。附加地或备选地,感测机构可以包括用于测量由HW平台产生或消耗的电力的电力感测元件,诸如例如机电电表、Seebeck效应装置、霍尔效应集成电路(IC)、光纤电流传感器(FOCS)、计量电路模块(包括例如数字信号处理器(DSP)、模数(ADC)转换器、专用微处理器)、和/或诸如此类。
附加地或备选地,系统监测器监测和编译由HW平台实现的关于嵌入或附接到HW平台的已安装硬件装置、驱动程序、应用、系统设置、系统软件程序、软件代理和/或AI代理、内核扩展/模块等的信息。所编译的信息指示:当前上下文信息105,包括例如系统状态;处理器的使用或利用率;处理器频率;处理器温度;当前正在运行的进程或任务;存储器使用、利用率和/或可用存储器空间;存储器自我监测分析和报告技术(SMART)指示符;系统正常运行时间;网络地址(例如,IP地址等);网络连接;电池充电;电池水平阈值;燃料水平;系统名称或(一个或多个)标识符;(一个或多个)用户标识符;用户权限;用户订阅数据;日期和时间;和/或其它类似的数据/信息,诸如前述的计算节点能力。系统监测器将系统信息编译成合适的格式(例如,纯文本、富文本格式(RTF)、XML、JSON等),并将所编译的信息输出到ML模型适配决策器120和/或性能审计器125。
超网类型系统提供了适合于前述上下文信息105的任何组合的健壮且精细粒度的各种子网选项147。一些上下文约束105随时间缓慢变化(例如,硅老化效应),而其它上下文约束是高度周期性的(例如,电池充电)。MLMS系统100的HW感知方面在于,MLMS系统100可用于通知哪个子网135将用于替换当前供应/实现的子网135。虽然本文中讨论的替换/交换算法(例如,参见下文表1)与找到最能量/通信高效子网135作为替换相关,但是上下文信息105可以附加地或备选地用于确定替换子网135的选择应该多严格。
1.3子网选择和交换策略
关于图2和图3示出并描述了用于使用基于相似性的子网选择过程来实时(或接近实时)选择和部署ML模型的能量和通信高效策略。在这些实施例中,在来自目标装置(例如,计算节点550)的现有子网135的经预训练参数中具有最多重叠的子网135。这些机制帮助目标装置适配于新的系统状态和/或HW条件/约束,而且还在将新的子网135写到存储器时限制数据传输资源消耗。首先,超网130提供各种子网选项147,这由图2展示。此外,能量和通信子网替换/交换策略通过对超网130执行ML模型搜索(例如,NAS等)开始,如图3中所示。
图2示出了根据各种实施例的超网权重共享/参数映射框架中的子网编码的示例。在Zhang等人的“Deeper Insights into Weight Sharing in Neural ArchitectureSearch”arXiv:2001.01431v1 [cs.LG](2020年1月6日)以及Li等人的“Geometry-AwareGradient Algorithms for Neural Architecture Search”,arXiv:2004.07802v5[cs.LG](2021年3月18日)中讨论了权重共享方法的方面,其中每个文献的内容特此通过引用以其整体而被并入。图2的示例基于MobileNetV3架构,这在[Howard]和[Cai1]中被讨论。尽管图2示出了基于MobileNetV3的超网参数映射示例,但是在其它实现中可以使用许多不同的排列、许多数据结构、和/或许多类型的超网130和/或子网135。
在图2中,用于图像分类的卷积神经网络(CNN)的计算图201包括不同块大小的各种卷积层,其被矢量化成包括内核分量、扩展比(或宽度)分量、和深度分量的矢量200。矢量化产生包括四十五个弹性参数的矢量200,如由图2所示。计算图201示出了各种层,其中每个层都根据其扩展比和内核大小而被标记。例如,“MB4 3x3”指示具有扩展比为4、内核大小为3x3的移动块。
矢量200中的每个深度分量表示CNN中的块,其中每个分量中的值表示每个块中的卷积层的数量。例如,第一块(
B 0)包括2个层,第二块(
B 1)包括3个层,第三块(
B 2)包括2个层,第四块(
B 3)包括4个层,并且第五块(
B 4)包括4个层。因此,矢量200的深度分量的值的集合包括值2、3或4(例如,在图2中由“深度={2,3,4}”所指示)。每个内核大小分量指示每个层的内核大小。例如,第一块中的第一层(索引0)具有内核大小为3,第三块中的第二层(索引9)具有内核大小为5,第五块中的第三层(索引18)具有内核大小为7等等。因此,矢量200的内核大小的值的集合包括值3、5或7(例如,在图2中由“内核大小={3,5,7}”所指示)。此外,每个扩展比(宽度)分量指示每个层的扩展比。例如,第一块中的第一层(索引0)具有扩展比(宽度)为4,第三块中的第二层(索引9)具有扩展比(宽度)为3,第五块中的第四层(索引18)具有扩展比(宽度)为6等等。因此,矢量200的扩展比分量的值的集合包括值3、4或6(例如,在图2中由“扩展比(宽度)={3,4,6}”所指示)。在图2的示例子网配置中,当块中存在小于最大值4个的层(例如,2个或3个层)时,获得未使用的参数(例如,由图2中的值“X”所指示)。这些未使用的参数对预测或推理确定没有显著贡献,并且可以被移除以减小ML模型的整体大小。
如从矢量200可以看出的,每个模型参数类型(例如,内核、宽度和深度)具有三个选项,这导致1019个可能的子网135组合。根据各种实施例,子网选择器141通过标识与当前子网135中的那些参数相同的参数来执行能量高效的子网交换。这里,子网选择器141可确定替换子网135来替换由矢量200所表示的当前子网135,将替换子网135转换成矢量,并且仅改变当前矢量200中与矢量化的替换子网135中的那些值不同的值。例如,如果矢量化的替换子网135在内核模型参数的索引0处具有值5,则子网选择器141可以用内核模型参数中的索引0处的新值“5”来替换当前值(例如,“3”)。然而,如果矢量化的替换子网135在内核模型参数中的索引0处具有值3,则子网选择器141可以不改变内核模型参数中的索引0处的当前值(例如,“3”)。以这些方式,子网选择器141不一定替换或寻找不同的地址来将新的值写入,这将动态写功率保持为最小。
图3示出了根据各种实施例的在执行子网搜索之后的效率感知子网模型选择的示例。超网搜索结果301示出了在子网搜索期间找到的所有发现的子网335,其包括现有超网330和候选替换子网340的集合(候选替换子网340的集合中的各个子网在本文中可以被称为“替换子网340”、“候选子网340”等)。这里,所发现的子网335采用Pareto前沿(或Pareto边界)的形式,其包括作为Pareto有效解的ML模型/子网340的集合。效率感知子网选择341包括矢量化的子网配置342(参见例如图2),其是来自候选替换子网340的集合的子网的矢量化版本。这些子网可以根据一个或多个超网参数而被矢量化。另外,还与矢量化的子网配置342相比较地示出了超网330的矢量化版本(矢量化的超网333)。
在实施例中,子网选择器141实现搜索功能和/或NAS算法以针对促成搜索的新上下文信息(例如,新HW配置)来标识为许多可能子网候选340。例如,如果处理器核计数可用性改变,并且现在现有子网135不是最优的,则新的搜索可以聚焦于满足如由系统输入(或ML配置)所定义的目标阈值的时延制度上。在所找到的可能候选子网340中,对与现有子网135最相关的候选340的集合中的子网340给与优先。最密切相关的子网340的确定是基于超网类型权重/参数共享方案,诸如先前关于图2所讨论的矢量化方案,其可用于计算候选340中的每个的总传输成本。具有最小总传输成本(例如,相对于其它候选子网340)的子网340被选为新的活动子网。
在各种实现中,目标HW平台可能是资源有限的,并且因此可能不能够支持多个替换模型权重。此外,在各种HW限制情况下,对支持各种模型类型的需求可能是过分存储器繁重的。在这样的情况下,可以使用在线替换策略来用新的替换模型权重交换现有模型。然而,这进而可以增加数据传输能量成本。为了限制数据传输能量,通过求解约束优化的优化替换或交换模型。表1示出了示例ML模型搜索和交换策略算法。
ML模型搜索和交换算法试图在替换子网340方面找到最接近的可能匹配,该替换子网340与其它候选子网340相比将引起最小量的数据传输能量消耗。对于这种情况,可以假设当前部署到HW平台的子网135(“所部署子网
f d ”)是已知的。ML模型搜索和交换策略算法具有两个阶段,包括作为候选替换模型搜索的阶段1(第2至9行),以及作为候选替换模型的选择函数模型的阶段2(第12至17行)。
在阶段1(第2至9行)中,子网选择器141发现候选子网340的集合,其具有相似的性能特性、被配置成解决相同或相似的AI/ML任务(或者在相同的AI/ML领域内)、并且满足与所部署子网
f d 相似的系统约束
C。约束
C是如当所部署子网
f d 被部署到HW平台时的HW平台的约束。这里,约束
C可以表示当部署所部署子网
f d 时的HW平台的特定系统上下文105(例如,各种上下文信息105的组合)(或者针对其来优化所部署子网
f d 的系统上下文105)。
当满足约束
C时,则在第6行,子网选择器141确定各个候选子网340(“替换子网
f j ”)的性能和所部署子网
f d 的性能。在第6行,如果所部署子网
f d 的性能和潜在替换子网
f j 的性能之间的差异在某个alpha边界内(性能差异裕度
α),则该替换子网
f j 被认为是所部署子网
f d 的合适替换子网
f j 。这是通过第6行中的第一个实参(argument)完成的(例如,“∣
n j
-
n d ∣≤
α”)。
第6行的第二个实参(例如,“(
f d -
f j )≤
H(
δ)”)确定潜在替换子网
f j 是否满足附加约束
H(
δ),其可以表示改变的系统上下文105。换句话说,第6行的第一个实参检查潜在替换子网
f j 是否表现地类似于所部署子网
f d ,并且第二个实参检查潜在替换子网
f j 是否满足由底层HW平台中的一些改变所施加的附加约束
H(
δ)。当潜在替换子网
f j 满足两个条件/实参时,则潜在替换子网
f j 被添加到候选子网340的集合(“
List model ”)。
List model 包含满足准确度以及部署约束
C(例如FLOP)和可能由于系统状态/条件(例如电池状态、温度等)的动态变化而产生的附加约束
H(
δ)两者的所有模型。当候选子网340的集合被决定时,子网选择器141进行到阶段2。
在阶段2(第12至17行)中,子网选择器141主要基于候选子网340的数据传输成本,从候选子网340的集合中的所有候选子网340中选择最优替换子网
f j 。子网选择器141在第12至17行确定候选子网340的集合中的哪个潜在替换子网
f j 应该被交换(供应)到目标HW装置。特别地,子网选择器141评估各个候选子网
f j 在被换入以用于所部署子网
f d 时的传输成本。具有最小数据传输成本的潜在替换子网
f j (
f send )最终由ML模型搜索和交换算法返回,并被部署到目标HW平台。
1.4性能度量
可以由MLMS引擎140和/或子网选择器141测量的性能度量可以基于(一个或多个)特定的AI/ML任务和/或一个或多个ML配置的其它输入/参数。性能度量可以包括基于模型的度量和基于平台的度量。基于模型的度量是与模型本身的性能相关的度量和/或不考虑底层HW平台的度量。基于平台的度量是与操作ML模型时的底层HW平台的性能相关的度量。
基于模型的度量可以基于特定类型的AI/ML模型和/或AI/ML领域。例如,可以针对基于回归的ML模型来预测回归相关度量。回归相关度量的示例包括误差值、平均误差、平均绝对误差(MAE)、平均倒数排名(MRR)、均方误差(MSE)、均方根误差(RMSE)、相关性系数(R)、决定系数(R2)、Golbraikh和Tropsha准则、和/或其它类似的回归相关度量,诸如在Naser等人的“Insights into Performance Fitness and Error Metrics for MachineLearning”,arXiv:2006.00887v1(2020年5月17日)(“[Naser]”)中讨论的那些,该文献特此通过引用以其整体而被并入。
在另一示例中,可以针对相关性有关度量来预测相关性有关度量。相关性有关度量的示例包括准确度、精确度(也称为阳性预测值(PPV))、平均精确度均值(mAP)、阴性预测值(NPV)、召回率(也称为真阳性率(TPR)或灵敏度)、特异性(也称为真阴性率(TNR)或选择性)、假阳性率、假阴性率、F分数(例如,F1分数、F2分数、Fβ分数等)、马修斯相关性系数(MCC)、标记性、接收者操作特征(ROC)、ROC曲线下面积(AUC)、距离分数、和/或其它类似的相关性有关度量,诸如在[Naser]中讨论的那些。
还可以预测附加的或备选的基于模型的度量,诸如例如累积增益(CG)、折损CG(DCG)、归一化DCG(NDCG)、信噪比(SNR)、峰值SNR(PSNR)、结构相似性(SSIM)、交并比(IoU)、困惑度、双语评估备案(BLEU)分数、开端分数(inception score)、Wasserstein度量、Fréchet开端距离(FID)、字符串度量、编辑距离、Levenshtein距离、Damerau-Levenshtein距离、评估实例的数量(例如,迭代、轮、或回(episode))、学习速率(例如,算法达到(收敛到)最优权重的速度)、学习速率衰减(或权重衰减)、计算的数量和/或类型、乘法和累加(MAC)的数量和/或类型、乘加(MAdd)运算的数量和/或类型、和/或与ML模型的性能相关的其它类似性能度量。
基于平台的度量的示例包括时延、响应时间、吞吐量(例如,处理器或平台/系统的处理工作的速率)、可用性和/或可靠性、功耗(例如,每瓦特性能等)、晶体管计数、执行时间(例如,获得预测、推理等的时间量等)、存储器占用空间(memory footprint)、存储器利用率、处理器利用率、处理器时间、计算数量、每秒指令数(IPS)、每秒浮点运算数(FLOPS)、和/或与ML模型和/或将用于操作ML模型的底层HW平台的性能相关的其它类似性能度量。
附加地或备选地,代理度量(例如,用作另一度量或属性的代替或替代的度量或属性)可以用于预测ML模型性能。对于任何前述性能度量,可以使用任何合适的数据集合和/或(一个或多个)测量机制来预测和/或测量这样的度量的总数、均值、和/或某种其它分布。
1.5示例用例
MLMS系统100可以用于各种场景,诸如当实时AI/ML应用任务需要由具有变化的系统状态/上下文(诸如计算和/或存储能力)的HW平台(例如,自主交通工具、IoT装置、边缘计算平台等)来执行时的不可预测现场场景。
另一用例涉及现场部署的系统,所述系统不具有到云或边缘管理系统的持续连接。在该示例中,被部署在仅具有电池和/或太阳能电源的远程位置中的传感器阵列和MLMS系统100可以是管理传感器阵列的各个方面的云或边缘管理系统的一部分。传感器阵列能够利用MLMS系统100的能量高效方面,因为它针对不同的功率模式(例如,晚上的低功率模式等)或导致计算带宽的损失的HW故障(例如,一个或多个处理器核的损失)来适配ML模型。
另一用例涉及远程操作的无人机,所述无人机将其大部分电力/能量存储在保持无人机操作所需的电池中,并且无人机需要尽可能高效地保存其电力/能量预算。在该示例实现中,MLMS引擎140可以作为无人机的子系统来操作。在该用例下,当电池低电量运行或不需要高精确度推理/预测时,MLMS系统100可以按比例缩小无人机的ML模型,以允许额外的能量节省,从而在需要电池充电之前延长无人机的操作时间。
另一用例包括具有图像捕获装置(例如,可见光摄像机或不可见光摄像机)的IoT装置,其操作对象识别ML模型。在该示例实现中,MLMS引擎140可以是与IoT装置通信地耦合的云计算服务或边缘计算网络的一部分。这里,MLMS引擎140基于从IoT装置获得的反馈而向IoT装置供应(例如,换入/换出)不同的子网。在该用例的一个示例中,IoT装置可以配备有第一子网,该第一子网被优化为在高可见度环境(例如,高水平的阳光)中操作,并且当IoT装置检测到低可见度条件(例如,夜晚、雨、雾等)时,对低可见度条件的指示被发送到MLMS引擎140,并且MLMS引擎140向IoT装置供应第二子网,该第二子网被优化为在低可见度条件下检测对象。在该示例中,可以针对不同的条件来优化不同的子网,例如,可以针对夜晚时间条件下的对象检测来优化一个子网,而可以针对下雨条件下的对象检测来优化另一个子网,并且可以针对雾天条件下的对象检测来优化又一个子网。
另一用例包括操作分布式学习和/或联合ML模型的边缘计算节点,其中边缘计算节点将学习任务分发给不同的客户端装置101和/或网络接入节点(NAN)(参见例如2020年12月26日提交的国际公开No.2021/158313(代理人案卷号No.AD4106-PCT),其内容特此通过引用以其整体而被并入。在该示例实现中,MLMS系统100可以是由边缘计算节点操作的(一个或多个)边缘应用和/或(一个或多个)服务。附加地或备选地,MLMS引擎140和性能审计器125可以是同一边缘应用(app)和/或服务的一部分,或者可以是被配置成经由一个或多个合适的边缘API彼此交互的分开的边缘应用/服务。在该示例用例中,MLMS引擎140基于从各种客户端装置101获得的反馈来供应(例如,换入/换出)联合ML模型130的不同子网135。反馈可以基于在当前或下一训练轮回、轮、回等中客户端装置101计算或以其它方式完成学习任务(例如,梯度等)的能力(或无能力);一个或多个信号强度和/或质量测量(例如,从客户端装置101、网络元件和/或核心网络功能获得的);关于当前或未来环境条件的数据/测量(例如,从客户端装置101、网络元件、核心网络功能、app服务器、云服务等获得的);和/或其它类似的测量和/或数据。
2.人工智能和机器学习方面
机器学习(ML)涉及使用示例(训练)数据和/或过去经验对计算系统进行编程以优化性能准则。ML是指通过使用算法和/或统计模型来分析数据中的模式并从数据中的模式得出推理,从而使用和开发能够在不遵循明确指令的情况下学习和适配的计算机系统。ML涉及使用算法来执行(一个或多个)特定任务,而不使用明确指令来执行(一个或多个)特定任务,而是依赖于学习到的模式和/或推理。ML使用统计学来建立(一个或多个)数学模型(也称为“ML模型”或简称为“模型”),以便基于样本数据(例如,训练数据)作出预测或决策。模型被定义为具有参数的集合,并且学习是执行计算机程序以使用训练数据或过去经验来优化模型的参数。经训练模型可以是基于输入数据集进行预测的预测性模型、从输入数据集获取知识的描述性模型、或预测性模型和描述性模型两者。一旦模型被学习(训练),它就可以被用来进行推理(例如,预测)。
ML算法对训练数据集执行训练过程,以估计底层ML模型。ML算法是从关于某个(某些)任务和某个(某些)性能测量/度量的经验中学习的计算机程序,并且ML模型是在用训练数据训练ML算法之后创建的对象或数据结构。换句话说,术语“ML模型”或“模型”可以描述用训练数据训练的ML算法的输出。在训练之后,ML模型可以用于对新数据集进行预测。附加地,在推理或预测生成期间,被单独训练的AI/ML模型可以在AI/ML流水线中被链接在一起。尽管术语“ML算法”指的是与术语“ML模型”不同的概念,但是为了本公开的目的,这些术语可以可互换地使用。对于本文中讨论的任何示例实施例,可以全部或部分地利用本文中讨论的任何ML技术及其变型和/或组合。
ML可以尤其需要获得和清理数据集、执行特征选择、选择ML算法、将数据集化分成训练数据和测试数据、训练模型(例如,使用所选择的ML算法)、测试模型、优化或调整模型、以及确定模型的度量。取决于用例和/或所使用的实现,这些任务中的一些任务可以是可选的或被省略。
ML算法接受可用于控制所得模型和训练过程的某些属性的模型参数(或简称为“参数”)和/或超参数。模型参数是在训练期间学习的参数、值、特性、配置变量、和/或属性。模型参数是模型在进行预测时通常需要的,并且它们的值定义了模型关于特定问题的技能。至少在一些实施例中,超参数是在训练过程期间不能学习的针对ML过程的特性、属性和/或参数。超参数通常在训练发生之前设置,并可在过程中用于帮助估计模型参数。
ML技术通常落入学习问题类别的以下主要类型:监督学习、无监督学习、和强化学习。监督学习涉及从包含输入和期望输出两者的数据集合中建立模型。无监督学习是旨在从未标记数据中学习用于描述隐藏结构的函数的ML任务。无监督学习涉及从只包含输入而不包含期望输出标签的数据集合中建立模型。强化学习(RL)是面向目标的学习技术,其中RL代理旨在通过与环境交互来优化长期目标。AI和ML的一些实现以模拟生物大脑工作的方式来使用数据和神经网络(NN)。这种实现的示例由图4示出。
图4示出了示例NN 400,其可以适合于供本文中讨论的各种实现的计算系统(或子系统)中的一个或多个所使用,部分地由HW加速器实现,和/或诸如此类。NN 400可以是深度神经网络(DNN),其用作计算节点或计算节点的网络的人工大脑,以处置非常大和复杂的观测空间。附加地或备选地,NN 400可以是某一其它类型的拓扑(或拓扑的组合),诸如卷积NN(CNN)、深度CNN(DCN)、循环NN(RNN)、长短期记忆(LSTM)网络、反卷积NN(DNN)、门控循环单元(GRU)、深度信念NN、前馈NN(FFN)、深度FNN(DFF)、深度堆叠网络、马尔可夫链、感知NN、贝叶斯网络(BN)或贝叶斯NN(BNN)、动态BN(DBN)、线性动态系统(LDS)、开关LDS(SLDS)、光学NN(ONN)、用于强化学习(RL)和/或深度RL(DRL)的NN、和/或诸如此类。NN通常用于监督学习,但也可用于无监督学习和/或RL。
NN 400可以包含各种ML技术,其中连接的人工神经元410的集合(松散地)对生物大脑中向其它神经元/节点410传送信号的神经元进行建模。神经元410也可以被称为节点410、处理元件(PE)410等。节点410之间的连接420(或边缘420)根据生物大脑的突触来(松散地)建模,并在节点410之间传达信号。注意,为了清楚起见,在图4中没有标记所有的神经元410和边缘420。
每个神经元410具有一个或多个输入并产生输出,该输出可以被发送到一个或多个其它神经元410(输入和输出可以被称为“信号”)。对输入层Lx的神经元410的输入可以是外部数据的样本的特征值(例如,输入变量xi)。输入变量xi可以被设置为包含相关数据(例如,观测结果、ML特征等)的矢量。对隐藏层La、Lb和Lc的隐藏单元410的输入可以基于其它神经元410的输出。输出层Ly的最终输出神经元410的输出(例如,输出变量yj)包括预测、包括推理和/或完成所期望/所配置任务。输出变量yj可以采用确定、推理、预测和/或评估的形式。附加地或备选地,输出变量yj可以被设置为包含相关数据(例如,确定、推理、预测、评估和/或诸如此类)的矢量。
在ML的上下文中,“ML特征”(或简称为“特征”)是被观测的现象的单个可测量属性或特性。通常使用数字/数(例如整数)、字符串、变量、序数、实数值、类别、和/或诸如此类来表示特征。附加地或备选地,ML特征是基于可被量化和记录的可观测现象的各个变量,其可以是独立变量。ML模型使用一个或多个特征来进行预测或推理。在一些实现中,新特征可以从旧特征中导出。
神经元410可以具有阈值,使得只有当聚合信号越过该阈值时才发送信号。节点410可以包括激活函数,其定义给定输入或输入集合时该节点410的输出。附加地或备选地,节点410可以包括传播函数,其根据节点410的前趋神经元410的输出及它们的连接420作为加权和来计算对神经元410的输入。偏置项也可以添加到传播函数的结果中。
NN 400还包括连接420,其中一些连接提供至少一个神经元410的输出作为对至少另一神经元410的输入。每个连接420可以被指派代表其相对重要性的权重。权重也可以随着学习进行而被调整。权重增加或减少连接420处的信号强度。
神经元410可以被聚合或分组到一个或多个层L中,其中不同的层L可以对它们的输入执行不同的变换。在图4中,NN 400包括输入层Lx,一个或多个隐藏层La、Lb和Lc,以及输出层Ly(其中a、b、c、x和y可以是数字),其中每个层L包括一个或多个神经元410。信号从第一层(例如,输入层L1)行进到最后层(例如,输出层Ly)(可能在多次穿过隐藏层La、Lb和Lc之后)。在图4中,输入层La接收输入变量xi的数据(其中i = 1,…,p,其中p是数字)。隐藏层La、Lb和Lc处理输入xi,并且最终,输出层Ly提供输出变量yj(其中j= 1,…,p’,其中p’是与p相同或不同的数字)。在图4的示例中,为了简化说明,在ANN 400中只有三个隐藏层La、Lb和Lc,然而,ANN 400可以包括比所示的隐藏层多很多(或更少)的隐藏层La、Lb和Lc。
3.示例硬件和软件配置和布置
图5a是根据各种实施例的示例加速器架构500。加速器架构500向应用逻辑512提供神经网络(NN)功能性,并且因此可以被称为NN加速器架构500、DNN加速器架构500、和/或诸如此类。
应用逻辑512可以包括用于执行规范功能的应用SW和/或HW组件。应用逻辑512将数据514转发给推理引擎516。推理引擎516是递送统一应用编程接口(API)的运行时间元件,该API将ANN(例如,(一个或多个)DNN等)推理与应用逻辑512集成,以向应用逻辑512提供结果518(或输出)。
为了提供推理,推理引擎516使用模型520,所述模型520控制如何对数据514进行DNN推理以生成结果518。具体地,模型520包括NN的层的拓扑。该拓扑包括接收数据514的输入层、输出结果518的输出层、以及提供数据514和结果518之间的处理的在输入和输出层之间的一个或多个隐藏层。拓扑可以被存储在合适的信息对象中,所述信息对象是诸如可扩展标记语言(XML)、JavaScript对象符号(JSON)和/或其它合适的数据结构、文件和/或诸如此类。在推理中使用DNN处理数据514时,模型520还可以包括用于任何层的结果的权重和/或偏置。
推理引擎516可以使用(一个或多个)HW单元522来实现和/或被连接到(一个或多个)HW单元522。至少在一些实施例中,推理引擎516是将逻辑规则应用于知识库以推断新信息的元件。至少在一些实施例中,知识库是用于存储由计算系统(例如,图5的计算节点550)所使用的复杂结构化和/或非结构化信息的任何技术。知识库可以包括存储装置、储存库、数据库管理系统、和/或其它类似元件。
此外,推理引擎516包括一个或多个加速器524,其使用一个或多个HW单元522为DNN推理提供HW加速。(一个或多个)加速器524是作为用于AI/ML应用和/或AI/ML任务的HW加速而特别制定/设计的(一个或多个)SW和/或HW元件。一个或多个加速器524可以包括采用多个突触结构525的形式的一个或多个处理元件(PE)阵列和/或乘法和累加(MAC)架构。(一个或多个)加速器524可以对应于下文描述的图5的加速电路模块564。
(一个或多个)HW单元522可以包括一个或多个处理器和/或一个或多个可编程装置。作为示例,处理器可以包括中央处理单元(CPU)、图形处理单元(GPU)、专用AI加速器专用集成电路(ASIC)、视觉处理单元(VPU)、张量处理单元(TPU)和/或边缘TPU、神经计算引擎(NCE)、像素视觉核(PVC)、光子集成电路(PIC)或光学/光子计算装置、和/或诸如此类。可编程装置可以包括例如逻辑阵列、可编程逻辑装置(PLD)(诸如复杂PLD(CPLD))、现场可编程门阵列(FPGA)、可编程ASIC、可编程片上系统(SoC)等。(一个或多个)处理器和/或可编程装置可以对应于图5的处理器电路模块552和/或加速电路模块564。
图5b示出了可存在于用于实现本文中所述技术(例如,操作、过程、方法、和方法论)的计算节点550中的组件的示例。图5b提供了当被实现为计算装置(例如,作为移动装置、基站、服务器计算机、网关、设备等)的一部分时的节点550的组件的视图。在一些实现中,计算节点550可以是在其上部署ML模型的HW平台,该ML模型根据本文中讨论的各种实施例可以由替换ML模型来替换。在一些实现中,计算节点550可以是客户端装置101。在一些实现中,计算节点550可以是应用服务器、边缘服务器、云计算节点、或被配置成操作MLMS系统100(或其部分)的其它类似装置/系统。在一个示例中,计算节点550可以是操作MLMSI 110b的应用服务器,并且另一计算节点550可以是操作MLMS引擎140和性能审计器125的边缘、云计算节点、或某一其它类型的节点。在另一示例中,计算节点550可以是操作MLMSI 110b的应用服务器,另一计算节点550可以是操作MLMS引擎140的边缘或云计算节点,并且又一计算节点550可以是操作性能审计器125的边缘或云计算节点。附加地或备选地,计算节点550可以是操作先前讨论的过程800中的一些或全部的应用服务器、边缘服务器、云计算节点等。计算节点550可以包括本文中所引用的HW或逻辑组件的任何组合,并且它可以包括或耦合于可与边缘通信网络或这样的网络的组合一起使用的任何装置。组件可以被实现为IC、IC的部分、分立电子装置、或其它模块、指令集、可编程逻辑或算法、HW、HW加速器、软件(SW)、固件、或其在计算节点550中适配的组合,或者被实现为以其它方式并入更大系统的机箱内的组件。对于一个实施例,至少一个处理器552可以与计算逻辑582封装在一起,并且配置成实践本文中描述的各种示例实施例的方面,以形成封装中系统(SiP)或片上系统(SoC)。
节点550包括采用一个或多个处理器552的形式的处理器电路模块。处理器电路模块552包括电路模块,诸如但不限于一个或多个处理器核和以下项中的一项或多项:高速缓存存储器、低压降电压调节器(LDO)、中断控制器、串行接口(诸如SPI、I2C或通用可编程串行接口电路)、实时时钟(RTC)、包括间隔和看门狗定时器的定时器计数器、通用I/O、存储器卡控制器(诸如安全数字/多媒体卡(SD/MMC)等)、接口、移动工业处理器接口(MIPI)接口和联合测试访问组(JTAG)测试访问端口。在一些实现中,处理器电路模块552可以包括一个或多个HW加速器(例如,与加速电路模块564相同或相似),其可以是微处理器、可编程处理装置(例如,FPGA、ASIC等)等。一个或多个加速器可以包括例如计算机视觉和/或深度学习加速器。在一些实现中,处理器电路模块552可以包括片上存储器电路模块,其可以包括任何合适的易失性和/或非易失性存储器,诸如DRAM、SRAM、EPROM、EEPROM、闪速存储器、固态存储器、和/或任何其它类型的存储器装置技术,诸如本文中讨论的那些。
处理器电路模块552可以包括例如一个或多个处理器核(CPU)、应用处理器、GPU、RISC处理器、Acorn RISC机器(ARM)处理器、CISC处理器、一个或多个DSP、一个或多个FPGA、一个或多个PLD、一个或多个ASIC、一个或多个基带处理器、一个或多个射频集成电路(RFIC)、一个或多个微处理器或控制器、多核处理器、多线程处理器、超低压处理器、嵌入式处理器、或任何其它已知的处理元件、或其任何合适的组合。处理器(或核)552可以与存储器/存储装置耦合或者可以包括存储器/存储装置,并且可以配置成执行存储在存储器/存储装置中的指令581,以使得各种应用或操作系统能够在平台550上运行。处理器(或核)552配置成操作应用SW来向平台550的用户提供特定服务。在一些实施例中,(一个或多个)处理器552可以是被配置(或可配置)成根据本文中各种实施例进行操作的(一个或多个)专用处理器/控制器。
作为示例,(一个或多个)处理器552可以包括基于Intel®架构Core™的处理器,诸如基于i3、i5、i7、i9的处理器;基于Intel®微控制器的处理器,诸如Quark™、Atom™或其它基于MCU的处理器;(一个或多个)Pentium®处理器、(一个或多个)Xeon®处理器、或可从加利福尼亚州圣克拉拉市的Intel®公司获得的其它此类处理器。然而,可以使用任何数量的其它处理器,诸如以下项中的一项或多项:Advanced Micro Devices(AMD)Zen®架构(诸如(一个或多个)Ryzen®或EPYC®处理器、加速处理单元(APU)、MxGPUs、(一个或多个)Epyc®处理器等);来自Apple®有限公司的(一个或多个)A5-A12和/或S1-S4处理器、来自Qualcomm®技术有限公司的(一个或多个)Snapdragon™或Centriq™处理器、TexasInstruments有限公司®的(一个或多个)开放多媒体应用平台(OMAP)™处理器;来自MIPS技术有限公司的基于MIPS的设计(诸如MIPS Warrior M级、Warrior I级和Warrior P级处理器);由ARM控股有限公司授权的基于ARM的设计(诸如ARM Cortex-A、Cortex-R和Cortex-M系列处理器);Cavium™有限公司提供的ThunderX2®;等等。在一些实现中,(一个或多个)处理器552可以是以下项的一部分:片上系统(SoC)、封装上系统(SiP)、多芯片封装(MCP)和/或诸如此类,其中(一个或多个)处理器552和其它组件被形成为单个集成电路或单个封装,诸如来自Intel®公司的Edison™或Galileo™ SoC板。在本公开的其它地方提到(一个或多个)处理器552的其它示例。
节点550可以包括或被耦合到加速电路模块564,所述加速电路模块564可以由一个或多个AI/ML加速器、神经计算棒、神经形态HW、FPGA、GPU的布置、一个或多个SOC(包括可编程SOC)、一个或多个CPU、一个或多个数字信号处理器、专用ASIC(包括可编程ASIC)、诸如复杂PLD(CPLD)或高复杂度PLD(HCPLD)之类的PLD、和/或被设计成完成一个或多个专门任务的其它形式的专门处理器或电路模块来体现。这些任务可以包括AI/ML处理(例如,包括训练、推理和分类操作)、视觉数据处理、网络数据处理、对象检测、规则分析等。在基于FPGA的实现中,加速电路模块564可以包括逻辑块或逻辑组构以及其它互连的资源,所述逻辑块或逻辑组构以及其它互连的资源可以被编程(配置)为执行各种功能,诸如本文中讨论的各种实施例中的过程、方法、功能等。在这样的实现中,加速电路模块564还可以包括用于在LUT等中存储逻辑块、逻辑组构、数据等的存储器单元(例如,EPROM、EEPROM、闪速存储器、静态存储器(例如,SRAM、反熔丝等))。
在一些实现中,处理器电路模块552和/或加速电路模块564可以包括为机器学习功能性(诸如用于操作执行ANN操作(诸如本文中所讨论的那些))特别制定的HW元件。在这些实现中,处理器电路模块552和/或加速电路模块564可以是或者可以包括AI引擎芯片,所述AI引擎芯片一旦加载有适当的权重和训练代码就可以运行许多不同种类的AI指令集。附加地或备选地,处理器电路模块552和/或加速电路模块564可以是或可以包括(一个或多个)AI加速器,其可以是为AI应用的HW加速所设计的前述HW加速器中的一个或多个。作为示例,这个(这些)处理器或加速器可以是以下项的集群:人工智能(AI)GPU、Google®有限公司开发的张量处理单元(TPU)、由AlphaICs®提供的Real AI处理器(RAPs™)、由Intel®公司提供的Nervana™神经网络处理器(NNP)、Intel® Movidius™ Myriad™ X视觉处理单元(VPU)、基于NVIDIA® PX™的GPU、由General Vision®提供的NM500芯片、由Tesla®有限公司提供的HW 3、由Adapteva®提供的基于Epiphany™的处理器等。在一些实施例中,处理器电路模块552和/或加速电路模块564和/或HW加速器电路模块可以被实现为(一个或多个)AI加速协处理器,诸如由Qualcomm®提供的Hexagon 685 DSP、由ImaginationTechnologies Limited®提供的PowerVR 2NX神经网络加速器(NNA)、Apple® A11或A12Bionic SoC内的神经引擎核、由Huawei®提供的HiSilicon Kirin 970内的神经处理单元(NPU)和/或诸如此类。在一些基于HW的实现中,节点550的各个子系统可以由被配置有适当的逻辑块、(一个或多个)比特流等的相应(一个或多个)AI加速协处理器、AI GPU、TPU或HW加速器(例如,FPGA、ASIC、DSP、SOC等)等来操作,以执行其相应功能。
节点550还包括系统存储器554。可以使用任意数量的存储器装置来提供给定量的系统存储器。作为示例,存储器554可以是或包括易失性存储器,诸如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、RAMBUS®动态随机存取存储器(RDRAM®)、和/或任何其它期望类型的易失性存储器装置。附加地或备选地,存储器554可以是或包括非易失性存储器,诸如只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、非易失性RAM、铁电RAM、相变存储器(PCM)、闪速存储器、和/或任何其它期望类型的非易失性存储器装置。对存储器554的存取由存储器控制器控制。各个存储器装置可以是任意数量的不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(QDP)。可以使用任何数量的其它存储器实现,诸如不同种类的双列直插式存储器模块(DIMM),包括但不限于微DIMM或迷你DIMM。
存储电路模块558提供诸如数据、应用、操作系统等信息的永久存储。在示例中,存储装置558可以经由固态硬盘驱动器(SSDD)和/或高速电可擦除存储器(通常称为“闪速存储器”)来实现。可用于存储装置558的其它装置包括闪速存储器卡(诸如SD卡、microSD卡、XD图片卡等)以及USB闪存驱动器。在示例中,存储器装置可以是或者可以包括使用硫族化物玻璃的存储器装置、多阈值级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、结合忆阻器技术的磁阻随机存取存储器(MRAM)存储器、相变RAM(PRAM)、电阻存储器(包括金属氧化物基极、氧空位基极和导电桥随机存取存储器(CB-RAM))、或自旋转移矩(STT)-MRAM、基于自旋电子磁结存储器的装置、基于磁隧穿结(MTJ)的装置、基于畴壁(DW)和自旋轨道转移(SOT)的装置、基于晶闸管的存储器装置、硬盘驱动器(HDD)、微型HDD、其组合、和/或任何其它存储器。存储器电路模块554和/或存储电路模块558还可以结合来自Intel®和Micron®的三维(3D)交叉点(XPOINT)存储器。
存储器电路模块554和/或存储电路模块558被配置成以SW、固件、微代码或HW级指令的形式存储计算逻辑583,以实现本文中描述的技术。可以采用计算逻辑583来存储编程指令的工作副本和/或永久副本或者用于创建编程指令的数据,以用于系统500的各种组件(例如,驱动程序、库、应用编程接口(API)等)、系统500的操作系统、一个或多个应用的操作,和/或以用于实行本文中讨论的实施例。计算逻辑583可以作为指令582或用于创建指令582的数据而被存储或加载到存储器电路模块554中,所述指令582或用于创建指令582的数据然后被处理器电路模块552存取以用于执行,从而实行本文中描述的功能。处理器电路模块552和/或加速电路模块564通过IX 556来存取存储器电路模块554和/或存储电路模块558。指令582引导处理器电路模块552执行特定的动作序列或流程,例如,如关于先前描绘的操作和功能性的(一个或多个)流程图和(一个或多个)框图所描述的。各种元件可由处理器电路模块552支持的汇编指令或高级语言来实现,所述汇编指令或高级语言可被编译成指令581或用于创建指令581的数据,以由处理器电路模块552执行。编程指令的永久副本可以在工厂或现场通过例如分发介质(未示出)、通过通信接口(例如,来自分发服务器(未示出))、空中下载(OTA)或其任意组合被置于存储电路模块558的永久存储装置中。
IX 556将处理器552耦合到通信电路模块566以用于与诸如远程服务器(未示出)等其它装置进行通信。通信电路模块566是HW元件或HW元件的集合,其用于通过一个或多个网络563进行通信和/或与其它装置进行通信。在一个示例中,通信电路模块566是或者包括收发器电路模块,其被配置成使用任意数量的频率和协议(诸如例如电气和电子工程师协会(IEEE)802.11(和/或其变体)、IEEE 802.15.4、Bluetooth®和/或Bluetooth®低能量(BLE)、ZigBee®、LoRaWAN™(远程广域网)、诸如3GPP LTE和/或第五代(5G)/新空口(NR)之类的蜂窝协议、和/或诸如此类)来实现无线通信。附加地或备选地,通信电路模块566是或者包括一个或多个网络接口控制器(NIC),其用于使用例如以太网连接、控制器域网(CAN)、本地互连网络(LIN)、DeviceNet、ControlNet、Data Highway+或PROFINET等来实现有线通信。在一些实施例中,通信电路模块566可以包括加速器524或以其它方式与加速器524耦合,所述加速器524包括一个或多个突触装置/结构525等,如先前所述。
IX 556还将处理器552耦合到接口电路模块570,接口电路模块570用于将节点550与一个或多个外部装置572连接。外部装置572可以包括例如传感器、致动器、定位电路模块(例如,全球导航卫星系统(GNSS)/全球定位系统(GPS)电路模块)、客户端装置、服务器、网络元件和/或网络设备(例如,交换机、中枢、路由器等)、(一个或多个)HW加速器500、集成光子装置(例如,光学神经网络(ONN)集成电路(IC)和/或诸如此类)和/或其它类似装置。
传感器包括装置、模块或子系统,其目的是检测其环境中的事件或变化,并将关于检测到的事件的信息(传感器数据)发送到某一其它装置、模块、子系统等。这样的传感器的示例尤其包括:惯性测量单元(IMU),其包括加速度计、陀螺仪、和/或磁力计;微机电系统(MEMS)或纳米机电系统(NEMS),其包括三轴加速度计、三轴陀螺仪、和/或磁力计;液位传感器(level sensor);流量传感器;温度传感器(例如,热敏电阻,包括用于测量内部组件的温度的传感器和用于测量计算节点550外部的温度的传感器);压力传感器;气压传感器;重力计;高度计;图像捕获装置(例如,摄像机);光探测和测距(激光雷达)传感器;接近度传感器(例如,红外辐射探测器等);深度传感器、环境光传感器;光学光传感器;超声波收发器;麦克风;等等。
致动器允许计算节点550改变其状态、位置和/或方向,或者移动或控制机构或系统。致动器包括用于移动或控制机构或系统的电气和/或机械装置,并将能量(例如,电流或移动的空气和/或液体)转换成某种运动。致动器可包括一个或多个电子(或电化学)装置,诸如压电双晶片、固态致动器、固态继电器(SSR)、基于形状记忆合金的致动器、基于电活性聚合物的致动器、继电器驱动器集成电路(IC)和/或诸如此类。致动器可以包括一个或多个机电装置,诸如气动致动器、液压致动器、机电开关(包括机电继电器(EMR))、马达(例如,DC马达、步进马达、伺服机构等)、电源开关、阀门致动器、轮、推进器、螺旋桨、爪、夹子、钩子、可听声音生成器、可视警告装置、和/或其它类似的机电组件。计算节点550可被配置成基于从服务提供商和/或各种客户端系统接收的一个或多个捕获的事件和/或指令或控制信号来操作一个或多个致动器。
在一些可选示例中,各种输入/输出(I/O)装置可以存在于节点550内或者连接到节点550,所述各种输入/输出(I/O)装置在图5中被称为输入电路模块586和输出电路模块584。输入电路模块586和输出电路模块584包括:被设计成使用户能够与平台550交互的一个或多个用户接口、和/或被设计成使外围组件能够与平台550交互的外围组件接口。输入电路模块586可以包括用于接受输入的任何物理或虚拟部件,尤其包括一个或多个物理或虚拟按钮(例如,重置按钮)、物理键盘、小键盘、鼠标、触摸板、触摸屏、麦克风、扫描仪、耳机、和/或诸如此类。可以包括输出电路模块584以示出信息或以其它方式传达信息,诸如传感器读数、(一个或多个)致动器位置、或其它类似信息。数据和/或图形可以被显示在输出电路模块584的一个或多个用户界面组件上。输出电路模块584可以包括任何数量和/或组合的音频或视觉显示器,尤其包括一个或多个简单的视觉输出/指示器(例如,二进制状态指示器(例如,发光二极管(LED))和多字符视觉输出,或者更复杂的输出,诸如显示装置或触摸屏(例如,液晶显示器(LCD)、LED显示器、量子点显示器、投影仪等),其中从平台550的操作中生成或产生字符、图形、多媒体对象等的输出。输出电路模块584还可以包括扬声器和/或其它音频发射装置、(一个或多个)打印机、和/或诸如此类。附加地或备选地,(一个或多个)传感器可以用作输入电路模块584(例如,图像捕获装置、运动捕获装置等),并且一个或多个致动器可以用作输出装置电路模块584(例如,用于提供触觉反馈的致动器等)。外围组件接口可以包括但不限于非易失性存储器端口、USB端口、音频插孔、电源接口等。在本系统的上下文中,显示器或控制台HW可以用于提供边缘计算系统的输出和接收边缘计算系统的输入;用于管理边缘计算系统的组件或服务;标识边缘计算组件或服务的状态;或者用于进行任何其它数量的管理或监管功能或服务用例。
节点550的组件可以通过互连(IX)556进行通信。IX 556可以包括任意数量的技术,包括工业标准架构(ISA)和/或扩展ISA(EISA)、FASTBUS、低引脚数(LPC)总线、内部集成电路(I2C)、串行外围接口(SPI)、电源管理总线(PMBus)、外围组件IX(PCI)、PCI快速(PCIe)、PCI扩展(PCIx)、Intel®快速通道IX(QPI)、Intel®超级通道IX(UPI)、Intel®加速器链路、计算快速链路(CXL)、相干加速器处理器接口(CAPI)和/或OpenCAPI、Intel®全路径架构(OPA)、RapidIO™、用于加速器的高速缓存一致性互联(CCIX)、Gen-Z联盟、HyperTransport和/或闪电数据传输(LDT)、由NVIDIA®提供的NVLink、InfiniBand(IB)、时间触发协议(TTP)、FlexRay、PROFIBUS、以太网、通用串行总线(USB)、点对点接口\和/或任何数量的其它IX技术。IX 556可以是例如在基于SoC的系统中使用的专用总线。
取决于计算节点550是用作固定计算装置(例如,数据中心中的服务器计算机、工作站、桌上型计算机等)还是移动计算装置(例如,智能手机、平板计算装置、膝上型计算机、游戏控制台、IoT装置等),计算节点550的元件的数量、能力和/或容量可以变化。在各种实现中,计算节点550可以包括以下项的一个或多个组件:数据中心(诸如一个或多个服务器和/或交换机(或交换机组构))、桌上型计算机、工作站、膝上型计算机、智能手机、平板电脑、数码相机、智能设备、智能家庭中枢、网络设备和/或处理数据的任何其它装置/系统。
在一个示例实现中,计算节点550可以是设备计算装置,或者可以是设备计算装置的一部分,所述设备计算装置是包括外壳、机箱、箱体、或壳体的自含式电子装置。在一些情况下,外壳可为了便携性来定尺寸,使得它可以由人类携带和/或运输。附加地或备选地,外壳可以是适合于安装在交通工具中或户外位置(例如,电线杆、建筑物的侧面、在树上或岩石上、和/或诸如此类)中的较小模块。示例外壳可包括形成一个或多个外表面的材料,所述一个或多个外表面部分或全部保护设备的内容物,其中保护可包括天气保护、危险环境保护(例如,EMI、振动、极端温度)和/或允许浸没。示例外壳可以包括为固定和/或便携式实现来提供电力的电源电路模块,诸如AC电力输入、DC电力输入、(一个或多个)AC/DC或DC/AC转换器、电力调节器、变压器、充电电路模块、电池、有线输入和/或无线电力输入。较小的模块化实现还可以包括用于无线通信的可延伸或嵌入式天线布置。示例外壳和/或其表面可以包括或连接到安装HW,以能够附接到诸如建筑物、电信结构(例如,杆、天线结构等)和/或机架(例如,服务器机架、刀片安装架等)之类的结构。示例外壳和/或其表面可以支持一个或多个传感器(例如,温度传感器、振动传感器、光传感器、声传感器、电容传感器、接近度传感器等)。一个或多个这样的传感器可以被包含在表面中、由表面承载、或以其它方式嵌入在表面中和/或安装到设备的表面。示例外壳和/或其表面可以支持机械连接性,诸如推进HW(例如,轮、螺旋桨等)和/或铰接HW(例如,机器人臂、可枢转附件等)。在一些情况下,传感器可以包括任何类型的输入装置,诸如用户接口HW(例如,按钮、开关、拨号盘、滑块等)。在一些情况下,示例外壳包括被包含在其中、由其承载、嵌入在其中、和/或附接到其的输出装置。输出装置可以包括显示器、触摸屏、灯、LED、扬声器、I/O端口(例如,USB、Lightning、以太网等)。在一些情况下,计算节点550可以被部署在网络中以用于特定目的(例如,交通灯、路边单元、监视摄像机、IoT装置、和/或自主传感器等),但是可以具有可用于其它目的的处理和/或其它能力。这样的计算节点550可以独立于其它联网装置,并且可以配备有具有适合于其主要目的的形状因子的外壳;但仍可用于不干扰其主要任务的其它计算任务。计算节点550可以包括HW和SW组件来管理本地问题,诸如装置温度、振动、资源利用、更新、电源问题、物理和网络安全等。根据本文中讨论的各种实施例,用于管理本地问题的这些HW和SW组件可以用于适配正由计算节点550操作的ML模型。
在另一示例实现中,计算节点550可以是或者可以被包括在一个或多个服务器中。这样的服务器可以包括操作系统并实现虚拟计算环境。虚拟计算环境可以包括管理(例如,产生、部署、销毁等)一个或多个虚拟机、一个或多个容器等的管理程序。这样的虚拟计算环境提供执行环境,在其中一个或多个应用和/或其它SW、代码、或脚本可以在与一个或多个其它应用、SW、代码、或脚本隔离的同时执行。
4.示例实现
图6描绘了用于执行机器学习模型交换(MLMS)策略的过程600。过程600可以由实现MLMS系统100的计算节点执行。过程600在操作601开始,其中计算节点获得当前在其上部署ML模型的HW平台的上下文信息105。当前部署的ML模型可以是超网130或从超网130得出的特定子网135,并且HW平台可以是计算节点本身或另一计算节点。在操作602,计算节点基于当前部署的ML模型的操作来获得ML模型相关数据。ML模型相关数据可包括由当前部署的ML模型生成的推理结果142和/或基于推理结果142的质量/性能度量143。
在操作603,计算节点确定是否已经检测到HW平台的操作变化。该确定至少部分基于上下文信息105和ML模型相关数据与所预定和/或所配置的阈值(例如,ML配置中的应用质量度量、系统约束、和性能审计器设置)的比较。如果没有检测到HW平台的操作变化,则计算节点循环回到操作601以获得新的上下文信息,并且然后在操作602获得新的ML模型相关数据。如果检测到HW平台的操作变化,则计算节点进行到操作604,以从候选ML模型340的集合中确定或标识替换ML模型(例如,另一子网135),以替换当前部署的ML模型。优化替换ML模型以用于在具有检测到的操作变化的HW平台上操作。替换ML模型的确定/标识可以通过执行由上述表1所示的ML模型搜索和交换策略算法来完成。在操作605,计算节点向HW平台提供所确定/标识的替换ML模型。在操作605之后,计算节点进行回到操作601以获得新的上下文信息,并且然后在操作602获得新的ML模型相关数据。
本申请提供了如下的技术方案:
技术方案1. 一种作为机器学习模型交换(MLMS)系统而采用的设备,所述设备包括:
接口电路模块,所述接口电路模块用于获得硬件(HW)平台的上下文信息,机器学习(ML)模型当前被部署在所述HW平台上;以及
处理器电路模块,所述处理器电路模块被连接到所述接口电路模块,所述处理器电路模块将:
基于所述HW平台的所述上下文信息并基于由所当前部署的ML模型所生成的推理结果来检测所述HW平台的状态变化,
触发MLMS引擎以执行MLMS,其中所述MLMS涉及用替换ML模型来替换所当前部署的ML模型,并且当所述HW平台正在由所述上下文信息所指示的一个或多个约束下操作时,所述替换ML模型被优化以用于在所述HW平台上运行,使得与正在所述一个或多个约束下在所述HW平台上运行的所当前部署的ML模型的性能相比,所述替换ML模型将以一个或多个改进的性能度量在所述一个或多个约束下在所述HW平台上运行,以及
向所述HW平台供应所述替换ML模型。
技术方案2. 如技术方案1所述的设备,其中,所述处理器电路模块还将操作所述MLMS引擎来执行所述MLMS。
技术方案3. 如技术方案2所述的设备,其中,为了执行所述MLMS,所述处理器电路模块还将操作所述MLMS引擎来执行神经架构搜索(NAS)算法以发现所述替换ML模型。
技术方案4. 如技术方案2所述的设备,其中,在部署所当前部署的ML模型之前,所述接口电路模块将获得参考ML模型,并且所述处理器电路模块还将:
通过针对所述HW平台的多个不同操作条件中的每个操作条件而优化所述参考ML模型来生成ML模型的集合,其中ML模型的所述集合中的一个或多个ML模型相比所述参考ML模型具有更少的参数,并且所当前部署的ML模型在ML模型的所生成集合中;以及
存储ML模型的所述集合,其中所述替换ML模型在ML模型的所存储集合中。
技术方案5. 如技术方案4所述的设备,其中,为了执行所述MLMS,所述处理器电路模块还将操作所述MLMS引擎以:
在ML模型的所存储集合中发现满足所述HW平台的第一系统约束和所述HW平台的第二系统约束的候选ML模型的集合,其中:
所述第一系统约束表示当所当前部署的ML模型被部署时的所述HW平台的系统上下文,以及
所述第二系统约束表示基于所检测到的状态变化的所述HW平台的系统上下文;
对于候选ML模型的所述集合中的每个候选ML模型,确定数据传输成本,所述数据传输成本是用候选ML模型的所述集合中的对应候选ML模型替换所当前部署的ML模型所需的计算资源量;以及
从候选ML模型的所述集合中选择具有最低数据传输成本的候选ML模型作为所述替换ML模型。
技术方案6. 如技术方案1所述的设备,其中,所述接口电路模块还将获得ML配置,其中所述ML配置包括用于触发所述MLMS的执行的阈值。
技术方案7. 如技术方案6所述的设备,其中,用于触发所述MLMS的执行的所述阈值包括应用质量度量,其中所述应用质量度量包括所当前部署的ML模型的性能度量阈值,在达到或超过所述性能度量阈值时,触发所述MLMS的所述执行。
技术方案8. 如技术方案6所述的设备,其中,用于触发所述MLMS的执行的所述阈值包括系统约束,其中所述系统约束包括所述HW平台的一个或多个系统参数的阈值,在达到或超过所述阈值时,触发所述MLMS的所述执行。
技术方案9. 如技术方案1所述的设备,其中,所述上下文信息包括所述HW平台的操作的当前模式,并且所述HW平台的操作的所述当前模式包括以下项之一:睡眠模式、空闲模式、唤醒模式、和突发。
技术方案10. 如技术方案1所述的设备,其中,所述上下文信息包括所述HW平台的系统状态信息(SSI),并且所述SSI包括以下项中的一项或多项:所述HW平台的各个HW组件的温度、计算能力、存储器利用率、电源状态信息、操作系统信息、和所述各个HW组件的半导体工艺。
技术方案11. 如技术方案1所述的设备,其中,所述上下文信息包括关于所述HW平台周围的环境的物理环境信息(PEI),并且所述PEI包括以下项中的一项或多项:所述HW平台的位置的当前温度、湿度、水分、海拔、环境光、环境音量、和天气数据。
技术方案12. 如技术方案1所述的设备,其中,所述上下文信息包括所述HW平台的联网环境信息(NEI),并且所述NEI包括以下项中的一项或多项:信道状态条件、网络连接性度量、数据传输速率、和网络参数。
技术方案13. 如技术方案1所述的设备,其中,所述设备是所述HW平台,或者所述设备是所述HW平台的组件。
技术方案14. 如技术方案1所述的设备,其中,所述设备与所述HW平台分离。
技术方案15. 如技术方案1所述的设备,其中,所述HW平台是以下项之一:物联网(IoT)装置、无人机、自主交通工具、客户端装置、网络设备、网络元件、边缘服务器、或云计算服务的一个或多个云计算节点。
技术方案16. 如技术方案1所述的设备,其中,所述HW平台是边缘计算节点,所述MLMS引擎是由所述边缘计算节点操作的第一边缘应用或服务,并且所述处理器电路模块还将:
操作联合ML模型以:
向通信网络中的装置的集合分发相应学习任务,装置的所述集合包括一个或多个客户端装置或者一个或多个网络接入节点,以及
从装置的所述集合获得反馈,所述反馈包括所述相应学习任务中完成的学习任务和所述上下文信息中的至少一部分,其中所述上下文信息中的所述一部分包括以下项中的一项或多项:对装置的所述集合中的各个装置完成所述相应学习任务的能力或无能力的指示、一个或多个信号质量测量、和环境条件数据;以及
操作所述MLMS引擎以基于所述反馈确定所述替换ML模型为所述联合ML模型的优化版本。
技术方案17. 一个或多个非暂时性计算机可读介质(NTCRM),包括用于机器学习模型交换(MLMS)策略的指令,其中由计算节点的一个或多个处理器执行所述指令将使所述计算节点:
获得硬件(HW)平台的上下文信息,机器学习(ML)模型当前被部署在所述HW平台上;
获得由所当前部署的ML模型生成的推理结果;
基于所述上下文信息和所述推理结果来检测所述HW平台的操作变化;
响应于所检测到的操作变化,确定替换ML模型以替换所当前部署的ML模型,其中所述替换ML模型被优化以用于在具有所检测到的操作变化的所述HW平台上操作,使得与正在所检测到的操作变化下在所述HW平台上运行的所当前部署的ML模型的性能相比,所述替换ML模型被配置成以一个或多个改进的性能度量在所检测到的操作变化下在所述HW平台上运行;以及
向所述HW平台供应所确定的替换ML模型。
技术方案18. 如技术方案17所述的一个或多个NTCRM,其中,执行所述指令将使所述计算节点:
执行神经架构搜索(NAS)算法以发现所述替换ML模型。
技术方案19. 如技术方案17所述的一个或多个NTCRM,其中,执行所述指令将使所述计算节点:
在部署所述当前部署的ML模型之前,针对所述HW平台的多个不同操作条件中的每个操作条件而优化参考ML模型,其中ML模型的所述集合中的一个或多个ML模型相比所述参考ML模型具有更少的参数;以及
存储ML模型的所述集合,其中所当前部署的ML模型和所述替换ML模型在ML模型的所存储集合中。
技术方案20. 如技术方案19所述的一个或多个NTCRM,其中,为了确定所述替换ML模型,执行所述指令将使所述计算节点:
在ML模型的所存储集合中发现满足所述HW平台的第一系统约束和所述HW平台的第二系统约束的候选ML模型的集合,其中:
所述第一系统约束表示当所当前部署的ML模型被部署时的所述HW平台的操作条件,以及
所述第二系统约束表示基于所检测到的操作变化的所述HW平台的操作条件;
对于候选ML模型的所述集合中的每个候选ML模型,确定用候选ML模型的所述集合中的相应候选ML模型替换所当前部署的ML模型的数据传输成本,所述数据传输成本是用候选ML模型的所述集合中的对应候选ML模型替换所当前部署的ML模型所需的计算资源量;以及
从候选ML模型的所述集合中选择具有最低数据传输成本的候选ML模型作为所述替换ML模型。
技术方案21. 如技术方案20所述的一个或多个NTCRM,其中,为了确定用相应候选ML模型替换所当前部署的ML模型的所述数据传输成本,执行所述指令将使所述计算节点:
对所述相应候选ML模型进行矢量化;以及
将经矢量化的候选ML模型中的每个经矢量化的候选ML模型与所当前部署的ML模型的经矢量化版本进行比较。
技术方案22. 如技术方案17所述的一个或多个NTCRM,其中,执行所述指令将使所述计算节点:
获得包括应用质量度量、系统约束、和性能审计器设置的ML配置,其中:
所述应用质量度量包括所当前部署的ML模型的性能度量范围,
所述系统约束包括所述HW平台的系统参数的范围,以及
所述性能审计器设置包括指示所述HW平台的操作变化的所述系统约束和所述应用质量度量的组合。
技术方案23. 如技术方案17所述的一个或多个NTCRM,其中,所述上下文信息包括以下项中的一项或多项:所述HW平台的操作的当前模式、所述HW平台的系统状态信息、关于所述HW平台周围的环境的物理环境信息、以及关于所述HW平台的网络条件的联网环境信息。
技术方案24. 如技术方案17所述的一个或多个NTCRM,其中,所述计算节点是所述HW平台,或者所述计算节点是所述HW平台的组件。
技术方案25. 如技术方案17所述的一个或多个NTCRM,其中,所述HW平台是与所述计算节点不同的装置。
技术方案26. 如技术方案17所述的一个或多个NTCRM,其中,所述HW平台是以下项之一:物联网(IoT)装置、无人机、机器人、自主交通工具、客户端装置、网络设备、网络元件、边缘服务器、或云计算服务的一个或多个云计算节点。
技术方案27. 如技术方案17所述的一个或多个NTCRM,其中,所述HW平台是边缘计算节点,并且执行所述指令将使所述计算节点:
向通信网络中的装置的集合分发联合ML模型的相应学习任务,装置的所述集合包括一个或多个客户端装置或者一个或多个网络接入节点;
从装置的所述集合获得反馈,所述反馈包括所述相应学习任务中完成的学习任务和所述上下文信息中的至少一部分,其中所述上下文信息中的所述一部分包括以下项中的一项或多项:对装置的所述集合中的各个装置完成所述相应学习任务的能力或无能力的指示、一个或多个信号质量测量、和环境条件数据;以及
基于所述反馈确定所述替换ML模型为所述联合ML模型的优化版本。
当前描述的方法、系统和装置实施例的附加示例包括以下非限制性实现。以下非限制性示例中的每个示例可以独立存在,或者可以以任何排列或组合的方式与以下或贯穿本公开提供的其它示例中的任何一个或多个示例相结合。
示例A01包括一种用于操作机器学习模型交换(MLMS)系统的方法,所述方法包括:获得HW平台的上下文信息,ML模型当前被部署在所述HW平台上;基于所述HW平台的所述上下文信息并基于由所当前部署的ML模型所生成的推理结果来检测所述HW平台的状态变化;以及触发MLMS引擎以执行MLMS,其中所述MLMS涉及用替换ML模型来替换所当前部署的ML模型,并且所述替换ML模型被优化以用于在所述HW平台上操作。
示例A02包括示例A01和/或本文中的某个(某些)其它示例的方法,还包括:操作所述MLMS引擎来执行所述MLMS。
示例A03包括示例A02和/或本文中的某个(某些)其它示例的方法,其中,执行所述MLMS包括:操作所述MLMS引擎来执行神经架构搜索(NAS)算法以发现所述替换ML模型。
示例A04包括示例A02-A03和/或本文中的某个(某些)其它示例的方法,其中,在部署所当前部署的ML模型之前,所述方法还包括:获得参考ML模型;通过针对所述HW平台的多个不同操作条件中的每个操作条件而优化所述参考ML模型来生成ML模型的集合,其中ML模型的所述集合中的一个或多个ML模型相比所述参考ML模型具有更少的参数,并且所当前部署的ML模型在ML模型的所生成集合中;以及存储ML模型的所述集合,其中所述替换ML模型在ML模型的所存储集合中。
示例A05包括示例A04和/或本文中的某个(某些)其它示例的方法,其中,执行所述MLMS包括:在ML模型的所存储集合中发现满足所述HW平台的第一系统约束和所述HW平台的第二系统约束的候选ML模型的集合,其中所述第一系统约束表示当所当前部署的ML模型被部署时的所述HW平台的系统上下文,以及所述第二系统约束表示基于所检测到的状态变化的所述HW平台的系统上下文;对于候选ML模型的所述集合中的每个候选ML模型,确定数据传输成本,所述数据传输成本是用候选ML模型的所述集合中的对应候选ML模型替换所当前部署的ML模型所需的计算资源量;以及从候选ML模型的所述集合中选择具有最低数据传输成本的候选ML模型作为所述替换ML模型。
示例A06包括示例A05和/或本文中的某个(某些)其它示例的方法,其中确定所述数据传输成本包括:对候选ML模型的所述集合中的所述候选ML模型进行矢量化;以及将经矢量化的候选ML模型中的每个经矢量化的候选ML模型与所当前部署的ML模型的经矢量化版本进行比较。
示例A07包括示例A01-A06和/或本文中的某个(某些)其它示例的方法,还包括:获得ML配置,其中所述ML配置包括用于触发所述MLMS的执行的阈值。。
示例A08包括示例A07和/或本文中的某个(某些)其它示例的方法,其中,用于触发所述MLMS的执行的所述阈值包括应用质量度量,其中所述应用质量度量包括所当前部署的ML模型的性能度量阈值,在达到或超过所述性能度量阈值时,触发所述MLMS的所述执行。
示例A09包括示例A07-A08和/或本文中的某个(某些)其它示例的方法,其中,用于触发所述MLMS的执行的所述阈值包括系统约束,其中所述系统约束包括所述HW平台的一个或多个系统参数的阈值,在达到或超过所述阈值时,触发所述MLMS的所述执行。
示例性A10包括示例A01-A09和/或本文中的某个(某些)其它示例的方法,其中,所述上下文信息包括所述HW平台的操作的当前模式,并且所述HW平台的操作的所述当前模式包括以下项之一:睡眠模式、空闲模式、唤醒模式、和突发。
示例A11包括示例A01-A10和/或本文中的某个(某些)其它示例的方法,其中,所述上下文信息包括所述HW平台的系统状态信息(SSI),并且所述SSI包括以下项中的一项或多项:所述HW平台的各个HW组件的温度、计算能力、存储器利用率、电源状态信息、操作系统信息、和所述各个HW组件的半导体工艺。
示例A12包括示例A01-A11和/或本文中的某个(某些)其它示例的方法,其中,所述上下文信息包括关于所述HW平台周围的环境的物理环境信息(PEI),并且所述PEI包括以下项中的一项或多项:所述HW平台的位置的当前温度、湿度、水分、海拔、环境光、环境音量、和天气数据。
示例A13包括示例A01-A12和/或本文中的某个(某些)其它示例的方法,其中,所述上下文信息包括所述HW平台的联网环境信息(NEI),并且所述NEI包括以下项中的一项或多项:信道状态条件、网络连接性度量、数据传输速率、和网络参数。
示例A14包括示例A01-A13和/或本文中的某个(某些)其它示例的方法,其中,所述方法由计算节点执行。
示例A15包括示例A14和/或本文中的某个(某些)其它示例的方法,其中,所述计算节点是所述HW平台,或者所述计算节点是所述HW平台的组件。
示例A16包括示例A14和/或本文中的某个(某些)其它示例的方法,其中,所述计算节点与所述HW平台分离。
示例A17包括示例A01-A16和/或本文中的某个(某些)其它示例的方法,其中,所述HW平台是以下项之一:物联网(IoT)装置、无人机、自主交通工具、客户端装置、网络设备、网络元件、边缘服务器、或云计算服务的一个或多个云计算节点。
示例A18包括示例A01-A17和/或本文中的某个(某些)其它示例的方法,其中,所述HW平台是边缘计算节点,所述MLMS引擎是由所述边缘计算节点操作的边缘应用或服务,并且所述方法还包括:操作联合ML模型以:向通信网络中的装置的集合分发相应学习任务,装置的所述集合包括一个或多个客户端装置或者一个或多个网络接入节点,以及从装置的所述集合获得反馈,所述反馈包括所述相应学习任务中完成的学习任务和所述上下文信息中的至少一部分,其中所述上下文信息中的所述一部分包括以下项中的一项或多项:对客户端装置完成所述相应学习任务的能力或无能力的指示、一个或多个信号质量测量、和环境条件测量或数据;以及操作所述MLMS引擎以基于所述反馈确定所述替换ML模型为所述联合ML模型的优化版本。
示例B01包括一种操作计算节点以实现机器学习模型交换(MLMS)策略的方法,方法包括:获得HW平台的上下文信息,M)模型当前被部署在所述HW平台上;获得由所当前部署的ML模型生成的推理结果;基于所述上下文信息和所述推理结果来检测所述HW平台的操作变化;响应于所检测到的操作变化,确定替换ML模型以替换所当前部署的ML模型,其中所述替换ML模型被优化以用于在具有所检测到的操作变化的所述HW平台上操作;以及向所述HW平台供应所确定的替换ML模型。
示例B02包括示例B01和/或本文中的某个(某些)其它示例的方法,还包括:执行或操作神经架构搜索(NAS)算法以发现所述替换ML模型。
示例B03包括示例B01-B02和/或本文中的某个(某些)其它示例的方法,还包括:在部署所述当前部署的ML模型之前,针对所述HW平台的多个不同操作条件中的每个操作条件而优化参考ML模型,其中ML模型的所述集合中的一个或多个ML模型相比所述参考ML模型具有更少的参数;以及存储ML模型的所述集合,其中所当前部署的ML模型和所述替换ML模型在ML模型的所存储集合中。
示例B04包括示例B03和/或本文中的某个(某些)其它示例的方法,其中,确定所述替换ML模型包括:在ML模型的所存储集合中发现满足所述HW平台的第一系统约束和所述HW平台的第二系统约束的候选ML模型的集合,其中:所述第一系统约束表示当所当前部署的ML模型被部署时的所述HW平台的操作条件,以及所述第二系统约束表示基于所检测到的操作变化的所述HW平台的操作条件;对于候选ML模型的所述集合中的每个候选ML模型,确定用候选ML模型的所述集合中的相应候选ML模型替换所当前部署的ML模型的数据传输成本,所述数据传输成本是用候选ML模型的所述集合中的对应候选ML模型替换所当前部署的ML模型所需的计算资源量;以及从候选ML模型的所述集合中选择具有最低数据传输成本的候选ML模型作为所述替换ML模型。
示例B05包括示例B04和/或本文中的某个(某些)其它示例的方法,其中,确定用相应候选ML模型替换所当前部署的ML模型的所述数据传输成本包括:对所述相应候选ML模型进行矢量化;以及将经矢量化的候选ML模型中的每个经矢量化的候选ML模型与所当前部署的ML模型的经矢量化版本进行比较。
示例B06包括示例B01-B05和/或本文中的某个(某些)其它示例的方法,还包括:获得包括应用质量度量、系统约束、和性能审计器设置的ML配置,其中:所述应用质量度量包括所当前部署的ML模型的性能度量范围,所述系统约束包括所述HW平台的系统参数的范围,以及所述性能审计器设置包括指示所述HW平台的操作变化的所述系统约束和所述应用质量度量的组合。
示例B07包括示例B01和/或本文中的某个(某些)其它示例的方法,其中,所述上下文信息包括以下项中的一项或多项:所述HW平台的操作的当前模式、所述HW平台的系统状态信息、关于所述HW平台周围的环境的物理环境信息、以及关于所述HW平台的网络条件的联网环境信息。
示例B08包括示例B01和/或本文中的某个(某些)其它示例的方法,其中,所述计算节点是所述HW平台,或者所述计算节点是所述HW平台的组件。
示例B09包括示例B01和/或本文中的某个(某些)其它示例的方法,其中,所述HW平台是与所述计算节点不同的装置。
示例B10包括示例B01和/或本文中的某个(某些)其它示例的方法,其中,所述HW平台是以下项之一:物联网(IoT)装置、无人机、机器人、自主交通工具、客户端装置、网络设备、网络元件、边缘服务器、或云计算服务的一个或多个云计算节点。
示例B11包括示例B01-AB10和/或本文中的某个(某些)其它示例的方法,其中,所述HW平台是边缘计算节点,并且所述方法还包括:向通信网络中的装置的集合分发联合ML模型的相应学习任务,装置的所述集合包括一个或多个客户端装置或者一个或多个网络接入节点;从装置的所述集合获得反馈,所述反馈包括所述相应学习任务中完成的学习任务和所述上下文信息中的至少一部分,其中所述上下文信息中的所述一部分包括以下项中的一项或多项:对装置的所述集合中的各个装置完成所述相应学习任务的能力或无能力的指示、一个或多个信号质量测量、和环境条件数据;以及基于所述反馈确定所述替换ML模型为所述联合ML模型的优化版本。
示例Z01包括一个或多个计算机可读介质,所述一个或多个计算机可读介质包括指令,其中由处理器电路模块对指令的执行将使处理器电路模块执行示例A01-A18、B01-B11中任一个的方法和/或本文中讨论的任何其它方面。示例Z02包括一种计算机程序,所述计算机程序包括示例Z01的指令。示例Z03包括定义用于示例Z02的计算机程序的函数、方法、变量、数据结构、和/或协议的应用编程接口。示例Z04包括一种设备,所述设备包括加载有示例Z01的指令的电路模块。示例Z05包括一种设备,所述设备包括可操作以运行示例Z01的指令的电路模块。示例Z06包括一种集成电路,所述集成电路包括示例Z01的处理器电路模块和示例Z01的一个或多个计算机可读介质中的一个或多个。示例Z07包括一种计算系统,所述计算系统包括示例Z01的一个或多个计算机可读介质和处理器电路模块。示例Z08包括一种设备,所述设备包括用于执行示例Z01的指令的部件。示例Z09包括一种信号,所述信号作为执行示例Z01的指令的结果而被生成。示例Z10包括一种数据单元,所述数据单元作为执行示例Z01的指令的结果而被生成。示例Z11包括示例Z10的数据单元,所述数据单元是数据报、网络分组、数据帧、数据段、协议数据单元(PDU)、服务数据单元(SDU)、消息、或数据库对象。示例Z12包括通过示例Z10或Z11的数据单元所编码的信号。示例Z13包括携带示例Z01的指令的电磁信号。示例Z14包括一种设备,所述设备包括用于执行示例A01-A18、B01-B11中任一个的方法和/或本文中讨论的任何其它方面的部件。
5.术语
如本文中所使用的,单数形式“一(a、an)”和“该(the)”也旨在包括复数形式,除非上下文另有清楚指示。还将理解,术语“包括(comprises和/或comprising)”在本说明书中使用时具体表示所陈述的特征、整数、步骤、操作、元件、和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件、和/或其组合的存在或添加。短语“A和/或B”意味着(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或C”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。本描述可以使用短语“在实施例中”或“在一些实施例中”,其中每个短语可以指相同或不同的实施例中的一个或多个实施例。此外,如关于本公开所使用的术语“包括”、“包含”、“具有”等是同义的。
本文中使用了术语“耦合”、“通信地耦合”连同其派生词。术语“耦合”可以意味着两个或更多个元件彼此直接物理接触或电接触,可以意味着两个或更多个元件彼此间接接触但仍然彼此协作或交互,和/或可以意味着一个或多个其它元件被耦合或连接在被称为彼此耦合的元件之间。术语“直接耦合”可以意味着两个或更多元件彼此直接接触。术语“通信地耦合”可以意味着两个或更多个元件可以通过通信方式(包括通过有线或其它互连连接、通过无线通信信道或链路,和/或诸如此类)彼此接触。
至少在一些实施例中,术语“建立(establish或establishment)”是指(部分或全部)动作、任务、操作等,其涉及主动或被动地使某物存在或准备好使某物存在(例如,暴露装置标识或实体标识)。附加地或备选地,至少在一些实施例中,术语“建立(establish或establishment)”是指(部分或全部)动作、任务、操作等,其涉及发起、开始或加温(warm)通信或者发起、开始或加温两个实体或元件之间的关系(例如,建立会话、建立会话等)。附加地或备选地,至少在一些实施例中,术语“建立(establish或establishment)”是指将某物启动到工作就绪状态。至少在一些实施例中,术语“建立”是指可操作或准备好使用的状态(例如,完全建立)。此外,对于在任何规范或标准中定义的术语“建立(establish或establishment)”的任何定义可以用于本公开的目的,并且此类定义不会被任何前述定义否定。
至少在一些实施例中,术语“获得”是指对原始分组流或对分组流的副本(例如,新实例)的拦截、移动、复制、检索、或获取(例如,从存储器、接口或缓冲器)的(部分或全部)动作、任务、操作等。获得或接收的其它方面可以涉及实例化、使能或控制用于获得或接收分组流(或以下参数和模板或模板值)的能力。
至少在一些实施例中,术语“元件”是指在给定的抽象级别上不可分割并且具有明确定义的边界的单元,其中元件可以是包括例如一个或多个装置、系统、控制器、网络元件、模块等或其组合的任何类型的实体。
至少在一些实施例中,术语“测量”是指对象、事件或现象的属性的观测和/或量化。
至少在一些实施例中,术语“准确度”是指一个或多个测量与特定值的接近程度。至少在一些实施例中,术语“精确度”是指两个或更多个测量彼此的接近程度。
至少在一些实施例中,术语“信号”是指质量和/或数量的可观测变化。附加地或备选地,至少在一些实施例中,术语“信号”是指传达关于对象、事件或现象的信息的功能。附加地或备选地,至少在一些实施例中,术语“信号”是指可以携带或可以不携带信息的任何时变电压、电流或电磁波。至少在一些实施例中,术语“数字信号”是指由物理量的波形的离散集合构成以便表示离散值的序列的信号。
至少在一些实施例中,术语“电路模块”是指配置成在电子装置中执行特定功能的电路或多个电路的系统。电路或电路的系统可以是一个或多个硬件组件的一部分,或者包括一个或多个硬件组件,诸如逻辑电路、处理器(共享的、专用的或成组的)和/或存储器(共享的、专用的或成组的)、ASIC、FPGA、可编程逻辑控制器(PLC)、SoC、SiP、多芯片封装(MCP)、DSP等,其配置成提供所描述的功能性。此外,术语“电路模块”也可以指一个或多个硬件元件与程序代码的组合,其用于实行该程序代码的功能性。一些类型的电路模块可以执行一个或多个软件或固件程序,以提供所描述的功能性中的至少一些。硬件元件和程序代码的这种组合可以被称为特定类型的电路模块。
应当理解,本说明书中描述的功能单元或能力可能被称为或标记为组件或模块,以便更特定地强调它们的实现独立性。此类组件可以通过任意数量的软件或硬件形式来体现。例如,组件或模块可以被实现为硬件电路,其包括定制的超大规模集成(VLSI)电路或门阵列、现成半导体(诸如逻辑芯片)、晶体管或其它分立组件。组件或模块也可以在可编程硬件装置(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等)中实现。组件或模块也可以在用于由各种类型的处理器执行的软件中实现。可执行代码的所标识组件或模块可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或函数。然而,所标识组件或模块的可执行部分不需要在物理上位于一起,而是可以包括存储在不同位置的分立指令,所述分立指令当在逻辑上联合在一起时包括组件或模块并实现组件或模块的所阐述目的。
实际上,可执行代码的组件或模块可以是单个指令或许多指令,并且可以甚至被分布在几个不同的代码段上、分布在不同的程序中、和跨几个存储器装置或处理系统分布。特别地,所描述的过程的一些方面(诸如代码重写和代码分析)可以发生在与在其中部署代码的处理系统(例如,嵌入在传感器或机器人中的计算机中)不同的处理系统(例如,在数据中心中的计算机中)上。类似地,操作数据在本文中可以在组件或模块中被标识和示出,并且可以以任何合适的形式体现,并且被组织在任何合适类型的数据结构中。操作数据可以被收集为单个数据集,或者可以分布在不同的位置上(包括分布在不同的存储装置上),并且可以至少部分地仅仅作为系统或网络上的电子信号而存在。组件或模块可以是无源的或有源的,包括可操作以执行期望功能的代理。
至少在一些实施例中,术语“处理器电路模块”是指能够顺序地和自动地实行一系列算术或逻辑运算或者记录、存储和/或传递数字数据的电路模块,或者是该电路模块的一部分,或者包括该电路模块。至少在一些实施例中,术语“处理器电路模块”是指一个或多个应用处理器、一个或多个基带处理器、物理CPU、单核处理器、双核处理器、三核处理器、四核处理器和/或能够执行或以其它方式操作计算机可执行指令(诸如程序代码、软件模块和/或功能进程)的任何其它装置。术语“应用电路模块”和/或“基带电路模块”可以被认为是“处理器电路模块”的同义词,并且可以被称为“处理器电路模块”。
至少在一些实施例中,术语“存储器”和/或“存储器电路模块”是指用于存储数据的一个或多个硬件装置,包括RAM、MRAM、PRAM、DRAM和/或SDRAM、核存储器、ROM、磁盘存储介质、光存储介质、闪速存储器装置、或用于存储数据的其它机器可读介质。术语“计算机可读介质”可以包括但不限于存储器、便携式或固定存储装置、光存储装置、以及能够存储、包含或携带指令或数据的各种其它介质。
至少在一些实施例中,术语“接口电路模块”是指能够实现两个或更多个组件或装置之间的信息的交换的电路模块,或者是该电路模块的一部分,或者包括该电路模块。至少在一些实施例中,术语“接口电路模块”是指一个或多个硬件接口,例如总线、I/O接口、外围组件接口、网络接口卡、和/或诸如此类。
至少在一些实施例中,术语“装置”是指嵌入在其附近的另一物理实体内部或附连到所述另一物理实体的物理实体,所述另一物理实体具有从该物理实体传递数字信息或向该物理实体传递数字信息的能力。
至少在一些实施例中,术语“实体”是指架构或装置的不同组件,或者作为有效载荷传递的信息。
至少在一些实施例中,术语“控制器”是指这样的元件或实体,其具有诸如通过改变其状态或使物理实体移动来影响物理实体的能力。
至少在一些实施例中,术语“计算节点”或“计算装置”是指实现计算操作的一方面的可标识实体,无论是更大系统的一部分、系统的分布式集合、还是独立设备。在一些示例中,计算节点可以被称为“计算装置”、“计算系统”等,无论在操作中是作为客户端、服务器、还是中间实体。计算节点的特定实现可以被结合到服务器、基站、网关、路边单元、现场单元、用户设备(UE)、终端消费设备、设备等中。
至少在一些实施例中,术语“计算机系统”是指任何类型互连电子装置、计算机装置、或其组件。此外,至少在一些实施例中,术语“计算机系统”和/或“系统”是指彼此通信地耦合的计算机的各种组件。此外,至少在一些实施例中,术语“计算机系统”和/或“系统”是指多个计算机装置和/或多个计算系统,其彼此通信地耦合并被配置成共享计算和/或网络资源。
至少在一些实施例中,术语“架构”是指计算机架构或网络架构。“计算机架构”是计算系统或平台中的软件和/或硬件元件的物理和逻辑设计或布置,包括用于其间交互的技术标准。“网络架构”是网络中的软件和/或硬件元件的物理和逻辑设计或布置,包括通信协议、接口和介质传输。
至少在一些实施例中,术语“设备”、“计算机设备”等是指具有程序代码(例如,软件或固件)的计算机装置或计算机系统,该程序代码被特别设计成提供特定的计算资源。“虚拟设备”是将由配备有管理程序的装置实现的虚拟机映像,该配备有管理程序的装置虚拟化或仿真计算机设备,或者另外专用于提供特定的计算资源。
至少在一些实施例中,术语“用户设备”或“UE”是指具有无线电通信能力的装置,并且可以描述通信网络中网络资源的远程用户。术语“用户设备”或“UE”可以被认为是同义的,并且可以被称为客户端、移动端(mobile)、移动装置、移动终端、用户终端、移动单元、站、移动站、移动用户、订户、用户、远程站、接入代理、用户代理、接收器、无线电设备、可重新配置的无线电设备、可重新配置的移动装置等。此外,术语“用户设备”或“UE”可以包括任何类型的无线/有线装置或包括无线通信接口的任何计算装置。UE、客户端装置等的示例包括桌上型计算机、工作站、膝上型计算机、移动数据终端、智能手机、平板计算机、可穿戴装置、机器对机器(M2M)装置、机器类型通信(MTC)装置、物联网(IoT)装置、嵌入式系统、传感器、自主交通工具、无人机、机器人、车载信息娱乐系统、仪表组、车载诊断装置、仪表板移动设备、电子引擎管理系统、电子/引擎控制单元/模块、微控制器、控制模块、服务器装置、网络设备、抬头显示(HUD)装置、头盔式显示装置、增强现实(AR)装置、虚拟现实(VR)装置、混合现实(MR)装置、和/或其它类似的系统或装置。
术语“边缘计算”包括分布式计算的许多实现,其将处理活动和资源(例如,计算、存储、加速资源)移向网络的“边缘”,以努力减少最终用户(客户端装置、用户设备等)的时延并增加吞吐量。此类边缘计算实现通常涉及从可经由无线网络访问的一个或多个位置提供类似云的服务、功能、应用和子系统中的此类活动和资源。
至少在一些实施例中,术语“边缘计算节点”或“边缘计算装置”是指实现边缘计算操作的方面的可识别实体,无论是更大系统的一部分、系统的分布式集合还是独立装置。在一些示例中,计算节点可以被称为“边缘节点”、“边缘装置”、“边缘系统”,无论在操作中是作为客户端、服务器还是中间实体。附加地或备选地,至少在一些实施例中,术语“边缘计算节点”是指采用装置、网关、网桥、系统或子系统、组件的形式的可计算元件的真实世界、逻辑或虚拟化实现,无论是在服务器、客户端、端点还是对等模式下操作,也无论是位于网络的“边缘”还是位于网络内更远的连接位置。对本文中使用的“节点”的引用通常是与“装置”、“组件”、“子系统”可互换的。附加地或备选地,对“边缘计算系统”的引用通常是指多个节点和装置的集合、组织或分布式架构,并且其被组织成在边缘计算设置中完成或提供服务或资源的某个方面。
至少在一些实施例中,术语“云计算”或“云”是指用于使得能够利用按需的自助供应和管理并且没有用户的主动管理来对可共享计算资源的可扩展和弹性池进行网络访问的范例。云计算提供云计算服务(或云服务),所述云计算服务(或云服务)是经由使用定义的接口(例如,API等)调用的云计算来提供的一个或多个能力。术语“云服务提供商”(或CSP)指示通常运营由集中式、区域性和边缘数据中心组成的大规模“云”资源的组织(例如,如在公有云的上下文中使用的)。在其它示例中,CSP也可以被称为云服务运营商(CSO)。对“云计算”的引用通常是指在相对于边缘计算具有至少一些增加的延迟、距离或约束的远程位置处由CSP或CSO提供的计算资源和服务。
至少在一些实施例中,术语“网络元件”是指用于提供有线或无线通信网络服务的物理或虚拟化设备和/或基础设施。术语“网络元件”可以被认为是以下项的同义词或者被称为以下项:联网计算机、联网硬件、网络设备、网络节点、路由器、交换机、中枢、桥接器、无线电网络控制器、网络接入节点(NAN)、基站、接入点(AP)、RAN装置、RAN节点、网关、服务器、网络设备、网络功能(NF)、虚拟化NF(VNF)、和/或诸如此类。
至少在一些实施例中,术语“应用”是指被设计成实行特定任务而不是与计算机本身的操作相关的任务的计算机程序。附加地或备选地,至少在一些实施例中,术语“应用”是指在操作环境中实现某一功能的完整且可部署的包、环境。
至少在一些实施例中,术语“算法”是指如何通过执行计算、输入/输出操作、数据处理、自动推论任务和/或诸如此类来解决问题或一类问题的明确说明。
至少在一些实施例中,术语“实例化(instantiate、instantiation)”等是指实例的创建。至少在一些实施例中,“实例”是指对象的具体存在,其可能出现在例如程序代码的执行期间。
至少在一些实施例中,术语“引用”是指可用于定位其它数据的数据,并且可以以各种方式实现(例如,指针、索引、句柄、关键字、标识符、超链接等)。
至少在一些实施例中,术语“人工智能”或“AI”是指由机器展示的任何智能,与由人类和其它动物显示的自然智能形成对比。附加地或备选地,至少在一些实施例中,术语“人工智能”或“AI”是指对“智能代理”和/或感知其环境并采取最大化其成功实现目标的机会的动作的任何装置的研究。
术语“人工神经网络”、“神经网络”或“NN”是指包括连接的人工神经元或节点的集合的ML技术,所述连接的人工神经元或节点(松散地)对生物大脑中的神经元进行建模,所述神经元可以将信号传送到其它主干神经元或节点,其中人工神经元或节点之间的连接(或边缘)根据生物大脑的突触来(松散地)建模。人工神经元和边缘通常具有随着学习进行而调整的权重。权重增加或减少连接处的信号强度。神经元可以具有阈值,使得只有当聚合信号越过该阈值时才发送信号。人工神经元可以被聚合或分组到一个或多个层中,其中不同的层可以对它们的输入执行不同的变换。信号从第一层(输入层)行进到最后层(输出层)(可能在多次穿过层之后)。NN通常用于监督学习,但也可以用于无监督学习。NN的示例包括深度NN(DNN)、前馈NN(FFN)、深度FNN(DFF)、卷积NN(CNN)、深度CNN(DCN)、反卷积NN(DNN)、深度信念NN、感知NN、循环NN(RNN)(例如,包括长短期记忆(LSTM)算法、门控循环单元(GRU)、回声状态网络(ESN)等)、尖峰神经网络(SNN)、深度堆叠网络(DSN)、马尔可夫链、感知NN、生成对抗网络(GAN)、转换器(transformer)、随机NN(例如,贝叶斯网络(BN)、贝叶斯信念网络(BBN)、贝叶斯NN(BNN)、深度BNN(DBNN)、动态BN(DBN)、概率图形模型(PGM)、玻尔兹曼机、受限玻尔兹曼机(RBM)、Hopfield网络或Hopfield NN、卷积深度信念网络(CDBN)等)、线性动态系统(LDS)、开关LDS(SLDS)、光学NN(ONN)、用于强化学习(RL)和/或深度RL(DRL)的NN、和/或诸如此类。
至少在一些实施例中,机器学习和/或神经网络的上下文中的术语“注意力”是指模仿认知注意力的技术,其增强数据集的重要部分,其中可以使用训练数据通过梯度下降来确定数据集的重要部分。至少在一些实施例中,术语“点积注意力”是指使用矢量之间的点积来确定注意力的注意力技术。至少在一些实施例中,术语“多头注意力”是指将几种不同的注意力机制结合起来以引导网络或子网络的整体注意力的注意力技术。
至少在一些实施例中,术语“注意力模型”或“注意力机制”是指用于神经网络的输入处理技术,其允许神经网络一次一个地聚焦于复杂输入的特定方面,直到整个数据集被分类。目标是将复杂的任务分解成顺序处理的较小注意力区域。类似于人类意识如何通过将新问题分成较简单的任务并逐个解决它们来解决该新问题。至少在一些实施例中,术语“注意力网络”是指用于机器学习中的注意力的人工神经网络。
至少在一些实施例中,术语“反向传播”是指在NN中使用的用于计算梯度的方法,在将在NN中使用的权重的计算中需要所述梯度;“反向传播”是“误差反向传播”的简称。附加地或备选地,至少在一些实施例中,术语“反向传播”是指计算神经网络参数的梯度的方法。附加地或备选地,至少在一些实施例中,术语“反向传播”或“反向传递”是指以相反的顺序从输出层通过任何中间隐藏层到输入层穿过神经网络的方法。
至少在一些实施例中,术语“贝叶斯优化”是指用于对不假定任何函数形式的黑盒函数的全局优化的顺序设计策略。
至少在一些实施例中,ML上下文中的术语“分类”是指用于确定各种数据点所属的类的ML技术。这里,至少在一些实施例中,术语“类(class或classes)”是指类别(categories),并且有时被称为“目标”或“标签”。当输出被限制为可量化属性的有限集合时,使用分类。分类算法可以描述单个(数据)实例,其类别将使用特征矢量来预测。作为示例,当实例包括文本的集合(语料库)时,特征矢量中的每个特征可以是特定单词在文本的语料库中出现的频率。在ML分类中,标签被指派给实例,并且模型被训练以从训练示例中正确地预测预先指派的标签。用于分类的ML算法可以被称为“分类器”。分类器的示例包括线性分类器、k-最近邻(kNN)、决策树、随机森林、支持矢量机(SVM)、贝叶斯分类器、卷积神经网络(CNN)、以及其它(注意,这些算法中的一些算法也可以用于其它ML任务)。
至少在一些实施例中,术语“计算图”是指描述如何从一个或多个输入产生输出的数据结构。
至少在一些实施例中,术语“卷积”是指CNN的卷积运算或卷积层。
至少在一些实施例中,术语“上下文”或“上下文信息”是指围绕焦点事件和/或为焦点事件的解释提供资源的对象、实体、元素、事件、数据、信息等。附加地或备选地,至少在一些实施例中,术语“上下文”或“上下文信息”是指可用于在特定应用范围内有效减少做出决策所需的推论量(通过过滤、聚合和推理)的关于任何实体的任何信息。附加地或备选地,至少在一些实施例中,术语“上下文”或“上下文信息”是指高维实值矢量。
至少在一些实施例中,术语“卷积滤波器”是指与输入矩阵具有相同秩但具有较小形状的矩阵。在机器学习中,卷积滤波器与输入矩阵混合,以便训练权重。
至少在一些实施例中,术语“卷积层”是指DNN的层,其中卷积滤波器沿着输入矩阵传递(例如,CNN)。附加地或备选地,至少在一些实施例中,术语“卷积层”是指包括一系列卷积运算的层,每个卷积运算作用于输入矩阵的不同切片。
至少在一些实施例中,术语“卷积神经网络”或“CNN”是指包括至少一个卷积层的神经网络。附加地或备选地,至少在一些实施例中,术语“卷积神经网络”或“CNN”是指被设计成处理诸如图像之类的结构化数据阵列的DNN。
至少在一些实施例中,术语“卷积运算”是指对两个函数(例如f和g)的数学运算,该数学运算产生第三个函数(f * g),其表示一个函数的形状如何被另一个函数修改,其中术语“卷积”可以指结果函数和计算它的过程两者。附加地或备选地,至少在一些实施例中,术语“卷积的”是指两个函数在一个函数被反转和移位之后的乘积的积分,其中对所有移位值评估积分,从而产生卷积函数。附加地或备选地,至少在一些实施例中,术语“卷积的”是指卷积滤波器和输入矩阵的切片(输入矩阵的切片与卷积滤波器具有相同的秩和大小)的两步数学运算逐元素乘法;以及(2)所得乘积矩阵中所有值的总和。
至少在一些实施例中,术语“协方差”是指两个随机变量的联合可变性的度量,其中如果一个变量的较大值主要对应于另一个变量的较大值,则协方差为正(并且对于较小值也是如此,使得变量趋向于表现出相似的行为),而当一个变量的较大值主要对应于另一个变量的较小值时,协方差为负。
至少在一些实施例中,术语“总体平均”是指创建多个模型并将它们组合以产生期望输出的过程,如与仅创建一个模型相反。
至少在一些实施例中,术语“总体学习”或“总体方法”是指使用多种学习算法来获得比单独从组成学习算法中任一项可能获得的预测性能更好的预测性能。
至少在一些实施例中,概率论中的术语“事件”是指被指派概率的实验结果的集合(例如,样本空间的子集)。附加地或备选地,至少在一些实施例中,术语“事件”是指指示某事已经发生的软件消息。附加地或备选地,至少在一些实施例中,术语“事件”是指时间上的对象,或者对象中属性的实例化。附加地或备选地,至少在一些实施例中,术语“事件”是指在某一时刻的空间中的点(例如,时空中的位置)。附加地或备选地,至少在一些实施例中,术语“事件”是指在特定时间点的显著发生。
至少在一些实施例中,概率论中的术语“实验”是指可以重复并具有结果的明确定义集合(称为样本空间)的任何过程。
至少在一些实施例中,术语“特征”是指被观测现象的单个可测量属性、可量化属性、或特性。附加地或备选地,至少在一些实施例中,术语“特征”是指在进行预测时使用的输入变量。至少在一些实施例中,可以使用数字/数(例如整数)、字符串、变量、序数、实数值、类别、和/或诸如此类来表示特征。
至少在一些实施例中,术语“特征工程”是指确定哪些特征可能在训练ML模型中有用并然后将原始数据转换成所确定的特征的过程。特征工程有时被称为“特征提取”。
至少在一些实施例中,术语“特征提取”是指降维过程,通过该降维过程,原始数据的初始集合被减少到更易管理的组以便处理。附加地或备选地,至少在一些实施例中,术语“特征提取”是指检索由无监督模型或预训练模型计算的中间特征表示,以供在另一模型中用作输入。特征提取有时被用作“特征工程”的同义词。
至少在一些实施例中,术语“特征地图(feature map)”是指在一个空间中获取特征矢量(或特征张量)并将它们转换成另一个空间中的特征矢量(或特征张量)的函数。附加地或备选地,至少在一些实施例中,术语“特征地图”是指将数据矢量(或张量)映射到特征空间的函数。附加地或备选地,至少在一些实施例中,术语“特征地图”是指应用被应用于前一层的一个滤波器的输出的函数。在一些实施例中,术语“特征地图”也可以被称为“激活地图(activation map)”。
至少在一些实施例中,在ML的上下文中,术语“特征矢量”是指表示传递到模型中的示例的特征的集合和/或特征值的列表。
至少在一些实施例中,在ML的上下文中,术语“前向传播”或“前向传递”是指计算和存储神经网络的中间变量(包括输出),以便从输入层通过输入和输出层之间的任何隐藏层到输出层。
至少在一些实施例中,在ML和NN的上下文中,术语“隐藏层”是指ANN中不专用于输入或输出的内部神经元层。术语“隐藏单元”是指ANN中的隐藏层中的神经元。
至少在一些实施例中,术语“超参数”是指在训练过程期间不能被学习的ML过程的特性、属性和/或参数。超参数通常在训练发生之前设置,并可在过程中用于帮助估计模型参数。超参数的示例包括模型大小(例如,在存储器空间、字节、层数等方面);训练数据混洗(例如,是否这样做以及混洗多少);评估实例、迭代、轮(例如,对训练数据的迭代或通过的次数)或回的数量;对训练数据的通过的次数;正则化;学习速率(例如,算法达到(收敛到)最优权重的速度);学习速率衰减(或权重衰减);动量(momentum);隐藏层数;各个隐藏层的大小;权重初始化方案;丢弃(dropout)和梯度裁剪阈值;SVM的C值和sigma值;k-最近邻中的k;决策树中的分支数量;聚类算法中的聚类数;矢量大小;NLP和NLU的单词矢量大小;和/或诸如此类。
至少在一些实施例中,术语“推理引擎”是指将逻辑规则应用于知识库以推断新信息的计算系统的组件。
至少在一些实施例中,在ML上下文中,术语“基于实例的学习”或“基于存储器的学习”是指代替执行显式概括,将新的问题实例与训练中看到的、已经存储在存储器中的实例进行比较的学习算法系列。基于实例的算法的示例包括k-最近邻等、决策树算法(例如,分类和回归树(CART)、迭代二分法3(ID3)、C4.5、卡方自动交互检测(CHAID)等、模糊决策树(FDT)等)、支持矢量机(SVM)、贝叶斯算法(例如,贝叶斯网络(BN)、动态BN(DBN)、朴素贝叶斯等)、以及总体算法(例如,极端梯度提升、投票总体、自举聚合(“装袋法(bagging)”)、随机森林等。
至少在一些实施例中,术语“智能代理”是指软件代理或其它自主实体,其使用通过传感器和随后的致动器的观测来向着实现环境上的目标引导其活动(即,它是智能的)。智能代理也可以学习或使用知识来实现它们的目标。
至少在一些实施例中,术语“迭代”是指重复过程以便生成结果序列,其中过程的每次重复是单次迭代,并且每次迭代的结果是下一次迭代的起始点。附加地或备选地,至少在一些实施例中,术语“迭代”是指在训练期间模型权重的单次更新。
至少在一些实施例中,术语“知识库”是指用于存储由计算系统所使用的复杂结构化和/或非结构化信息的任何技术。
至少在一些实施例中,在机器学习中,术语“知识提炼”是指将知识从大模型转移到小模型的过程。
至少在一些实施例中,术语“损失函数”或“代价函数”是指一个或多个变量的值或事件转换成表示与该事件相关联的某种“代价”的实数。由损失函数计算的值可以被称为“损失”或“误差”。附加地或备选地,至少在一些实施例中,术语“损失函数”或“代价函数”是指用于确定算法的输出和目标值之间的误差或损失的函数。附加地或备选地,至少在一些实施例中,术语“损失函数”或“代价函数”是指以最小化损失或误差为目标在优化问题中使用的函数。
至少在一些实施例中,术语“机器学习”或“ML”是指使用计算机系统以使用示例(训练)数据和/或过去经验来优化性能准则。ML涉及使用算法来执行(一个或多个)特定任务,而不使用明确指令来执行(一个或多个)特定任务,和/或依赖于模式、预测和/或推理。ML使用统计学来建立(一个或多个)数学模型(也称为“ML模型”或简称为“模型”),以便基于样本数据(例如,训练数据)作出预测或决策。模型被定义为具有参数的集合,并且学习是执行计算机程序以使用训练数据或过去经验来优化模型的参数。经训练模型可以是基于输入数据集进行预测的预测性模型、从输入数据集获取知识的描述性模型、或预测性模型和描述性模型两者。一旦模型被学习(训练),它就可以被用来进行推理(例如,预测)。ML算法对训练数据集执行训练过程,以估计底层ML模型。ML算法是从关于某个(某些)任务和某个(某些)性能测量/度量的经验中学习的计算机程序,并且ML模型是在用训练数据训练ML算法之后创建的对象或数据结构。换句话说,术语“ML模型”或“模型”可以描述用训练数据训练的ML算法的输出。在训练之后,ML模型可以用于对新数据集进行预测。附加地,在推理或预测生成期间,被单独训练的AI/ML模型可以在AI/ML流水线中被链接在一起。尽管至少在一些实施例中,术语“ML算法”指的是与术语“ML模型”不同的概念,但是为了本公开的目的,这些术语可以可互换地使用。此外,至少在一些实施例中,术语“AI/ML应用”等指的是包含一些AI/ML模型和应用级描述的应用。ML技术通常落入学习问题类别的以下主要类型:监督学习、无监督学习、和强化学习。
至少在一些实施例中,术语“数学模型”是指假定、数据和推理的系统,其被呈现为包括支配方程、假设和约束的实体或事务状态的数学描述。
至少在一些实施例中,ML上下文中的术语“模型参数”和/或“参数”是指在训练期间学习的值、特性和/或属性。附加地或备选地,至少在一些实施例中,在ML上下文中,“模型参数”和/或“参数”是指模型内部的配置变量,并且其值可以从给定数据中估计。模型参数是模型在进行预测时通常需要的,并且它们的值定义了模型关于特定问题的技能。这样的模型参数/参数的示例包括权重(例如,在ANN中);约束;支持矢量机(SVM)中的支持矢量;线性回归和/或逻辑回归中的系数;自然语言处理(NLP)和/或自然语言理解(NLU)的词频、句长、每个句子的名词或动词分布、每个单词的特定字符n元语法的数量、词汇多样性等;和/或诸如此类。
至少在一些实施例中,术语“动量”是指梯度下降中的梯度的聚合。附加地或备选地,至少在一些实施例中,术语“动量”是指随机梯度下降算法的变体,其中当前梯度被m(动量)代替,m(动量)是梯度的聚合。
至少在一些实施例中,术语“目标函数”是指对于特定的优化问题要被最大化或最小化的函数。在某些情况下,目标函数由其决策变量和目标来定义。目标是要优化的值、目的或目标,诸如最大化利润或最小化特定资源的使用。所选择的特定目标函数取决于要解决的特定问题和要优化的目标。还可以定义约束来限制决策变量可以假设的值,从而影响可以实现的目标值(输出)。在优化过程中,目标函数的决策变量通常在约束的范围内被改变或操纵,以改善目标函数的值。一般来说,求解目标函数的难度随着该目标函数中所包括的决策变量的数量增加而增加。至少在一些实施例中,术语“决策变量”是指表示要做出的决策的变量。至少在一些实施例中,在优化的上下文中,术语“目标”是指可取决于一个或多个决策变量的函数。
至少在一些实施例中,术语“优化”是指使某物(例如,设计、系统或决策)尽可能完美、有功能或有效的动作、过程或方法论。优化通常包括数学过程,诸如寻找函数的最大值或最小值。至少在一些实施例中,术语“最优”是指最期望或满意的结局、成果或输出。至少在一些实施例中,术语“最优”是指对某个结局最有利的某物的数量或程度。至少在一些实施例中,术语“最优”是指产生最好可能结果的条件、程度、数量或折衷。附加地或备选地,至少在一些实施例中,术语“最优”是指最有利或有益的成果或结果。
至少在一些实施例中,术语“概率”是指事件有多少可能发生和/或命题有多少可能为真的数字描述。至少在一些实施例中,术语“概率分布”是指给出实验或事件的不同可能结果的发生概率的数学函数。
至少在一些实施例中,术语“分位数”是指将概率分布的范围划分为具有相等概率的连续区间,或者以相同方式划分样本中的观测结果的(一个或多个)分界点。至少在一些实施例中,术语“分位数函数”是指与随机变量的概率分布相关联的函数,并且指定随机变量的值,使得变量小于或等于该值的概率等于给定概率。术语“分位数函数”也可以称为百分位数函数、百分点函数、或逆累积分布函数。
至少在一些实施例中,在ML的上下文中,术语“回归算法”和/或“回归分析”是指用于估计因变量(通常称为“结果变量”)和一个或多个自变量(通常称为“预测因子(predictor)”、“协变量”或“特征”)之间的关系的统计过程的集合。回归算法/模型的示例包括逻辑回归、线性回归、梯度下降(GD)、随机GD(SGD)等。
至少在一些实施例中,术语“强化学习”或“RL”是指基于与环境的交互的面向目标的学习技术。在RL中,代理旨在基于试错过程通过与环境交互来优化长期目标。RL算法的示例包括马尔可夫决策过程、马尔可夫链、Q学习、多臂赌博机学习、时间差异学习、和深度RL。
至少在一些实施例中,实验或随机试验的概率论中的术语“样本空间”(也称为“样本描述空间”或“可能性空间”)是指该实验的所有可能成果或结果的集合。
至少在一些实施例中,术语“自注意力(self-attention)”是指为了计算序列的表示而使单个序列的不同位置相关的注意力机制。附加地或备选地,至少在一些实施例中,术语“自注意力”是指应用于单个上下文而不是跨多个上下文的注意力机制,其中查询、关键字、和值是从同一上下文中提取的。
至少在一些实施例中,术语“softmax”或“softmax函数”是指将逻辑函数推广到多个维度;“softmax函数”用在多项式逻辑回归中,并且通常用作神经网络的最后激活函数,以将网络的输出标准化为所预测输出类上的概率分布。
至少在一些实施例中,术语“监督学习”是指旨在学习函数或生成在给定标记数据集的情况下产生输出的ML模型的ML技术。监督学习算法从包含输入和期望输出两者的数据集合中构建模型。例如,监督学习涉及学习函数或模型,该函数或模型基于示例输入-输出对或包括训练示例集合的某种其它形式的标记训练数据来将输入映射到输出。每个输入-输出对包括输入对象(例如矢量)和期望输出对象或值(称为“监督信号”)。监督学习可以被分组为分类算法、回归算法、和基于实例的算法。
至少在一些实施例中,术语“张量”是指由描述与空间坐标相关的函数的分量阵列所表示的对象或其它数据结构。附加地或备选地,至少在一些实施例中,术语“张量”是指矢量和矩阵的推广,和/或可以被理解为多维阵列。附加地或备选地,至少在一些实施例中,术语“张量”是指排列在具有可变数量的轴的规则网格上的数的阵列。至少在一些实施例中,张量可以被定义为单个点、孤立点的集合、或点的连续体,其中张量的元素是位置的函数,并且张量形成“张量场”。至少在一些实施例中,矢量可以被认为是一维(1D)或一阶张量,并且矩阵可以被认为是二维(2D)或二阶张量。张量符号可以与矩阵符号相同或相似,其中大写字母代表张量,并且带有下标整数的小写字母代表张量内的标量值。
至少在一些实施例中,术语“无监督学习”是指旨在从无标签数据中学习用于描述隐藏结构的函数的ML技术。无监督学习算法从只包含输入而不包含期望输出标签的数据集合中构建模型。无监督学习算法用于发现数据中的结构,像如数据点的分组或聚类。无监督学习的示例是K均值聚类、主成分分析(PCA)、和主题建模以及其它。至少在一些实施例中,术语“半监督学习”是指从不完整的训练数据(其中一部分样本输入不包括标签)开发ML模型的ML算法。
至少在一些实施例中,术语“矢量”是指称为标量的一个或多个值的元组,并且“特征矢量”可以是包括一个或多个特征的元组的矢量。
至少在一些实施例中,术语“基准”或“基准测试”是指使用产生性能度量的特定指示符的性能测量。附加地或备选地,至少在一些实施例中,术语“基准”或“基准测试”是指运行计算机程序、程序集合、或其它操作以便评估对象的相对性能的动作,通常通过对其运行多个标准测试和试验来进行。
至少在一些实施例中,术语“翻译”是指将数据从第一形式、形状、配置、结构、布置、实施例、描述等转变或以其它方式改变成第二形式、形状、配置、结构、布置、实施例、描述等的过程;至少在一些实施例中,可能有两种不同类型的翻译:转码(transcoding)和变换(transformation)。
至少在一些实施例中,术语“转码”是指获取一种格式(例如,打包二进制格式)的信息/数据,并以相同的顺序将相同的信息/数据翻译成另一种格式。附加地或备选地,至少在一些实施例中,术语“转码”是指以相同的顺序获取相同的信息,并且不同地封装该信息(例如,比特或字节)。至少在一些实施例中,术语“变换”是指将数据从一种格式改变并将其写为另一种格式,保持数据项的相同次序、顺序、和/或嵌套。附加地或备选地,至少在一些实施例中,术语“变换”涉及将数据从第一格式或结构转变成第二格式或结构的过程,并且涉及将数据重新成形为第二格式以符合模式或其它类似规范。变换可以包括重新排列数据项或数据对象,这可能涉及改变数据项/对象的次序、顺序、和/或嵌套。附加地或备选地,至少在一些实施例中,术语“变换”是指将数据对象的模式改变为另一模式。
尽管已经参考特定示例性方面描述了这些实现,但是将显而易见的是,在不脱离本公开的更宽范围的情况下,可以对这些方面进行各种修改和改变。可以在组合中或在并行实现中使用本文中描述的许多布置和过程,以提供更大的带宽/吞吐量,并支持可使得可用于所服务的边缘系统的边缘服务选择。因此,说明书和附图被认为是说明性的,而不是限制性意义的。形成本文一部分的附图通过说明而非限制的方式示出了可以在其中实践本主题的特定方面。足够详细地描述了所说明的方面,以使得本领域技术人员能够实践本文中公开的教导。可以利用并从中导出其它方面,使得在不脱离本公开的范围的情况下,可以进行结构和逻辑上的替换和改变。因此,将不以限制性意义来理解本具体实施方式,并且各种方面的范围仅由所附权利要求连同这样的权利要求所赋予权利的等效物的完整范围来限定。
本发明主题的此类方面在本文中可以单独和/或共同提及,这仅仅是为了方便,而不是打算在实际上公开了多于一个方面或发明概念的情况下将本申请的范围主动限制于任何单个方面或发明概念。因此,尽管本文中已经示出和描述了特定方面,但是应当意识到,计划实现相同目的的任何布置都可以替代所示的特定方面。本公开旨在覆盖各个方面的任何和所有修改或变化。在回顾以上描述后,以上方面和本文中未特定描述的其它方面的组合对于本领域技术人员将是明白的。
Claims (28)
1. 一种作为机器学习模型交换(MLMS)系统而采用的设备,所述设备包括:
接口电路模块,所述接口电路模块被配置成获得硬件(HW)平台的上下文信息,机器学习(ML)模型当前被部署在所述HW平台上;以及
处理器电路模块,所述处理器电路模块被连接到所述接口电路模块,其中所述处理器电路模块被配置成:
基于所述HW平台的所述上下文信息并基于由所当前部署的ML模型所生成的推理结果来检测所述HW平台的状态变化,
触发MLMS引擎以执行MLMS,其中所述MLMS涉及用替换ML模型来替换所当前部署的ML模型,并且当所述HW平台正在由所述上下文信息所指示的一个或多个约束下操作时,所述替换ML模型被优化以用于在所述HW平台上运行,使得与正在所述一个或多个约束下在所述HW平台上运行的所当前部署的ML模型的性能相比,所述替换ML模型将以一个或多个改进的性能度量在所述一个或多个约束下在所述HW平台上运行,以及
向所述HW平台供应所述替换ML模型。
2.如权利要求1所述的设备,其中,所述处理器电路模块被配置成操作所述MLMS引擎来执行所述MLMS。
3.如权利要求2所述的设备,其中,为了执行所述MLMS,所述处理器电路模块被配置成操作所述MLMS引擎来执行神经架构搜索(NAS)算法以发现所述替换ML模型。
4. 如权利要求2所述的设备,其中,在部署所当前部署的ML模型之前,所述接口电路模块被配置成获得参考ML模型,并且所述处理器电路模块被配置成:
通过针对所述HW平台的多个不同操作条件中的每个操作条件而优化所述参考ML模型来生成ML模型的集合,其中ML模型的所述集合中的一个或多个ML模型相比所述参考ML模型具有更少的参数,并且所当前部署的ML模型在ML模型的所生成集合中;以及
存储ML模型的所述集合,其中所述替换ML模型在ML模型的所存储集合中。
5.如权利要求4所述的设备,其中,为了执行所述MLMS,所述处理器电路模块被配置成操作所述MLMS引擎以:
在ML模型的所存储集合中发现满足所述HW平台的第一系统约束和所述HW平台的第二系统约束的候选ML模型的集合,其中:
所述第一系统约束表示当所当前部署的ML模型被部署时的所述HW平台的系统上下文,以及
所述第二系统约束表示基于所检测到的状态变化的所述HW平台的系统上下文;
对于候选ML模型的所述集合中的每个候选ML模型,确定数据传输成本,所述数据传输成本是用候选ML模型的所述集合中的对应候选ML模型替换所当前部署的ML模型所需的计算资源量;以及
从候选ML模型的所述集合中选择具有最低数据传输成本的候选ML模型作为所述替换ML模型。
6.如权利要求1所述的设备,其中,所述接口电路模块被配置成获得ML配置,其中所述ML配置包括用于触发所述MLMS的执行的阈值。
7.如权利要求6所述的设备,其中,用于触发所述MLMS的执行的所述阈值包括应用质量度量,其中所述应用质量度量包括所当前部署的ML模型的性能度量阈值,在达到或超过所述性能度量阈值时,触发所述MLMS的所述执行。
8.如权利要求6所述的设备,其中,用于触发所述MLMS的执行的所述阈值包括系统约束,其中所述系统约束包括所述HW平台的一个或多个系统参数的阈值,在达到或超过所述阈值时,触发所述MLMS的所述执行。
9.如权利要求1所述的设备,其中,所述上下文信息包括所述HW平台的操作的当前模式,并且所述HW平台的操作的所述当前模式包括以下项之一:睡眠模式、空闲模式、唤醒模式、和突发模式。
10.如权利要求1所述的设备,其中,所述上下文信息包括所述HW平台的系统状态信息(SSI),并且所述SSI包括以下项中的一项或多项:所述HW平台的各个HW组件的温度、计算能力、存储器利用率、电源状态信息、操作系统信息、和所述各个HW组件的半导体工艺。
11.如权利要求1所述的设备,其中,所述上下文信息包括关于所述HW平台周围的环境的物理环境信息(PEI),并且所述PEI包括以下项中的一项或多项:所述HW平台的位置的当前温度、湿度、水分、海拔、环境光、环境音量、和天气数据。
12.如权利要求1所述的设备,其中,所述上下文信息包括所述HW平台的联网环境信息(NEI),并且所述NEI包括以下项中的一项或多项:信道状态条件、网络连接性度量、数据传输速率、和网络参数。
13.如权利要求1-12中任一项所述的设备,其中,所述设备是所述HW平台,或者所述设备是所述HW平台的组件。
14.如权利要求1-12中任一项所述的设备,其中,所述设备与所述HW平台分离。
15.如权利要求1-12中任一项所述的设备,其中,所述HW平台是以下项之一:物联网(IoT)装置、无人机、自主交通工具、客户端装置、网络设备、网络元件、边缘服务器、或云计算服务的一个或多个云计算节点。
16.如权利要求1-12中任一项所述的设备,其中,所述HW平台是边缘计算节点,所述MLMS引擎是由所述边缘计算节点操作的第一边缘应用或服务,并且所述处理器电路模块被配置成:
操作联合ML模型以:
向通信网络中的装置的集合分发相应学习任务,装置的所述集合包括一个或多个客户端装置或者一个或多个网络接入节点,以及
从装置的所述集合获得反馈,所述反馈包括所述相应学习任务中完成的学习任务和所述上下文信息中的至少一部分,其中所述上下文信息中的所述一部分包括以下项中的一项或多项:对装置的所述集合中的各个装置完成所述相应学习任务的能力或无能力的指示、一个或多个信号质量测量、和环境条件数据;以及
操作所述MLMS引擎以基于所述反馈确定所述替换ML模型为所述联合ML模型的优化版本。
17.一种用于执行机器学习模型交换(MLMS)策略的方法,所述方法包括:
获得硬件(HW)平台的上下文信息,机器学习(ML)模型当前被部署在所述HW平台上;
获得由所当前部署的ML模型生成的推理结果;
基于所述上下文信息和所述推理结果来检测所述HW平台的操作变化;
响应于所检测到的操作变化,确定替换ML模型以替换所当前部署的ML模型,其中所述替换ML模型被优化以用于在具有所检测到的操作变化的所述HW平台上操作,使得与正在所检测到的操作变化下在所述HW平台上运行的所当前部署的ML模型的性能相比,所述替换ML模型被配置成以一个或多个改进的性能度量在所检测到的操作变化下在所述HW平台上运行;以及
向所述HW平台供应所确定的替换ML模型。
18.如权利要求17所述的方法,其中,所述方法包括:
引起执行神经架构搜索(NAS)算法以发现所述替换ML模型。
19. 如权利要求17所述的方法,其中,所述方法包括:
在部署所述当前部署的ML模型之前,针对所述HW平台的多个不同操作条件中的每个操作条件而优化参考ML模型,其中ML模型的所述集合中的一个或多个ML模型相比所述参考ML模型具有更少的参数;以及
存储ML模型的所述集合,其中所当前部署的ML模型和所述替换ML模型在ML模型的所存储集合中。
20.如权利要求19所述的方法,其中,所述确定所述替换ML模型包括:
在ML模型的所存储集合中发现满足所述HW平台的第一系统约束和所述HW平台的第二系统约束的候选ML模型的集合,其中:
所述第一系统约束表示当所当前部署的ML模型被部署时的所述HW平台的操作条件,以及
所述第二系统约束表示基于所检测到的操作变化的所述HW平台的操作条件;
对于候选ML模型的所述集合中的每个候选ML模型,确定用候选ML模型的所述集合中的相应候选ML模型替换所当前部署的ML模型的数据传输成本,所述数据传输成本是用候选ML模型的所述集合中的对应候选ML模型替换所当前部署的ML模型所需的计算资源量;以及
从候选ML模型的所述集合中选择具有最低数据传输成本的候选ML模型作为所述替换ML模型。
21. 如权利要求20所述的方法,其中,所述确定用相应候选ML模型替换所当前部署的ML模型的所述数据传输成本包括:
对所述相应候选ML模型进行矢量化;以及
将经矢量化的候选ML模型中的每个经矢量化的候选ML模型与所当前部署的ML模型的经矢量化版本进行比较。
22.如权利要求17所述的方法,其中,所述方法包括:
获得包括应用质量度量、系统约束、和性能审计器设置的ML配置,其中:
所述应用质量度量包括所当前部署的ML模型的性能度量范围,
所述系统约束包括所述HW平台的系统参数的范围,以及
所述性能审计器设置包括指示所述HW平台的操作变化的所述系统约束和所述应用质量度量的组合。
23.如权利要求17所述的方法,其中,所述上下文信息包括以下项中的一项或多项:所述HW平台的操作的当前模式、所述HW平台的系统状态信息、关于所述HW平台周围的环境的物理环境信息、以及关于所述HW平台的网络条件的联网环境信息。
24.如权利要求17所述的方法,其中,所述计算节点是所述HW平台,或者所述计算节点是所述HW平台的组件。
25.如权利要求17所述的方法,其中,所述HW平台是与所述计算节点不同的装置。
26.如权利要求17所述的方法,其中,所述HW平台是以下项之一:物联网(IoT)装置、无人机、机器人、自主交通工具、客户端装置、网络设备、网络元件、边缘服务器、或云计算服务的一个或多个云计算节点。
27.如权利要求17所述的方法,其中,所述HW平台是边缘计算节点,并且所述方法包括:
向通信网络中的装置的集合分发联合ML模型的相应学习任务,装置的所述集合包括一个或多个客户端装置或者一个或多个网络接入节点;
从装置的所述集合获得反馈,所述反馈包括所述相应学习任务中完成的学习任务和所述上下文信息中的至少一部分,其中所述上下文信息中的所述一部分包括以下项中的一项或多项:对装置的所述集合中的各个装置完成所述相应学习任务的能力或无能力的指示、一个或多个信号质量测量、和环境条件数据;以及
基于所述反馈确定所述替换ML模型为所述联合ML模型的优化版本。
28.至少一个计算机可读存储介质,包括指令,其中,由计算节点的一个或多个处理器执行所述指令将使所述计算节点执行如权利要求17-27中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/506161 | 2021-10-20 | ||
US17/506,161 US20220036123A1 (en) | 2021-10-20 | 2021-10-20 | Machine learning model scaling system with energy efficient network data transfer for power aware hardware |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116011511A true CN116011511A (zh) | 2023-04-25 |
Family
ID=80003231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211146718.2A Pending CN116011511A (zh) | 2021-10-20 | 2022-09-20 | 用于功率感知硬件的机器学习模型缩放系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220036123A1 (zh) |
CN (1) | CN116011511A (zh) |
DE (1) | DE102022125334A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7491274B2 (ja) * | 2021-07-29 | 2024-05-28 | トヨタ自動車株式会社 | 検査装置および検査方法 |
US20230142965A1 (en) * | 2021-11-09 | 2023-05-11 | Paypal, Inc. | Federated machine learning based browser extension |
EP4227853A1 (en) * | 2022-02-09 | 2023-08-16 | Mitsubishi Electric R&D Centre Europe B.V. | User equipment for implementing a control in a set of user equipments |
WO2023201695A1 (en) * | 2022-04-22 | 2023-10-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Automatic model selection |
US20230342460A1 (en) * | 2022-04-25 | 2023-10-26 | Palo Alto Networks, Inc. | Malware detection for documents with deep mutual learning |
CN114692513B (zh) * | 2022-05-26 | 2022-09-06 | 国网山西省电力公司晋城供电公司 | 基于深度学习的新能源承载力评估方法、预警方法 |
CN115134077B (zh) * | 2022-06-30 | 2024-10-18 | 云南电网有限责任公司信息中心 | 基于横向lstm联邦学习的企业电力负荷联合预测方法及系统 |
CN114994547B (zh) * | 2022-08-05 | 2022-11-18 | 中汽研新能源汽车检验中心(天津)有限公司 | 基于深度学习和一致性检测的电池包安全状态评估方法 |
US20240086408A1 (en) * | 2022-09-13 | 2024-03-14 | Starlord (Cayman) Limited | Data query apparatus, method, and storage medium |
CN117768936A (zh) * | 2022-09-16 | 2024-03-26 | 华为技术有限公司 | 信道测量方法及相关装置 |
CN115829053B (zh) * | 2022-11-25 | 2023-09-19 | 北京百度网讯科技有限公司 | 模型运行策略确定方法、装置、电子设备以及存储介质 |
CN118433738A (zh) * | 2023-02-01 | 2024-08-02 | 中兴通讯股份有限公司 | 一种无线局域网络动态阈值参数生成方法及装置 |
EP4432088A1 (de) * | 2023-03-13 | 2024-09-18 | Siemens Aktiengesellschaft | Computer-implementiertes verfahren und system zur automatisierten verarbeitung von aufgaben auf basis künstlicher intelligenz an einer edge-vorrichtung |
WO2024188804A1 (de) * | 2023-03-13 | 2024-09-19 | Siemens Aktiengesellschaft | Computer-implementiertes verfahren und system zur automatisierten verarbeitung von aufgaben auf basis künstlicher intelligenz an einer edge-vorrichtung |
WO2024192113A1 (en) * | 2023-03-14 | 2024-09-19 | President And Fellows Of Harvard College | Systems and methods for modeling key points with probabilistic generative model |
CN116136752B (zh) * | 2023-04-19 | 2023-06-30 | 上海登临科技有限公司 | 阵列输入策略的确定方法和系统 |
US12086707B2 (en) * | 2023-10-11 | 2024-09-10 | Deepx Co., Ltd. | Neural processing unit being operated according to dynamically calibrated phase of clock signal |
CN117972401B (zh) * | 2024-04-02 | 2024-06-14 | 深圳市科沃电气技术有限公司 | 电网全局拓扑的控制方法、装置、设备以及存储介质 |
-
2021
- 2021-10-20 US US17/506,161 patent/US20220036123A1/en active Pending
-
2022
- 2022-09-20 CN CN202211146718.2A patent/CN116011511A/zh active Pending
- 2022-09-30 DE DE102022125334.1A patent/DE102022125334A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220036123A1 (en) | 2022-02-03 |
DE102022125334A1 (de) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220036123A1 (en) | Machine learning model scaling system with energy efficient network data transfer for power aware hardware | |
EP4170553A1 (en) | Framework for optimization of machine learning architectures | |
US20220036194A1 (en) | Deep neural network optimization system for machine learning model scaling | |
NL2030226B1 (en) | Methods, systems, articles of manufacture and apparatus to optimize resources in edge networks | |
Qian et al. | Orchestrating the development lifecycle of machine learning-based IoT applications: A taxonomy and survey | |
Shadrin et al. | Designing future precision agriculture: Detection of seeds germination using artificial intelligence on a low-power embedded system | |
US11714853B2 (en) | Efficient storage and searching of vector datasets | |
US20210097449A1 (en) | Memory-efficient system for decision tree machine learning | |
US11315045B2 (en) | Entropy-based weighting in random forest models | |
US20200145337A1 (en) | Automated platform resource management in edge computing environments | |
EP4163833A1 (en) | Deep neural network model design enhanced by real-time proxy evaluation feedback | |
WO2022271235A1 (en) | Methods and apparatus to perform machine-learning model operations on sparse accelerators | |
US20220035877A1 (en) | Hardware-aware machine learning model search mechanisms | |
KR20220149418A (ko) | 자율 공장들에 대한 인공 지능 모델들을 자동으로 업데이트하는 방법들 및 장치들 | |
WO2023080976A1 (en) | Schedule-aware dynamically reconfigurable adder tree architecture for partial sum accumulation in machine learning accelerator | |
US20240023028A1 (en) | Wireless network energy saving with graph neural networks | |
EP4156629B1 (en) | Systems, apparatus, and methods for data resiliency in an edge network environment | |
US20220326757A1 (en) | Multi-timescale power control technologies | |
Huang et al. | Compact and fast machine learning accelerator for IoT devices | |
Pasricha et al. | Data analytics enables energy-efficiency and robustness: from mobile to manycores, datacenters, and networks (special session paper) | |
Khouas et al. | Training Machine Learning models at the Edge: A Survey | |
US20240220788A1 (en) | Dynamic neural distribution function machine learning architecture | |
Sakr | Tiny Machine Learning Environment: Enabling Intelligence on Constrained Devices | |
Amezzane et al. | Energy consumption of batch and online data stream learning models for smartphone-based human activity recognition | |
YANG et al. | Orchestrating development lifecycle of machine learning based IoT applications: A survey |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |