CN116011510A - 用于优化机器学习架构的框架 - Google Patents
用于优化机器学习架构的框架 Download PDFInfo
- Publication number
- CN116011510A CN116011510A CN202211135287.XA CN202211135287A CN116011510A CN 116011510 A CN116011510 A CN 116011510A CN 202211135287 A CN202211135287 A CN 202211135287A CN 116011510 A CN116011510 A CN 116011510A
- Authority
- CN
- China
- Prior art keywords
- architectures
- optimal
- architecture
- search
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/027—Frames
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Databases & Information Systems (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及用于自动且高效地找到针对一个或多个指定性能度量和/或硬件平台而被优化的机器学习(ML)架构的框架。该框架提供了ML架构,该ML架构适用于指定ML领域,并且相比可以手动操作完成在显著较少时间中和相比现有ML模型搜索技术在较少时间中,针对指定硬件平台而被优化。此外,提供了用户界面,其允许用户基于修改的搜索参数(诸如不同的硬件平台方面和/或性能度量)来搜索不同的ML架构。可描述和/或要求保护其它实施例。
Description
技术领域
本文中所描述的实施例一般涉及人工智能(AI)、机器学习(ML)和神经架构搜索(NAS)技术,并且尤其涉及用于优化AI/ML架构的技术。
背景技术
机器学习(ML)是对通过经验和通过使用数据而自动改进的计算机算法的研究。执行机器学习涉及创建统计模型(或简称为“模型”),所述统计模型被配置成处理数据以做出预测和/或推理。ML算法使用样本数据(称为“训练数据”)和/或基于过去的经验来建立模型,以便在没有被明确编程为这么做的情况下做出预测或决策。
ML模型设计是漫长的过程,其涉及用于调整给定ML模型的结构、参数和/或超参数的训练和验证的高度迭代循环。对于诸如深度神经网络(DNN)等的较大ML架构,训练和验证可能是特别耗时且资源密集的。传统的ML设计技术还可能需要超出许多用户的能力范围(beyond the reach of many users)的相对大量的计算资源。
ML模型在资源消耗、速度、准确度和其它性能度量方面的效率部分基于用于ML模型的模型参数和/或超参数(hyperparameter)的数量和类型。对模型参数和/或超参数的改变能够极大地影响给定ML模型的性能。尤其是,减少参数的数量可能降低模型的准确度,但与模型具有大量参数相比,可允许模型运行得更快并使用更少的存储器。
代替手动设计ML模型,可使用神经架构搜索(NAS)算法来自动发现用于特定任务的理想ML模型(参见例如Abdelfattah等人的“Zero-Cost Proxies for LightweightNAS”,ArXiv abs/2101.08134(2021年1月20日)(“[Abdelfattah]”))、Liu等人的“DARTS:Differentiable Architecture Search”,arXiv:1806.09055v2 [cs.LG](2019年4月23日)(“[Liu]”)、Cai等人的“Once-for-All: Train One Network and Specialize it forEfficient Deployment”,arXiv:1908.09791v5 [cs.LG](2020年4月29日)(“[Cai1]”)、以及Cai等人的“ProxylessNAS: Direct Neural Architecture Search on Target Taskand Hardware”,arXiv:1812.00332v2 [cs.LG](2019年2月23日)(“[Cai2]”))。NAS是将架构工程自动化的过程。然而,NAS也可能是耗时且计算密集的;通常,使用NAS可能花费许多小时或许多天来完全训练单个神经网络(参见[Abdelfattah])。另一种解决方案涉及训练超级转换器(SuperTransformer)来执行进化型搜索(参见例如Wang等人的“HAT:Hardware-Aware Transformers for Efficient Natural Language Processing”,arXiv:2005.14187v1 [cs.CL](2020年5月28日)(“[Wang]”))。然而,此解决方案与基于NAS的解决方案遭受相同的缺陷。
试图减少执行NAS所需的时间的一种方法包括使用代理训练制(“代理”)。代理可以用来预测模型的准确度,而代替完整训练(参见[Abdelfattah])。这涉及使用代理函数来产生代理分数,该代理分数给出模型性能的粗略近似。然而,代理函数并不总是与它们正近似的度量很好地相关(参见,例如Mellor等人,“Neural Architecture Search withoutTraining”,Int'l Conference on Machine Learning,PMLR,第7588-7598页(2021年7月1日)(“[Mellor]”)),这就是为什么代理函数仍然是研究的活跃领域。此外,在代理任务上优化的模型并不保证在目标任务上是最优的,特别是在考虑硬件度量(诸如时延)时(参见[Cai2])。
现有解决方案的另一缺陷是其有限的适用性。例如,[Cai1]和[Cai2]中描述的解决方案仅用于图像识别,并且[Wang]中描述的解决方案仅限于语言翻译。这些解决方案没有提供为多个不同的AI/ML领域寻找最优ML架构的综合系统。
除了仅适用于有限的问题领域集合之外,现有解决方案对非常窄的性能度量集合执行ML模型搜索。例如,[Cai1]仅提供top-1准确度和时延的结果。在[Wang]中,仅提供了双语评估备案(BLEU)(bilingual evaluation understudy)分数、时延、和模型大小(即参数数量)方面的结果。这些解决方案限于可能或者可能不与特定用户相关的小的性能度量子集。
最后,现有解决方案将其主要努力投向减少训练超网络(超网)所需的时间量,所述超网络(超网)是预训练的、过参数化的网络,可从其导出更小的子网络(子网)。尽管现有解决方案在这方面可能是成功的,但是它们忽略了花费大量时间来寻找减少从超网中寻找最优DNN架构的时间量的方法。相反,现有解决方案倾向于将简单的现成方法(例如,随机搜索、遗传算法、贝叶斯优化、树形结构Parzen估计器等)用于其解决方案的这一步骤。
附图说明
在不一定按比例绘制的附图中,相似标号可描述不同视图中的类似组件。具有不同字母后缀的相似数字可以代表类似组件的不同实例。在附图的图中以示例而非限制的方式示出了一些实施例,在附图中:
图1描绘了根据各种实施例的机器学习(ML)架构搜索系统的概述。图2描绘了根据各种实施例的ML架构搜索系统的附加方面。图3描绘了根据各种实施例的示例机器学习(ML)架构搜索用户界面。图4描绘了与现有解决方案相比的根据各种实施例的使用ML架构搜索的搜索结果。图5描述了本文中讨论的实施例的ML架构搜索与随机搜索方法的比较。
图6描绘了示例神经网络(NN)。图7a示出了示例加速器架构。图7b示出了计算系统的示例组件。图8和图9描绘了可用于实践本文中讨论的各种实施例的示例过程。
具体实施方式
本公开涉及用于优化人工智能(AI)和/或机器学习(ML)模型以减少资源消耗同时改进AI/ML模型性能的技术。特别地,本公开提供了用于ML模型(例如,深度神经网络(DNN))和硬件的共同优化的综合框架。
AI/ML研究人员通过针对不同的应用领域(例如,计算机视觉、语言翻译等)创建新的ML模型和算法(例如,包括DNN)来不断推动最新技术发展水平。在许多情况下,ML模型是在研究人员当时可用的硬件平台(例如,具有基于标准消费者的平台和/或图形处理单元(GPU)的桌上型计算机)上创建和评估的。此外,当评估ML模型时,研究人员可能仅考虑性能度量的狭窄集合(例如,准确度)。因此,ML模型针对研究人员在研究时可用的硬件平台和研究的特定度量而被固有地优化。试图解决相同问题(曾针对其来设计ML模型)的用户可能只能访问与AI/ML研究人员使用的硬件平台不同的硬件平台,或者可能想到用于部署特定ML模型的特定硬件平台。此外,一些用户可能对不同的和/或多个性能度量(例如,准确度、时延、功耗等)感兴趣。因而研究人员提供的ML模型的性能对于这些用户来说是次优的。
然而,针对各个硬件平台和特定性能度量来优化ML模型是非常耗时的工作,这需要高度专业化的知识。由于硬件平台的某些特性(例如,时钟速度、处理器核的数量、高速缓存存储器的数量等)将影响优化过程,这种类型的优化通常是在对硬件平台有大量深入理解的情况下手动完成的。优化过程还被到ML模型的输入数据的特性(例如,批大小、图像大小、轮/迭代次数等)的影响。最后,对性能度量(例如,从时延到功耗)、输入数据特征(例如,增加批大小)、硬件特征(例如,增加处理器核的数量)或硬件平台(例如,从GPU到中央处理单元(CPU))的任何改变都将需要再次开始这种昂贵的优化过程。
本公开提供了发现ML架构的ML架构搜索系统,所述ML架构可应用于指定的AI/ML应用领域,并且相比手动完成在显著更少的时间内针对指定的硬件平台而被优化,并且相比现有方法使用显著更少的计算资源。此外,如果硬件平台(或不同组件)改变和/或如果(一个或多个)相关度量改变,则这些改变可以容易地用于发现对于新的/更新的规范最优的新的/不同的ML架构。
虽然使用现有解决方案找到的ML架构的质量各不相同,但是本文中讨论的实施例使用了非常适合于同时优化多个度量的方法,并且改进了搜索,使得相比其它方法在显著更少的时间内找到非常高性能的ML架构(参见例如图4)。为了减少发现最优ML架构所需的时间,下文讨论的ML架构搜索系统确定与指定硬件平台和指定性能度量最相关的ML架构特定参数。
与使用渐进方法来解决问题的现有解决方案相反,下文讨论的ML架构搜索系统可以应用于广泛范围的AI/ML任务、AI/ML领域、和/或性能度量。下文讨论的ML架构搜索系统允许规定各种AI/ML任务和/或领域以及性能度量(例如,以ML配置的形式),并自动发现用于这些规定(或ML配置)的最优ML架构。下文讨论的ML架构搜索系统不仅相比现有方法发现了更优的ML架构,下文讨论的ML架构搜索系统还相比现有方法在更短的时间量内发现这些ML架构。
1.机器学习(ML)架构搜索框架
图1示出了ML架构搜索(MLAS)系统100的主要组件和交互。MLAS系统100提供了用于自动且高效地发现ML架构的整体且综合的框架,其针对一个或多个指定的性能度量和/或硬件平台而被优化。MLAS系统100适用于多个AI/ML领域(例如,图像识别、语义分割、语言翻译、语言建模、推荐),并且允许(一个或多个)AI/ML任务和/或(一个或多个)领域(对于所述任务和/或领域,用户想要优化的ML架构)的直观规定。MLAS系统100包括MLAS接口(MLASI)110a、MLAS功能200、性能度量130和ML架构储存库(MLAR)140。系统100的操作可以如下所述。
在步骤1,客户端装置101向MLASI 110a提供ML配置(config)105。在图1中,客户端装置101被示为膝上型计算机,然而,客户端装置101可以是任何其它类型的客户端或用户装置,诸如本文中讨论的那些。为了与MLASI 110a交互,客户端装置101操作MLASI客户端应用(app)110b(以下称为“MLASI 110b”),其可以是合适的客户端,诸如web浏览器、桌面app、移动app、web app和/或配置成经由合适的通信协议(例如,超文本传输协议(HTTP)(或其变体)、消息队列遥测传输(MQTT)、实时流传输协议(RTSP)和/或诸如此类)与MLASI 110a一起操作的其它类似元件。MLASI 110a允许客户端装置101的用户管理(或指定)MLAS系统100将如何搜索最优ML架构。
为了本公开的目的,术语“ML架构”可以指具有ML参数的特定集合的特定ML模型和/或配置成在特定硬件平台上操作的这种ML模型。这里,ML参数的集合可以指“模型参数”(也简称为“参数”)和/或“超参数”。模型参数是经由训练而导出的参数,而超参数是其值被用于控制学习过程的各方面并且通常必须在运行ML模型之前设置的参数。另外,为了本公开的目的,超参数可以被分类为架构超参数或训练超参数。架构超参数是与ML模型的架构方面相关的超参数,诸如例如DNN中的层数、DNN中的特定层类型(例如,卷积层、多层感知(MLP)层等)、输出通道的数量、内核大小和/或诸如此类。训练超参数是控制ML模型的训练过程的超参数,诸如例如,轮数、学习速率等。为了本公开的目的,如本文中所使用的术语“ML参数”可以指模型参数、超参数、或者模型参数和超参数两者,除非上下文另有规定。
MLASI 110a是允许用户使用他们的MLASI 110b向系统100提供输入105的服务器侧app等。例如,MLASI 110a和MLASI 110b(统称为“MLASI 110”)提供了允许ML模型设计者、开发者和/或其它类型的用户创建、编辑和/或操纵ML模型和/或ML应用的平台或框架。MLASI 110包括图形用户界面(GUI),其包括允许用户添加、更新和/或改变各种ML架构搜索参数和/或(预训练的)超网和/或其它类似ML模型方面的各种图形元素/对象。MLASI 110还允许客户端装置101的用户获得(例如,下载)由MLAS系统100发现的最优ML架构/模型。这种GUI的示例在图3中示出。在一些实现中,MLASI 110b可以是与命令行接口和/或与用于app开发的软件开发环境(SDE)、集成开发环境(IDE)、软件开发工具包(SDK)、软件开发平台(SDP)等相同或类似的开发环境。另外,MLASI 110a包括应用编程接口(API)以访问系统100的其它子系统、管理ML模型和参数更新(例如,新的或更新的ML配置105)、和调用所支持的ML操作库(例如,如由ML配置105所指示的)。此外,ML配置105可以是信息对象、文件、电子文档等,其采用任何合适的形式或格式,诸如例如合适的标记语言文档(例如,超文本标记语言(HTML)、可扩展标记语言(XML)、AI标记语言(AIML)、JavaScript对象符号(JSON)等)、列式文件格式(例如,分层数据格式(HDF),包括HDF4、HDF5等;Hadoop分布式文件系统(HDFS);Apache® Parquet、petastorm等)、基于表格文本的格式(例如逗号分隔值(csv)、电子表格文件格式(例如.xlsx等))、模型文件格式(例如,协议缓冲文件(.pb文件扩展名)、Keras(.h5文件扩展名)、python(.pkl文件扩展名)、PyTorch模型(.pt文件扩展名)、预测模型标记语言(.pmml文件扩展名)、.mlmodel文件格式等)和/或诸如此类。
ML配置105至少包括搜索参数的集合。搜索参数的集合包括值、变量、对象、数据或其它信息,其包括或指示以下项中的期望的一项或多项:(一个或多个)AI/ML任务、AI/ML领域、多度量起始点和/或感兴趣区域(ROI)、(一个或多个)合适的数据集、支持的库(例如,PyTorch、TensorFlow、ApacheTM MXNet等)、硬件平台信息(HPI)、性能度量(例如,时延、准确度、功耗等)、ML参数和/或其它类似的搜索参数、信息和/或数据,诸如从其开始ML模型搜索的ROI和/或多度量起始点。搜索参数的集合可以采用以下项的形式:搜索查询字符串、标记语言文档、和/或任何其它合适的形式/格式。
AI/ML任务可以描述要解决的期望问题,并且AI/ML领域可以描述要实现的期望目标。ML任务的示例包括聚类、分类、回归、异常检测、数据清理、自动化ML(autoML)、关联规则学习、强化学习、结构化预测、特征工程、特征学习、在线学习、监督学习、半监督学习(SSL)、无监督学习、机器学习排序(MLR)、语法归纳和/或诸如此类。ML领域包括推论和问题解决、知识表示和/或本体论、自动规划、自然语言处理(NLP)、感知(例如,计算机视觉、语音识别等)、自主运动和操纵(例如,定位、机器人移动/行进、自主驾驶等)以及社交智能。
附加地或备选地,可以代替ML配置105提供、与ML配置105一起提供或在ML配置105中提供相对较大的参考ML模型(本文中称为“超网络”或“超网”),系统100将从其中发现更小的ML模型(本文中称为“子网络”或“子网”)。
在这些实现中,MLASI 110可以包括合适的文件传输机制或上传组件,以使得客户端装置101能够向系统100提供超网(或ML配置105)。附加地或备选地,超网包含过参数化的操作集合,在生成最优ML架构期间从所述过参数化的操作集合中选择一个或多个子网。例如,超网可以是最终用户已经开发但是在计算、存储和/或功耗方面操作起来昂贵的相对较大和/或密集的ML模型。该超网可以包括对预测和/或推理确定没有显著贡献的参数和/或权重,并且这些参数和/或权重对超网的整体计算复杂度和密度有贡献。因此,超网包含更小的子网,该更小的子网在被单独训练时可以匹配原始ML模型(超网)在训练达相同数量的迭代或轮时的准确度。在一些实现中,用户提供的超网可以是预训练的,或者系统100可以训练超网。
ML配置105还可以包括适当格式化的数据集(或者对这种数据集的参考)。这里,适当格式化的数据集指的是对应于所提供的超网和/或指定的AI/ML任务和/或AI/ML领域的数据集。例如,将用于NLP领域的数据集将可能不同于用于计算机视觉领域的数据集。
如先前所提到的,ML配置105可以包括HPI。HPI可以包括用户打算在其上部署ML模型的期望硬件平台和/或各个硬件组件的配置、规格、技术细节、特性和/或其它方面。在一些实现中,ML配置105可以包括特定硬件平台的特定标识符(ID)或信息(例如,系统型号、品牌或产品线、型号编号、世代或版本号、库存保管单位(SKU)、产品线后缀、序列号、装置ID、装置名称、产品ID等),其然后将被用于获得该平台针对ML架构搜索的相关信息。在这些实现的一个示例中,ML配置105可以指定期望的系统或装置,诸如“Dell® PowerEdge® R750机架式服务器”、“Intel Quark™ SE微控制器C1000平台”、“Mobotix® M73”、“Samsung®Galaxy® S21 Ultra 5G”等。附加地或备选地,诸如例如通过指定Google Cloud® VertexAI、Amazon® SageMaker™、Microsoft® Azure机器学习和/或诸如此类,用户可以输入或以其它方式指示特定的云计算平台/服务(以及可选地,指示基于他们的云服务订阅、账户详情等的可用资源)。
附加地或备选地,可以为各个硬件组件(例如,(一个或多个)处理器、存储器装置、芯片集、传感器类型等)提供类似的ID/信息,诸如例如特定处理器、各个存储器装置、各个存储装置、主板、基板、I/O装置、网卡等的ID/信息。附加地或备选地,ML配置105可以包括不同硬件装置或平台的规格,诸如例如处理器规格(例如,核或线程的数量、时钟频率或时钟速率(例如,基本时钟速率和/或提升的时钟速率)、高速缓存大小、总线速度、存储器带宽、热设计功率(TDP)等)、存储器装置规格(例如,容量、单元类型、棒类型、时钟频率等)、存储装置规格(例如,读/写速度、每秒输入/输出操作(IOPS)、存储容量、存储器单元类型等)和/或其它类似的规格(诸如用于制造集成电路的光刻或半导体技术)、和/或诸如此类。
在步骤2,MLASI 110a将ML配置105(例如,搜索参数和/或超网)提供给MLAS功能200。MLAS功能200是用于生成最优ML架构的引擎、模块或其它类似的元件集合。这些架构的生成由指定的ML配置105(例如,预训练的超网和来自搜索参数的值)确定。MLAS功能200使用ML配置105以生成性能度量130,并且还经由MLASI 110向客户端装置101提供性能度量130。MLAS功能200确定哪些ML特定的参数与指定的硬件平台和性能度量最相关,并采用该信息来减小ML模型搜索空间的大小。
在一个示例中,ML配置105包括使用高端硬件平台(例如,具有2.80千兆赫(GHz)基频、48兆字节(MB)高速缓存和265瓦特(W)TDP的Intel® Xeon® Platinum 8362处理器)设计的预训练的超网(例如,DNN),并且用户希望将该超网部署在诸如IoT装置或嵌入式装置(例如,具有1.5 GHz基频、1.5 MB高速缓存和9W TDP的Intel Atom® x6413E处理器)或片上系统(SoC)(例如,Intel® Agilex™ F-Series 027 FPGA(R25A),其具有259兆位(Mb)嵌入式存储器以及具有1.3至2.6 GHz基频和0.25至2 MB高速缓存的四核64位Arm* Cortex*-A53)。这里,超网在高端硬件平台上运行时可以提供相对准确的预测,但是在低端装置上运行时可能无法一样好地执行。这部分基于超网将利用的搜索空间和/或参数将取决于它部署在其上的特定平台而不同。在该示例中,MLAS功能200将从超网生成子网,该子网可以由低端装置操作,同时仍然在一定程度上与超网一样好地执行(例如,在某个误差容限内和/或在接近超网的性能度量的某个性能范围内)。
在一些实现中,MLAS功能200为ML架构搜索生成或确定接近最优的起始点或起始点的集合(例如,下文关于图2讨论的通知式热启动211),以减少找到最优ML架构的时间量。附加地或备选地,MLAS功能200可以使用多度量起始点或ROI(例如,下面关于图2讨论的启发式热启动212)作为(或代替)接近最优的起始点。在一些实现中,接近最优的起始点、多度量起始点或ROI可以是用户指定的。接近最优的起始点、多度量起始点或ROI可以与由MLAS功能200实现的增强进化型算法搜索算法(例如,下面关于图2讨论的增强NSGA-II)一起使用。
附加地或备选地,MLAS功能200采用使用多样性保持的增强进化型算法搜索(参见例如Igel等人的“Covariance Matrix Adaptation for Multi-objectiveOptimization”,Evolutionary Computation,第15卷,第1期,第1-28页(2007年3月1日)(“[Igel]”)和Deb等人的“A Fast and Elitist Multiobjective Genetic Algorithm:NSGA-II”,IEEE Transactions on Evolutionary Computation,第6卷,第2期,(2002年4月)(“[Deb]”),其中每篇的内容特此通过引用以其整体而被并入)。附加地或备选地,MLAS功能200采用使用非功能架构避免的增强进化型算法搜索(参见例如Stanley等人的“Evolving Neural Networks Through Augmented Topologies”,EvolutionaryComputation,第10卷,第2期,第99-127页(2002年6月10日)(“[Stanley]”),其内容特此通过引用以其整体而被并入)。MLAS功能200的其它方面将在下文关于图2进行讨论。
在步骤3,性能度量130由MLAS功能200产生,性能度量130经由MLASI 110被提供给客户端装置101(步骤5和步骤6),并被存储在合适的数据存储(诸如MLAR 140)中(步骤4)。在图3中示出了由MLASI 110b显示的性能度量130的示例。性能度量130包括对所生成/发现的ML模型/架构的性能的(一个或多个)测量的某种形式。至少在一些实施例中,性能度量130可以被称为性能指示符、关键性能指示符(KPI)和/或诸如此类。性能度量130的示例在下文在1.1节中讨论。
在一些实现中,性能度量130可以指示为Pareto前沿(或Pareto边界)的形式,其包括作为Pareto有效解的ML架构的集合。Pareto效率指的是这样的情况,其中在不使至少一个个体或偏好准则变坏的情况下或在没有其任何损失的情况下,没有个体或偏好准则可以是情况更好的。这里,如果没有ML架构的备选分配、配置或布置(例如,ML参数、模型(例如,DNN层)配置/布置、硬件配置等),其中可以对ML架构的至少一个方面进行性能改进而不会降低ML架构的另一方面的性能,则该ML架构可以被认为是Pareto最优的。这个Pareto最优可以表示为Pareto边界(也称为“Pareto前沿”或“Pareto集”),其是所有Pareto有效解/分配的集合。可以在图形上示出Pareto前沿(参见例如图3的Pareto边界330)。
MLAR 140存储被选择用于经由MLASI 110b下载的最优ML架构的经学习参数值(例如,权重)和ML架构。附加地或备选地,MLAR 140存储与最优ML架构相关的其它方面,诸如例如最优ML架构的各种参数;用于发现最优ML架构的搜索准则(例如,指定的AI/ML任务、AI/ML领域、HPI等);启发法、约束和/或最优ML架构的参数之间的其它关系;和/或与最优ML架构相关的其它类似数据。MLAR 140可以是合适的数据存储装置、数据库(DB)系统和/或云计算服务,包括提供对物理和/或虚拟资源池的访问的计算系统(例如,服务器、存储装置、应用等,诸如本文中讨论的那些)的网络或其它互连。MLAR 140可以实现任何合适的数据存储系统/结构,诸如例如关系型DB管理系统(DBMS),诸如非关系型DBMS(例如NoSQL DB)和/或一些其它合适的存储系统/结构。
图2示出了根据各种实施例的MLAS功能200的组件。在一些实现中,MLAS功能200基于多目标进化型算法(MOEA)。进化型算法(EA)是受生物进化启发的基于种群的元启发式优化算法。通常,EA包括对优化问题的候选解的种群,其朝着更好的解进化。每个候选解具有可以变异和改变的属性的集合(例如,它的“染色体”或“基因型”)。在某些情况下,候选解采用二进制而被表示为0和1的字符串,但其它编码也是可能的。此外,EA的一次运行可以产生对多目标优化问题的Pareto最优解的集合。MOEA是应用于多目标优化问题的EA,其涉及要同时优化的多个优化问题和/或多个目标函数(包括多目标函数)(参见例如黄等人的“Survey on Multi-Objective Evolutionary Algorithms”,IOP Conf. Series: J. ofPhysics: Conf. Series,第1288卷,第1期,p. 012057(2019年8月1日),其内容特此通过引用以其整体而被并入)。MLAS功能200包括种群初始化器201、架构搜索类型引擎202、多目标候选生成器(MOCG)203和性能度量评估器204。MLAS功能200的元素可以如下操作。
种群初始化器201将候选ML架构的种群初始化为对MOEA的候选解。候选ML架构的种群可以采用合适的数据结构的形式,例如,其中每个候选ML架构被表示为各种ML参数的矢量、矩阵或张量。每个候选ML架构在迭代进化的种群中扮演个体的角色,并且每次迭代中的种群被称为“代”。这在下文中更详细地讨论。在各种实施例中,由种群初始化器201初始化的候选ML架构的种群可以基于由ML配置105指示的ML参数。例如,候选ML架构的种群可以包括已知用于解决特定AI/ML任务和/或诸如此类的ML架构。附加地或备选地,候选ML架构的种群可以基于由ML配置105指示的HPI。
在各种实施例中,种群初始化器201使用热启动机制211、212来初始化种群或搜索空间。热启动机制211、212存储并分析在过去的搜索中曾被发现是最优的ML架构的特性,以推理当前搜索的接近最优的候选。热启动机制211、212已经示出显著减少找到最优ML架构所需的时间。热启动机制211、212包括通知式热启动211和启发式热启动212,种群初始化器201可以使用其中的一个或两个。
对于通知式热启动211,使用来自一个或多个先前的最优ML架构的信息来生成候选ML架构的初始种群。先前的最优ML架构可以是先前发现的ML架构,其曾被确定为解决相同或相似的AI/ML任务、在相同或相似的AI/ML领域内、和/或与相同或相似的HPI相关联(例如,曾可部署在相同或相似的硬件平台上)。MLAR 140存储先前的ML架构和/或曾被发现对于过去指定的搜索参数最优的先前ML架构的经分析特征,以推理搜索参数(例如,ML配置105)的当前种群的接近最优的候选。例如,如果第一ML架构搜索曾与要在Intel® XeonSkylake处理器上执行的图像分类问题相关,并且该搜索产生了关于曾对于为该平台生成子网络是重要的架构参数的信息(例如,内核大小、层数、输出通道的数量等)。然后,对于要在Intel® Xeon Cascade Lake处理器上执行的图像分类问题的第二ML架构搜索,可以利用架构参数作为第二ML架构搜索的初始种群。已经发现这种技术显著减少了寻找最优ML架构所需的迭代次数。
对于启发式热启动212,使用启发法种群来生成候选ML架构的初始种群。启发法是从具有类似问题的先前经验(即从特定AI/ML领域中的各个超网发现和/或生成子网、解决特定AI/ML任务、和/或在特定硬件平台上操作的经验)中导出的策略。合适的启发式函数和/或超启发式函数可用于标识或确定用于启发式热启动212的启发法种群。启发式函数(或简称为“启发式”)是基于可用信息在每个分支步骤对搜索算法中的备选方案进行排名以决定跟随哪个分支的函数。超启发法包括寻求将选择、组合、生成和/或适配若干更简单的启发法(或此类启发法的组成部分)的过程自动化以高效解决计算搜索问题(通常通过结合其它ML技术)的搜索方法。这些启发法和/或约束提供了ML架构的较小空间,从该空间中对初始种群进行采样。一种类型的约束可能包括各种架构参数之间的依赖性。例如,第一ML架构搜索可以指示在不同样增加可被存储在MLAR 140中的特定子网架构的输出通道数量的情况下不能实现层数的增加。由于在针对相同或相似的AI/ML任务/领域的第二ML架构搜索之前,该约束是已知的,所以这两个参数可以被联系在一起(或者以其它方式彼此关联),使得一个参数的增加会增加另一参数(即,可以通过启发法来约束这些参数)。这意味着不必独立于其它参数来对这些参数中的每一个执行搜索,这减少了要搜索的ML参数的总数。
架构搜索类型引擎202确定将用于从候选ML架构的初始集合(种群)中找到最优ML架构的搜索类型(或搜索策略)。搜索类型或搜索策略是搜索空间(即,由种群初始化器201提供的种群)将被搜索或以其它方式分析的方式。搜索空间可以是要优化的函数的域和/或定义所有可能解的集合的可行区域。在实施例中,支持的搜索类型包括约束式搜索221和全搜索222。然而,除了约束式搜索221或全搜索222之外,或者作为约束式搜索221或全搜索222的备选,可以使用一个或多个其它搜索类型。
约束式搜索221(也称为“启发式搜索221”)是利用ML模型参数和/或属性中的约束、启发法和/或相关性来减少评估候选ML架构所需的迭代次数的搜索类型。约束式搜索221类似于启发式热启动212,因为约束或启发法被用于定义不同参数之间的相关性或其它关系,并且那些关系/相关性被用于约束在ML架构搜索空间(即,由种群初始化器201生成的候选ML架构的集合)中执行的搜索。这里,“约束”可以是对(例如,由下面讨论的MOCG 203定义的)优化问题的解(例如,候选ML架构)必须满足的逻辑条件或条件组合的集合(例如,参见Tan等人的“EfficientNet: Rethinking Model Scaling for Convolutional NeuralNetworks”,arXiv:1905.11946v5 [cs.LG](2020年9月11日),其内容特此通过引用以其整体而被并入)。附加地或备选地,“约束”是对ML架构本身的约束,诸如例如可以改变的架构参数、此类参数可以如何改变、和/或此类参数是否与一个或多个其它架构参数成比例地改变。这种技术被提供为允许相比全搜索222技术在更少的时间内找到最优ML架构的选项。
全搜索222涉及对候选ML架构的属性的完整集合执行彻底搜索。全搜索222是其中对搜索空间的手动指定集合或子集执行搜索的强力技术。与约束式搜索221相反,全搜索222不将参数视为相关的。在与其它搜索方法相比时,全搜索222方法在时间和计算资源消耗方面是昂贵的。全搜索222技术可以找到最优ML架构(子网),但是在与约束式搜索221相比时,将可能需要更多的时间。
MOCG 203从最初生成的那些候选ML架构中生成候选ML架构。MOCG 203包括一个或多个优化算法230(也称为“优化器230”、“调整算法230”或“调整器230”),其有助于生成对于指定的性能度量应该是最优的ML架构。在一些实现中,客户端装置101的用户可以在ML配置105中指定将被用作MOCG 203的部分的一个或多个性能度量(例如,准确度、时延、功耗)。附加地或备选地,用户可以在ML配置105中指定要使用的特定优化器230(或优化器230的集合)。附加地或备选地,用户可以提供它们自己的(例如,定制建立的)优化器230以供生成候选ML架构使用。
(一个或多个)优化器230优化ML架构的集合中的每个ML架构的ML参数。(一个或多个)优化器230可以通过试图求解目标函数来优化ML参数。例如,目标函数可以是(一个或多个)优化器230试图最小化(例如,通过在训练阶段收敛到成本函数的最小值)的损失函数。损失函数表示被训练的模型的预测和问题实例之间的差异。(一个或多个)优化器230可以找到产生最优ML架构的ML参数的集合,该最优ML架构最小化给定独立数据上的损失函数,并且为ML模型选择模型参数的集合。ML模型、ML参数或交互ML参数的可保持性是从调整过程中可以获得多少性能的测量。在一些实现中,(一个或多个)优化器230使用全局优化算法(也称为全局搜索算法),该算法为整个搜索空间(例如,候选ML架构的种群)定位目标函数的一个或多个极值。在一些实施例中,(一个或多个)优化器230找到多个极值(例如,最优ML架构)作为Pareto边界。全局优化算法遍历整个搜索空间(例如,候选ML架构的种群)并接近目标函数的极值(或找到目标函数的精确极值)。在这些实现中,(一个或多个)优化器230(或全局搜索算法)在种群内搜索至少与种群中的其它候选ML架构相比最拟合ML参数和/或HPI的候选ML架构的集合。
在一些实现中,(一个或多个)优化器230可以确定非支配或Pareto最优的ML架构,其可以是在不使一个或多个其它ML参数降级的情况下没有ML参数的值可以被改进的ML架构。
可以使用若干不同的优化算法230,诸如网格搜索、随机搜索(参见例如Bergstra等人的“Random Search for Hyper-Parameter Optimization”,J. of Machine LearningResearch,第13卷,第2期(2012年2月1日)(“[Bergstra1]”),其内容特此通过引用以其整体而被并入)、遗传算法(GA)(参见例如Eiben等人的“Introduction to evolutionarycomputing”,第2版,Springer,Berlin(2015)(“[Eiben]”),其内容特此通过引用以其整体而被并入)、贝叶斯优化(参见例如Dewancker等人的“Bayesian Optimization forMachine Learning: A Practical Guidebook”,arXiv preprint arXiv:1612.04858(2016年12月14日)和Snoek等人的“Practical Bayesian Optimization of Machine LearningAlgorithms”,Advances in Neural Information Processing Systems 25(NIPS 2012)(2012年8月29日),其内容特此通过引用以其整体而被并入)、树形结构Parzen估计器(参见例如Bergstra等人的“Algorithms for Hyper-Parameter Optimization”,Advances inNeural Information Processing Systems 24(NIPS 2011)(2011)(“[Bergstra2]”),其内容特此通过引用以其整体而被并入)、强度Pareto进化型算法2(SPEA-2)(参见例如Zitzler等人的“SPEA2: Improving the Performance of the Strength Pareto EvolutionaryAlgorithm”,Technical Report 103,Computer Engineering and CommunicationNetworks Lab(TIK),Swiss Federal Institute of Technology(ETH) Zurich,CH,Tik-Report 103(2001年5月),其内容特此通过引用以其整体而被并入)、非支配排序遗传算法-II(NSGA-II)(参见例如[Deb]))和/或一些其它搜索算法。在一些实现中,前面提到的增强EA可以是NSGA-II的增强版本(“eNSGA-II”),其可以用于确定ML架构。不同的算法将具有不同的折衷,诸如候选的质量与生成这些候选所需的时间量的对比。在一些实现中,MOCG 203选择最适合期望的硬件平台部署和/或性能度量的一个或多个优化器230来使用。在任一实现中,为了优化的目的,子网可以被表示为弹性参数的矢量化形式。
在操作期间,在(一个或多个)优化器230包括EA或GA的实现中,在从初始种群开始的每代中(201),评估种群中每个候选ML架构的拟合度(202),其中从当前种群中随机选择更拟合的候选ML架构(203)和/或修改(例如,重组和可能随机变异)各个候选ML架构的“基因组”以形成新一代(203)。然后,新一代候选ML架构被用于MOEA的下一次迭代中(203)。当产生了最大数量的代和/或对于该种群达到了令人满意的拟合度水平时,MOEA终止。
对于eNSGA-II 230,MOCG 203从代表不同子网的亲代种群开始。在一个示例中,可以从ML架构搜索空间(其基于性能度量:准确度和时延)内的1019个可能组合中随机选择50个子网作为亲代种群。然后,对亲代种群执行交叉和/或变异操作,其中亲代种群中的两个或更多个亲代被组合和/或变异(参见例如[Eiben]讨论交叉和变异操作)。变异可以涉及选择特定的弹性参数片/集合,以基于预定义的概率和/或要优化的多个性能度量进行随机变异。交叉和/或变异操作产生子种群,并且eNSGA-II 230对子种群中的个体(例如,ML架构)进行排名,其中最小排名(lowest ranking)的个体构成Pareto最优前沿。然后,对排名后的子种群执行非支配排序,并且使用拥挤距离排序机制来选择子种群中的个体的不同集合,以带入下一次交叉和/或变异迭代。在一个实现中,计算每组两点之间的曼哈顿距离,从而创建包围框,并且移除该包围框内的点。附加地或备选地,在Javadi等人的“CombiningManhattan and Crowding distances in Decision Space for Multimodal Multi-objective Optimization Problems”,EUROGEN 2019(2019年9月12日)(“[Javadi]”)中讨论的曼哈顿距离和拥挤距离算法可以用于选择用于进行eNSGA-II的迭代的解,该文献的内容特此通过引用以其整体而被并入。然后重复这个过程,直到达到收敛或获得某个最优前沿。附加地或备选地,在其它实现中可以使用其它距离度量。
性能度量评估器204评估所标识的ML架构的指定性能度量。性能度量评估器204可以计算实际性能度量241,或者可以使用(一个或多个)代理函数242来近似性能度量。在一些实现中,用户可以选择是使用实际性能度量241还是一个或多个特定代理函数242。对于实际性能度量241,性能度量评估器204使用实际数据来收集性能度量的测量。例如,如果准确度被指定为性能度量之一,则性能度量评估器204将使用预定义的数据集来训练或以其它方式操作最优ML模型,并计算其准确度。在与代理函数相比时,这种技术提供了精确的性能度量测量,但是将需要更多的时间来完成。
(一个或多个)代理函数242包括将一个或多个变量、ML参数、数据和/或诸如此类作为输入并产生作为输入的替换、替代、代替、代理或表示的输出的任何函数。由性能度量评估器204使用的代理函数242用于近似最优ML架构的模型性能。可以使用的(一个或多个)代理函数242的示例包括将关键字(key)映射到值的函数和/或数据结构(例如,关联数组、映射函数、字典、哈希表、LUT、链表等)、ML分类器、参数计数、计算吞吐量度量、雅可比协方差、显著性剪枝、通道剪枝、和启发式和/或超启发式函数、和/或一些其它合适的代理函数或其组合(参见例如2021年10月8日提交的共同未决美国申请第17/497736号(代理人案卷号AD8302-US),其内容特此通过引用以其整体而被并入)。使用(一个或多个)代理函数242可以显著减少找到最优ML架构所需的时间量,但是有性能度量测量包含少量误差的可能性。在一些实现中,(一个或多个)代理函数242可以用于预测搜索空间中的候选ML架构的性能度量,并且当确定Pareto前沿时,可以针对位于沿Pareto前沿处的ML架构来测量实际性能度量241。
在性能度量评估204之后,最优ML架构被存储205在MLAR 140中。最优ML架构参数及其相关联的性能度量值被存储在MLAR 140中以用于之后的检索(例如,用于由用户和/或操作其它客户端装置101的其它用户执行的未来搜索)。存储在MLAR 140中的数据可以包括ML架构本身、那些ML架构的ML参数、它们的Pareto边界、用于搜索的基础的ML配置105、和/或任何其它合适的信息。
1.1性能度量
可以由性能度量评估器204测量和/或预测的性能度量可以基于特定的AI/ML任务和ML配置105的其它输入/参数。性能度量可以包括基于模型的度量和基于平台的度量。基于模型的度量是与模型本身的性能相关的度量和/或不考虑底层硬件平台的度量。基于平台的度量是与操作ML模型时的底层硬件平台的性能相关的度量。
基于模型的度量可以基于特定类型的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模型的底层硬件平台的性能相关的其它类似性能度量。
附加地或备选地,代理度量(例如,用作另一度量或属性的代替或替代的度量或属性)可以用于预测ML模型性能。对于任何前述性能度量,可以使用任何合适的数据集合和/或(一个或多个)测量机制来预测和/或测量这样的度量的总数、均值、和/或某种其它分布。
1.2示例用户界面
图3示出了根据各种实施例的示例图形用户界面(GUI)300,其可以被用户用来执行ML架构搜索。GUI 300可以对应于图1的MLASI客户端应用(app)110b。在该示例中,GUI300包括各种图形对象301-306,其使得用户能够向系统100提供ML参数。图形对象301是文本输入框,其允许用户输入和搜索它们希望在其上操作ML架构的特定硬件平台。在一些实现中,用户可以开始键入,并且文本输入框301可以基于用户键入的每个字符而被自动填充。图形对象302-305是下拉列表元件,其允许用户选择预定义的ML参数,包括期望的批大小302(例如,16、32等)、处理器核303的数量(例如,其可以取决于用户选择的特定目标平台301)、特定AI/ML任务304(例如,“分类/ImageNet 2012”和/或诸如此类,诸如本文中讨论的那些)、以及包括特定表示的数字格式(数)305(例如,“fp32”或“float32”、电气和电子工程师协会(IEEE)754浮点表示、任意精确度表示等)、和/或其它类似物。尽管未示出,但是可以包括其它图形对象来指定其它硬件参数(例如,存储器装置等)、性能度量、和/或其它类似的ML配置信息/搜索参数。用户然后可以使用图形对象306(例如,图3中的提交按钮306)向系统100提交所选择的ML参数。当选择提交按钮306时,MLASI 110b可以生成ML配置105并将其提交给系统100。
在用户输入各种ML参数之后,系统100找到ML架构候选并经由GUI 300向用户显示所述ML架构候选,所述用户然后可以使用图形对象307来选择并下载最拟合他们需求的ML架构。在该示例中,GUI 300显示指示所发现的ML架构的Pareto边界(称为“Pareto边界330”)的图表330。在该示例中,Pareto边界330由图表330中所显示的点来表示。图表330中的每个点可以表示由用户可下载的相应ML模型。这里,用户然后可以点击图表330中的各个点,并使用图形对象307(例如,图3中的下载模型按钮307)来下载对应的ML模型。
此外,GUI 300包括拨动式图形对象325(也称为“top-1对象325”、“top-1 325”等),其允许用户在仅具有top-1准确度的ML架构和所有发现/生成的ML模型的视图之间切换。top-1准确度是指其中具有最高概率的模型答案是预期答案的ML模型预测准确度的水平。top-1准确度测量预测标签与单个目标标签相匹配的示例的比例。附加地或备选地,GUI300可以包括用于查看Top-5准确度的ML模型的GCE,其指示ML模型的五个最高概率答案中的任一个是否匹配预期答案。当用户选择拨动式图形对象325时,图表330中的点的数量和位置可能改变。
在一个示例用例中,系统100是由诸如云计算服务之类的分布式计算系统所提供的工具或服务。该服务的这些用户(例如,客户端装置101的用户)将使用该工具来快速且自动地找到在他们的现有硬件平台上高效运行并且满足准确度要求和/或其它期望性能度量的ML架构,从而为他们提供大量价值。此外,由于该工具可轻松应用于英特尔特定的硬件平台,因此向潜在客户提供使用英特尔硬件的动机。该工具的示例用户界面在图3中示出。
1.3模拟结果
图4示出了图表400a和图表400b,其示出了用于寻找高性能ML架构的系统100与其它解决方案的比较。图表400a示出了系统100和其它所列解决方案的top-1准确度与归一化时延的对比,图表400a示出了系统100相比其它所列解决方案具有更好的top-1准确度与更少的时延。图表400b示出了各种所列解决方案和系统100的归一化搜索时间,其示出了系统100相比其它所列解决方案具有显著更少的搜索时间。系统100不仅找到比所有其它架构更好的架构(更低的时延和更高的准确度)(图表400a),而且在显著更少的时间内完成这一点(图表400b)。注意,搜索时间(图表400b)是找到整个Pareto边界(图表400a)所需的时间量,并且被归一化为随机搜索时间。基于图表400a和图表400b,随机搜索可以找到具有普通性能的ML架构,但是在相对较短的时间段内找到所述ML架构。贝叶斯优化找到比随机搜索略好的ML架构,但是比随机搜索需要更多的时间。GA方法需要相对适中的时间量来找到高性能ML架构,但是仍然可以使用系统100来显著改进GA。在图5中更清楚地看到与随机搜索相比的我们的解决方案的算法效率。
图5示出了算法效率图表500,其示出了用于寻找高性能DNN架构的系统100与随机搜索方法的比较。虚线示出了500000次迭代后的随机搜索结果。在图表500中,较浅的阴影三角形代表较早的种群,并且较深的阴影三角形代表较晚的种群。图表500示出,随着搜索使用系统100进行,相比使用随机搜索,在显著更少的迭代中找到更好的架构。
图5示出,随着对最优ML架构的搜索进行,相比随机搜索方法,系统100不仅找到具有更低时延和更高准确度的更高性能ML架构,而且在具有算法效率上的显著增加的情况下完成这一点。更特定地说,系统100需要大约5000次迭代来找到与通过随机搜索在500000次迭代后找到的那些架构具有相似性能的架构。因此,当与随机搜索方法相比时,系统100将迭代次数减少了大约两个数量级。
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)。这种实现的示例由图6示出。
图6示出了示例NN 600,其可以适合于供本文中讨论的各种实现的计算系统(或子系统)中的一个或多个所使用,部分地由硬件加速器实现,和/或诸如此类。NN 600可以是深度神经网络(DNN),其用作计算节点或计算节点的网络的人工大脑,以处置非常大和复杂的观测空间。附加地或备选地,NN 600可以是某一其它类型的拓扑(或拓扑的组合),诸如卷积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 600可以包含各种ML技术,其中连接的人工神经元610的集合(松散地)对生物大脑中向其它神经元/节点610传送信号的神经元进行建模。神经元610也可以被称为节点610、处理元件(PE)610等。节点610之间的连接620(或边缘620)根据生物大脑的突触来(松散地)建模,并在节点610之间传达信号。注意,为了清楚起见,在图6中没有标记所有的神经元610和边缘620。
每个神经元610具有一个或多个输入并产生输出,该输出可以被发送到一个或多个其它神经元610(输入和输出可以被称为“信号”)。对输入层Lx的神经元610的输入可以是外部数据的样本的特征值(例如,输入变量xi)。输入变量xi可以被设置为包含相关数据(例如,观测结果、ML特征等)的矢量。对隐藏层La、Lb和Lc的隐藏单元610的输入可以基于其它神经元610的输出。输出层Ly的最终输出神经元610的输出(例如,输出变量yj)包括预测、包括推理和/或完成所期望/所配置任务。输出变量yj可以采用确定、推理、预测和/或评估的形式。附加地或备选地,输出变量yj可以被设置为包含相关数据(例如,确定、推理、预测、评估和/或诸如此类)的矢量。
在ML的上下文中,“ML特征”(或简称为“特征”)是被观测的现象的单个可测量属性或特性。通常使用数字/数(例如整数)、字符串、变量、序数、实数值、类别、和/或诸如此类来表示特征。附加地或备选地,ML特征是基于可被量化和记录的可观测现象的各个变量,其可以是独立变量。ML模型使用一个或多个特征来进行预测或推理。在一些实现中,新特征可以从旧特征中导出。
神经元610可以具有阈值,使得只有当聚合信号越过该阈值时才发送信号。节点610可以包括激活函数,其定义给定输入或输入集合时该节点610的输出。附加地或备选地,节点610可以包括传播函数,其根据节点610的前趋神经元610的输出及它们的连接620作为加权和来计算对神经元610的输入。偏置项也可以添加到传播函数的结果中。
NN 600还包括连接620,其中一些连接提供至少一个神经元610的输出作为对至少另一神经元610的输入。每个连接620可以被指派代表其相对重要性的权重。权重也可以随着学习进行而被调整。权重增加或减少连接620处的信号强度。
神经元610可以被聚合或分组到一个或多个层L中,其中不同的层L可以对它们的输入执行不同的变换。在图6中,NN 600包括输入层Lx,一个或多个隐藏层La、Lb和Lc,以及输出层Ly(其中a、b、c、x和y可以是数字),其中每个层L包括一个或多个神经元610。信号从第一层(例如,输入层L1)行进到最后层(例如,输出层Ly)(可能在多次穿过隐藏层La、Lb和Lc之后)。在图6中,输入层La接收输入变量xi的数据(其中i = 1,…,p,其中p是数字)。隐藏层La、Lb和Lc处理输入xi,并且最终,输出层Ly提供输出变量yj(其中j= 1,…,p’,其中p’是与p相同或不同的数字)。在图6的示例中,为了简化说明,在ANN 600中只有三个隐藏层La、Lb和Lc,然而,ANN 600可以包括比所示的隐藏层多很多(或更少)的隐藏层La、Lb和Lc。
3.示例硬件和软件配置和布置
图7a是根据各种实施例的示例加速器架构700。加速器架构700向应用逻辑712提供神经网络(NN)功能性,并且因此可以被称为NN加速器架构700、DNN加速器架构700、和/或诸如此类。
应用逻辑712可以包括用于执行规范功能的应用软件和/或硬件组件。应用逻辑712将数据714转发给推理引擎716。推理引擎716是递送统一应用编程接口(API)的运行时间元件,该API将ANN(例如,(一个或多个)DNN等)推理与应用逻辑712集成,以向应用逻辑712提供结果718(或输出)。
为了提供推理,推理引擎716使用模型720,所述模型720控制如何对数据714进行DNN推理以生成结果718。具体地,模型720包括NN的层的拓扑。该拓扑包括接收数据714的输入层、输出结果718的输出层、以及提供数据714和结果718之间的处理的在输入和输出层之间的一个或多个隐藏层。拓扑可以被存储在合适的信息对象中,所述信息对象是诸如可扩展标记语言(XML)、JavaScript对象符号(JSON)和/或其它合适的数据结构、文件和/或诸如此类。在推理中使用DNN处理数据714时,模型720还可以包括用于任何层的结果的权重和/或偏置。
推理引擎716可以使用(一个或多个)硬件单元722来实现和/或被连接到(一个或多个)硬件单元722。至少在一些实施例中,推理引擎716是将逻辑规则应用于知识库以推断新信息的元件。至少在一些实施例中,知识库是用于存储由计算系统(例如,图7的计算节点750)所使用的复杂结构化和/或非结构化信息的任何技术。知识库可以包括存储装置、储存库、数据库管理系统、和/或其它类似元件。
此外,推理引擎716包括一个或多个加速器724,其使用一个或多个硬件单元722为DNN推理提供硬件加速。(一个或多个)加速器724是作为用于AI/ML应用和/或AI/ML任务的硬件加速而特别制定/设计的(一个或多个)软件和/或硬件元件。一个或多个加速器724可以包括采用多个突触结构725的形式的一个或多个处理元件(PE)阵列和/或乘法和累加(MAC)架构。(一个或多个)加速器724可以对应于下文描述的图7的加速电路模块764。
(一个或多个)硬件单元722可以包括一个或多个处理器和/或一个或多个可编程装置。作为示例,处理器可以包括中央处理单元(CPU)、图形处理单元(GPU)、专用AI加速器专用集成电路(ASIC)、视觉处理单元(VPU)、张量处理单元(TPU)和/或边缘TPU、神经计算引擎(NCE)、像素视觉核(PVC)、光子集成电路(PIC)或光学/光子计算装置、和/或诸如此类。可编程装置可以包括例如逻辑阵列、可编程逻辑装置(PLD)(诸如复杂PLD(CPLD))、现场可编程门阵列(FPGA)、可编程ASIC、可编程片上系统(SoC)等。(一个或多个)处理器和/或可编程装置可以对应于图7的处理器电路模块752和/或加速电路模块764。
图7b示出了可存在于用于实现本文中所述技术(例如,操作、过程、方法、和方法论)的计算节点750中的组件的示例。图7b提供了当被实现为计算装置(例如,作为移动装置、基站、服务器计算机、网关、设备等)的一部分时的节点750的组件的视图。在一些实现中,计算节点750可以是应用服务器、边缘服务器、云计算节点、或被配置成操作MLAS系统100(或其部分)的其它类似装置/系统。在一个示例中,计算节点750可以是操作MLASI 110b的应用服务器,并且另一计算节点750可以是操作MLAS功能200的边缘或云计算节点。附加地或备选地,计算节点750可以是操作先前讨论的过程800中的一些或全部的应用服务器、边缘服务器、云计算节点等。计算节点750可以包括本文中所引用的硬件或逻辑组件的任何组合,并且它可以包括或耦合于可与边缘通信网络或这样的网络的组合一起使用的任何装置。组件可以被实现为IC、IC的部分、分立电子装置、或其它模块、指令集、可编程逻辑或算法、硬件、硬件加速器、软件、固件、或其在计算节点750中适配的组合,或者被实现为以其它方式并入更大系统的机箱内的组件。对于一个实施例,至少一个处理器752可以与计算逻辑782封装在一起,并且配置成实践本文中描述的各种示例实施例的方面,以形成封装中系统(SiP)或片上系统(SoC)。
节点750包括采用一个或多个处理器752的形式的处理器电路模块。处理器电路模块752包括电路模块,诸如但不限于一个或多个处理器核和以下项中的一项或多项:高速缓存存储器、低压降电压调节器(LDO)、中断控制器、串行接口(诸如SPI、I2C或通用可编程串行接口电路)、实时时钟(RTC)、包括间隔和看门狗定时器的定时器计数器、通用I/O、存储器卡控制器(诸如安全数字/多媒体卡(SD/MMC)等)、接口、移动工业处理器接口(MIPI)接口和联合测试访问组(JTAG)测试访问端口。在一些实现中,处理器电路模块752可以包括一个或多个硬件加速器(例如,与加速电路模块764相同或相似),其可以是微处理器、可编程处理装置(例如,FPGA、ASIC等)等。一个或多个加速器可以包括例如计算机视觉和/或深度学习加速器。在一些实现中,处理器电路模块752可以包括片上存储器电路模块,其可以包括任何合适的易失性和/或非易失性存储器,诸如DRAM、SRAM、EPROM、EEPROM、闪速存储器、固态存储器、和/或任何其它类型的存储器装置技术,诸如本文中讨论的那些。
处理器电路模块752可以包括例如一个或多个处理器核(CPU)、应用处理器、GPU、RISC处理器、Acorn RISC机器(ARM)处理器、CISC处理器、一个或多个DSP、一个或多个FPGA、一个或多个PLD、一个或多个ASIC、一个或多个基带处理器、一个或多个射频集成电路(RFIC)、一个或多个微处理器或控制器、多核处理器、多线程处理器、超低压处理器、嵌入式处理器、或任何其它已知的处理元件、或其任何合适的组合。处理器(或核)752可以与存储器/存储装置耦合或者可以包括存储器/存储装置,并且可以配置成执行存储在存储器/存储装置中的指令781,以使得各种应用或操作系统能够在平台750上运行。处理器(或核)752配置成操作应用软件来向平台750的用户提供特定服务。在一些实施例中,(一个或多个)处理器752可以是被配置(或可配置)成根据本文中各种实施例进行操作的(一个或多个)专用处理器/控制器。
作为示例,(一个或多个)处理器752可以包括基于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®;等等。在一些实现中,(一个或多个)处理器752可以是以下项的一部分:片上系统(SoC)、封装上系统(SiP)、多芯片封装(MCP)和/或诸如此类,其中(一个或多个)处理器752和其它组件被形成为单个集成电路或单个封装,诸如来自Intel®公司的Edison™或Galileo™ SoC板。在本公开的其它地方提到(一个或多个)处理器752的其它示例。
节点750可以包括或被耦合到加速电路模块764,所述加速电路模块764可以由一个或多个AI/ML加速器、神经计算棒、神经形态硬件、FPGA、GPU的布置、一个或多个SOC(包括可编程SOC)、一个或多个CPU、一个或多个数字信号处理器、专用ASIC(包括可编程ASIC)、诸如复杂PLD(CPLD)或高复杂度PLD(HCPLD)之类的PLD、和/或被设计成完成一个或多个专门任务的其它形式的专门处理器或电路模块来体现。这些任务可以包括AI/ML处理(例如,包括训练、推理和分类操作)、视觉数据处理、网络数据处理、对象检测、规则分析等。在基于FPGA的实现中,加速电路模块764可以包括逻辑块或逻辑组构以及其它互连的资源,所述逻辑块或逻辑组构以及其它互连的资源可以被编程(配置)为执行各种功能,诸如本文中讨论的各种实施例中的过程、方法、功能等。在这样的实现中,加速电路模块764还可以包括用于在LUT等中存储逻辑块、逻辑组构、数据等的存储器单元(例如,EPROM、EEPROM、闪速存储器、静态存储器(例如,SRAM、反熔丝等))。
在一些实现中,处理器电路模块752和/或加速电路模块764可以包括为机器学习功能性(诸如用于操作执行ANN操作(诸如本文中所讨论的那些))特别制定的硬件元件。在这些实现中,处理器电路模块752和/或加速电路模块764可以是或者可以包括AI引擎芯片,所述AI引擎芯片一旦加载有适当的权重和训练代码就可以运行许多不同种类的AI指令集。附加地或备选地,处理器电路模块752和/或加速电路模块764可以是或可以包括(一个或多个)AI加速器,其可以是为AI应用的硬件加速所设计的前述硬件加速器中的一个或多个。作为示例,这个(这些)处理器或加速器可以是以下项的集群:人工智能(AI)GPU、Google®有限公司开发的张量处理单元(TPU)、由AlphaICs®提供的Real AI处理器(RAPs™)、由Intel®公司提供的Nervana™神经网络处理器(NNP)、Intel® Movidius™ Myriad™ X视觉处理单元(VPU)、基于NVIDIA® PX™的GPU、由General Vision®提供的NM500芯片、由Tesla®有限公司提供的Hardware 3、由Adapteva®提供的基于Epiphany™的处理器等。在一些实施例中,处理器电路模块752和/或加速电路模块764和/或硬件加速器电路模块可以被实现为(一个或多个)AI加速协处理器,诸如由Qualcomm®提供的Hexagon 685 DSP、由Imagination Technologies Limited®提供的PowerVR 2NX神经网络加速器(NNA)、Apple® A11或A12 Bionic SoC内的神经引擎核、由Huawei®提供的HiSilicon Kirin 970内的神经处理单元(NPU)和/或诸如此类。在一些基于硬件的实现中,节点750的各个子系统可以由被配置有适当的逻辑块、(一个或多个)比特流等的相应(一个或多个)AI加速协处理器、AI GPU、TPU或硬件加速器(例如,FPGA、ASIC、DSP、SOC等)等来操作,以执行其相应功能。
节点750还包括系统存储器754。可以使用任意数量的存储器装置来提供给定量的系统存储器。作为示例,存储器754可以是或包括易失性存储器,诸如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、RAMBUS®动态随机存取存储器(RDRAM®)、和/或任何其它期望类型的易失性存储器装置。附加地或备选地,存储器754可以是或包括非易失性存储器,诸如只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、非易失性RAM、铁电RAM、相变存储器(PCM)、闪速存储器、和/或任何其它期望类型的非易失性存储器装置。对存储器754的存取由存储器控制器控制。各个存储器装置可以是任意数量的不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(QDP)。可以使用任何数量的其它存储器实现,诸如不同种类的双列直插式存储器模块(DIMM),包括但不限于微DIMM或迷你DIMM。
存储电路模块758提供诸如数据、应用、操作系统等信息的永久存储。在示例中,存储装置758可以经由固态硬盘驱动器(SSDD)和/或高速电可擦除存储器(通常称为“闪速存储器”)来实现。可用于存储装置758的其它装置包括闪速存储器卡(诸如SD卡、microSD卡、XD图片卡等)以及USB闪存驱动器。在示例中,存储器装置可以是或者可以包括使用硫族化物玻璃的存储器装置、多阈值级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、结合忆阻器技术的磁阻随机存取存储器(MRAM)存储器、相变RAM(PRAM)、电阻存储器(包括金属氧化物基极、氧空位基极和导电桥随机存取存储器(CB-RAM))、或自旋转移矩(STT)-MRAM、基于自旋电子磁结存储器的装置、基于磁隧穿结(MTJ)的装置、基于畴壁(DW)和自旋轨道转移(SOT)的装置、基于晶闸管的存储器装置、硬盘驱动器(HDD)、微型HDD、其组合、和/或任何其它存储器。存储器电路模块754和/或存储电路模块758还可以结合来自Intel®和Micron®的三维(3D)交叉点(XPOINT)存储器。
存储器电路模块754和/或存储电路模块758被配置成以软件、固件、微代码或硬件级指令的形式存储计算逻辑783,以实现本文中描述的技术。可以采用计算逻辑783来存储编程指令的工作副本和/或永久副本或者用于创建编程指令的数据,以用于系统700的各种组件(例如,驱动程序、库、应用编程接口(API)等)、系统700的操作系统、一个或多个应用的操作,和/或以用于实行本文中讨论的实施例。计算逻辑783可以作为指令782或用于创建指令782的数据而被存储或加载到存储器电路模块754中,所述指令782或用于创建指令782的数据然后被处理器电路模块752存取以用于执行,从而实行本文中描述的功能。处理器电路模块752和/或加速电路模块764通过IX 756来存取存储器电路模块754和/或存储电路模块758。指令782引导处理器电路模块752执行特定的动作序列或流程,例如,如关于先前描绘的操作和功能性的(一个或多个)流程图和(一个或多个)框图所描述的。各种元件可由处理器电路模块752支持的汇编指令或高级语言来实现,所述汇编指令或高级语言可被编译成指令781或用于创建指令781的数据,以由处理器电路模块752执行。编程指令的永久副本可以在工厂或现场通过例如分发介质(未示出)、通过通信接口(例如,来自分发服务器(未示出))、空中下载(OTA)或其任意组合被置于存储电路模块758的永久存储装置中。
IX 756将处理器752耦合到通信电路模块766以用于与诸如远程服务器(未示出)等其它装置进行通信。通信电路模块766是硬件元件或硬件元件的集合,其用于通过一个或多个网络763进行通信和/或与其它装置进行通信。在一个示例中,通信电路模块766是或者包括收发器电路模块,其被配置成使用任意数量的频率和协议(诸如例如电气和电子工程师协会(IEEE)802.11(和/或其变体)、IEEE 802.15.4、Bluetooth®和/或Bluetooth®低能量(BLE)、ZigBee®、LoRaWAN™(远程广域网)、诸如3GPP LTE和/或第五代(5G)/新空口(NR)之类的蜂窝协议、和/或诸如此类)来实现无线通信。附加地或备选地,通信电路模块766是或者包括一个或多个网络接口控制器(NIC),其用于使用例如以太网连接、控制器域网(CAN)、本地互连网络(LIN)、DeviceNet、ControlNet、Data Highway+或PROFINET等来实现有线通信。在一些实施例中,通信电路模块766可以包括加速器724或以其它方式与加速器724耦合,所述加速器724包括一个或多个突触装置/结构725等,如先前所述。
IX 756还将处理器752耦合到接口电路模块770,接口电路模块770用于将节点750与一个或多个外部装置772连接。外部装置772可以包括例如传感器、致动器、定位电路模块(例如,全球导航卫星系统(GNSS)/全球定位系统(GPS)电路模块)、客户端装置、服务器、网络设备(例如,交换机、中枢、路由器等)、集成光子装置(例如,光学神经网络(ONN)集成电路(IC)和/或诸如此类)和/或其它类似装置。
在一些可选示例中,各种输入/输出(I/O)装置可以存在于节点750内或者连接到节点750,所述各种输入/输出(I/O)装置在图7中被称为输入电路模块786和输出电路模块784。输入电路模块786和输出电路模块784包括:被设计成使用户能够与平台750交互的一个或多个用户接口、和/或被设计成使外围组件能够与平台750交互的外围组件接口。输入电路模块786可以包括用于接受输入的任何物理或虚拟部件,尤其包括一个或多个物理或虚拟按钮(例如,重置按钮)、物理键盘、小键盘、鼠标、触摸板、触摸屏、麦克风、扫描仪、耳机、和/或诸如此类。可以包括输出电路模块784以示出信息或以其它方式传达信息,诸如传感器读数、(一个或多个)致动器位置、或其它类似信息。数据和/或图形可以被显示在输出电路模块784的一个或多个用户界面组件上。输出电路模块784可以包括任何数量和/或组合的音频或视觉显示器,尤其包括一个或多个简单的视觉输出/指示器(例如,二进制状态指示器(例如,发光二极管(LED))和多字符视觉输出,或者更复杂的输出,诸如显示装置或触摸屏(例如,液晶显示器(LCD)、LED显示器、量子点显示器、投影仪等),其中从平台750的操作中生成或产生字符、图形、多媒体对象等的输出。输出电路模块784还可以包括扬声器和/或其它音频发射装置、(一个或多个)打印机、和/或诸如此类。附加地或备选地,(一个或多个)传感器可以用作输入电路模块784(例如,图像捕获装置、运动捕获装置等),并且一个或多个致动器可以用作输出装置电路模块784(例如,用于提供触觉反馈的致动器等)。外围组件接口可以包括但不限于非易失性存储器端口、USB端口、音频插孔、电源接口等。在本系统的上下文中,显示器或控制台硬件可以用于提供边缘计算系统的输出和接收边缘计算系统的输入;用于管理边缘计算系统的组件或服务;标识边缘计算组件或服务的状态;或者用于进行任何其它数量的管理或监管功能或服务用例。
节点750的组件可以通过互连(IX)756进行通信。IX 756可以包括任意数量的技术,包括工业标准架构(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 756可以是例如在基于SoC的系统中使用的专用总线。
取决于计算系统700是用作固定计算装置(例如,数据中心中的服务器计算机、工作站、桌上型计算机等)还是移动计算装置(例如,智能手机、平板计算装置、膝上型计算机、游戏控制台、IoT装置等),系统700的元件的数量、能力和/或容量可以变化。在各种实现中,计算装置系统700可以包括以下项的一个或多个组件:数据中心、桌上型计算机、工作站、膝上型计算机、智能手机、平板电脑、数码相机、智能设备、智能家庭中枢、网络设备和/或处理数据的任何其它装置/系统。
4.示例实现
图8描绘了用于标识ML架构的过程800,其可由MLAS功能200执行。过程800开始于操作801,其中MLAS功能200(或种群初始化器201)基于ML配置来初始化候选ML架构的种群,ML配置可以指示或包括超网或各个ML参数以及HPI。在操作802,MLAS功能200(或架构搜索类型引擎202)确定用于搜索初始化种群的搜索策略。这里,搜索策略可以是通知式热启动211或启发式热启动212。在操作803,MLAS功能200(或MOCG 203)根据搜索策略来搜索初始化种群。在操作804,MLAS功能200(或MOCG 203)基于搜索从种群中确定最优ML架构的集合。这里,最优ML架构的集合是种群中比种群中其它ML架构更好地拟合ML配置中包括的HPI和ML参数的集合或组合(例如,拟合优度、拟合度准则等)的ML架构。附加地或备选地,最优ML架构的集合是种群中与种群中其它ML架构相比具有更好的(预测)性能度量的ML架构。在操作805,MLAS功能200(或性能度量评估器204)评估最优ML架构的集合中的每个最优ML架构的性能度量。这种评估可以使用实际性能度量来完成,所述性能度量是从使用测试数据来操作最优ML架构而测量的,或者是使用代理函数来预测的。在操作806,MLAS功能200将最优ML架构的集合存储在MLAR 140中。在执行操作806之后,过程800可以结束或者根据需要重复。
图9描绘了用于操作MLASI 110的过程900,其可由MLAS系统100执行。过程900开始于操作901,其中MLAS系统100向客户端装置101提供MLASI 110b。这里,如先前所讨论的,客户端装置101可以操作MLASI 110b以与MLASI 110a交互。在操作902,MLAS系统100确定是否已经通过MLASI 110从客户端装置101接收ML配置105。如果尚未接收ML配置105,则MLAS系统100循环返回以监测ML配置105。如果已经接收了ML配置105,则MLAS系统100诸如通过执行图8的过程800来执行MLAS。在操作903,MLAS系统100经由MLASI 110来指示所发现的ML架构(例如,通过过程800所确定的最优ML架构的集合)和用于每个所发现的ML架构的所确定的性能度量。在操作903之后,MLAS系统100循环回到操作902,以检查新的或更新的ML配置105。
本申请提供了如下的技术方案:
技术方案1. 一种用于标识机器学习(ML)架构的设备,所述设备包括:
种群初始化器,所述种群初始化器配置成基于ML配置来初始化候选ML架构的集合;
连接到所述种群初始化器的架构搜索类型引擎,所述架构搜索类型引擎配置成确定用于搜索所述初始化种群的搜索策略;
连接到所述架构搜索类型引擎的多目标候选生成器(MOCG),所述MOCG配置成:
根据所述搜索策略来搜索候选ML架构的所初始化集合,并且
基于所述搜索,从候选ML架构的所述集合中确定最优ML架构的集合,最优ML架构的所述集合满足在所述ML配置中包括以下项中的一项或多项:ML参数的集合和硬件平台信息(HPI);以及
连接到所述MOCG的性能度量评估器,所述性能度量评估器配置成评估最优ML架构的所述集合中的每个最优ML架构的性能。
技术方案2. 如技术方案1所述的设备,其中,所述ML配置包括超网络,并且候选ML架构的所述集合包括子网络,其中所述子网络相比所述超网络具有更少的参数。
技术方案3. 如技术方案1所述的设备,其中,所述种群初始化器配置成操作热启动机制以:
基于所述ML参数来分析先前被找到为最优ML架构的ML架构的特性;以及
基于所分析的特性来初始化候选ML架构的所述集合。
技术方案4. 如技术方案3所述的设备,其中,所述热启动机制是通知式热启动机制,并且所述种群初始化器配置成:
使用来自一个或多个先前生成的最优ML架构的信息来生成候选ML架构的所述集合,所述先前生成的最优ML架构是被确定为解决由所述ML配置所指示的相同或相似ML任务、与由所述ML配置所指示的相同或相似ML领域相关联、并且与由所述HPI所指示的相同或相似硬件平台相关联的ML架构中的一个或多个ML架构。
技术方案5. 如技术方案3所述的设备,其中,所述热启动机制是启发式热启动机制,并且所述种群初始化器配置成:
使用从至少一个先前生成的最优ML架构导出的一个或多个启发法来生成候选ML架构的所述集合,所述一个或多个启发法指示所述至少一个先前生成的最优ML架构的各个ML参数之间的关系。
技术方案6. 如技术方案1所述的设备,其中,所述搜索策略是约束式搜索策略,其中对候选ML架构的经初始化集合的所述搜索基于候选ML架构的经初始化集合中的所述候选ML架构的两个或ML参数之间的一个或多个约束。
技术方案7. 如技术方案1所述的设备,其中,所述搜索策略是全搜索策略,并且对候选ML架构的经初始化集合的所述搜索是对候选ML架构的所述集合的整体的搜索。
技术方案8. 如技术方案1所述的设备,其中,为了确定最优ML架构的所述集合,所述MOCG配置成操作一个或多个优化算法来解决多目标优化问题。
技术方案9. 如技术方案8所述的设备,其中,所述一个或多个优化算法包括以下项中的一项或多项:网格搜索、随机搜索、贝叶斯优化、进化型算法、树形结构Parzen估计器、和用户定义的优化算法。
技术方案10. 如技术方案9所述的设备,其中,所述进化型算法是强度Pareto进化型算法2(SPEA-2)或非支配排序遗传算法-II。
技术方案11. 如技术方案1所述的设备,其中,为了生成最优ML架构的所述集合,所述MOCG配置成将最优ML架构的所述集合确定为Pareto最优解的集合。
技术方案12. 如技术方案11所述的设备,其中,所述MOCG配置成:
对于优化迭代的集合中的每个优化迭代,在达到收敛之前,
对候选ML架构的所述集合中的每个候选ML架构进行排名;
执行拥挤距离排序机制,以从候选ML架构的经排名集合中选择各个候选ML架构;以及
将所选择的各个候选ML架构携带到下一次优化迭代中。
技术方案13. 如技术方案1所述的设备,其中,所述性能度量评估器配置成:
使用测试数据集来操作每个最优ML架构;以及
基于最优ML架构的所述集合中的相应最优ML架构的所述操作来测量一个或多个性能度量。
技术方案14. 如技术方案1所述的设备,其中,所述性能度量评估器配置成:
使用一个或多个代理函数来预测每个最优ML架构的一个或多个性能度量。
技术方案15. 如技术方案14所述的设备,其中,所述一个或多个代理函数包括以下项中的一项或多项:关联数组、映射函数、字典、哈希表、查找表(LUT)、链表、ML分类器、参数计数、计算吞吐量度量、雅可比协方差函数、显著性剪枝函数、通道剪枝函数、启发式函数、和超启发式函数。
技术方案16. 如技术方案1所述的设备,其中,所述HPI包括硬件平台的标识符,在所述硬件平台上将部署最优ML架构的所述集合中的所选择的最优ML架构。
技术方案17. 如技术方案1所述的设备,其中,所述HPI包括硬件平台的一个或多个硬件组件的数据。
技术方案18. 一个或多个非暂时性计算机可读介质(NTCRM),包括用于操作机器学习架构搜索接口(MLASI)的指令,其中由计算节点的一个或多个处理器执行所述指令将使所述计算节点:
向客户端装置提供所述MLASI;以及
响应于经由所述MLASI从所述客户端装置接收到单独的机器学习(ML)配置:
基于由所述单独的ML配置所指示的超网络来确定候选ML架构的集合,
对候选ML架构的所述集合执行多目标优化,以确定满足在所述ML配置中包括的硬件平台信息(HPI)和ML参数的组合中的一个或多个的最优ML架构的集合,
确定最优ML架构的所述集合中的每个最优ML架构的性能度量,以及
经由所述MLASI来指示最优ML架构的所述集合和每个最优ML架构的所确定的性能度量。
技术方案19. 如技术方案18所述的一个或多个NTCRM,其中,执行所述指令还将使所述计算节点:
经由所述MLASI接收对来自最优ML架构的所指示的集合中的最优ML架构的选择;以及
经由所述MLASI来发送所选择的最优ML架构。
技术方案20. 如技术方案18所述的一个或多个NTCRM,其中,最优ML架构的所述集合是多目标优化问题的Pareto边界,并且对最优ML架构的所述集合的所述指示是所述Pareto边界的图形表示。
技术方案21. 如技术方案18所述的一个或多个NTCRM,其中,为了确定候选ML架构的所述集合,所述指令的执行将使所述计算节点:
基于所述ML参数和所述HPI中的一个或多个,通过包括先前被找到为最优ML架构的ML架构来确定候选ML架构的所述集合;或者
使用从至少一个先前生成的最优ML架构导出的一个或多个启发法来确定候选ML架构的所述集合,所述一个或多个启发法指示所述至少一个先前生成的最优ML架构的各个ML参数之间的关系。
技术方案22. 如技术方案18所述的一个或多个NTCRM,其中,执行所述指令还将使所述计算节点:
确定用于搜索候选ML架构的所确定的集合的搜索策略,其中所述搜索策略是全搜索策略或约束式搜索策略中的一个,所述全搜索策略包括对候选ML架构的所述集合的整体的搜索,并且所述约束式搜索策略包括基于候选ML架构的所述集合中的所述候选ML架构的两个或更多个ML参数之间的一个或多个约束而对候选ML架构的所述集合的搜索。
技术方案23. 如技术方案18所述的一个或多个NTCRM,其中,为了执行所述多目标优化,执行所述指令还将使所述计算节点:
操作一个或多个优化算法来解决多目标优化问题,其中所述一个或多个优化算法包括以下项中的一项或多项:网格搜索、随机搜索、贝叶斯优化、遗传算法、树形结构Parzen估计器、强度Pareto进化型算法2(SPEA-2)、非支配排序遗传算法-II、和用户定义的优化算法。
技术方案24. 如技术方案18所述的一个或多个NTCRM,其中,为了确定性能度量,执行所述指令还将使所述计算节点:
使用测试数据集来操作每个最优ML架构;以及
从最优ML架构的所述集合中的相应最优ML架构的所述操作来测量所述性能度量。
技术方案25. 如技术方案18所述的一个或多个NTCRM,其中,为了确定性能度量,执行所述指令的执行还将使所述计算节点:
使用一个或多个代理函数来预测每个最优ML架构的一个或多个性能度量,其中所述一个或多个代理函数包括以下项中的一项或多项:关联数组、映射函数、字典、哈希表、查找表(LUT)、链表、ML分类器、参数计数、计算吞吐量度量、雅可比协方差函数、显著性剪枝函数、通道剪枝函数、启发式函数、和超启发式函数。
技术方案26. 如技术方案18所述的一个或多个NTCRM,其中,所述HPI包括硬件平台的技术数据或所述硬件平台的一个或多个硬件组件的技术数据。
当前描述的方法、系统和装置实施例的附加示例包括以下非限制性实现。以下非限制性示例中的每个示例可以独立存在,或者可以以任何排列或组合的方式与以下或贯穿本公开提供的其它示例中的任何一个或多个示例相结合。
示例A01包括一种用于标识机器学习(ML)架构的方法,所述方法包括:操作种群初始化器以基于ML配置来初始化候选ML架构的集合;操作架构搜索类型引擎以确定用于搜索候选ML架构的经初始化集合的搜索策略;操作多目标候选生成器(MOCG)以:根据所述搜索策略来搜索候选ML架构的经初始化集合,并且基于所述搜索从候选ML架构的所述集合中确定最优ML架构的集合,最优ML架构的所述集合是候选ML架构的所述集合中比候选ML架构的所述集合中的其它ML架构满足在所述ML配置中包括的ML参数和硬件平台信息(HPI)的更多组合的ML架构;以及操作性能度量评估器来评估最优ML架构的所述集合中的每个最优ML架构的性能。
示例A02包括示例A01和/或本文中的某个(某些)其它示例的方法,其中,所述ML配置包括超网络,并且候选ML架构的所述集合包括子网络,其中所述子网络相比所述超网络具有更少的参数。
示例A03包括示例A01-A02和/或本文中的某个(某些)其它示例的方法,还包括:操作热启动机制以基于所述ML参数来分析先前被找到为最优ML架构的ML架构的特性;以及基于所分析的特性来初始化候选ML架构的所述集合。
示例A04包括示例A03和/或本文中的某个(某些)其它示例的方法,其中,所述热启动机制是通知式热启动机制,并且操作所述种群初始化器包括:使用来自一个或多个先前生成的最优ML架构的信息来生成候选ML架构的所述集合,所述先前生成的最优ML架构是被确定为解决由所述ML配置所指示的相同或相似ML任务、在由所述ML配置所指示的相同或相似ML领域内、或者与由所述HPI所指示的相同或相似硬件平台相关联的ML架构中的ML架构。
示例A05包括示例A03和/或本文中的某个(某些)其它示例的方法,其中,所述热启动机制是启发式热启动机制,并且操作所述种群初始化器包括:使用从至少一个先前生成的最优ML架构导出的一个或多个启发法来生成候选ML架构的所述集合,所述一个或多个启发法指示所述至少一个先前生成的最优ML架构的各个ML参数之间的关系。
示例A06包括示例A01-A05和/或本文中的某个(某些)其它示例的方法,其中,所述搜索策略是约束式搜索策略,其中对候选ML架构的所述初始化集合的所述搜索基于候选ML架构的所述集合中的所述候选ML架构的两个或ML参数之间的一个或多个约束。
示例A07包括示例A01-A05和/或本文中的某个(某些)其它示例的方法,其中,所述搜索策略是全搜索策略,其中对候选ML架构的所述初始化集合的所述搜索是对候选ML架构的所述集合的整体的搜索。
示例A08包括示例A01-A07和/或本文中的某个(某些)其它示例的方法,其中,确定最优ML架构的所述集合,并且所述操作所述MOCG包括:操作一个或多个优化算法来解决多目标优化问题。
示例A09包括示例A08和/或本文中的某个(某些)其它示例的方法,其中,所述一个或多个优化算法包括以下项中的一项或多项:网格搜索、随机搜索、贝叶斯优化、进化型算法、树形结构Parzen估计器、和用户定义的优化算法。
示例A10包括示例A09和/或本文中的某个(某些)其它示例的方法,其中,所述进化型算法是强度Pareto进化型算法2(SPEA-2)或非支配排序遗传算法-II。
示例A11包括示例A01-A10和/或本文中的某个(某些)其它示例的方法,其中,生成最优ML架构的所述集合,并且所述操作所述MOCG包括:将最优ML架构的所述集合确定为Pareto最优解的集合。
示例A12包括示例A11和/或本文中的某个(某些)其它示例的方法,所述操作MOCG包括:对于优化迭代的集合中的每个优化迭代,在达到收敛之前,对候选ML架构的所述集合中的每个候选ML架构进行排名;执行拥挤距离排序机制,以从候选ML架构的经排名集合中选择各个候选ML架构;以及将所选择的各个候选ML架构携带到下一次优化迭代中。
示例A13包括示例A01-A12和/或本文中的某个(某些)其它示例的方法,其中,所述操作所述性能度量评估器包括:使用测试数据集来操作每个最优ML架构;以及基于最优ML架构的所述集合中的相应最优ML架构的所述操作来测量一个或多个性能度量。
示例A14包括示例A01-A12和/或本文中的某个(某些)其它示例的方法,其中,所述操作所述性能度量评估器包括:使用一个或多个代理函数来预测每个最优ML架构的一个或多个性能度量。
示例A15包括示例A14和/或本文中的某个(某些)其它示例的方法,其中,所述一个或多个代理函数包括以下项中的一项或多项:关联数组、映射函数、字典、哈希表、查找表(LUT)、链表、ML分类器、参数计数、计算吞吐量度量、雅可比协方差函数、显著性剪枝函数、通道剪枝函数、启发式函数、和超启发式函数。
示例A16包括示例A01-A15和/或本文中的某个(某些)其它示例的方法,其中,所述HPI包括硬件平台的标识符,在所述硬件平台上将部署最优ML架构的所述集合中的所选择的最优ML架构。
示例A17包括示例A01-A15和/或本文中的某个(某些)其它示例的方法,其中,所述HPI包括硬件平台的一个或多个硬件组件的技术细节。
示例A18包括一种用于操作机器学习架构搜索接口(MLASI)的方法,所述方法包括:向客户端装置提供所述MLASI;以及响应于经由所述MLASI从所述客户端装置接收到单独的ML配置:执行示例A01-A17中的任一个和/或本文中的某个(某些)其它示例的方法,并且经由所述MLASI来指示最优ML架构的所述集合和用于每个最优ML架构的所确定的性能度量。
示例B01包括一种用于操作机器学习架构搜索接口(MLASI)的方法,所述方法包括:向客户端装置提供所述MLASI;以及响应于经由所述MLASI从所述客户端装置接收到单独的ML配置:基于由所述单独的ML配置所指示的超网络来确定候选ML架构的集合;对所述种群执行多目标优化,以确定最优ML架构的集合,最优ML架构的所述集合比所述种群中的其它ML架构更好地满足在所述ML配置中包括的ML参数和硬件平台信息(HPI)的更多集合,其中所述HPI包括硬件平台或所述硬件平台的一个或多个硬件组件的技术细节;确定最优ML架构的所述集合中的每个最优ML架构的性能度量,以及经由所述MLASI来指示最优ML架构的所述集合和每个最优ML架构的所确定的性能度量。
示例B02包括示例B01和/或本文中的某个(某些)其它示例的方法,还包括:经由所述MLASI接收对来自最优ML架构的所指示的集合中的最优ML架构的选择;以及经由所述MLASI来发送所选择的最优ML架构。
示例B03包括示例B01-B02和/或本文中的某个(某些)其它示例的方法,其中,最优ML架构的所述集合是多目标优化问题的Pareto边界,并且对最优ML架构的所述集合的所述指示是所述Pareto边界的图形表示。
示例B04包括示例B01-B03和/或本文中的某个(某些)其它示例的方法,其中,确定候选ML架构的所述集合包括:基于所述ML参数和所述HPI,确定候选ML架构的所述集合以包括先前被找到为最优ML架构的ML架构;或者使用从至少一个先前生成的最优ML架构导出的一个或多个启发法来确定候选ML架构的所述集合,所述一个或多个启发法指示所述至少一个先前生成的最优ML架构的各个ML参数之间的关系。
示例B05包括示例B01-B04和/或本文中的某个(某些)其它示例的方法,还包括:确定用于搜索候选ML架构的所确定的集合的搜索策略,其中所述搜索策略是全搜索策略或约束式搜索策略中的一个,所述全搜索策略包括对候选ML架构的所述集合的整体的搜索,并且所述约束式搜索策略包括基于候选ML架构的所述集合中的所述候选ML架构的两个或ML参数之间的一个或多个约束而对候选ML架构的所述集合的搜索。
示例B06包括示例B01-B05和/或本文中的某个(某些)其它示例的方法,其中,执行所述多目标优化包括:操作一个或多个优化算法来解决多目标优化问题,其中所述一个或多个优化算法包括以下项中的一项或多项:网格搜索、随机搜索、贝叶斯优化、遗传算法、树形结构Parzen估计器、强度Pareto进化型算法2(SPEA-2)、非支配排序遗传算法-II、和用户定义的优化算法。
示例B07包括示例B01-B06和/或本文中的某个(某些)其它示例的方法,其中,确定所述性能度量包括:使用测试数据集来操作每个最优ML架构;以及从最优ML架构的所述集合中的相应最优ML架构的所述操作来测量所述性能度量。
示例B08包括示例B01-B06和/或本文中的某个(某些)其它示例的方法,其中,确定所述性能度量包括:使用一个或多个代理函数来预测每个最优ML架构的一个或多个性能度量,其中所述一个或多个代理函数包括以下项中的一项或多项:关联数组、映射函数、字典、哈希表、查找表(LUT)、链表、ML分类器、参数计数、计算吞吐量度量、雅可比协方差函数、显著性剪枝函数、通道剪枝函数、启发式函数、和超启发式函数。
示例B09包括示例B01-B08和/或本文中的某个(某些)其它示例的方法,其中,所述HPI包括硬件平台的技术数据和/或所述硬件平台的一个或多个硬件组件的技术数据。
示例Z01包括一个或多个计算机可读介质,所述一个或多个计算机可读介质包括指令,其中由处理器电路模块对指令的执行将使处理器电路模块执行示例A01-A18、B01-B09中任一个的方法和/或本文中讨论的任何其它方面。示例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-B09中任一个的方法和/或本文中讨论的任何其它方面的部件。
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)装置、和/或其它类似的系统或装置。
至少在一些实施例中,术语“网络元件”是指用于提供有线或无线通信网络服务的物理或虚拟化设备和/或基础设施。术语“网络元件”可以被认为是以下项的同义词或者被称为以下项:联网计算机、联网硬件、网络设备、网络节点、路由器、交换机、中枢、桥接器、无线电网络控制器、网络接入节点(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(动量)是梯度的聚合。
至少在一些实施例中,术语“目标函数”是指对于特定的优化问题要被最大化或最小化的函数。在某些情况下,目标函数由其决策变量和目标来定义。目标是要优化的值、目的或目标。所选择的特定目标函数取决于要解决的特定问题和要优化的目标。还可以定义约束来限制决策变量可以假设的值,从而影响可以实现的目标值(输出)。在优化过程中,目标函数的决策变量通常在约束的范围内被改变或操纵,以改善目标函数的值。一般来说,求解目标函数的难度随着该目标函数中所包括的决策变量的数量增加而增加。术语“决策变量”是指表示要做出的决策的变量。
至少在一些实施例中,术语“优化”是指使某物(例如,设计、系统或决策)尽可能完美、有功能或有效的动作、过程或方法论。优化通常包括数学过程,诸如寻找函数的最大值或最小值。至少在一些实施例中,术语“最优”是指最期望或满意的结局、成果或输出。至少在一些实施例中,术语“最优”是指对某个结局最有利的某物的数量或程度。至少在一些实施例中,术语“最优”是指产生最好可能结果的条件、程度、数量或折衷。附加地或备选地,至少在一些实施例中,术语“最优”是指最有利或有益的成果或结果。
至少在一些实施例中,术语“种群”是指针对某一问题、实验和/或优化问题的感兴趣的类似项目或事件的集合。
至少在一些实施例中,术语“概率”是指事件有多少可能发生和/或命题有多少可能为真的数字描述。至少在一些实施例中,术语“概率分布”是指给出实验或事件的不同可能结果的发生概率的数学函数。
至少在一些实施例中,术语“拟合”是指解决方案完全满足或匹配一个或多个要求、约束、条件等的测量。附加地或备选地,术语“拟合准则(fit criteria和/或fitcriterion)”是一个或多个要求、约束、条件等的量化,其展示了解决方案必须达到的标准,以展示解决方案拟合和/或满足或匹配一个或多个要求、约束、条件等。附加地或备选地,至少在一些实施例中,术语“拟合”和/或“拟合优度”是指模型拟合观测结果的集合的程度和/或观测值与在所讨论的模型下期望的值之间的差异的度量。
至少在一些实施例中,术语“分位数”是指将概率分布的范围划分为具有相等概率的连续区间,或者以相同方式划分样本中的观测结果的(一个或多个)分界点。至少在一些实施例中,术语“分位数函数”是指与随机变量的概率分布相关联的函数,并且指定随机变量的值,使得变量小于或等于该值的概率等于给定概率。术语“分位数函数”也可以称为百分位数函数、百分点函数、或逆累积分布函数。
至少在一些实施例中,在ML的上下文中,术语“回归算法”和/或“回归分析”是指用于估计因变量(通常称为“结果变量”)和一个或多个自变量(通常称为“预测因子(predictor)”、“协变量”或“特征”)之间的关系的统计过程的集合。回归算法/模型的示例包括逻辑回归、线性回归、梯度下降(GD)、随机GD(SGD)等。
至少在一些实施例中,术语“强化学习”或“RL”是指基于与环境的交互的面向目标的学习技术。在RL中,代理旨在基于试错过程通过与环境交互来优化长期目标。RL算法的示例包括马尔可夫决策过程、马尔可夫链、Q学习、时间差异学习、和深度RL。
至少在一些实施例中,实验或随机试验的概率论中的术语“样本空间”(也称为“样本描述空间”或“可能性空间”)是指该实验的所有可能成果或结果的集合。
至少在一些实施例中,术语“自注意力(self-attention)”是指为了计算序列的表示而使单个序列的不同位置相关的注意力机制。附加地或备选地,至少在一些实施例中,术语“自注意力”是指应用于单个上下文而不是跨多个上下文的注意力机制,其中查询、关键字、和值是从同一上下文中提取的。
至少在一些实施例中,术语“softmax”或“softmax函数”是指将逻辑函数推广到多个维度;“softmax函数”用在多项式逻辑回归中,并且通常用作神经网络的最后激活函数,以将网络的输出标准化为所预测输出类上的概率分布。
至少在一些实施例中,术语“监督学习”是指旨在学习函数或生成在给定标记数据集的情况下产生输出的ML模型的ML技术。监督学习算法从包含输入和期望输出两者的数据集合中构建模型。例如,监督学习涉及学习函数或模型,该函数或模型基于示例输入-输出对或包括训练示例集合的某种其它形式的标记训练数据来将输入映射到输出。每个输入-输出对包括输入对象(例如矢量)和期望输出对象或值(称为“监督信号”)。监督学习可以被分组为分类算法、回归算法、和基于实例的算法。
至少在一些实施例中,术语“张量”是指由描述与空间坐标相关的函数的分量阵列所表示的对象或其它数据结构。附加地或备选地,至少在一些实施例中,术语“张量”是指矢量和矩阵的推广,和/或可以被理解为多维阵列。附加地或备选地,至少在一些实施例中,术语“张量”是指排列在具有可变数量的轴的规则网格上的数的阵列。至少在一些实施例中,张量可以被定义为单个点、孤立点的集合、或点的连续体,其中张量的元素是位置的函数,并且张量形成“张量场”。至少在一些实施例中,矢量可以被认为是一维(1D)或一阶张量,并且矩阵可以被认为是二维(2D)或二阶张量。张量符号可以与矩阵符号相同或相似,其中大写字母代表张量,并且带有下标整数的小写字母代表张量内的标量值。
至少在一些实施例中,术语“无监督学习”是指旨在从无标签数据中学习用于描述隐藏结构的函数的ML技术。无监督学习算法从只包含输入而不包含期望输出标签的数据集合中构建模型。无监督学习算法用于发现数据中的结构,像如数据点的分组或聚类。无监督学习的示例是K均值聚类、主成分分析(PCA)、和主题建模以及其它。至少在一些实施例中,术语“半监督学习”是指从不完整的训练数据(其中一部分样本输入不包括标签)开发ML模型的ML算法。
至少在一些实施例中,术语“矢量”是指称为标量的一个或多个值的元组,并且“特征矢量”可以是包括一个或多个特征的元组的矢量。
至少在一些实施例中,术语“基准”或“基准测试”是指使用产生性能度量的特定指示符的性能测量。附加地或备选地,至少在一些实施例中,术语“基准”或“基准测试”是指运行计算机程序、程序集合、或其它操作以便评估对象的相对性能的动作,通常通过对其运行多个标准测试和试验来进行。
尽管已经参考特定示例性方面描述了这些实现,但是将显而易见的是,在不脱离本公开的更宽范围的情况下,可以对这些方面进行各种修改和改变。可以在组合中或在并行实现中使用本文中描述的许多布置和过程,以提供更大的带宽/吞吐量,并支持可使得可用于所服务的边缘系统的边缘服务选择。因此,说明书和附图被认为是说明性的,而不是限制性意义的。形成本文一部分的附图通过说明而非限制的方式示出了可以在其中实践本主题的特定方面。足够详细地描述了所说明的方面,以使得本领域技术人员能够实践本文中公开的教导。可以利用并从中导出其它方面,使得在不脱离本公开的范围的情况下,可以进行结构和逻辑上的替换和改变。因此,将不以限制性意义来理解本具体实施方式,并且各种方面的范围仅由所附权利要求连同这样的权利要求所赋予权利的等效物的完整范围来限定。
本发明主题的此类方面在本文中可以单独和/或共同提及,这仅仅是为了方便,而不是打算在实际上公开了多于一个方面或发明概念的情况下将本申请的范围主动限制于任何单个方面或发明概念。因此,尽管本文中已经示出和描述了特定方面,但是应当意识到,计划实现相同目的的任何布置都可以替代所示的特定方面。本公开旨在覆盖各个方面的任何和所有修改或变化。在回顾以上描述后,以上方面和本文中未特定描述的其它方面的组合对于本领域技术人员将是明白的。
Claims (24)
1.一种用于标识机器学习(ML)架构的设备,所述设备包括:
种群初始化器,所述种群初始化器配置成基于ML配置来初始化候选ML架构的集合;
连接到所述种群初始化器的架构搜索类型引擎,所述架构搜索类型引擎配置成确定用于搜索初始化种群的搜索策略;
连接到所述架构搜索类型引擎的多目标候选生成器(MOCG),所述MOCG配置成:
根据所述搜索策略来搜索候选ML架构的经初始化集合,并且
基于所述搜索,从候选ML架构的所述集合中确定最优ML架构的集合,最优ML架构的所述集合满足在所述ML配置中包括以下项中的一项或多项:ML参数的集合和硬件平台信息(HPI);以及
连接到所述MOCG的性能度量评估器,所述性能度量评估器配置成评估最优ML架构的所述集合中的每个最优ML架构的性能。
2. 如权利要求1所述的设备,其中,所述ML配置包括超网络,并且候选ML架构的所述集合包括子网络,其中所述子网络相比所述超网络具有更少的参数,并且其中,所述种群初始化器配置成操作热启动机制以:
基于所述ML参数来分析先前被找到为最优ML架构的ML架构的特性;以及
基于所分析的特性来初始化候选ML架构的所述集合。
3.如权利要求2所述的设备,其中,所述热启动机制是通知式热启动机制,并且所述种群初始化器配置成:
使用来自一个或多个先前生成的最优ML架构的信息来生成候选ML架构的所述集合,所述先前生成的最优ML架构是被确定为解决由所述ML配置所指示的相同或相似ML任务、与由所述ML配置所指示的相同或相似ML领域相关联、并且与由所述HPI所指示的相同或相似硬件平台相关联的ML架构中的一个或多个ML架构。
4.如权利要求2所述的设备,其中,所述热启动机制是启发式热启动机制,并且所述种群初始化器配置成:
使用从至少一个先前生成的最优ML架构导出的一个或多个启发法来生成候选ML架构的所述集合,所述一个或多个启发法指示所述至少一个先前生成的最优ML架构的各个ML参数之间的关系。
5. 如权利要求1所述的设备,其中:
所述搜索策略是约束式搜索策略,并且对候选ML架构的经初始化集合的所述搜索基于候选ML架构的经初始化集合中的所述候选ML架构的两个或ML参数之间的一个或多个约束;或者
所述搜索策略是全搜索策略,并且对候选ML架构的经初始化集合的所述搜索是对候选ML架构的所述集合的整体的搜索。
6.如权利要求1-5中任一项所述的设备,其中,为了确定最优ML架构的所述集合,所述MOCG配置成操作一个或多个优化算法来解决多目标优化问题。
7.如权利要求6所述的设备,其中,所述一个或多个优化算法包括以下项中的一项或多项:网格搜索、随机搜索、贝叶斯优化、进化型算法、树形结构Parzen估计器、和用户定义的优化算法,并且所述进化型算法是强度Pareto进化型算法2(SPEA-2)或非支配排序遗传算法-II。
8.如权利要求1-9中任一项所述的设备,其中,为了生成最优ML架构的所述集合,所述MOCG配置成将最优ML架构的所述集合确定为Pareto最优解的集合。
9.如权利要求8所述的设备,其中,所述MOCG配置成:
对于优化迭代的集合中的每个优化迭代,在达到收敛之前,
对候选ML架构的所述集合中的每个候选ML架构进行排名;
执行拥挤距离排序机制,以从候选ML架构的经排名集合中选择各个候选ML架构;以及
将所选择的各个候选ML架构携带到下一次优化迭代中。
10. 如权利要求1-5中任一项所述的设备,其中,所述性能度量评估器配置成:
使用测试数据集来操作每个最优ML架构;以及
基于最优ML架构的所述集合中的相应最优ML架构的所述操作来测量一个或多个性能度量。
11.如权利要求1-5中任一项所述的设备,其中,所述性能度量评估器配置成:
使用一个或多个代理函数来预测每个最优ML架构的一个或多个性能度量。
12.如权利要求11所述的设备,其中,所述一个或多个代理函数包括以下项中的一项或多项:关联数组、映射函数、字典、哈希表、查找表(LUT)、链表、ML分类器、参数计数、计算吞吐量度量、雅可比协方差函数、显著性剪枝函数、通道剪枝函数、启发式函数、和超启发式函数。
13.如权利要求1所述的设备,其中,所述HPI包括以下项中的任一项:硬件平台的标识符,在所述硬件平台上将部署最优ML架构的所述集合中的所选择的最优ML架构;和硬件平台的一个或多个硬件组件的数据。
14. 一种用于操作机器学习架构搜索接口(MLASI)的方法,所述方法包括:
向客户端装置提供所述MLASI;以及
经由所述MLASI从所述客户端装置接收单独的机器学习(ML)配置;
基于由所述单独的ML配置所指示的超网络来确定候选ML架构的集合;
对候选ML架构的所述集合执行多目标优化,以确定满足在所述ML配置中包括的硬件平台信息(HPI)和ML参数的组合中的一个或多个的最优ML架构的集合;
确定最优ML架构的所述集合中的每个最优ML架构的性能度量;以及
经由所述MLASI来指示最优ML架构的所述集合和每个最优ML架构的所确定的性能度量。
15. 如权利要求14所述的方法,还包括:
经由所述MLASI接收对来自最优ML架构的所指示的集合中的最优ML架构的选择;以及
经由所述MLASI来发送所选择的最优ML架构。
16.如权利要求14所述的方法,其中,最优ML架构的所述集合是多目标优化问题的Pareto边界,并且对最优ML架构的所述集合的所述指示是所述Pareto边界的图形表示。
17. 如权利要求14所述的方法,其中,所述确定候选ML架构的所述集合,所述指令的执行将使所述计算节点:
基于所述ML参数和所述HPI中的一个或多个,通过包括先前被找到为最优ML架构的ML架构来确定候选ML架构的所述集合;或者
使用从至少一个先前生成的最优ML架构导出的一个或多个启发法来确定候选ML架构的所述集合,所述一个或多个启发法指示所述至少一个先前生成的最优ML架构的各个ML参数之间的关系。
18.如权利要求14所述的方法,还包括:
确定用于搜索候选ML架构的所确定的集合的搜索策略,其中所述搜索策略是全搜索策略或约束式搜索策略中的一个,所述全搜索策略包括对候选ML架构的所述集合的整体的搜索,并且所述约束式搜索策略包括基于候选ML架构的所述集合中的所述候选ML架构的两个或更多个ML参数之间的一个或多个约束而对候选ML架构的所述集合的搜索。
19.如权利要求14所述的方法,其中,所述执行所述多目标优化包括:
操作一个或多个优化算法来解决多目标优化问题,其中所述一个或多个优化算法包括以下项中的一项或多项:网格搜索、随机搜索、贝叶斯优化、遗传算法、树形结构Parzen估计器、强度Pareto进化型算法2(SPEA-2)、非支配排序遗传算法-II、和用户定义的优化算法。
20. 如权利要求14所述的方法,其中,所述确定性能度量包括:
使用测试数据集来操作每个最优ML架构;以及
从最优ML架构的所述集合中的相应最优ML架构的所述操作来测量所述性能度量。
21.如权利要求14所述的方法,其中,确定性能度量包括:
使用一个或多个代理函数来预测每个最优ML架构的一个或多个性能度量,其中所述一个或多个代理函数包括以下项中的一项或多项:关联数组、映射函数、字典、哈希表、查找表(LUT)、链表、ML分类器、参数计数、计算吞吐量度量、雅可比协方差函数、显著性剪枝函数、通道剪枝函数、启发式函数、和超启发式函数。
22.如权利要求14所述的方法,其中,所述HPI包括:硬件平台的标识符,将在所述硬件平台上部署优化ML架构的所述集合的所选择的优化ML架构;或所述硬件平台的一个或多个硬件组件的技术数据。
23.包括指令的至少一个计算机可读存储介质,其中,由计算节点的一个或多个处理器执行所述指令将使所述计算节点执行如权利要求14-22中任一项所述的方法。
24.一种设备,包括用于执行如权利要求14-22中任一项所述的方法的部件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/505568 | 2021-10-19 | ||
US17/505,568 US20220035878A1 (en) | 2021-10-19 | 2021-10-19 | Framework for optimization of machine learning architectures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116011510A true CN116011510A (zh) | 2023-04-25 |
Family
ID=80003011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211135287.XA Pending CN116011510A (zh) | 2021-10-19 | 2022-09-19 | 用于优化机器学习架构的框架 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220035878A1 (zh) |
EP (1) | EP4170553A1 (zh) |
CN (1) | CN116011510A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116502679A (zh) * | 2023-05-15 | 2023-07-28 | 之江实验室 | 一种模型构建方法、装置、存储介质及电子设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11900244B1 (en) * | 2019-09-30 | 2024-02-13 | Amazon Technologies, Inc. | Attention-based deep reinforcement learning for autonomous agents |
US20220035877A1 (en) * | 2021-10-19 | 2022-02-03 | Intel Corporation | Hardware-aware machine learning model search mechanisms |
CN116702835A (zh) * | 2022-02-23 | 2023-09-05 | 京东方科技集团股份有限公司 | 神经网络推理加速方法、目标检测方法、设备及存储介质 |
US20230297580A1 (en) * | 2022-03-17 | 2023-09-21 | Google Llc | Hybrid and Hierarchical Multi-Trial and OneShot Neural Architecture Search on Datacenter Machine Learning Accelerators |
US20230342460A1 (en) * | 2022-04-25 | 2023-10-26 | Palo Alto Networks, Inc. | Malware detection for documents with deep mutual learning |
CN114861890B (zh) * | 2022-07-05 | 2022-09-09 | 深圳比特微电子科技有限公司 | 构建神经网络的方法、装置、计算设备及存储介质 |
CN114968828B (zh) * | 2022-08-02 | 2022-11-04 | 树优(宁波)科技有限公司 | 用于优化算法的性能测试方法、平台、设备及存储介质 |
WO2024045375A1 (zh) * | 2022-08-29 | 2024-03-07 | 天翼电子商务有限公司 | 一种图像分类中基于样本主成分分析的架构搜索方法 |
CN116663618B (zh) * | 2023-07-28 | 2023-12-05 | 之江实验室 | 一种算子优化方法、装置、存储介质及电子设备 |
CN117255126A (zh) * | 2023-08-16 | 2023-12-19 | 广东工业大学 | 基于多目标强化学习的数据密集任务边缘服务组合方法 |
US12014634B1 (en) | 2023-09-05 | 2024-06-18 | Armada Systems Inc. | Cloud-based fleet and asset management for edge computing of machine learning and artificial intelligence workloads |
US12014219B1 (en) | 2023-09-05 | 2024-06-18 | Armada Systems Inc. | Cloud-based fleet and asset management for edge computing of machine learning and artificial intelligence workloads |
US11960515B1 (en) | 2023-10-06 | 2024-04-16 | Armada Systems, Inc. | Edge computing units for operating conversational tools at local sites |
US11995412B1 (en) | 2023-10-06 | 2024-05-28 | Armada Systems, Inc. | Video based question and answer |
CN118014010B (zh) * | 2024-04-09 | 2024-06-18 | 南京信息工程大学 | 基于多种群机制及代理模型的多目标演化神经架构搜索方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010148238A2 (en) * | 2009-06-17 | 2010-12-23 | Board Of Regents, The University Of Texas System | System and method for solving multiobjective optimization problems |
US20130185234A1 (en) * | 2012-01-16 | 2013-07-18 | Amrinder Arora | System and Method for Using Genetic Algorithm for Optimization of Targeting Systems, Based on Aggregated Scoring Models |
US20150095253A1 (en) * | 2013-04-21 | 2015-04-02 | Daniel Kibum Lim | Method and system for creating a list of organizations based on an individual's preferences and personal characteristics |
US20170220928A1 (en) * | 2016-08-22 | 2017-08-03 | Yasin Hajizadeh | Method and System for Innovation Management and Optimization under Uncertainty |
US20180137219A1 (en) * | 2016-11-14 | 2018-05-17 | General Electric Company | Feature selection and feature synthesis methods for predictive modeling in a twinned physical system |
EP3575892B1 (en) * | 2017-01-27 | 2022-05-11 | Mitsubishi Power, Ltd. | Model parameter value estimation device and estimation method, program, recording medium with program recorded thereto, and model parameter value estimation system |
US10744372B2 (en) * | 2017-03-03 | 2020-08-18 | Cognizant Technology Solutions U.S. Corporation | Behavior dominated search in evolutionary search systems |
US11527308B2 (en) * | 2018-02-06 | 2022-12-13 | Cognizant Technology Solutions U.S. Corporation | Enhanced optimization with composite objectives and novelty-diversity selection |
US20190286984A1 (en) * | 2018-03-13 | 2019-09-19 | Google Llc | Neural architecture search by proxy |
US11995538B2 (en) * | 2018-05-10 | 2024-05-28 | Microsoft Technology Licensing, Llc | Selecting a neural network architecture for a supervised machine learning problem |
US11741342B2 (en) * | 2018-05-18 | 2023-08-29 | Baidu Usa Llc | Resource-efficient neural architects |
US20200104715A1 (en) * | 2018-09-28 | 2020-04-02 | Xilinx, Inc. | Training of neural networks by including implementation cost as an objective |
US20210390376A1 (en) * | 2018-10-31 | 2021-12-16 | Movidius Ltd. | Automated generation of neural networks |
US20200143243A1 (en) * | 2018-11-01 | 2020-05-07 | Cognizant Technology Solutions U.S. Corporation | Multiobjective Coevolution of Deep Neural Network Architectures |
US11210578B2 (en) * | 2018-12-12 | 2021-12-28 | International Business Machines Corporation | Automatic determination of cognitive models for deployment at computerized devices having various hardware constraints |
EP3702974A1 (en) * | 2019-02-27 | 2020-09-02 | Ovh | Systems and methods for operating a data center based on a generated machine learning pipeline |
US11443162B2 (en) * | 2019-08-23 | 2022-09-13 | Google Llc | Resource constrained neural network architecture search |
CN114144794A (zh) * | 2019-09-16 | 2022-03-04 | 三星电子株式会社 | 电子装置及用于控制电子装置的方法 |
US11907821B2 (en) * | 2019-09-27 | 2024-02-20 | Deepmind Technologies Limited | Population-based training of machine learning models |
US11556850B2 (en) * | 2019-10-10 | 2023-01-17 | Accenture Global Solutions Limited | Resource-aware automatic machine learning system |
CN110689127B (zh) * | 2019-10-15 | 2022-05-06 | 北京小米智能科技有限公司 | 神经网络结构模型搜索方法、装置及存储介质 |
JP6885553B1 (ja) * | 2020-07-14 | 2021-06-16 | エッジコーティックス ピーティーイー. リミテッド | ハードウェアとニューラルアーキテクチャとの共同探索 |
US20220198260A1 (en) * | 2020-12-22 | 2022-06-23 | International Business Machines Corporation | Multi-level multi-objective automated machine learning |
US20240007414A1 (en) * | 2020-12-24 | 2024-01-04 | Intel Corporation | Methods, systems, articles of manufacture and apparatus to optimize resources in edge networks |
US20220230048A1 (en) * | 2021-01-15 | 2022-07-21 | Google Llc | Neural Architecture Scaling For Hardware Accelerators |
US20220284582A1 (en) * | 2021-03-03 | 2022-09-08 | Nvidia Corporation | Selecting a neural network based on an amount of memory |
US20220036194A1 (en) * | 2021-10-18 | 2022-02-03 | Intel Corporation | Deep neural network optimization system for machine learning model scaling |
-
2021
- 2021-10-19 US US17/505,568 patent/US20220035878A1/en active Pending
-
2022
- 2022-07-26 EP EP22186932.4A patent/EP4170553A1/en active Pending
- 2022-09-19 CN CN202211135287.XA patent/CN116011510A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116502679A (zh) * | 2023-05-15 | 2023-07-28 | 之江实验室 | 一种模型构建方法、装置、存储介质及电子设备 |
CN116502679B (zh) * | 2023-05-15 | 2023-09-05 | 之江实验室 | 一种模型构建方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP4170553A1 (en) | 2023-04-26 |
US20220035878A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220035878A1 (en) | Framework for optimization of machine learning architectures | |
US20220036194A1 (en) | Deep neural network optimization system for machine learning model scaling | |
US20220036123A1 (en) | Machine learning model scaling system with energy efficient network data transfer for power aware hardware | |
US11392829B1 (en) | Managing data sparsity for neural networks | |
US20220027792A1 (en) | Deep neural network model design enhanced by real-time proxy evaluation feedback | |
US11615265B2 (en) | Automatic feature subset selection based on meta-learning | |
Zheng et al. | Learning in energy-efficient neuromorphic computing: algorithm and architecture co-design | |
US11205050B2 (en) | Learning property graph representations edge-by-edge | |
WO2019241879A1 (en) | Variationally and adiabatically navigated quantum eigensolvers | |
US20200242736A1 (en) | Method for few-shot unsupervised image-to-image translation | |
US11720751B2 (en) | Global, model-agnostic machine learning explanation technique for textual data | |
US20220058477A1 (en) | Hyperparameter Transfer Via the Theory of Infinite-Width Neural Networks | |
US20210374544A1 (en) | Leveraging lagging gradients in machine-learning model training | |
Peng et al. | Towards sparsification of graph neural networks | |
Tahmassebi | ideeple: Deep learning in a flash | |
US20220366297A1 (en) | Local permutation importance: a stable, linear-time local machine learning feature attributor | |
US20220335209A1 (en) | Systems, apparatus, articles of manufacture, and methods to generate digitized handwriting with user style adaptations | |
US20230229570A1 (en) | Graph machine learning for case similarity | |
Huang et al. | Compact and fast machine learning accelerator for IoT devices | |
US20220043681A1 (en) | Memory usage prediction for machine learning and deep learning models | |
CN116011509A (zh) | 硬件感知的机器学习模型搜索机制 | |
US11625605B2 (en) | Selecting computational kernel variants using neural networks | |
Wang et al. | A novel parallel learning algorithm for pattern classification | |
WO2024055624A1 (en) | Automated query selectivity predictions using query graphs | |
Jain et al. | Towards Heterogeneous Multi-core Systems-on-Chip for Edge Machine Learning: Journey from Single-core Acceleration to Multi-core Heterogeneous Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |