CN117999560A - 机器学习模型的硬件感知渐进训练 - Google Patents

机器学习模型的硬件感知渐进训练 Download PDF

Info

Publication number
CN117999560A
CN117999560A CN202280036704.7A CN202280036704A CN117999560A CN 117999560 A CN117999560 A CN 117999560A CN 202280036704 A CN202280036704 A CN 202280036704A CN 117999560 A CN117999560 A CN 117999560A
Authority
CN
China
Prior art keywords
training
machine learning
model
hardware
learning model
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
Application number
CN202280036704.7A
Other languages
English (en)
Inventor
李晟
谭明星
诺曼·保罗·约皮
国·V·勒
程立群
庞若鸣
帕塔萨拉蒂·阮冈纳赞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority claimed from PCT/US2022/044201 external-priority patent/WO2023059439A1/en
Publication of CN117999560A publication Critical patent/CN117999560A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开各方面提供机器学习模型的硬件感知渐进训练。训练系统根据训练过程以及训练调度中为硬件级和模型级性能设置所指定的不同值来训练模型。硬件级性能设置可以使得用于训练模型的计算资源的硬件特征在训练期间的各种点被启用、禁用或修改。在训练的不同阶段期间,模型级性能设置可以采用各种值来调整正在被训练的机器学习模型的特性或训练过程的特性。训练系统可以识别和应用硬件级和模型级性能设置的互补值,以生成训练调度,该训练调度在训练的早期阶段改进模型训练速度,而在训练的后期阶段改进模型质量。

Description

机器学习模型的硬件感知渐进训练
相关申请的交叉引用
本申请是于2022年8月31日提交的美国专利申请17/899,728的延续,该美国专利申请要求于2021年10月6日提交的美国临时专利申请63/252,743的提交日期的权益,它们的公开内容通过引用被结合在本文中。
背景技术
神经网络是机器学习模型,该机器学习模型包括一个或多个非线性操作层以预测接收输入的输出。除了输入层和输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出可以被输入到神经网络的另一隐藏层或输出层。神经网络的每个层可以根据该层的一个或多个模型参数的值从接收输入生成相应的输出。模型参数可以是通过训练过程所确定的权重和/或偏置值,以使得神经网络在使用性能或损失函数进行评估时生成精确的输出。
增加训练过程的速度对于改进机器学习模型是至关重要的。存在可以在训练速度和质量之间提供折衷的数个平台/硬件优化。然而,因为机器学习模型的质量如此重要,所以除非质量没有损失,否则不会应用硬件技术来加速训练过程,从而导致许多性能优化机会变得不可用。
发明内容
本公开各方面提供机器学习模型的硬件感知渐进训练。渐进学习或训练是通过调整模型或用于训练模型的训练过程来训练机器学习模型、同时训练模型的技术。渐进训练系统可以在训练过程的不同阶段生成和应用模型级和硬件级性能设置的不同值,以根据预定的最小阈值来维持模型质量,同时改进渐进训练系统训练模型的速度。
模型级性能设置与正在被训练的机器学习模型的特性或应用的训练过程的参数对应。训练系统可以在训练期间调整到模型级性能设置的不同值,这不取决于用于训练模型的计算资源。硬件级性能设置与用于训练机器学习模型的计算资源的硬件特征对应。硬件级性能设置可以采用不同的值,以在由训练系统所应用的训练期间启用、禁用或修改不同的硬件特征。
在训练过程的不同阶段对机器学习模型进行训练期间,训练系统利用现有的硬件特征来调整硬件级和模型级性能设置。训练系统可以识别和应用硬件级和模型级性能设置的互补值,以生成训练调度,该训练调度在训练的早期阶段改进模型训练速度,而在训练的后期阶段维持或改进模型质量。
本公开各方面提供通过使用可用计算资源及其相应的可用硬件特征(诸如硬件并行性、操作数数值精度、以及设备内和设备间通信的变化级别)来改进训练速度,以相对于单独的渐进训练来改进训练模型的速度。可以根据需要来缩放训练系统,以利用连接设备的计算平台的计算资源的硬件特征,从而进一步改进进行训练过程的速度。
训练系统可以生成和存储稍后要查询的训练调度,以用于在训练其它机器学习模型或先前训练的模型时重新使用。训练系统可以使用先前生成的训练调度的一部分,以用于在新的训练数据上重新训练模型,例如,在增加训练速度之前关注模型质量改进的训练调度。
本公开各方面还提供搜索可以在训练期间根据训练调度进行修改的神经架构,例如,与修改其它候选架构相比具有更少的计算开销,和/或更多地利用硬件感知渐进训练来实现与其它架构相比增加的训练速度。
本公开一方面指向一种系统,该系统包括一个或多个处理器,该一个或多个处理器被配置为,接收训练机器学习模型的请求;由一个或多个处理器接收为一个或多个硬件级性能设置以及一个或多个模型级性能设置指定多个值的训练调度;根据训练过程、在训练期间的不同时间点被设置为训练调度的多个值中的不同值的一个或多个硬件级性能设置以及一个或多个模型级性能设置,训练机器学习模型;以及响应于接收到请求,将经训练的机器学习模型发送到一个或多个计算设备。
本公开一方面指向一种方法,该方法包括:由一个或多个处理器接收训练机器学习模型的请求,该一个或多个处理器被配置为根据一个或多个硬件级性能设置以及一个或多个模型级性能设置来训练机器学习模型;由一个或多个处理器接收为一个或多个硬件级性能设置以及一个或多个模型级性能设置指定多个值的训练调度;由一个或多个处理器根据训练过程、以及在训练期间的不同时间点被设置为训练调度的多个值中的不同值的一个或多个硬件级性能设置以及一个或多个模型级性能设置,训练机器学习模型;以及响应于接收到请求,由一个或多个处理器将经训练的机器学习模型发送到一个或多个计算设备。
本公开一方面指向一种用指令编码的一个或多个非暂时性计算机可读存储介质,当该指令由一个或多个处理器执行时,该指令被配置为根据一个或多个硬件级性能设置以及一个或多个模型级性能设置来训练机器学习模型,使得一个或多个处理器进行操作,该操作包括:接收训练第一机器学习模型的请求;接收为一个或多个硬件级性能设置以及一个或多个模型级性能设置指定多个值的训练调度;根据训练过程、以及在训练期间的不同时间点被设置为训练调度的多个值中的不同值的一个或多个硬件级性能设置以及一个或多个模型级性能设置,训练第一机器学习模型;以及响应于接收到请求,将经训练的第一机器学习模型发送到一个或多个计算设备。
本公开各方面可以包括以下特征中的一个或多个。在一些示例中,本公开一方面包括组合的所有以下特征。
一个或多个模型级性能设置可以包括以下中的一个或多个:到机器学习模型的输入数据的输入数据大小,指定机器学习模型的大小或形状的一个或多个模型超参数,以及修改由一个或多个处理器实施的用于训练机器学习模型的训练过程的一个或多个训练过程超参数。
一个或多个硬件级性能设置可以包括用于调整一个或多个处理器之间的数据内或数据间通信的设置。
一个或多个处理器可以包括被逻辑地或物理地分组为多个组的多个处理器,并且一个或多个硬件级性能设置可以包括用于不同组中的处理器之间的数据间通信速率的设置。
一个或多个硬件级性能设置可以包括用于在根据训练过程训练机器学习模型的同时调整由一个或多个处理器进行的操作的数值精度的设置。
在训练机器学习模型时,一个或多个处理器还可以被配置为:将一个或多个硬件级和模型级性能设置设置为训练调度的多个值中的第一值;以及在机器学习模型的训练启动之后的第一时间点,将一个或多个硬件级以及一个或多个模型级性能设置调整为多个值中的不同于第一值的第二值。
在接收训练调度时,一个或多个处理器还可以被配置为使用训练调度机器学习模型来生成训练调度,该训练调度机器学习模型是:被训练为从一个或多个输入参数生成训练调度,该一个或多个输入参数至少部分地描述机器学习模型、机器学习任务以及可用于训练机器学习模型的计算资源中的一个或多个,以及使用训练调度的一个或多个训练示例来训练,每个示例训练调度被标记有至少部分地描述用于生成示例训练调度的一个或多个相应输入参数的相应数据、以及根据训练过程和示例训练调度所训练的相应机器学习模型的训练速度和模型质量。
机器学习模型可以是具有从多个候选神经架构中所选择的神经架构的神经网络,神经架构的选择至少部分地基于神经网络的估计的相应训练速度和相应模型质量的比较,神经网络根据训练过程和相应训练调度来训练,并且具有多个候选神经架构中的相应候选神经架构。
在接收训练调度时,一个或多个处理器还可以被配置为:向存储多个候选训练调度的一个或多个存储器设备发送查询,该查询包括至少部分地描述机器学习模型、机器学习任务以及可用于训练机器学习模型的计算资源中的一个或多个的数据;以及响应于查询,从多个候选训练调度接收训练调度。
本公开一方面指向一种方法,该方法包括,由一个或多个处理器在多个候选神经架构上进行神经架构搜索以识别目标神经架构,包括:至少估计第一神经网络的训练速度和模型质量,该第一神经网络具有多个候选神经架构中的第一候选神经架构,并且根据训练过程以及在训练期间被设置为第一多个值中的不同值的一个或多个硬件级性能设置以及一个或多个模型级性能设置来训练,以及至少基于第一神经网络的估计训练速度和估计模型质量与一个或多个第二神经网络的相应估计训练速度和相应估计模型质量的比较来选择第一候选神经架构作为目标神经架构,一个或多个第二神经网络各自具有相应的第二候选神经架构,并且根据训练过程以及在训练期间被设置为相应第二多个值中的不同值的一个或多个硬件级性能设置以及一个或多个模型级性能设置来训练。
方法还可以包括,由一个或多个处理器根据训练调度的第三多个值来训练第一神经网络;以及由一个或多个处理器将经训练的第一神经网络发送到一个或多个计算设备。
附图说明
图1是根据本公开各方面的示例训练系统的框图。
图2是根据本公开各方面的用于机器学习模型的硬件感知渐进训练的示例过程的流程图。
图3A是根据本公开各方面的用于训练机器学习模型以生成用于硬件感知渐进训练的训练调度的示例过程的流程图。
图3B是根据本公开各方面的用于从存储多个训练调度的一个或多个存储器设备查询和应用预生成的训练调度的示例过程的流程图。
图4是根据本公开各方面的用于搜索神经架构的示例过程的流程图。
图5是根据本公开各方面的实施示例训练系统的示例计算环境的框图。
具体实施方式
概述
本公开各方面提供机器学习模型的硬件感知渐进训练。硬件感知渐进训练指的是在机器学习模型的训练期间将各种不同的值应用到模型级和硬件级性能设置,这些值在训练过程中被调整到不同的值。训练系统可以生成和应用训练调度,该训练调度指定在训练期间的不同点所应用的模型级和硬件级性能设置的多个值。与不应用硬件感知渐进训练的其它方法相比,如本文中描述的被配置用于硬件感知渐进训练的训练系统可以在训练过程的较早点期间改进训练系统训练模型的速度,以及在训练过程的较晚点期间改进正在被训练的模型的模型质量。
硬件级性能设置可以包括用于调整用于训练机器学习模型的计算资源的性能的设置。可以调整硬件级性能设置的值,以用于启用、禁用或修改计算资源上可用的某些硬件特征。计算资源可以是计算设备和存储器设备的各种组合中的任何一个,其例如可以是计算平台的一部分。计算平台可以逻辑地组织设备如何彼此通信,其组织也可以通过对应硬件级性能设置的不同值来修改。
这些硬件特征可以由训练系统选择性地应用,以在执行作为训练过程的一部分的操作时调整计算资源的性能。例如,根据对应硬件级性能设置的不同值所应用的硬件特征可以使得计算资源更快地执行操作,以处理循环、时钟时间等来测量,代价是进行那些操作的精度。硬件级性能设置的其它值使得计算资源以附加的处理循环、处理/存储器利用和/或时间等为代价精确地执行诸如不同数值计算的操作。结果,所训练的模型将具有改进的模型质量,例如以模型精度或召回率来测量。
由训练系统以不同值所应用的模型级性能设置修改机器学习模型或训练过程本身。模型级性能设置不影响在训练期间由训练系统所使用的硬件或硬件特征,但是取决于为这些设置所取的值,可能影响所得到的经训练模型的质量和训练该模型的速度。硬件感知渐进训练提供了对训练模型的平台上可用的模型和硬件级特征的可用配置的更有效使用,以在训练的不同阶段达到更高的训练速度以及持续或改进的模型质量,否则可能无法单独通过渐进训练达到。
训练系统可以在多个阶段上训练机器学习模型。训练阶段可以被限定为数个训练步骤,每个训练步骤表示完整的前向和后向传递,以基于计算误差来更新模型参数值。训练阶段中的训练步骤的数量可以变化,例如从数千到数百万。训练步骤的数量可以基于例如所有训练阶段的训练步骤的总数和/或训练数据组的大小而变化。在一些示例中,阶段可以被限定为比用于训练模型的总训练时间更短的时间段、整个训练组由模型处理的时期的数量或次数、和/或实现的某些模型性能里程碑,诸如阈值召回率或基于用于测量模型精度的度量的任何阈值。
例如,训练系统可以应用与较小的网络大小、较小的输入大小、较少的正则化和/或较少的归一化等对应的模型级性能设置的值,这可以以模型质量为代价导致较快的训练。训练系统可以应用具有与较大的网络大小、较大的输入大小、较多的正则化和/或较多的归一化对应的不同值的模型级性能设置,这可以由于性能开销而导致较慢的训练但是较高的模型质量。
训练速度可以例如以通过训练数据的整个时期训练机器学习模型所需的处理循环的数量、由处理单个训练示例或小批量训练示例所花费的时间、和/或由完成训练的一个或多个阶段所需的处理循环的数量来测量。模型质量可以例如根据机器学习模型进行其正在被训练以进行的任务的好坏来测量。用于测量模型质量的示例度量可以包括召回率、模型预测和对应的地面真实标记之间的损失、模型精度、和/或进行机器学习任务时的模型精度。
在训练期间,训练系统为硬件级和模型级性能设置应用不同的值,并且在训练期间的不同点调整那些值,以实现训练速度和模型质量之间的不同折衷。训练系统应用不同值的示例点包括例如根据时间、训练迭代的数量或满足模型质量的最小里程碑等所定义的训练的不同阶段的开始。其它示例包括基于时间的间隔,诸如在训练期间经过的逐分钟或逐小时的间隔。
基于如本文中描述的训练调度,训练系统可以初始地将值应用到性能设置,以调整模型的训练,从而有利于训练速度超过模型质量,从而以较高的训练速度学习训练示例及其标签之间的高级模式和关系。随着训练的进行,训练系统根据训练调度中可以指定的变化率,逐渐地调整性能设置的值,以偏好具有速度开销的模型质量改进。随着训练达到其最终阶段,训练系统应用硬件级和模型级性能设置的值来强调模型质量,而很少或没有给予减少性能开销的优先级,从而导致减少训练速度。
训练系统可以为各种硬件级和模型级性能设置生成具有互补值的训练调度。模型级性能设置的互补值允许更有效地应用某些硬件特征,例如导致较少的处理循环来执行作为实施训练过程的一部分的操作,或者允许优化过程来改进模型质量。例如,用于在训练期间启用二阶优化方法的模型级性能设置的值与例如使用小于64位浮点或整数精度进行具有较低数值精度的操作对应的硬件级性能设置的值互补。
作为生成训练调度的一部分,训练系统可以识别训练系统的性能设置的互补值。例如,训练系统可以实施训练调度机器学习模型,该训练调度机器学习模型被训练为从一个或多个输入参数生成训练调度,该一个或多个输入参数至少部分地描述要在一组计算资源上被训练的机器学习模型、机器学习任务以及可用于训练模型的一组计算资源中的一个或多个。如本文中描述的,在一些示例中,训练系统可以根据不同的优化参数或搜索标准来搜索候选训练调度的空间。
互补值的示例包括用于较低分辨率、较弱正则化和较小模型的值,其与用于本地节点通信和梯度累积以及较低精度计算的硬件级性能设置配对。在训练的后期阶段,可以将较高分辨率、较强正则化和较大模型与用于全局通信和梯度累积以及较高精度计算的硬件级性能值配对。
因为例如通过在训练期间的不同点观察更快的训练速度和/或更高的模型质量来识别更好性能的训练调度,所以可以提供这些训练调度作为在给定一组输入参数的情况下用于重新训练训练调度机器学习模型或更新用于搜索训练调度的搜索标准的附加示例。通常,较高性能的训练调度将包括硬件级和模型级性能设置相对于较低性能的训练调度的互补值。
本公开各方面提供至少以下技术优点。相对于未使用硬件感知渐进训练来训练的其它模型,机器学习模型可以被更快地训练,例如以更少的时钟时间和/或使用更少的处理循环。在训练的后期阶段,可以通过逐渐地调整性能设置以性能开销为代价有利于模型质量,从而批准模型质量。经训练机器学习模型的改进模型质量可以改进在推理时部署模型的计算设备的功能,例如因为可以更精确地生成对查询的响应或对处理模型上的数据的请求。
相对于未使用如本文中描述的训练调度,训练可以被更有效地进行,例如使用更多的可用特征来加速作为实施训练过程的一部分的操作。训练系统被配置为生成具有互补值的训练调度,以减少或避免可能抑制训练的硬件级和模型级性能设置的冲突值。
由训练系统应用和生成的训练调度根据计算资源的可用硬件特征来定制,该计算资源被指定用于使用训练过程和给定训练调度来训练模型。例如,计算平台可以包括可用于训练机器学习模型的各种不同的计算设备,其中,不同的设备在可用的硬件特征和/或数据处理能力方面不同。
训练系统可以更有效地使用为训练特定机器学习模型而分配的计算资源,因为训练系统可以基于由分配的计算资源可用的特定硬件特征和处理能力来应用具有硬件级性能设置值的训练调度。训练系统可以将相同的训练调度应用到不同规模的同一组计算资源,以便不向用于在训练会话期间或训练会话之间放大或缩小计算资源的平台操作增加附加的处理开销。
调整模型级和硬件级性能设置的开销引起用于训练和执行机器学习模型的少量或可忽略的开销。结果,可以经常将改变应用到模型级和硬件级性能设置,以改变模型质量和训练速度之间的折衷。尽管模型级和硬件级性能设置的大量潜在组合,但是本公开各方面提供了搜索候选训练调度的空间,以识别模型级和硬件级性能设置的组合,用于以比未应用硬件感知渐进训练的其它方法更快的训练速度来改进或维持模型质量。
示例系统
图1是根据本公开各方面的示例训练系统100的框图。训练系统100可以在一个或多个物理位置中的一个或多个计算设备上实施。训练系统100在图1中被示为计算平台101的一部分。计算平台101可以是通过网络与一个或多个其它计算设备(例如,计算设备105)通信的计算设备的集合。
训练系统100包括训练引擎110,并且还可以包括训练调度引擎115和训练调度库120。在一些示例中,训练系统100还可以包括神经架构搜索引擎125。
训练系统100被配置为例如从计算设备105接收用于训练机器学习模型的请求。作为示例,计算设备105可以例如通过某个接口(诸如计算设备105的显示器上所呈现的浏览器或移动应用上的API或网页接口)向训练系统100发送请求。
计算设备105可以是由用户所操作的用户计算设备,和/或被配置为与训练系统100自动地通信的设备。例如,计算设备105可以被配置为接收和部署经训练的机器学习模型。计算设备105还可以被配置为接收来自其它计算设备(未示出)的请求,以用于处理经部署的模型的输入,从而生成相应的输出数据。其它计算设备可以分离地或作为连接平台101与计算设备105的网络的一部分连接到计算设备105。
来自计算设备105的请求可以指定至少部分地描述机器学习模型、机器学习任务和/或可用于训练模型的计算资源的输入参数。用于描述机器学习模型的输入参数可以包括模型类型,诸如神经网络、支持向量机、回归模型等。输入参数还可以包括期望的机器学习模型的特定特性,诸如具有特定宽度或深度的神经网络。
输入参数还可以指定机器学习模型将被训练以进行的机器学习任务的类型,诸如回归或分类任务。本文中提供了示例机器学习任务,并且通常机器学习任务可以被限定用于近似一组输入和对应输出之间的函数,该函数由被训练以进行该任务的机器学习模型来学习。输入参数还可以指定机器学习模型要被训练以进行的机器学习任务的子类型,诸如二进制分类、多类别分类、线性回归、逻辑回归等。
如果输入参数中指定了任务而不是模型类型,则训练系统100可以被配置为自动地选择机器学习模型的类型。例如,训练系统100可以是自动机器学习(AutoML)系统(图1中未示出)的一部分。AutoML系统可以被配置为基于指定要进行的任务的输入参数(可选地在其它输入参数中),自动地选择机器学习模型以实施。即使输入参数指定模型类型,在一些示例中,实施训练系统100的AutoML系统也可以被配置为基于其它接收参数来建议一个或多个模型类型。如相对于图4更详细地描述的,在一些示例中,训练系统100实施神经架构搜索(NAS)引擎125,NAS引擎125被配置为识别用于训练神经网络的神经架构,该神经网络具有那些架构并且可以使用硬件感知渐进训练来训练。
神经架构指的是描述神经网络的形状或拓扑的一组值。可以是神经架构的一部分的示例值包括,例如,架构的层数、每层的宽度、每层处的节点或神经元的数量、在给定一组输入的情况下每层处所进行的操作的类型、以及应用于一个或多个网络层的激活函数的类型。每个神经网络被称为具有相应的神经架构。
输入参数还可以指定训练系统100训练机器学习模型的计算资源。如本文中参考图5描述的,计算平台101的计算资源130可以包括各种不同的计算设备,包括各种不同类型和配置的处理器和存储器设备。计算资源130可以包括具有用于改进计算设备上的数据处理或存储的各种硬件特征的数个计算设备。根据由训练系统100所调整的硬件级性能设置的不同值,可以启用、禁用或修改这些硬件特征。
输入参数可以指定由训练系统100在训练机器学习模型时应该使用多少、什么种类和/或哪些特定计算资源。例如,计算设备105可以与已经被分配了计算资源105的一部分的用户相关联。在其它示例中,平台101可以提供更多或更少的计算资源,例如以可用时间的长度、处理循环的数量、或者具有不同处理速度或处理能力的更多或更少的设备来测量。例如,可以以时钟速度、数据带宽、缓存存储器大小等来测量处理能力。例如,请求可以指定使用图形处理单元(GPU)来加速机器学习模型的训练,而不是使用其它不太专用的设备,诸如中央处理单元(CPU)。
请求还可以指定用于训练机器学习模型的训练数据或训练数据的位置。例如,训练数据可以存储在平台101的一个或多个计算设备上,该计算设备可以与实施训练系统100的设备相同或不同。训练数据可以包括例如输入的一个或多个训练示例,模型正在被训练以处理该输入从而生成相应的输出。训练示例中的一些或全部可以包括与标记示例对应的地面真实输出的标记。
训练引擎110接收来自计算设备105的请求,并且接收指定用于根据请求来训练机器学习模型的硬件级和模型级性能设置的值的训练调度。如参考图3A-B更详细地描述的,训练引擎110可以例如从被配置为根据本公开各方面生成训练调度的训练调度引擎115接收训练调度。在其它示例中,训练引擎110通过查询存储预生成的训练调度的集合的训练调度库120来接收训练调度。
训练引擎110实施用于在训练时间段上训练机器学习模型的训练过程。训练过程可以包括用于训练机器学习模型的任何操作组,该操作组可以在训练时间段上重复一次或多次。训练过程可以变化,例如,取决于要被训练的模型的类型的性质和/或模型正在被训练以进行的机器学习任务。示例过程可以是基于监督的、无监督的或半监督的学习方法。例如,训练引擎110可以被配置为使用具有梯度下降的反向传播加上根据计算的梯度以及可选地根据一个或多个其它参数来更新机器学习模型的一个或多个权重或模型参数值,来训练作为神经网络的机器学习模型。如本文中描述的,被设置为不同值的一些模型级性能设置可以使得训练引擎110修改用于训练模型的训练过程。
作为训练的一部分,训练引擎110还可以被配置为进行各种优化过程,例如包括自适应矩估计(Adam)优化、随机或小批量梯度下降、具有动量的梯度下降、以及用于减少训练模型中的过拟合的过程,例如使用丢弃。
其它训练过程,例如基于不同模型架构(诸如基于聚类或支持向量机的模型),也可以由训练引擎110应用。此外,其它类型的训练过程,例如基于无监督或半监督方法的过程,也可以由训练引擎110执行,以根据本公开各方面训练机器学习模型。
训练时间段可以根据一个或多个终止标准来限定,该终止标准可以例如作为附加输入参数作为接收请求的一部分被提供,或者被预定。当满足终止标准时,训练引擎110停止训练。标准可以是,例如,由训练引擎110实施的训练过程的最大迭代数量、从训练开始起经过的最大时间量、由经训练的模型满足最小模型质量性能阈值、和/或在经过了一定迭代数量或时间之后不满足对模型质量的最小预定改进。
训练系统100可以在多个阶段上训练机器学习模型。训练阶段可以对应于数个训练步骤,每个训练步骤表示完整的前向和后向传递,以基于计算误差来更新模型参数值。训练阶段中的训练步骤的数量可以变化,例如从数千到数百万。训练步骤的数量可以基于例如所有训练阶段的训练步骤的总数和/或训练数据组的大小而变化。在一些示例中,阶段可以被限定为比用于训练模型的总训练时间更短的时间段、整个训练组由模型处理的时期的数量或次数、和/或实现的某些模型性能里程碑,诸如阈值召回率或基于用于测量模型精度的度量的任何阈值。
在每个阶段,训练引擎110可以应用硬件级和模型级性能设置的不同值,用于在该阶段期间调整训练过程。硬件级和模型级性能设置可以采用在经训练的机器学习模型的训练速度和模型质量之间具有变化的折衷的值的范围。训练引擎110可以被配置为一起进行硬件级和模型级训练优化的组合,并且调整硬件级和模型级性能参数的值,以实现所得到的经训练模型的训练速度和模型质量之间的不同平衡。训练调度可以指定为各种硬件级和模型级性能设置调整值的速率。例如,如果值是数字的并且在有利于训练速度超过模型质量的值的范围的一端开始,则训练调度可以指定速率,以该速率,特定性能设置的值被调整为转换到有利于模型质量超过训练速度的值,或者反之亦然。
在训练的早期阶段,训练调度可以指定硬件级和模型级性能设置,从而以模型质量为代价有利于较高的训练速度。训练调度可以包括硬件级和模型级性能设置的数个中间值,以转换由系统进行的训练过程,从而有利于模型质量超过训练速度。训练调度指定应该将中间值应用到性能设置的点,并且训练系统被配置为在指定点应用那些设置的值。这些点可以是训练的后续阶段的开始,和/或根据其它条件(诸如时间)的间隔。例如,训练调度可以在逐分钟的间隔上为性能设置指定不同的值。在训练的后期阶段,训练调度可以指定硬件级和模型级性能设置的值或方案,该值或方案以较低的训练速度为代价有利于较高的模型质量。
各种硬件级和模型级性能设置的值的范围至少根据在训练期间可用的性能设置的类型而变化。例如,一个模型级性能设置用于训练机器学习模型的学习速率。学习速率调整最初可以非常小,例如0.1-0.01。在一定数量的阶段或训练步骤之后,学习速率可以降低一些量,例如降低其当前值的10倍。
另一示例模型级性能设置是正则化。对于诸如正则化的性能设置,其中,性能设置涉及与调整数值相反的不同类型或类别的优化,性能设置的值可以与由性能设置所覆盖的方案的类型对应。在诸如数据增强的模型正则化的情况下,取决于不同的模型级性能设置值,用于增强的方法可以从简单的失真改变到更高级的模糊和失真。
各种不同硬件级和模型级性能设置的值的范围可以是整数。作为另一示例,硬件级性能设置可以是用于在芯片、节点或训练机器学习模型的其它设备之间通信数据(诸如梯度)的通信半径。初始地,通信半径可以很小,例如2乘2,用于在彼此相邻的本地设备之间进行通信。通信半径可以被调整以增加,例如16乘16或更大,以跨不同的硬件互连在数据中心内和/或跨数据中心与数百或数千个芯片进行通信。
训练引擎110被配置为使得计算资源130根据硬件级和模型级性能设置的当前值来进行用于训练机器学习模型的操作。
例如,训练引擎110可以生成程序或指令序列,当由计算资源130执行该程序或指令序列时,该程序或指令序列使得计算资源130根据该程序或指令序列中所指定的性能设置的值来执行操作。在一些示例中,训练引擎110被配置为通过到计算资源的设备的一个或多个控制信号来启用、禁用或修改硬件特征的执行。例如,训练引擎110可以通过控制计算资源130的操作系统或其它软件或固件来启用不同的硬件特征。在其它示例中,训练引擎110可以通过总线或通信通道发送直接信号,设备被配置为从该总线或通信通道接收控制信号以用于启用或禁用硬件特征。
可以由硬件级性能设置的不同值来调整的硬件特征的一些示例包括:启用/禁用计算设备中和计算设备之间的数据内或数据间通信;计算设备应用以进行作为训练过程的一部分的相应操作的数值精度水平;和/或启用/禁用计算设备上的硬件并行性。在一些示例中,还可以调整数据内或数据间通信,诸如通过设备之间所传送的数据的速率、体积或类型。
硬件级性能设置可以包括用于调整软件或虚拟限定的计算设备聚类的设置,其中,那些计算设备之间具有逻辑路径。在训练期间由计算资源130进行的示例操作可以包括计算输入值的向量与神经网络层的权重的矩阵或张量之间的点积、矩阵乘法、计算激活函数、进行卷积操作、池化特征映射的多个值等。
模型级性能设置可以包括模型超参数,诸如机器学习模型的大小或者神经网络的拓扑或形状,包括模型接收到的输入的大小。模型级性能设置还可以包括训练过程超参数,用于修改由训练引擎在训练机器学习模型时所使用的训练过程,诸如学习速率或批量大小。训练过程超参数还可以包括其值控制各种优化过程的应用的参数,这些优化过程可以作为训练过程的一部分来进行以进一步改进模型,诸如用于模型的多少功能部分被正则化或多少数据被归一化的二阶优化方法或过程。训练过程超参数的示例还可以包括学习速率或小批量大小,例如当训练过程是小批量梯度下降时。
对于模型级性能设置,训练引擎110可以发送由计算资源130可解释的信号,用于在整个训练周期内根据训练调度来调整模型级性能设置。例如,训练引擎110可以生成程序或指令序列,该程序或指令序列指定在训练期间对模型和/或训练过程的调整,以及在哪些点或阶段应该根据训练调度的模型级性能设置值进行调整。
训练引擎110可以通过搜索实施系统的平台上可用的硬件级或模型级特征的硬件级和模型级性能设置的值的排列来生成训练调度。作为生成的一部分,取决于应用设置的训练点,训练引擎110可以识别在实现更高的训练速度或模型质量方面互补的模型级和硬件级性能设置。
例如,聚类中的相邻计算设备的仅本地通信的硬件级性能设置的不同值可以与模型级性能设置的不同值配对,在该模型级性能设置中,训练引擎110应用批量归一化或交叉副本梯度求和,以在训练的早期阶段期间以模型质量为代价加速训练。计算资源130的设备可以被逻辑地和/或物理地组织为计算资源的聚类或组,其中,聚类内的至少一些设备之间的互连有助于设备内通信。训练引擎110在训练期间可以调整的硬件级性能设置可以包括用于调整聚类中的设备之间的通信开销的设置。
作为又一示例,在训练期间用于较高数值精度的硬件级性能设置的值可以与模型级性能设置的值配对,该模型级性能设置使得训练引擎110以训练速度为代价应用各种二阶优化方法中的任何一个以获得更好的模型质量。
作为又一示例,用于在某些类型的加速器(诸如GPU或TPU)上启用并行计算的硬件级性能设置可以与用于选择在训练某些神经网络时使用的激活函数的某些模型级性能设置配对。例如,当选择并行计算用于以减少的模型质量进行更快的训练时,可以选择ReLU作为激活函数,但是在稍后的训练期间,可以选择swish作为激活函数,用于由于减少的硬件执行并行性以减少的训练速度为代价增加模型质量。
由于模型架构和硬件设置的巨大空间,诸如本文中描述的训练系统100的系统可以允许组合硬件设置和渐进训练。例如,质朴地组合硬件和模型级渐进训练可能导致灾难性的质量损失,这使得模型质量太低而不能使用。作为另一示例,在训练开始时在模型级应用较低的正则化以及在硬件级应用较低的精度可能导致初始质量损失太低而不能恢复,即使在稍后的训练中正则化和数字精度显著增加。
在一些示例中,可以根据由训练引擎先前在训练模型时所使用的训练调度或训练调度的一部分来重新训练模型。重新训练可以包括使用新的训练数据来进行训练过程的数个迭代。示例重新训练可以包括具有梯度下降的反向传播加上更新先前从较早的训练中设置的神经网络的模型权重。代替从训练的初始阶段重新使用相同的训练调度,训练引擎110可以将先前使用的训练调度的硬件级和模型级性能设置的值应用于训练的稍后阶段或点。以该方式,可以由训练引擎110使用与(已经被训练的)模型的当前性能对应的性能设置的值,以有利于模型质量相对于训练速度的改进。
训练调度的一部分可以用作重新训练的一部分的一个示例情况是在重新训练生产机器学习模型时,诸如在线搜索引擎的模型。鉴于在部署生产机器学习模型之后可能已经开发的新的训练数据和/或模型级优化,可以偶尔重新训练模型。训练系统可以重新使用先前用于初始训练生产机器学习模型的训练调度,但是根据模型质量被强调超过训练速度的点或阶段开始重新训练。
训练调度库120是存储在一个或多个存储器设备上的预生成的训练调度的集合,例如作为可查询数据库的一部分。如参考图2更详细地描述的,训练调度库120可以由训练系统所生成的训练调度来填充。在一些示例中,训练调度引擎115将生成的训练调度添加到库120,用元数据对其进行标记,该元数据至少部分地描述作为使用生成的训练调度来训练模型的请求的一部分而接收的输入参数。在其它示例中,训练调度引擎115可以用一个或多个训练调度来填充训练调度库120,该训练调度用于由系统100所请求训练的通常接收到的机器学习模型。如参考图3B更详细地描述的,训练引擎110可以查询训练调度库120以识别先前为机器学习模型生成的存储的训练调度,该机器学习模型与当前由引擎110请求训练的模型相同或相似。
在一些示例中,训练系统100还可以包括神经架构搜索(NAS)引擎125。如参考图4更详细地描述的,NAS引擎125被配置为搜索受益于根据如本文中描述的训练调度的训练的神经网络的神经架构。
例如,训练系统100可以接收指定要进行的机器学习任务而不指定特定模型类型的用于训练机器学习模型的输入参数。在其它示例中,训练系统100可以接收用于基于由NAS引擎125所识别的神经网络架构来生成神经网络的请求。
示例方法
图2是用于机器学习模型的硬件感知渐进训练的示例过程200的流程图。训练系统,诸如图1的训练系统100,可以被配置为进行过程200。
根据框210,训练系统接收训练机器学习模型的请求。请求可以包括各种类型的数据或元数据,包括一个或多个输入参数。输入参数可以包括本文中参考图1描述的输入参数,至少部分地描述机器学习模型、机器学习任务以及可用于训练机器学习模型的计算资源中的一个或多个。
根据框220,训练系统接收为一个或多个硬件级性能设置以及一个或多个模型级性能设置指定多个值的训练调度。例如,如本文中参考图1和图3A描述的,训练系统可以生成训练调度。作为另一示例,如本文中参考图1和图3B描述的,训练系统可以查询存储多个预生成的训练调度的一个或多个存储器设备。
根据框230,训练系统根据训练过程、在训练期间的不同时间点被设置为训练调度的多个值中的不同值的一个或多个硬件级性能设置以及一个或多个模型级性能设置,训练机器学习模型。如本文中参考图1描述的,训练系统被配置为在训练期间的各种点应用硬件级和模型级性能设置的不同值。训练调度可以指定那些点,例如作为阶段或其它限定的间隔,并且训练调度还可以指定值从范围的一端改变到另一端的速率。
根据框240,训练系统将经训练的机器学习模型发送到一个或多个计算设备。作为示例,一个或多个计算设备可以是最初请求训练机器学习模型的设备。在其它示例中,一个或多个计算设备可以被预定用于接收经训练的机器学习模型,例如作为网络边缘上的设备或计算平台的另一设备上的模型部署的一部分。
图3A是用于训练机器学习模型以生成用于硬件感知渐进训练的训练调度的示例过程300A的流程图。为了描述的目的,所训练的机器学习模型被称为训练调度机器学习模型。
根据框310,训练系统接收训练调度的一个或多个训练示例。每个示例训练调度可以被标记有至少部分地描述用于生成示例训练调度的一个或多个相应输入参数的相应数据、以及使用示例训练调度所训练的相应模型的相应训练速度和相应模型质量。训练数据可以由手工、自动或两个方法的组合来生成。
例如,训练系统可以存储根据接收到的输入参数所生成的训练调度的元数据,并且在训练模型之后,记录其训练速度和模型质量。因为训练速度和模型质量在整个训练中变化,所以训练系统可以以不同的间隔存储分别表示速度和质量的各个值,在该间隔中,来自训练调度的值被应用到性能设置。附加地或替代地,训练系统可以计算各个训练速度和模型质量值的函数,例如作为平均或求和。
根据框320,使用一个或多个训练示例,训练系统训练机器学习模型,即训练调度机器学习模型,以从一个或多个输入参数生成训练调度。如本文中参考图1至图2描述的,输入参数是可以作为用于训练模型的请求的一部分而接收的输入参数。训练系统可以以各种不同的方式训练训练调度机器学习模型,例如使用具有梯度下降的某个形式的反向传播加上模型权重更新。用于训练训练调度机器学习模型的损失或性能函数可以是在训练周期中的不同点的训练速度或模型质量如何接近在训练期间的那些相同点的地面真实训练速度或模型质量的函数。
在其它示例中,训练系统可以被配置为根据一组候选训练调度上的优化方法来搜索训练调度。搜索可以被限定为在整个训练过程中识别具有最高的模型质量和训练速度的训练调度,该训练调度受到可以根据输入参数所设置的各种限制。例如,限制可以是可用于给定训练过程以及在使用识别的训练调度来训练模型时要使用的计算资源组的硬件级和性能级性能设置的某个子集。
图3B是根据本公开各方面的用于从存储多个训练调度的一个或多个存储器设备查询和应用预生成的训练调度的示例过程的流程图。
根据框330,训练系统向存储多个候选训练调度的一个或多个存储器设备发送查询,该查询包括至少部分地描述机器学习模型、机器学习任务以及可用于训练机器学习模型的计算资源中的一个或多个的数据。如本文中参考图1描述的,训练系统可以包括训练引擎,该训练引擎被配置为接收作为训练模型的请求的一部分的输入参数,并且向存储器设备的训练调度库查询用那些输入参数中的至少一些来标记的先前生成的训练调度。
根据框340,响应于查询,训练系统从多个候选训练调度接收训练调度。例如,接收到的训练调度可以是具有与查询中的输入参数相同或最相似的元数据的训练调度。可以将输入参数与对应于一个或多个输入参数的预定相似性测量进行比较。
图4是根据本公开各方面的用于搜索神经架构的示例过程的流程图。
本公开各方面还提供被配置为在一组候选神经网络架构中搜索可以应用硬件感知渐进训练的目标架构的训练系统。例如,训练系统可以识别目标架构,在该目标架构中,指定的计算资源组的所有或大部分硬件特征可以在训练期间以不同的值来应用,用于训练速度-模型质量折衷。作为在训练期间调整性能设置的一部分,训练系统可以通过操作来引起性能开销,该操作被执行为使得计算资源根据经调整的值来训练模型。作为另一示例,训练系统可以识别目标架构,在该目标架构中,模型级性能设置可以在其它候选架构上以最小的性能开销来调整。
训练系统搜索可以受益于在训练期间对硬件级和模型级性能设置的连续调整的神经架构。例如,可以扩展模型大小的神经架构,例如由神经网络层的数量和/或每层中的节点的数量来测量,或者可以扩展输入大小的神经架构,该输入大小在对应计算资源上被训练,该对应计算资源可以被缩放以适应增加的模型或输入大小,在训练期间将受益更多,例如使用如本文中描述的变化性能设置值的训练调度以更高的训练速度和模型质量来测量。
根据过程400的框410,训练系统至少估计第一神经网络的训练速度和模型质量,该第一神经网络具有多个候选神经架构中的第一候选神经架构,并且使用硬件感知渐进学习来训练。估计可以是在神经架构的搜索空间内测量候选神经架构的性能的一部分。搜索空间可以包括各种不同的候选架构,这些候选架构可以基于不同提供的输入参数进行过滤或调整。例如,如果训练系统接收到指定模型类型为卷积神经网络的输入参数,则训练系统可以搜索包括至少一个卷积层的神经架构的搜索空间。
训练系统至少基于第一神经网络的估计训练速度和估计模型质量与一个或多个第二神经网络的相应估计训练速度和相应估计模型质量的比较来选择第一候选神经架构。根据框420,每个第二神经网络具有相应的候选神经架构。如本文中描述的,第二神经网络可以根据硬件感知渐进学习来训练,以识别相应的训练速度和模型质量。附加地或替代地,训练系统可以估计训练速度和模型质量。
训练系统的选择可以是选择候选神经架构以及将该神经架构与当前的最佳已知架构进行比较的多个迭代的一部分。至少可以通过使用来自硬件感知渐进训练的训练速度和模型质量作为不同候选模型的性能的指示来增强搜索。可以应用各种神经架构搜索过程中的任何一个,诸如通过数个迭代或者至少基于其训练速度和模型质量直到找到满足阈值性能值的候选神经架构的随机搜索。
例如,如本文中参考图1至图2描述的,当第一候选神经架构已经被识别为目标神经架构时,训练系统可以继续训练具有目标神经架构的神经网络。
本公开各方面可以提供至少以下技术优点。如本文中描述的生成具有从NAS所选择的神经架构的神经网络允许如本文中描述的硬件感知渐进训练的改进利用。神经架构可以根据训练它们的计算资源环境来定制,允许增加对硬件特征的访问,以用于加速实施的训练过程的操作,这和可能与那些硬件特征不兼容的未如本文中描述所识别的神经架构相反。
示例计算环境
图5是用于实施训练系统100的示例环境500的框图。系统100可以在一个或多个位置中具有一个或多个处理器的一个或多个设备上实施,诸如在具有一个或多个服务器计算设备515以及一个或多个存储器设备530的计算平台101上实施。用户计算设备512和服务器计算设备515可以通过网络560通信地耦接到存储器设备530。存储器设备530可以是易失性和非易失性存储器的组合,并且可以位于与计算设备512,515相同或不同的物理位置。例如,存储器设备530可以包括能够存储信息的任何类型的非暂时性计算机可读介质,诸如硬盘驱动器、固态驱动器、带驱动器、光存储、存储器卡、ROM、RAM、DVD、CD-ROM、能够写入并且只读的存储器。
服务器计算设备515可以包括一个或多个处理器513和存储器514。存储器514可以存储由处理器513可访问的信息,包括可以由处理器513执行的指令521。存储器514还可以包括可以由处理器513检索、操纵或存储的数据523。存储器514可以是一种能够存储由处理器513可访问的信息的非暂时性计算机可读介质,诸如易失性或非易失性存储器。处理器513可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)和/或专用集成电路(ASIC),诸如张量处理单元(TPU)。
平台101的可用计算资源可以包括处理器513和/或存储器514或存储器设备530中的一个或多个。如本文中描述的,平台101的计算资源可以被配置为在数据处理期间实施一个或多个硬件特征,一个或多个硬件特征可以根据一个或多个硬件级性能设置来启用或修改。根据本公开各方面,训练系统100被配置为在平台101的计算资源上训练机器学习模型。
指令521可以包括一个或多个指令,当该指令由处理器513执行时,该指令使得处理器513进行由该指令限定的动作。指令521可以以用于由处理器513直接处理的对象代码格式存储,或者以包括可解释的脚本或独立源代码模块的集合的其它格式存储,该脚本或集合按需被解释或预先被编译。指令521可以包括用于实施与本公开各方面一致的训练系统100的指令。可以使用处理器513和/或使用远离服务器计算设备515的其它处理器来执行训练系统100。
数据523可以由处理器513根据指令521来检索、存储或修改。数据523可以存储在计算机寄存器中、关系或非关系数据库中,作为具有多个不同字段和记录的表,或者作为JSON、YAML、Proto或XML文档。数据523还可以以计算机可读格式被格式化,该计算机可读格式诸如是但是不限于二进制值、ASCII或Unicode。此外,数据523可以包括足以识别相关信息的信息,诸如数字、描述性文本、专有代码、指针、对其它存储器中存储的数据的参考(包括其它网络位置)、或者由函数使用来计算相关数据的信息。
用户计算设备512也可以类似于服务器计算设备515来配置,具有一个或多个处理器516、存储器517、指令518和数据519。用户计算设备512还可以包括用户输出526和用户输入524。用户输入524可以包括用于接收来自用户的输入的任何适当的机制或技术,诸如键盘、鼠标、机械致动器、软致动器、触摸屏、麦克风和传感器。
服务器计算设备515可以被配置为将数据传送到用户计算设备512,并且用户计算设备512可以被配置为在实施为用户输出526的一部分的显示器上显示接收到的数据的至少一部分。用户输出526还可以用于显示用户计算设备512和服务器计算设备515之间的接口。用户输出526可以替代地或附加地包括一个或多个扬声器、换能器或其它音频输出、向计算设备512的用户提供非视觉和非听觉信息的触觉接口或其它触觉反馈。
虽然图5示出了处理器513,516和存储器514,517在计算设备515,512内,但是本说明书中描述的组件(包括处理器513,516和存储器514,517)可以包括多个处理器和存储器,它们可以在不同的物理位置中操作,而不是在相同的计算设备内操作。例如,指令521,518和数据523,519中的一些可以存储在可移动SD卡上,而其它可以存储在只读计算机芯片内。指令和数据中的一些或全部可以存储在物理上远离处理器513,516但是仍然由处理器513,516可访问的位置中。类似地,处理器513,516可以包括可以进行并发和/或顺序操作的处理器的集合。计算设备515,512可以各自包括提供定时信息的一个或多个内部时钟,该定时信息可以用于由计算设备515,512运行的操作和程序的时间测量。
服务器计算设备515可以被配置为接收请求,以处理来自用户计算设备512的数据。例如,平台101可以被配置为通过暴露平台服务的各种用户接口和/或API向用户提供各种服务。一个或多个服务可以是机器学习框架或工具组,用于根据指定任务和训练数据来生成神经网络或其它机器学习模型。用户计算设备512可以接收和传送指定要被分配用于训练和部署神经网络以进行特定机器学习任务的目标计算资源的数据。
例如,服务器计算设备515可以被配置为接收请求,该请求指定例如一组训练数据;训练模型的类型(诸如深度神经网络、递归神经网络和卷积神经网络);以及将训练模型以进行的机器学习任务的类型。如本文中描述的,请求可以可选地指定更多或更少的参数。
设备512,515能够通过网络560进行直接和间接通信。设备515,512可以建立侦听套接字,该侦听套接字可以接受用于发送和接收信息的启动连接。网络560本身可以包括各种配置和协议,包括因特网、万维网、内联网、虚拟私有网、广域网、局域网以及使用一个或多个公司专有的通信协议的私有网。网络560可以支持各种短距离和长距离连接。短距离和长距离连接可以在不同的带宽上进行,诸如2.402GHz到2.480GHz、2.4GHz和5GHz;或者具有各种通信标准,诸如用于无线宽带通信的标准。附加地或替代地,网络560还可以支持设备512,515之间的有线连接,包括通过各种类型的以太网连接。
应该理解的是,可以根据计算设备的各种不同配置和数量来实施本公开各方面,包括在用于顺序或并行处理的范例中或者在多个设备的分布式网络上实施本公开各方面。在一些实施方式中,可以在单个设备及其任何组合上进行本公开各方面。
示例机器学习任务
如本文中描述的,本公开各方面提供机器学习模型的硬件感知渐进训练以进行相应的机器学习任务。机器学习任务的示例如下。
作为示例,到要被训练的机器学习模型的输入可以是图像或视频的形式。机器学习模型可以被训练为提取、识别和生成特征,作为处理给定输入的一部分,例如作为计算机视觉任务的一部分。被训练为进行该类型机器学习任务的机器学习模型可以被训练为从一组不同的潜在分类生成输出分类。附加地或替代地,机器学习模型可以被训练为输出与图像或视频中的识别主题属于某一类别的估计概率对应的分数。
作为另一示例,对机器学习模型的输入可以是与特定格式对应的数据文件,诸如HTML或XML文件,文字处理文档,或者从其它类型的数据获得的格式化元数据,诸如图像文件的元数据。该情境中的机器学习任务可以是分类、评分或以其它方式预测关于接收输入的一些特性。例如,机器学习模型可以被训练为预测接收输入包括与特定主题有关的文本的概率。此外,作为进行特定任务的一部分,机器学习模型可以被训练为生成文本预测,例如作为随着文档正在被撰写而自动完成文档中的文本的工具的一部分。机器学习模型还可以被训练用于例如随着消息正在被撰写而预测输入文档中的文本到目标语言的翻译。
其它类型的输入文档可以是与互连设备的网络的特性有关的数据。这些输入文档可以包括活动日志,以及关于不同的计算设备访问不同的潜在敏感数据源的访问权限的记录。机器学习模型可以被训练用于处理这些和其它类型的文档,以用于预测正在进行的和将来的网络安全漏洞。例如,机器学习模型可以被训练为预测恶意行为者对网络的入侵。
作为另一示例,到机器学习模型的输入可以是音频输入,包括流音频、预记录的音频、以及作为视频或其它源或媒体的一部分的音频。音频情境中的机器学习任务可以包括语音识别,包括将语音与其它识别的音频源隔离和/或增强识别的语音的特性以更容易听见。机器学习模型可以被训练为预测输入语音到目标语言的精准翻译,例如作为翻译工具的一部分实时地预测。
除了数据输入(包括本文中描述的各种类型的数据)之外,机器学习模型还可以被训练为处理与给定输入对应的特征。特征是与输入的某些特性有关的值,诸如数值或分类值。例如,在图像的情境中,图像的特征可以与图像中的每个像素的RGB值有关。图像/视频情境中的机器学习任务可以是对图像或视频的内容进行分类,例如用于不同的人、地点或事物的存在。机器学习模型可以被训练为提取和选择用于处理的相关特征来为给定输入生成输出,并且还可以被训练为基于输入数据的各种特性之间的经学习的关系来生成新的特征。
本公开各方面可以在数字电路、计算机可读存储介质中实施为一个或多个计算机程序或者前述中的一个或多个的组合。计算机可读存储介质可以是非暂时性的,例如,作为由一个或多个计算设备可执行并且存储在一个或多个有形存储器设备上的一个或多个指令。
在本说明书中,短语“被配置为”用在与计算机系统,硬件,或者计算机程序、引擎或模块的一部分相关的不同情境中。当系统被称为被配置为进行一个或多个操作时,这意味着系统具有安装在系统上的适当的软件、固件和/或硬件,当在操作中时,软件、固件和/或硬件使得系统进行一个或多个操作。当一些硬件被称为被配置为进行一个或多个操作时,这意味着硬件包括一个或多个电路,当在操作中时,电路接收输入并且根据输入生成输出,并且对应于一个或多个操作。当计算机程序、引擎或模块被称为被配置为进行一个或多个操作时,这意味着计算机程序、引擎或模块包括一个或多个程序指令,当由一个或多个计算设备(诸如一个或多个处理器)执行时,一个或多个程序指令使得一个或多个计算设备进行一个或多个操作。
虽然以特定的顺序示出了附图中所示和权利要求中记载的操作,但是应该理解的是,可以以与所示的顺序不同的顺序来进行操作,并且一些操作可以省略、进行多于一次和/或与其它操作并行地进行。此外,被配置用于进行不同操作的不同系统组件的分离不应该被理解为需要分离组件。描述的组件、模块、程序和引擎可以被集成在一起作为单个系统或者作为多个系统的一部分。
除非另外说明,否则前述替代示例不是相互排斥的,而是可以以各种组合来实施以实现独特的优点。因为可以在不脱离由权利要求限定的主题的情况下利用上面讨论的特征的这些和其它变形以及组合,所以示例的前述描述应该通过说明由权利要求限定的主题的方式而不是通过限制由权利要求限定的主题的方式来进行。此外,本文中描述的示例的提供,以及措辞为“诸如”、“包括”等的条款,不应该被解释为将权利要求的主题限制于特定示例;相反,示例仅旨在说明许多可能实施方式中的一个实施方式。此外,不同附图中的相同附图标记可以识别相同或类似的元素。

Claims (20)

1.一种系统,其特征在于,包括:
一个或多个处理器,所述一个或多个处理器被配置为:
接收训练机器学习模型的请求;
接收为一个或多个硬件级性能设置以及一个或多个模型级性能设置指定多个值的训练调度;
根据训练过程、在训练期间的不同时间点被设置为所述训练调度的所述多个值中的不同值的一个或多个硬件级性能设置以及一个或多个模型级性能设置,训练所述机器学习模型;以及
响应于接收到所述请求,将经训练的所述机器学习模型发送到一个或多个计算设备。
2.根据权利要求1所述的系统,其特征在于,所述一个或多个模型级性能设置包括以下中的一个或多个:
到所述机器学习模型的输入数据的输入数据大小,
指定所述机器学习模型的所述大小或形状的一个或多个模型超参数,以及
修改由所述一个或多个处理器实施的用于训练所述机器学习模型的所述训练过程的一个或多个训练过程超参数。
3.根据权利要求1所述的系统,其特征在于,所述一个或多个硬件级性能设置包括用于调整所述一个或多个处理器之间的数据内或数据间通信的设置。
4.根据权利要求3所述的系统,其特征在于,
其中,所述一个或多个处理器包括被逻辑地或物理地分组为多个组的多个处理器,以及
其中,所述一个或多个硬件级性能设置包括用于不同组中的处理器之间的数据间通信速率的设置。
5.根据权利要求3所述的系统,其特征在于,所述一个或多个硬件级性能设置包括用于在根据所述训练过程训练所述机器学习模型的同时调整由所述一个或多个处理器进行的操作的数值精度的设置。
6.根据权利要求3所述的系统,其特征在于,所述一个或多个硬件级性能设置包括用于在根据所述训练过程训练所述机器学习模型的同时启用或禁用所述一个或多个处理器之间的硬件并行性的设置。
7.根据权利要求1所述的系统,其特征在于,在训练所述机器学习模型时,所述一个或多个处理器还被配置为:
将所述一个或多个硬件级性能设置和模型级性能设置设置为所述训练调度的所述多个值中的第一值;以及
在所述机器学习模型的所述训练启动之后的第一时间点,将所述一个或多个硬件级性能设置以及一个或多个模型级性能设置调整为所述多个值中的不同于所述第一值的第二值。
8.根据权利要求1所述的系统,其特征在于,在接收所述训练调度时,所述一个或多个处理器还被配置为使用训练调度机器学习模型来生成训练调度,其中,所述训练调度机器学习模型是:
被训练为从一个或多个输入参数生成训练调度,所述一个或多个输入参数至少部分地描述所述机器学习模型、所述机器学习任务以及可用于训练所述机器学习模型的计算资源中的一个或多个;以及
使用训练调度的一个或多个训练示例来训练,每个示例训练调度被标记有至少部分地描述用于生成所述示例训练调度的一个或多个相应输入参数的相应数据、以及根据所述训练过程和所述示例训练调度所训练的相应机器学习模型的所述训练速度和所述模型质量。
9.根据权利要求1所述的系统,其特征在于,所述机器学习模型是具有从多个候选神经架构中所选择的神经架构的神经网络,所述神经架构的所述选择至少部分地基于神经网络的估计的相应训练速度和相应模型质量的比较,所述神经网络根据所述训练过程和相应训练调度来训练,并且具有所述多个候选神经架构中的相应候选神经架构。
10.根据权利要求1所述的系统,其特征在于,在接收所述训练调度时,所述一个或多个处理器还被配置为:
向存储多个候选训练调度的一个或多个存储器设备发送查询,所述查询包括至少部分地描述所述机器学习模型、所述机器学习任务以及可用于训练所述机器学习模型的计算资源中的一个或多个的数据;以及
响应于所述查询,从所述多个候选训练调度接收所述训练调度。
11.一种方法,其特征在于,包括:
由一个或多个处理器接收训练机器学习模型的请求,所述一个或多个处理器被配置为根据一个或多个硬件级性能设置以及一个或多个模型级性能设置来训练所述机器学习模型;
由所述一个或多个处理器接收为所述一个或多个硬件级性能设置以及所述一个或多个模型级性能设置指定多个值的训练调度;
由所述一个或多个处理器根据训练过程、以及在训练期间的不同时间点被设置为所述训练调度的所述多个值中的不同值的所述一个或多个硬件级性能设置以及一个或多个模型级性能设置,训练所述机器学习模型;以及
响应于接收到所述请求,由所述一个或多个处理器将经训练的所述机器学习模型发送到一个或多个计算设备。
12.根据权利要求11所述的方法,其特征在于,所述一个或多个模型级性能设置包括以下中的一个或多个:
到所述机器学习模型的输入数据的输入数据大小,
指定所述机器学习模型的所述大小或形状的一个或多个模型超参数,以及
修改由所述一个或多个处理器实施的用于训练所述机器学习模型的所述训练过程的一个或多个训练过程超参数。
13.根据权利要求11所述的方法,其特征在于,所述一个或多个硬件级性能设置包括用于调整所述一个或多个处理器之间的数据内或数据间通信的设置。
14.根据权利要求13所述的方法,其特征在于,
其中,所述一个或多个处理器包括被逻辑地或物理地分组为多个组的多个处理器,以及
其中,所述一个或多个硬件级性能设置包括用于不同组中的处理器之间的数据间通信速率的设置。
15.根据权利要求13所述的方法,其特征在于,所述一个或多个硬件级性能设置包括用于在根据所述训练过程训练所述机器学习模型的同时启用或禁用所述一个或多个处理器之间的硬件并行性的设置。
16.根据权利要求11所述的方法,其特征在于,接收所述训练调度包括,由所述一个或多个处理器使用训练调度机器学习模型来生成训练调度,其中,所述训练调度机器学习模型是:
被训练为从一个或多个输入参数生成训练调度,所述一个或多个输入参数至少部分地描述所述机器学习模型、所述机器学习任务以及可用于训练所述机器学习模型的计算资源中的一个或多个;以及
使用训练调度的一个或多个训练示例来训练,每个示例训练调度被标记有至少部分地描述用于生成所述示例训练调度的一个或多个相应输入参数的相应数据、以及根据所述训练过程和所述示例训练调度所训练的相应机器学习模型的所述训练速度和所述模型质量。
17.根据权利要求11所述的方法,其特征在于,所述机器学习模型是具有从多个候选神经架构中所选择的神经架构的神经网络,所述神经架构的所述选择至少部分地基于神经网络的估计的相应训练速度和相应模型质量的比较,所述神经网络根据所述训练过程和相应训练调度来训练,并且具有所述多个候选神经架构中的相应候选神经架构。
18.根据权利要求11所述的方法,其特征在于,接收所述训练调度包括:
由所述一个或多个处理器向存储多个候选训练调度的一个或多个存储器设备发送查询,所述查询包括至少部分地描述所述机器学习模型、所述机器学习任务以及可用于训练所述机器学习模型的计算资源中的一个或多个的数据;以及
响应于所述查询,由所述一个或多个处理器从所述多个候选训练调度接收所述训练调度。
19.根据权利要求11所述的方法,其特征在于,训练所述机器学习模型还包括:
由所述一个或多个处理器将所述一个或多个硬件级性能设置和模型级性能设置设置为所述训练调度的所述多个值中的第一值;以及
在所述机器学习模型的所述训练启动之后的第一时间点,由所述一个或多个处理器将所述一个或多个硬件级性能设置以及一个或多个模型级性能设置调整为所述多个值中的不同于所述第一值的第二值。
20.一种用指令编码的一个或多个非暂时性计算机可读存储介质,其特征在于,当所述指令由一个或多个处理器执行时,所述指令被配置为根据一个或多个硬件级性能设置以及一个或多个模型级性能设置来训练机器学习模型,使得所述一个或多个处理器进行操作,所述操作包括:
接收训练第一机器学习模型的请求;
接收为所述一个或多个硬件级性能设置以及所述一个或多个模型级性能设置指定多个值的训练调度;
根据训练过程、以及在训练期间的不同时间点被设置为所述训练调度的所述多个值中的不同值的所述一个或多个硬件级性能设置以及一个或多个模型级性能设置,训练所述第一机器学习模型;以及
响应于接收到所述请求,将经训练的所述第一机器学习模型发送到一个或多个计算设备。
CN202280036704.7A 2021-10-06 2022-09-21 机器学习模型的硬件感知渐进训练 Pending CN117999560A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163252743P 2021-10-06 2021-10-06
US63/252,743 2021-10-06
US17/899,728 US20230108177A1 (en) 2021-10-06 2022-08-31 Hardware-Aware Progressive Training Of Machine Learning Models
US17/899,728 2022-08-31
PCT/US2022/044201 WO2023059439A1 (en) 2021-10-06 2022-09-21 Hardware-aware progressive training of machine learning models

Publications (1)

Publication Number Publication Date
CN117999560A true CN117999560A (zh) 2024-05-07

Family

ID=85773933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280036704.7A Pending CN117999560A (zh) 2021-10-06 2022-09-21 机器学习模型的硬件感知渐进训练

Country Status (5)

Country Link
US (1) US20230108177A1 (zh)
EP (1) EP4323928A1 (zh)
JP (1) JP7668905B2 (zh)
KR (1) KR20230170752A (zh)
CN (1) CN117999560A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836618B2 (en) * 2020-08-19 2023-12-05 Bank Of America Corporation Electronic system for data processing by a self-correcting, deep neural network integrated within a memory resource
WO2024237706A1 (ko) * 2023-05-16 2024-11-21 주식회사 옵트에이아이 추론 작업 스케줄링 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5531420B2 (ja) 2009-02-27 2014-06-25 日本電気株式会社 プロセス割当システム、プロセス割当方法、プロセス割当プログラム
US12061990B2 (en) 2017-10-17 2024-08-13 Xilinx, Inc. Static block scheduling in massively parallel software defined hardware systems
JP7562508B2 (ja) 2019-03-28 2024-10-07 株式会社東芝 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
US11907821B2 (en) 2019-09-27 2024-02-20 Deepmind Technologies Limited Population-based training of machine learning models

Also Published As

Publication number Publication date
JP7668905B2 (ja) 2025-04-25
US20230108177A1 (en) 2023-04-06
EP4323928A1 (en) 2024-02-21
KR20230170752A (ko) 2023-12-19
JP2024521136A (ja) 2024-05-28

Similar Documents

Publication Publication Date Title
EP3467723B1 (en) Machine learning based network model construction method and apparatus
US11669744B2 (en) Regularized neural network architecture search
US20200265301A1 (en) Incremental training of machine learning tools
US20220027792A1 (en) Deep neural network model design enhanced by real-time proxy evaluation feedback
KR102410820B1 (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
US20190278600A1 (en) Tiled compressed sparse matrix format
US20170091619A1 (en) Selective backpropagation
CN104331442A (zh) 视频分类方法和装置
CN112749737A (zh) 图像分类方法及装置、电子设备、存储介质
CN117999560A (zh) 机器学习模型的硬件感知渐进训练
CN112149809A (zh) 模型超参数的确定方法及设备、计算设备和介质
EP3971782A2 (en) Neural network selection
CN114008666A (zh) 动态图像分辨率评估
CN110490304A (zh) 一种数据处理方法及设备
JP7579972B2 (ja) ハードウェアアクセラレータのためのニューラルアーキテクチャスケーリング
WO2025106242A1 (en) Segmentation free guidance in diffusion models
CN112241786A (zh) 模型超参数的确定方法及设备、计算设备和介质
WO2023059439A1 (en) Hardware-aware progressive training of machine learning models
CN118013132B (zh) 基于人工智能的信息预测方法、相关设备及存储介质
KR102641629B1 (ko) 설명 가능한 인공지능 기반의 트랜스포머를 활용한 데이터 처리 방법 및 시스템
US20240037373A1 (en) OneShot Neural Architecture and Hardware Architecture Search
US20230419087A1 (en) Adapters for quantization
WO2025096058A1 (en) Conformal predictions to upper-bound intrinsic aleatoric uncertainty
CN117349526A (zh) 用于推荐召回的方法、系统、装置和介质
WO2025019095A1 (en) Methods and apparatus for converting pre-trained model data format, without retraining

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination