CN110268422B - 利用强化学习的设备布局优化 - Google Patents
利用强化学习的设备布局优化 Download PDFInfo
- Publication number
- CN110268422B CN110268422B CN201880011282.1A CN201880011282A CN110268422B CN 110268422 B CN110268422 B CN 110268422B CN 201880011282 A CN201880011282 A CN 201880011282A CN 110268422 B CN110268422 B CN 110268422B
- Authority
- CN
- China
- Prior art keywords
- operations
- embedding
- neural network
- sequence
- layout
- 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.)
- Active
Links
- 230000002787 reinforcement Effects 0.000 title claims description 10
- 238000005457 optimization Methods 0.000 title description 2
- 238000013528 artificial neural network Methods 0.000 claims abstract description 98
- 230000000306 recurrent effect Effects 0.000 claims abstract description 66
- 238000010801 machine learning Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012549 training Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000015654 memory Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- 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/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Image Analysis (AREA)
- Stored Programmes (AREA)
Abstract
描述了一种用于确定跨多个硬件设备的机器学习模型操作的布局的方法。该方法包括接收指定将被布局用于在多个硬件设备上进行分布式处理的机器学习模型的数据;从数据生成操作嵌入序列,序列中的每个操作嵌入表征执行机器学习模型的处理所需的相应操作;根据布局递归神经网络的多个网络参数的第一值,使用布局递归神经网络处理操作嵌入序列,以生成定义由序列中的操作嵌入表征的跨多个设备的操作的布局的网络输出;以及通过根据由网络输出定义的布局在多个设备上布局操作,来调度机器学习模型以供多个硬件设备处理。
Description
相关申请的交叉引用
本申请要求2017年3月24日提交的美国临时申请62/476,618号的优先权。在先申请的公开内容被认为是本申请公开内容的一部分,并通过引用结合于此。
技术领域
本说明书涉及确定跨多个设备的机器学习模型操作的布局(placement)。
背景技术
本说明书涉及确定跨多个设备的机器学习模型操作的布局。
神经网络是机器学习模型,其采用一层或多层非线性单元来预测接收到的输入的输出。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层(即下一隐藏层或输出层)的输入。网络的每一层根据相应参数集的当前值从接收到的输入生成输出。
一些神经网络是递归神经网络。递归神经网络是接收输入序列并从输入序列生成输出序列的神经网络。具体而言,递归神经网络可以使用来自先前时间步骤的网络内部状态中的一些或全部来在当前时间步骤处计算输出。递归神经网络的一个示例是包括一个或多个长短期(long short term,LSTM)记忆块的LSTM神经网络。每个LSTM记忆块可以包括一个或多个单元,每个单元包括允许单元存储该单元的先前状态的输入门、遗忘门和输出门,例如,用于生成电流激活或提供给LSTM神经网络的其他组件。
发明内容
本说明书描述了在一个或多个位置处的一个或多个计算机上实施为计算机程序的系统,该系统确定跨多个硬件设备的机器学习模型操作的布局。
本说明书中描述的主题可以在特定实施例中实施,以便实现一个或多个以下优点。通过使用递归神经网络来
确定跨多个设备的机器学习模型操作的布局,使用设备执行机器学习模型的操作的效率得以提高。具体地,可以生成这样的布局,其适应于可用于处理的硬件配置,并致使模型处理的运行时间更短。通过使用具有从执行次数导出的奖励(reward)的强化学习来训练神经网络,递归神经网络学习当前硬件环境的属性,当前硬件环境包括硬件中的计算和通信之间的复杂权衡,这允许训练的神经网络生成更有效地利用可用资源的性能更好的布局。也就是说,该系统可以有效地使布局适应当前硬件环境,以考虑环境中设备的计算能力,并且最小化设备之间的通信所引起的延迟,以及最大化操作的性能。
虽然本说明书描述了布局机器学习操作,但是本说明书中描述的技术可用于布局可由计算图描述的跨多个硬件设备的任何操作的集合。
本说明书主题的一个或多个实施例的细节在附图和以下描述中阐述。从说明书、附图和权利要求书中,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了确定机器学习模型操作的布局的示例设备布局系统。
图2示出了布局递归神经网络的示例架构。
图3是用于在训练期间更新布局递归神经网络的网络参数的值的示例过程的流程图。
图4示出了示例计算图和该图的计算图操作在多个设备上的示例布局。
不同附图中相同的附图标记和名称指示相同的元素。
具体实施方式
图1示出了确定跨多个硬件设备的机器学习模型的操作的布局的设备布局系统100。设备布局系统100可以在一个或多个位置处的一个或多个计算机上实施为计算机程序。
被布局的机器学习模型可以被配置为接收任何种类的数字数据输入,并基于该输入生成任何种类的分数、类型或回归输出。
例如,如果机器学习模型的输入是已经从图像中提取的图像或特征,则机器学习模型为给定图像生成的输出可以是对象类别的集合中每一个对象类别的分数,每个分数表示图像包含属于该类别的对象的图像的估计似然性。
作为另一示例,如果机器学习模型的输入是因特网资源(例如,网页)、文档或文档部分,或者从因特网资源、文档或文档部分提取的特征,则机器学习模型为给定因特网资源、文档或文档部分生成的输出可以是主题的集合中每一个主题的分数,其中每个分数表示因特网资源、文档或文档部分关于该主题的估计似然性。
作为另一示例,如果机器学习模型的输入是针对用户的个性化推荐的特征,例如表征推荐的上下文的特征,例如表征用户先前采取的动作的特征,则机器学习模型生成的输出可以是内容项的集合中每一个内容项的分数,其中每个分数表示用户将对被推荐该内容项做出有利响应的估计似然性。
作为另一示例,如果机器学习模型的输入是一种语言的文本序列,则机器学习模型生成的输出可以是另一种语言的文本片段的集合中每一个文本片段的分数,其中每个分数表示该另一种语言的文本片段是输入文本到另一种语言的正确翻译的估计似然性。
作为另一示例,如果机器学习模型的输入是表示口头话语的序列,则机器学习模型生成的输出可以是文本片段的集合中每一个文本片段的分数,其中每个分数表示该文本片段是话语的正确转录的估计似然性。
具体地,设备布局系统100接收输入数据110,输入数据110指定将被布局用于在多个硬件设备上进行分布式处理的机器学习模型。硬件设备通常是异构的,并且可以包括任何合适的硬件设备,例如,任何CPU、GPU、ASIC或其他专用硬件、FPGA等的组合。
指定机器学习模型的输入数据110可以包括表示计算图的数据。计算图具有表示操作的顶点(vertice)和表示操作之间传送的数据的边(edge)。
例如,输入数据110包括表示计算图G的数据,该计算图G具有表示M个操作{o1,o2,…oM}的顶点。M个操作可以是训练机器学习模型的操作,或者是一旦已经训练了机器学习模型,就使用该机器学习模型从接收到的输入生成输出的操作。给定M个操作,设备布局系统100目标是确定布局P={p1,p2,…pM}。布局P是每个操作oi∈G到设备pi的分配,设备pi属于D个可用硬件设备的集合,即pi∈{1,…,D}。
参考图4详细描述了示例计算图和该图的计算图操作在多个硬件设备上的示例布局。
为了确定布局,系统100训练布局递归神经网络102,布局递归神经网络102生成定义跨设备的操作的布局的输出。一旦已经训练了布局递归神经网络102,系统100就可以生成最终布局。作为示例,系统100可以运行训练的布局递归神经网络102,并且使用训练的布局递归神经网络102的输出来确定最终布局。在另一示例中,系统100可以使用训练期间看到的最佳布局作为最终布局。
然后,系统100可以调度机器学习模型以供多个硬件设备处理,即,根据最终布局来执行机器学习模型的操作。在一些其他情况下,系统100可以向管理机器学习模型的执行的另一系统提供识别最终布局的数据,使得另一系统可以根据最终布局跨设备布局操作。
作为训练布局递归神经网络的一部分,系统100从输入数据110生成操作嵌入序列108。操作嵌入序列108中的每个操作嵌入表征执行机器学习模型的处理所需的一个或多个相应操作。嵌入是数值的有序集合,例如,浮点值或量化浮点值的向量或矩阵。
在一些情况下,系统组合多个不同的嵌入来为序列中的每个操作生成单个操作嵌入。
更具体地,为了生成表征特定操作的操作嵌入,系统100生成特定操作的操作类型的类型嵌入(type embedding)。例如,操作类型可以描述操作的基础计算(underlyingcomputation)(例如,矩阵乘法或二维卷积或一维卷积或非线性激活函数),并且类型嵌入可以是操作类型的可调嵌入向量,即,使得相同类型的每个运算共享相同类型的嵌入。
系统100生成输出尺寸嵌入(output size embedding),输出尺寸嵌入表征由特定操作生成的输出的尺寸。例如,系统100可以记录由特定操作生成的每个输出(例如,输出张量)的尺寸,并将记录的尺寸连接以生成输出形状(例如,固定尺寸的零填充列表)。输出形状是特定操作的输出尺寸嵌入。
系统100生成邻接嵌入(adjacency embedding)(例如,独热(one-hot)编码向量),邻接嵌入识别向特定操作提供输入并接收由特定操作生成的输出的操作。
系统100从嵌入的组合中生成表征特定操作的操作嵌入。系统100使用的嵌入的组合可以变化。例如,在一些情况下,系统100可以组合上述三种嵌入,例如类型嵌入、输出尺寸嵌入和邻接嵌入,以生成表征特定操作的操作嵌入。例如,系统100可以连接类型嵌入、输出尺寸嵌入和邻接嵌入以生成操作嵌入。在一些其他情况下,系统100可以组合上述三种嵌入中的两种来生成操作嵌入。在一些其他情况下,系统100可以将上述三种嵌入中的一种或多种与一种新的嵌入组合以生成操作嵌入。
在一些实施方式中,作为生成操作嵌入序列的一部分,系统100确定由计算图中的顶点表示的两个或更多个操作将位于同一设备上,并且作为响应,系统100生成表征两个或更多个操作的单个操作嵌入。
在训练布局递归神经网络102的每次迭代期间,系统100根据布局递归神经网络102的网络参数的当前值,使用布局递归神经网络102来处理操作嵌入序列108。布局递归神经网络102被配置为根据当前值来处理操作嵌入序列108,以生成网络输出112。网络输出112定义由序列中的操作嵌入表征的操作跨多个设备的布局。
具体地,布局递归神经网络102被配置为对于操作嵌入序列108中的每个操作嵌入生成分数集(a set of scores),分数集包括可用硬件设备的集合中每个硬件设备的相应分数。每个硬件设备的相应分数是表示该硬件设备是分配由操作嵌入表征的操作的最佳设备有多大可能的似然性。神经网络102然后被配置为使用操作嵌入的分数集为每个操作选择设备。在一些情况下,神经网络102可以根据用于操作嵌入的分数集来选择具有最高分数的设备。在一些其他情况下,神经网络102可以根据由表征操作的操作嵌入的分数集定义的概率从多个设备中采样设备。
一旦为操作中每一个选择了设备,神经网络102输出网络输出112,网络输出112定义跨多个硬件设备的操作的布局。
系统100可以通过根据网络输出112定义的布局在多个设备上布局操作,来调度机器学习模型,以供多个硬件设备处理。
通常,布局递归神经网络102可以是递归神经网络,其包括具有长短期记忆(LSTM)神经网络层和基于内容的注意力机制的序列到序列模型(sequence-to-sequence model)。Sutskever等人在2014年的Neural Information Processing Systems的"Sequence tosequence learning with neural networks"中描述了序列到序列模型的示例。Bahdanau、Dzmitry等人在2015年关于学习表示的国际会议中在"Neural machine translation byjointly learning to align and translate"中描述了基于内容的注意力机制的示例。
布局递归神经网络102的架构可以分为两部分:编码器递归神经网络104和解码器神经网络106。
编码器递归神经网络104被配置为接收操作嵌入序列作为输入。编码器递归神经网络104处理操作嵌入序列,以便为每个操作嵌入生成相应的编码器隐藏状态。
对于操作嵌入中的每一个,解码器神经网络106被配置为接收解码器输入,并处理解码器输入和编码器隐藏状态,以生成操作嵌入的分数集。序列中的第一操作嵌入之后的每个操作嵌入的解码器输入识别出为由序列中前一操作嵌入表示的一个或多个操作而选择的设备。对于第一操作嵌入,解码器神经网络106可以仅处理编码器隐藏状态,以生成第一操作嵌入的分数集。
下面参考图2更详细地描述布局递归神经网络102的示例架构。
系统100可以使用下面参照图3详细描述的过程,基于运行时间来更新布局递归神经网络102的网络参数的值。
图2示出了布局递归神经网络的示例架构。布局递归神经网络包括编码器递归神经网络292和解码器神经网络294。
编码器递归神经网络292被配置为接收操作嵌入序列(例如,嵌入211、212…、220)作为输入。操作嵌入序列表征在多个硬件设备上执行机器学习模型的处理所必需的操作。编码器递归神经网络292处理操作嵌入序列,以便为每个操作嵌入生成相应的编码器隐藏状态。例如,如图2所示,编码器递归神经网络292生成操作嵌入x1,x2,…,xM的编码器隐藏状态e1,e2,…eM的列表,其中M是执行机器学习模型的处理所必需的操作的数量。
解码器神经网络294维护LSTM隐藏状态d1,d2,…,dM,并且被配置为在每个解码时间步骤处输出对于相应操作嵌入的设备。每个解码时间步骤对应于一个操作嵌入。
具体地,对于每个操作嵌入,解码器神经网络294被配置为接收解码器输入,并处理解码器输入和适当的编码器隐藏状态的集合,以生成操作嵌入的分数集。解码器神经网络294可以使用softmax神经网络层来生成操作嵌入的分数集。操作嵌入的分数集包括多个硬件设备中每个硬件设备的相应分数。每个硬件设备的相应分数是表示该硬件设备是分配由操作嵌入表征的操作的最佳设备有多大可能的似然性。解码器神经网络294然后被配置为使用操作嵌入的分数集为每个操作选择设备。在一些情况下,解码器神经网络294可以根据操作嵌入的分数集来选择分数最高的设备。在一些其他情况下,解码器神经网络294可以根据由表征操作的嵌入操作的分数集定义的概率从多个设备中采样设备。
解码器神经网络294可以使用注意力机制来确定要在每个解码时间步骤处使用的适当的编码器隐藏状态的集合。序列中的第一操作嵌入之后的每个操作嵌入的解码器输入识别出为由序列中的前一操作嵌入表示的一个或多个操作而选择的设备。例如,序列中的第二操作嵌入的解码器输入262是识别出为第一操作嵌入而选择的设备251的设备嵌入。对于第一操作嵌入,解码器神经网络106可以仅处理适当的编码器隐藏状态,以生成第一操作嵌入的分数集。
图3是用于训练布局递归神经网络(例如,图1的布局递归神经网络102)以更新布局递归神经网络的网络参数的值的示例过程300的流程图。为了方便,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的设备布局系统(例如,图1的设备布局系统100)可以执行过程300。
通常,给定具有表示在多个硬件设备上执行机器学习模型的处理(或训练)所必需的M个操作{o1,o2,…oM}的顶点的计算图G,期望训练的布局递归神经网络确定在该布局下执行机器学习模型的处理需要最小时间的布局。布局P={p1,p2,…pM}是操作oi∈G到设备pi的分配,设备pi属于D个硬件设备的集合,即pi∈{1,…,D}。让r(P)表示在布局P下完成计算图G中的M个操作的执行所花费的时间(以下称为运行时间)。该系统训练布局递归神经网络以找到P,使得执行时间r(P)最小化。
为了更新布局递归神经网络的网络参数的值(例如,从网络参数的初始值或当前值),系统重复地执行如下步骤302-306。
系统根据布局递归神经网络的网络参数的当前值,使用布局递归神经网络来处理当前的操作嵌入序列,以选择跨多个设备的操作的一个或多个布局(例如,K个布局)(步骤302)。
例如,为了选择K个布局,系统可以运行布局递归神经网络K次,以从由布局递归神经网络定义的布局的概率分布中得到K个布局。也就是说,系统向布局递归神经网络提供一批K个相同的输入示例。该批输入示例中的每个输入示例都是相同的当前的操作嵌入序列。对于该批输入示例中的每个输入示例,布局递归神经网络被配置为通过编码器递归神经网络和解码器神经网络来处理当前的操作嵌入序列,以按照上面参考图1详细描述的方式,根据由布局递归神经网络定义(即,由布局递归神经网络的softmax神经网络层定义)的布局的概率分布来生成布局。
系统对于每个选择的布局执行步骤304。具体地,系统根据布局利用跨多个设备的操作来执行机器学习模型的处理,然后确定完成处理所需的时间。也就是说,对于每个选择的布局,系统可以用根据选择的布局而布局的操作来监控机器学习模型的处理,并识别完成处理所需的时间。
系统使用强化学习技术来调整参数的当前值,该强化学习技术使用从对于完成每个选择的布局的处理所需的时间中导出的奖励(步骤306)。通常,当运行时间较短时,奖励较高,以鼓励布局神经网络生成运行时间较短的布局。
具体地,系统训练布局递归神经网络,以通过最小化定义负奖励(negative ofthe reward)的以下目标函数来最大化奖励:
其中θ表示布局递归神经网络的网络参数,表示由布局递归神经网络定义的布局的概率分布,/>是运行时间r(P)的平方根。目标函数计算给定计算图/>由系统选择的K个布局的K个运行时间的平方根的期望值(例如,通过运行布局递归神经网络K次以从布局的概率分布/>中得到K个布局)。
系统使用强化学习技术,例如REINFORCE技术,来确定目标函数的梯度。使用REINFOCE技术,目标函数的梯度可以表示如下:
其中p是由布局递归神经网络分配给布局的概率,即由布局递归神经网络为单个布局生成的分数的乘积。
为了减小梯度的方差,系统可以如下使用基线项B(K个运行时间的移动平均值)来近似梯度:
系统可以反向传播目标函数的梯度,以确定布局递归神经网络的每个网络参数的相应更新值。
在调整网络参数的当前值的同时,作为强化学习技术的一部分,系统可以可选地调整当前序列中的操作嵌入,即,通过将梯度反向传播到操作嵌入中。
图4示出了示例计算图452和图452的计算图操作在系统454的多个设备上的示例布局。计算图450包括表示操作402-416的顶点。计算图450还包括表示操作402-406之间传送的数据的边432-450。例如,计算图450可以是TensorFolow计算图,其中顶点表示操作,边表示操作之间传送的多维数据阵列(张量)。
操作402-416中的每一个可以根据特定的布局,例如由设备布局系统(例如,图1的设备布局系统100)使用布局递归神经网络(例如,图1的布局递归神经网络102)确定的布局,被分配给系统454的设备418-424中的一个。图4示出了一个示例布局,其中操作402和410被分配给设备418,操作404、406和412被分配给设备420,操作408被分配给设备422,操作414和416被分配给设备424。
设备418-424通常是异构的,并且可以包括任何适当的硬件设备,例如,任何CPU、GPU、ASIC或其他专用硬件、FPGA等的组合。例如,在一些实施方式中,系统454可以是具有一个或多个CPU和一个或多个GPU的单个机器,并且操作402-416中的每一个可以根据特定布局被分配给CPU和GPU中的一个。在一些其他实施方式中,系统454可以包括具有GPU和ASIC或FPGA的混合的多个机器,并且操作402-416中的每一个可以根据特定布局分配给机器之一的设备。
对于被配置为执行特定的操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得系统执行该操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,当由数据处理装置执行时,该指令使得该装置执行该操作或动作。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件(包括本说明书中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序,即编码在有形的非暂时性程序载体上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,传播信号被生成以编码信息,用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行存取存储设备,或者它们中的一个或多个的组合。然而,计算机存储介质不是传播信号。
术语“数据处理装置”包括用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以用任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一个或多个计算机上执行。
如在本说明书中所使用的,“引擎”或“软件引擎”指的是提供不同于输入的输出的软件实施的输入/输出系统。引擎可以是编码的功能块,诸如库、平台、软件开发工具包(“SDK”)或对象。每个引擎可以在任何适当类型的计算设备上实施,例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、PDA、智能电话或包括一个或多个处理器和计算机可读介质的其他固定式或便携式设备。另外,两个或多个引擎可以在相同的计算设备上实施,或者在不同的计算设备上实施。
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,过程和逻辑流程可以由图形处理单元(GPU)来执行,并且装置也可以被实施为图形处理单元(GPU)。
适于执行计算机程序的计算机可以包括,例如,基于通用或专用微处理器或两者,或者任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从其接收数据或者向其传送数据或者两者兼有。然而,计算机不需要这样的设备。此外,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备(例如通用串行总线(USB)闪存驱动器),仅举几个示例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说包括:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示)显示器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如鼠标或轨迹球)的计算机上实施。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户客户端设备上的网络浏览器发送网页。
本说明书中描述的主题的实施例可以在计算系统中实施,该计算系统包括后端组件(例如作为数据服务器的后端组件),或者包括中间件组件(例如应用服务器),或者包括前端组件(例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实施方式进行交互),或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信互连,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络进行交互。客户机和服务器的关系是通过在各自的计算机上运行并且彼此之间具有客户机-服务器关系的计算机程序产生的。
虽然本说明书包含许多具体的实施细节,但这些不应被解释为对任何发明或所要求保护的范围的限制,而是针对特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管如上所述特征可以被描述为以某些组合起作用,甚至最初被要求如此保护,但是在一些情况下,可以从该组合中删除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
类似地,尽管在附图中以特定次序描述了操作,但这不应理解为要求以所示的特定次序或顺序执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。在某些场景下,多任务处理和并行处理可能是有利的。此外,上述实施例中各种系统模块和组件的分离不应理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包到多个软件产品中。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的次序执行,并且仍然获得期望的结果。作为一个示例,附图中描述的过程不一定需要所示的特定的次序或顺序的次序来获得期望的结果。在某些实施方式中,多任务处理和并行处理可能是有利的。
Claims (16)
1.一种用于确定跨多个设备的机器学习模型操作的布局的计算机实施的方法,包括:
接收指定将被布局用于在多个硬件设备上进行分布式处理的机器学习模型的数据;
从指定所述机器学习模型的数据生成操作嵌入序列,其中所述序列中的每个操作嵌入表征执行所述机器学习模型的处理所必需的一个或多个相应操作;
根据布局递归神经网络的多个网络参数的第一值,使用所述布局递归神经网络来处理所述操作嵌入序列,
其中所述布局递归神经网络被配置为根据所述第一值来处理所述操作嵌入序列,以生成网络输出,所述网络输出定义由所述序列中的操作嵌入表征的操作跨多个设备的布局,
其中,所述布局递归神经网络被配置为对于所述序列中的每个操作嵌入生成分数集,所述分数集包括所述多个设备中的每个设备的相应分数,并且
其中,处理所述操作嵌入序列包括使用表征操作的操作嵌入的分数集为每个操作选择设备;以及
通过根据由所述网络输出定义的布局在多个设备上布局操作,来调度所述机器学习模型以供所述多个硬件设备处理。
2.根据权利要求1所述的方法,其中,由操作嵌入表征的操作是训练所述机器学习模型所必需的操作。
3.根据权利要求1所述的方法,其中,由操作嵌入表征的操作是使用所述机器学习模型执行推理所必需的操作。
4.根据权利要求1-3中任一项所述的方法,其中,指定所述机器学习模型的数据是表示计算图的数据,所述计算图具有表示操作的顶点和表示由所述顶点表示的操作之间传送的数据的边。
5.根据权利要求4所述的方法,其中,生成所述操作嵌入序列包括:
确定由计算图中的顶点表示的操作中的两个或多个操作将位于同一设备上;以及
作为响应,生成表征所述两个或多个操作的单个操作嵌入。
6.根据权利要求1-3中任一项所述的方法,其中,生成表征特定操作的操作嵌入包括:
生成所述特定操作的操作类型的类型嵌入;
生成表征由所述特定操作生成的输出的尺寸的输出尺寸嵌入;
生成识别向所述特定操作提供输入并接收由所述特定操作生成的输出的操作的邻接嵌入;以及
组合所述类型嵌入、所述输出尺寸嵌入和所述邻接嵌入,以生成表征所述特定操作的操作嵌入。
7.根据权利要求1所述的方法,其中,为每个操作选择设备包括:根据表征操作的操作嵌入的分数集,选择具有最高分数的设备。
8.根据权利要求7所述的方法,其中,为每个操作选择设备包括:根据由表征操作的操作嵌入的分数集定义的概率,从多个设备中采样设备。
9.根据权利要求7-8中任一项所述的方法,其中,所述递归神经网络包括:
编码器递归神经网络,被配置为处理所述操作嵌入序列,以对于每个操作嵌入生成相应的编码器隐藏状态;以及
解码器神经网络,被配置为对于每个操作嵌入:
接收解码器输入;以及
处理所述解码器输入和所述编码器隐藏状态,以生成操作嵌入的分数集。
10.根据权利要求9所述的方法,其中,所述序列中的第一操作嵌入之后的每个操作嵌入的解码器输入识别出为由所述序列中的前一操作嵌入表示的一个或多个操作而选择的设备。
11.根据权利要求1-3中任一项所述的方法,进一步包括:
通过重复执行以下步骤,从网络参数的初始值中确定网络参数的第一值:
根据布局递归神经网络的多个网络参数的当前值,使用所述布局递归神经网络来处理当前的操作嵌入序列,以选择跨多个设备的操作的一个或多个布局;
对于每个选择的布局:
根据所述布局,利用所述跨多个设备的操作来执行所述机器学习模型的处理,以及
确定完成所述处理所需的时间;
使用强化学习技术调整所述参数的当前值,所述强化学习技术使用从对于完成每个选择的布局的所述处理所需的时间中导出的奖励。
12.根据权利要求11所述的方法,其中,所述强化学习技术是REINFORCE技术。
13.根据权利要求12中所述的方法,其中,所述强化学习技术包括基线,所述基线是所需的时间的移动平均值。
14.根据权利要求12-13中任一项所述的方法,其中,作为所述强化学习技术的一部分,调整参数的当前值还包括调整当前序列中的操作嵌入。
15.一种包括一个或多个计算机和一个或多个存储指令的存储设备的系统,当所述指令被所述一个或多个计算机执行时,使得所述一个或多个计算机执行根据权利要求1-14中任一项所述的方法的操作。
16.一个或多个存储指令的计算机存储介质,当所述指令被一个或多个计算机执行时,使得所述一个或多个计算机执行根据权利要求1-14中任一项所述的方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311517807.8A CN117648971A (zh) | 2017-03-24 | 2018-03-23 | 利用强化学习的设备布局优化 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762476618P | 2017-03-24 | 2017-03-24 | |
US62/476,618 | 2017-03-24 | ||
PCT/US2018/024155 WO2018175972A1 (en) | 2017-03-24 | 2018-03-23 | Device placement optimization with reinforcement learning |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311517807.8A Division CN117648971A (zh) | 2017-03-24 | 2018-03-23 | 利用强化学习的设备布局优化 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110268422A CN110268422A (zh) | 2019-09-20 |
CN110268422B true CN110268422B (zh) | 2023-12-01 |
Family
ID=61913686
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880011282.1A Active CN110268422B (zh) | 2017-03-24 | 2018-03-23 | 利用强化学习的设备布局优化 |
CN202311517807.8A Pending CN117648971A (zh) | 2017-03-24 | 2018-03-23 | 利用强化学习的设备布局优化 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311517807.8A Pending CN117648971A (zh) | 2017-03-24 | 2018-03-23 | 利用强化学习的设备布局优化 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10692003B2 (zh) |
EP (1) | EP3559868A1 (zh) |
JP (1) | JP6790286B2 (zh) |
KR (1) | KR102208989B1 (zh) |
CN (2) | CN110268422B (zh) |
WO (1) | WO2018175972A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11354301B2 (en) | 2017-11-13 | 2022-06-07 | LendingClub Bank, National Association | Multi-system operation audit log |
US10042879B1 (en) * | 2017-11-13 | 2018-08-07 | Lendingclub Corporation | Techniques for dynamically enriching and propagating a correlation context |
CN113261003A (zh) * | 2018-12-04 | 2021-08-13 | 谷歌有限责任公司 | 使用神经网络生成集成电路平面图 |
JP7050023B2 (ja) * | 2019-03-22 | 2022-04-07 | Kddi株式会社 | ネットワーク障害復旧システム、コンピュータプログラム及びネットワーク障害復旧方法 |
KR102371927B1 (ko) * | 2019-10-17 | 2022-03-11 | (주)유밥 | 학습 콘텐츠 추천 방법 및 장치 |
KR102272501B1 (ko) | 2020-04-24 | 2021-07-01 | 연세대학교 산학협력단 | 분산 강화 학습 장치 및 방법 |
US11288097B2 (en) | 2020-06-12 | 2022-03-29 | Disney Enterprises, Inc. | Automated hardware resource optimization |
CN111753973A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | 一种神经网络芯片的优化方法、系统、设备和存储介质 |
US20200327392A1 (en) * | 2020-06-26 | 2020-10-15 | Intel Corporation | Methods, systems, articles of manufacture, and apparatus to optimize layers of a machine learning model for a target hardware platform |
US20220083824A1 (en) * | 2020-09-11 | 2022-03-17 | Actapio, Inc. | Execution control apparatus, execution control method, and a non-transitory computer-readable storage medium |
KR102257028B1 (ko) * | 2020-10-06 | 2021-05-27 | 주식회사 딥이티 | 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법 |
KR20220045800A (ko) * | 2020-10-06 | 2022-04-13 | 삼성전자주식회사 | 인공지능 모델을 분산 처리하는 시스템 및 그 동작 방법 |
JP2023020264A (ja) * | 2021-07-30 | 2023-02-09 | 株式会社Screenホールディングス | スケジュール作成方法、スケジュール作成装置、基板処理装置、基板処理システム、記録媒体、及びスケジュール作成プログラム |
KR102573644B1 (ko) * | 2021-08-24 | 2023-09-01 | 주식회사 에너자이 | 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템 |
US11509836B1 (en) | 2021-12-29 | 2022-11-22 | Insight Direct Usa, Inc. | Dynamically configured processing of a region of interest dependent upon published video data selected by a runtime configuration file |
US11704891B1 (en) | 2021-12-29 | 2023-07-18 | Insight Direct Usa, Inc. | Dynamically configured extraction, preprocessing, and publishing of a region of interest that is a subset of streaming video data |
WO2023163453A1 (ko) * | 2022-02-23 | 2023-08-31 | 주식회사 에너자이 | 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템 |
WO2023243896A1 (ko) * | 2022-06-17 | 2023-12-21 | 삼성전자 주식회사 | 인공신경망의 추론 분산 비율 결정 전자 장치 및 그 동작 방법 |
US11778167B1 (en) | 2022-07-26 | 2023-10-03 | Insight Direct Usa, Inc. | Method and system for preprocessing optimization of streaming video data |
WO2024053910A1 (ko) * | 2022-09-08 | 2024-03-14 | 삼성전자주식회사 | 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법 |
KR102603130B1 (ko) | 2022-12-27 | 2023-11-17 | 주식회사 애자일소다 | 강화학습 기반의 면적 및 매크로 배치 최적화를 위한 설계 시스템 및 방법 |
KR102645072B1 (ko) | 2023-05-31 | 2024-03-08 | 주식회사 애자일소다 | 매크로의 핀 방향 최적화를 위한 후처리 장치 및 방법 |
KR102634706B1 (ko) | 2023-05-31 | 2024-02-13 | 주식회사 애자일소다 | 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법 |
CN117058491B (zh) * | 2023-10-12 | 2024-04-02 | 深圳大学 | 基于递归神经网络的结构化网格布局生成方法及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189730B1 (en) * | 2012-09-20 | 2015-11-17 | Brain Corporation | Modulated stochasticity spiking neuron network controller apparatus and methods |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108595A (ja) * | 1991-10-17 | 1993-04-30 | Hitachi Ltd | ニユーラルネツトワークの分散学習装置 |
KR100676863B1 (ko) | 2004-08-31 | 2007-02-02 | 주식회사 코난테크놀로지 | 음악 검색 서비스 제공 시스템 및 방법 |
US7870556B2 (en) * | 2006-05-16 | 2011-01-11 | Ab Initio Technology Llc | Managing computing resources in graph-based computations |
KR20100067174A (ko) | 2008-12-11 | 2010-06-21 | 한국전자통신연구원 | 음성 인식을 이용한 메타데이터 검색기, 검색 방법, iptv 수신 장치 |
KR20120034378A (ko) | 2010-10-01 | 2012-04-12 | 엔에이치엔(주) | 사운드 인식을 통한 광고 정보 제공 시스템 및 방법 |
US9767419B2 (en) * | 2014-01-24 | 2017-09-19 | Microsoft Technology Licensing, Llc | Crowdsourcing system with community learning |
US10102480B2 (en) * | 2014-06-30 | 2018-10-16 | Amazon Technologies, Inc. | Machine learning service |
WO2016057480A1 (en) * | 2014-10-07 | 2016-04-14 | Google Inc. | Training neural networks on partitioned training data |
EP3218854B1 (en) * | 2014-11-14 | 2021-01-06 | Google LLC | Generating natural language descriptions of images |
US11080587B2 (en) * | 2015-02-06 | 2021-08-03 | Deepmind Technologies Limited | Recurrent neural networks for data item generation |
US10373054B2 (en) * | 2015-04-19 | 2019-08-06 | International Business Machines Corporation | Annealed dropout training of neural networks |
US10515307B2 (en) * | 2015-06-05 | 2019-12-24 | Google Llc | Compressed recurrent neural network models |
US9652712B2 (en) * | 2015-07-27 | 2017-05-16 | Google Inc. | Analyzing health events using recurrent neural networks |
US11151446B2 (en) * | 2015-10-28 | 2021-10-19 | Google Llc | Stream-based accelerator processing of computational graphs |
-
2018
- 2018-03-23 CN CN201880011282.1A patent/CN110268422B/zh active Active
- 2018-03-23 KR KR1020197026115A patent/KR102208989B1/ko active IP Right Grant
- 2018-03-23 EP EP18716863.8A patent/EP3559868A1/en active Pending
- 2018-03-23 WO PCT/US2018/024155 patent/WO2018175972A1/en unknown
- 2018-03-23 JP JP2019552038A patent/JP6790286B2/ja active Active
- 2018-03-23 CN CN202311517807.8A patent/CN117648971A/zh active Pending
-
2019
- 2019-06-19 US US16/445,330 patent/US10692003B2/en active Active
-
2020
- 2020-05-20 US US16/878,720 patent/US11803747B2/en active Active
-
2023
- 2023-10-03 US US18/376,362 patent/US20240062062A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189730B1 (en) * | 2012-09-20 | 2015-11-17 | Brain Corporation | Modulated stochasticity spiking neuron network controller apparatus and methods |
Non-Patent Citations (2)
Title |
---|
A Hopfield neural network based task mapping method;W. Zhu等;《Computer Communications》;19991231;全文1-12页 * |
基于SVM机器学习的仿真网格资源调度模型;徐晓明;;武汉理工大学学报(信息与管理工程版)(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
KR20190113928A (ko) | 2019-10-08 |
US11803747B2 (en) | 2023-10-31 |
CN110268422A (zh) | 2019-09-20 |
EP3559868A1 (en) | 2019-10-30 |
US20190303761A1 (en) | 2019-10-03 |
JP2020512639A (ja) | 2020-04-23 |
KR102208989B1 (ko) | 2021-01-28 |
CN117648971A (zh) | 2024-03-05 |
US10692003B2 (en) | 2020-06-23 |
JP6790286B2 (ja) | 2020-11-25 |
US20240062062A1 (en) | 2024-02-22 |
US20200279163A1 (en) | 2020-09-03 |
WO2018175972A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110268422B (zh) | 利用强化学习的设备布局优化 | |
JP6758406B2 (ja) | ワイドアンドディープマシンラーニングモデル | |
US11669744B2 (en) | Regularized neural network architecture search | |
US10997472B2 (en) | Classifying input examples using a comparison set | |
CN110476173B (zh) | 利用强化学习的分层设备放置 | |
US11593640B2 (en) | Augmented recurrent neural network with external memory | |
EP3596666A1 (en) | Multi-task multi-modal machine learning model | |
US10679006B2 (en) | Skimming text using recurrent neural networks | |
CN110663049A (zh) | 神经网络优化器搜索 | |
US10755171B1 (en) | Hiding and detecting information using neural networks | |
US11163567B2 (en) | Multivalue reductions using serial initial reductions in multiple register spaces and parallel subsequent reductions in a single register space | |
US20190147365A1 (en) | Deep vector table machine systems | |
CN118043818A (zh) | 用于处理来自多个模态的网络指标的基于自注意力的神经网络 | |
WO2024138177A1 (en) | Recurrent interface networks | |
CN115335831A (zh) | 用于训练稀疏神经网络同时保持稀疏性的系统和方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |