CN110476173B - 利用强化学习的分层设备放置 - Google Patents
利用强化学习的分层设备放置 Download PDFInfo
- Publication number
- CN110476173B CN110476173B CN201880022767.0A CN201880022767A CN110476173B CN 110476173 B CN110476173 B CN 110476173B CN 201880022767 A CN201880022767 A CN 201880022767A CN 110476173 B CN110476173 B CN 110476173B
- Authority
- CN
- China
- Prior art keywords
- operations
- neural network
- placer
- grouper
- parameters
- 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
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/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/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
-
- 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/092—Reinforcement learning
-
- 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
- G06N5/045—Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Machine Translation (AREA)
- Image Analysis (AREA)
Abstract
一种用于确定机器学习模型操作跨多个硬件设备的放置的方法,包括:接收指定机器学习操作的数据,以及确定将由数据指定的操作中的每一个分配给来自多个硬件设备的相应的设备的放置。确定该放置包括:从该数据为操作中的每一个生成相应的操作嵌入;将操作分组为多个操作组,包括使用具有多个分组器参数的分组器神经网络来处理相应的操作嵌入中的每一个,其中分组器神经网络被配置为对于操作中的每一个,按照分组器参数的第一值来处理操作的操作嵌入,以生成分组器输出,该分组器输出将操作分配给来自多个操作组的操作组;以及将操作组中的每一个分配给来自多个硬件设备的相应的设备。
Description
相关申请的交叉引用
本申请要求2017年7月21日提交的美国临时申请序列号62/535,790的优先权。在先申请的公开内容被认为是本申请公开内容的一部分,并通过引用结合于此。
技术领域
本说明书涉及使用神经网络确定计算图跨多个设备的放置。
背景技术
神经网络是机器学习模型,它采用一层或多层非线性单元来预测接收的输入的输出。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层(即,下一隐藏层或输出层)的输入。网络的每一层按照相应参数集合的当前值从接收的输入生成输出。
一些神经网络是递归神经网络。递归神经网络是接收输入序列并从输入序列生成输出序列的神经网络。具体地,递归神经网络可以在计算当前时间步的输出时使用来自前一时间步的网络的一些或全部内部状态。递归神经网络的示例是包括一个或多个长短期(Long Short Term,LSTM)记忆块的LSTM神经网络。每个LSTM记忆块可以包括一个或多个单元,每个单元包括输入门、遗忘门和输出门,其允许单元存储该单元的先前状态,例如,用于生成当前激活(current activation)或提供给LSTM神经网络的其他组件。
发明内容
本说明书描述了实施为一个或多个位置的一个或多个计算机上的计算机程序的***,该***确定机器学习模型操作跨多个硬件设备的放置。
本说明书中描述的主题可以在特定实施例中实施,以便实现以下优点中的一个或多个。通过使用包括对机器学习模型的操作进行分组的分组器神经网络和将这些组放置在设备上的放置器神经网络的两级分层模型(hierarchical model),使用设备执行机器学习模型的操作的效率被提高。
具体地,分组器神经网络的使用使能以不需要人力的端到端方式有效地确定高效利用硬件设备的机器学习操作的放置。也就是说,可以在不需要用户首先手动将操作分组为操作组作为预处理步骤的情况下确定放置。
此外,分组器和放置器神经网络使用强化学习被联合训练,以优化计算速度,即,通过最大化从执行时间导出的回报。因此,由两个神经网络确定的放置可以导致机器学习模型操作的减少的处理时间,即,在使用相同数量的硬件设备来执行操作时,允许更快地训练机器学习模型,更快地生成机器学习模型推理,或者两者。训练技术进一步允许神经网络学习当前硬件环境的属性,包括硬件中计算和通信之间的复杂权衡,允许经训练的神经网络生成更高效利用可用资源的更好表现的放置。也就是说,该***可以有效地使放置适应当前硬件环境,以考虑环境中设备的计算能力,并且最小化由设备之间的通信所引起的延迟,并且最大化操作的性能。
此外,由于操作在被放置之前被分组,两级分层模型可以有效地处理非常大的计算图,并且为具有数万个操作的机器学***凡(non-trivial)的放置。
虽然本说明书描述了放置机器学习操作,但是本说明书中描述的技术可用于跨多个硬件设备放置可由计算图描述的任何操作集群。
本说明书的主题的一个或多个实施例的细节在以下附图和描述中阐述。从说明书、附图和权利要求书中,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了确定用于机器学习模型操作的放置的示例设备放置***。
图2示出了分组器神经网络和放置器神经网络的示例架构。
图3是用于联合训练分组器神经网络和放置器神经网络的示例过程的流程图。
图4示出了示例计算图和该图的计算图操作在多个设备上的示例放置。
不同附图中相似的附图标记和名称指示相似的元素。
具体实施方式
图1示出了设备放置***100,其确定机器学习模型的操作跨多个硬件设备的放置。在一些情况下,操作可以是使用机器学习模型执行推理所必需的操作。在一些其他情况下,操作可以是训练机器学习模型所必需的操作。设备放置***100可以实施为一个或多个位置的一个或多个计算机上的计算机程序。
机器学习模型可以被配置为接收任何种类的数字数据输入,并基于输入生成任何种类的得分、分类或回归输出。
例如,如果机器学习模型的输入是已经从图像中提取的特征或图像,则机器学习模型为给定图像生成的输出可以是对象类别集合中的每一个对象类别的得分,每个得分表示图像包含属于该类别的对象的图像的估计可能性。
作为另一示例,如果机器学习模型的输入是互联网资源(例如,网页)、文档、文档的部分或从互联网资源、文档、或文档的部分提取的特征,则机器学习模型为给定互联网资源、文档或文档的部分生成的输出可以是主题集合中的每一个主题的得分,每个得分表示互联网资源、文档或文档的部分是关于该主题的估计可能性。
作为另一示例,如果机器学习模型的输入是特定广告的印象上下文的特征,则机器学习模型生成的输出可以是表示该特定广告将被点击的估计可能性的得分。
作为另一示例,如果机器学习模型的输入是针对用户的个性化推荐的特征,例如表征推荐的上下文的特征,例如表征用户采取的先前动作的特征,则机器学习模型生成的输出可以是内容项集合中的每一个内容项的得分,每个得分表示用户将对被推荐了该内容项做出积极响应的估计可能性。
作为另一示例,如果机器学习模型的输入是一种语言的文本的序列,则机器学习模型生成的输出可以是另一种语言的文本段集合中的每一个文本段的得分,每个得分表示该另一种语言的文本段是输入文本到该另一种语言的正确翻译的估计可能性。
作为另一示例,如果机器学习模型的输入是表示口语话语的序列,则机器学习模型生成的输出可以是文本段集合中的每一个文本段的得分,每个得分表示该文本段是该话语的正确转录的估计可能性。
具体地,设备放置***100接收输入数据110,输入数据110指定机器学习模型被放置用于多个硬件设备上的分布式处理。硬件设备通常是异构的,并且可以包括任何适当的硬件设备,例如,任何CPU、GPU、ASIC或其他专用硬件、FPGA等的组合。
指定机器学习模型的输入数据110可以包括指定机器学习模型的多个操作的数据,例如,指定具有表示操作的顶点和表示在操作之间通信的数据的边的计算图的数据。
例如,输入数据110包括表示计算图G的数据,该计算图G具有表示M个操作{o1,o2,…oM}的顶点。M个操作可以是训练机器学习模型的操作,或者是一旦已经训练了机器学习模型,使用机器学习模型从接收的输入生成输出的操作。给定M个操作,设备放置***100旨在确定放置={p1,p2,…,pM}。放置P是将每个操作oi∈G分配给属于D个可用硬件设备集合的设备pi,即,pi∈{1,…,D}。
参考图4详细描述了示例计算图和该图的计算图操作在多个硬件设备上的示例放置。
为了确定放置,***100联合训练(i)将机器学习模型的操作分组为多个操作组的分组器神经网络104,和(ii)生成将多个操作组中的每一个分配给来自多个硬件设备的相应硬件设备的放置器输出的放置器神经网络106。
分组器神经网络104是前馈神经网络。具体地,分组器神经网络104是具有softmax神经网络层的前馈模型,该softmax神经网络层的输出的大小等于机器学习模型的操作被分组到的操作组的数量。
放置器神经网络106是递归神经网络,其包括具有递归神经网络层(例如,长短期记忆(LSTM)神经网络层)的序列到序列模型,以及基于内容的注意机制。Sutskever等人在2014年的Neural Information Processing Systems(神经信息处理***)中的“Sequenceto sequence learning with neural networks(利用神经网络的序列到序列学习)”中描述了示例序列到序列模型。Bahdanau、Dzmitry等人在2015年的International Conferenceon Learning Representations(关于学习表征的国际会议)中的“Neural machinetranslation by jointly learning to align and translate(联合学习对齐和翻译的神经机器翻译)”中描述了示例基于内容的注意机制。
下面参考图3更详细地描述分组器神经网络104和放置器神经网络106的训练。
一旦分组器神经网络104和放置器神经网络106已经被训练,***100可以使用经训练的分组器神经网络104和经训练的放置器神经网络106来确定将由输入数据110指定的操作中的每一个分配给来自多个硬件设备的相应设备的放置。
具体地,***100首先从输入数据110为多个操作中的每一个生成相应的操作嵌入(operation embedding)。
通常,对于多个操作中的每一个,***100为操作的多个属性中的每一个生成相应的属性嵌入,并且组合属性嵌入以生成操作嵌入。属性包括操作的操作类型、操作生成的输出的大小或操作的邻接信息(例如,向操作提供输入并接收操作生成的输出的操作)中的一个或多个。
例如,***100可以为多个操作中的每一个生成三个向量,每个向量对应于属性:嵌入操作的操作类型(例如,MatMul、Conv2d或Sum)的向量、包括操作的输出的大小和输出的数量的向量、以及包括操作的邻接信息的向量。操作的输出的大小和输出的数量可以称为操作的“输出形状”。***100可以组合这三个向量来生成该操作的操作嵌入。
然后,***100通过使用分组器神经网络104处理相应的操作嵌入中的每一个,将操作分组为多个操作组。分组器神经网络104具有多个分组器参数。为了对操作进行分组,分组器神经网络104被配置为对于操作中的每一个,按照分组器神经网络104的分组器参数的训练的值来处理该操作的操作嵌入,以生成分组器输出105。给定操作的分组器输出将该操作分配给来自多个操作组的操作组。
***100通过组合操作组中的操作的操作嵌入,为操作组中的每一个生成相应的组嵌入。
例如,每个组嵌入可以是三个分量的级联(concatenation):包括操作组中每个操作类型的计数的第一向量,对组中的所有操作的输出形状的总数进行计数的第二向量,和包括组邻接信息的第三向量。例如,第三向量的大小是操作组的数量。如果有从组中的任何操作到第i组的边,则第三向量的第i值可以设置为1,否则设置为0。
***100使用放置器神经网络106处理操作组的相应的组嵌入。放置器神经网络106具有多个放置器参数。放置器神经网络106被配置为按照放置器参数的训练的值来处理相应的组嵌入,以生成放置器输出(即,最终放置112),该放置器输出将每个操作组分配到来自多个硬件设备的相应的硬件设备。
***100可以通过重复地执行下面参考图3详细描述的训练过程,从分组器参数和放置器参数的初始值确定分组器参数和放置器参数的训练的值。在一些情况下,可以通过预训练分组器神经网络104和放置器神经网络106来确定初始值。预训练可以使用不同的机器学习操作集合、不同的多个硬件设备或两者。因此,在这些情况下,在训练网络用于与当前机器学习模型和当前硬件设备集合一起使用时,***100利用从训练网络用于与其他机器学习模型、其他硬件设备集合或者两者一起使用中获得的知识。在一些其他情况下,***100可以使用参数初始化技术(例如,随机初始化)来初始化初始值。
替代地,代替在训练已经完成后生成最终放置112,***100可以使用在训练期间生成的导致最短运行时间的放置作为最终放置112。也就是说,***100可以跟踪在网络的训练期间生成的放置的运行时间,并且在训练完成之后,使用具有跟踪到的最短运行时间的放置作为最终放置112。
一旦确定了输入数据110的最终放置112,***100就可以调度机器学习模型的操作,以由多个硬件设备进行处理,即,使得根据最终放置112来执行机器学习模型的操作。具体地,对于每个操作组,***100将操作组中的操作放置在操作组被分配到的硬件设备上。在一些情况下,***100可以向管理机器学习模型的执行的另一***提供标识最终放置112的数据,使得该另一***可以根据该最终放置跨设备放置操作。
图2示出了分组器神经网络104和放置器神经网络106的示例架构。
分组器神经网络104是前馈神经网络。具体地,分组器神经网络104包括一个或多个前馈神经网络层,其后是softmax分组器神经网络层,该softmax分组器神经网络层的输出的大小等于机器学习模型的操作被分组到的操作组的数量。
分组器神经网络104被配置为对于多个操作中的每一个接收相应的操作嵌入(例如,操作201、202和203分别的操作嵌入272、273和274)。操作嵌入中的每一个包括操作的多个属性中的每一个的相应的属性嵌入,并且组合属性嵌入以生成操作嵌入。这些属性包括操作的操作类型、操作生成的输出的大小或向操作提供输入并接收操作生成的输出的操作中的一个或多个。
分组器神经网络104被配置为,对于多个操作中的每一个,按照分组器神经网络104的分组器参数的训练的值来处理该操作的操作嵌入,以生成分组器输出。分组器输出将每个操作分配给来自多个操作组的操作组。例如,操作201被分配给组2,操作202被分配给组1,操作203被分配给组N。
对于每个操作,分组器神经网络104可以使用softmax分组器神经网络层生成组得分集合。组得分集合包括多个操作组中的每个操作组的相应的组得分。每个操作组的相应的组得分表示该操作组是分配由操作嵌入表征的操作的最佳组有多大可能。分组器神经网络104然后被配置为使用针对该操作的操作嵌入的组得分集合为操作中的每一个选择组。在一些情况下,分组器神经网络104可以根据针对操作嵌入的得分集合来选择具有最高得分的组。在一些其他情况下,分组器神经网络104可以根据由针对表征操作的操作嵌入的得分集合定义的概率从多个操作组中采样组。
在操作被分组到多个操作组之后,通过组合操作组中的操作的操作嵌入,为操作组中的每一个生成相应的组嵌入。然后将组嵌入作为输入提供给放置器神经网络106。
放置器神经网络106是递归神经网络,其包括具有长短期记忆(LSTM)神经网络层的序列到序列模型和基于内容的注意机制。
放置器神经网络106被配置为按照放置器参数的训练的值来处理操作组的相应的组嵌入,以生成放置器输出(即,最终放置),该放置器输出将每个操作组分配给来自多个硬件设备的相应的硬件设备。
具体地,给定N个操作组,放置器神经网络106接收N个组嵌入x1,x2,…,xN作为输入。放置器神经网络106包括编码器递归神经网络,其一次处理一个组嵌入,并生成对应的编码器隐藏状态e1,e2,…,eN。放置器神经网络106还包括保持LSTM隐藏状态d1,d2,…,dN的解码器递归神经网络。解码器递归神经网络被配置为在每个解码时间步为相应的组嵌入输出设备。每个解码时间步对应于一个组嵌入。也就是说,设备按与输入组嵌入相同的顺序被输出,即第一操作组中的操作将被放置在由第一解码时间步输出的设备上,以此类推。每个设备都有其自己的嵌入,其可以在训练过程期间被学习或固定,然后作为解码器输入馈送到下一解码时间步。例如,由第一解码步骤输出的设备251的可训练嵌入作为解码器输入(即,解码器输入262)馈送到第二解码时间步。
更具体地,在每个解码时间步,解码器递归神经网络被配置为接收解码器输入,并处理解码器输入和适当的编码器隐藏状态集合,以生成针对组嵌入的得分集合。解码器神经网络可以使用softmax放置器神经网络层生成针对组嵌入的设备得分集合。针对组嵌入的设备得分集合包括多个硬件设备中的每个硬件设备的相应得分。每个硬件设备的相应得分表示硬件设备是分配由组嵌入表征的操作组的最佳设备有多大可能。解码器递归神经网络然后被配置为使用针对组嵌入的得分集合为操作组中的每一个选择设备。在一些情况下,解码器递归神经网络可以根据针对组嵌入的得分集合来选择具有最高得分的设备。在一些其他情况下,解码器递归神经网络可以根据由针对表征操作组的组嵌入的得分集合定义的概率从多个设备中采样设备。
解码器递归神经网络可以使用注意机制来关注(attend over)编码器隐藏状态,以(从所有操作组的编码器隐藏状态的完整集合)确定将在每个解码时间步使用的适当的编码器隐藏状态集合(例如,***确定将在第一编码时间步使用的编码器隐藏状态集合290)。Oriol Vinyals、Meire Fortunato和Navdeep Jaitly在2015年的NIPS中的“Pointernetworks(指针网络)”中描述了注意机制的示例。
图3是用于联合训练分组器神经网络和放置器神经网络(例如,用于确定分组器参数和放置器参数的训练的值)的示例过程的流程图。为了方便,过程300将被描述为由位于一个或多个位置的一个或多个计算机的***执行。例如,按照本说明书适当编程的设备放置***,例如图1的设备放置***100,可以执行过程300。
通常,给定在多个硬件设备上执行机器学习模型的处理(或训练)所必需的多个机器学习操作,期望经训练的分组器神经网络和放置器神经网络确定在该放置下执行机器学习模型的处理需要最小时间的放置。
为了确定分组器参数和放置器参数的训练的值,***通过重复地执行以下步骤302-306从分组器参数和放置器参数的初始值更新分组器参数和放置器参数的值。在一些情况下,初始值可以通过预训练分组器神经网络和放置器神经网络来确定。在一些其他情况下,***可以使用参数初始化技术(例如,随机初始化)来初始化初始值。
***按照放置器参数和分组器参数的当前值,使用分组器神经网络和放置器神经网络处理操作嵌入的当前序列,以选择操作跨多个设备的一个或多个放置(例如,Z个放置)(步骤302)。
例如,为了选择Z个放置,***可以运行分组器神经网络m次,以从由分组器神经网络定义的组分配的概率分布中抽取(draw)m个样本组分配。也就是说,***向分组器神经网络提供一批m个相同的输入示例。批中的每个输入示例都是操作嵌入的相同的当前序列。对于批中的每个输入示例,分组器神经网络被配置为处理操作嵌入的当前序列,以生成组分配,该组分配按照由分组器神经网络定义(即,由分组器神经网络的softmax分组器神经网络层定义)的概率分布以上面参考图2详细描述的方式将操作分配给组。
对于m个组分配中的每一个,***运行放置器神经网络k次,以从由放置器神经网络定义(例如,由放置器神经网络的softmax放置器神经网络层定义)的放置的概率分布中抽取k个样本放置。在对m个组分配中的每一个运行放置器神经网络k次之后,***获得Z个放置(其等于k×m个分配)。
***对所选择的Z个放置中的每一个执行步骤304。具体地,***根据该放置跨多个设备执行机器学习模型的操作,然后确定完成处理所需的时间。也就是说,对于每个所选择的放置,***可以监控机器学习模型的处理,其中操作是根据该所选择的放置来放置的,并且识别完成处理所需的时间。
***使用强化学习技术来调整分组器参数和放置器参数的当前值,该强化学习技术使用从针对每个所选择的放置完成处理所需的时间中导出的回报(reward)(步骤306)。通常,当运行时间更短时,回报更高,以鼓励放置器神经网络生成具有更短运行时间的放置。
例如,令rd表示在放置d下执行机器学习模型的操作的完整执行所花费的运行时间。针对放置d的回报Rd可以被定义为rd的函数。例如,回报可以被定义为Rd=-sqrt(rd)。
***训练分组器神经网络和放置器神经网络,以最大化目标函数,该目标函数是给定所选择的Z个放置的Rd的期望:
其中θg,θd分别表示分组器参数和放置器参数;p(g,θg)表示从分组器softmax分布~πg中抽取样本组分配g的概率;p(d;θd)是从放置器softmax分布~πd中抽取样本设备放置d的概率。
***使用强化学习技术,例如REINFORCE技术,来确定目标函数的梯度。使用REINFORCE技术,目标函数的梯度可以推导如下(关于θg和θd):
其中m是从分组器softmax分布中抽取的组分配的数量,k是针对m个组分配中的每一个从放置器softmax分布中抽取的放置的数量。
为了减少梯度的变化,***可以使用包括基线项B的强化学***均(moving average)中导出的。也就是说,***可以将基线项B添加到上面的梯度(2)和(3)中的每一个。
***可以通过反向传播来确定目标函数相对于分组器和放置器参数中的每一个的梯度,并且然后使用反向传播的梯度来确定分组器和放置器参数中的每一个的相应的更新值,例如,通过对梯度应用学习速率,然后将结果添加到分组器和放置器参数的当前值。
在调整分组器和放置器参数的当前值的同时,作为强化学习技术的一部分,***可以可选地调整当前序列中的操作嵌入,即,通过将梯度反向传播到操作嵌入中。
图4示出了示例计算图452和图452的计算图操作在***454的多个设备上的示例放置。计算图452包括表示操作402-416的顶点。计算图452还包括表示在操作402-416之间通信的数据的边432-450。例如,计算图452可以是张量流(TensorFlow)计算图,其顶点表示操作,边表示在操作之间通信的多维数据阵列(张量)。
操作402-416中的每一个可以根据特定放置(例如,由设备放置***(例如,图1的设备放置***100)使用分组器神经网络和放置器神经网络(例如,图1的分组器神经网络104和放置器神经网络106)确定的最终放置)被分配给***454的设备418-422中的一个。图4示出了示例最终放置,其中操作402和410属于被分配给设备418的第一操作组,操作404、406和412属于被分配给设备420的第二操作组,并且操作408、414和416属于被分配给设备422的第三操作组。
设备418-422通常是异构的,并且可以包括任何适当的硬件设备,例如,任何CPU、GPU、ASIC或其他专用硬件、FPGA等的组合。例如,在一些实施方式中,***454可以是具有一个或多个CPU和一个或多个GPU的单个机器,并且操作402-416中的每一个可以根据特定放置被分配给CPU和GPU中的一个。在一些其他实施方式中,***454可以包括具有GPU和ASIC或FPGA的混合的多个机器,并且操作402-416中的每一个可以根据特定位置被分配给机器中的一个的设备。
本说明书结合***和计算机程序组件使用术语“被配置”。对于被配置为执行特定操作或动作的一个或多个计算机的***,意味着该***已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得***执行这些操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,当由数据处理装置执行时,该指令使得该装置执行这些操作或动作。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件(包括本说明书中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行访问存储器设备,或者它们中的一个或多个的组合。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码信息,用于传输到合适的接收器装置以由数据处理装置执行。
术语“数据处理装置”指的是数据处理硬件,并且涵盖用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
计算机程序也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码,可以用任何形式的编程语言编写,包括编译或解释语言,或者声明性或程序性语言;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适合在计算环境中使用的其他单元。程序可以但不一定对应于文件***中的文件。程序可以存储在保持其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中,例如存储一个或多个模块、子程序或部分代码的文件。计算机程序可以被部署为在位于一个站点的或跨多个站点分布并通过数据通信网络互连的一个计算机或多个计算机上执行。
在本说明书中,术语“数据库”被广泛用于指代任何数据集群:数据不需要以任何特定的方式结构化,或者根本不需要结构化,并且它可以存储在一个或多个位置的存储设备上。因此,例如,索引数据库可以包括多个数据集群,每个数据集群可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”被广泛用于指代基于软件的***、子***或过程,其被编程为执行一个或多个特定功能。通常,引擎将被实施为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在同一个或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路,例如,FPGA或ASIC,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
适于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或结合到专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或者被可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或向其传送数据或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入另一个设备中,例如移动电话、个人数字助理(Personal Digital Assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位***(Global Positioning System,GPS)接收器或便携式存储设备,例如通用串行总线(Universal Serial Bus,USB)闪存驱动器,仅举几个示例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(Cathode Ray Tube,阴极射线管)或LCD(Liquid CrystalDisplay,液晶显示器)监视器)和用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)的计算机上实施。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户设备上的网络浏览器发送网页。此外,计算机可以通过向个人设备(例如,正在运行消息传递应用的智能手机)发送文本消息或其他形式的消息,并且反过来从用户接收响应消息来与用户交互。
用于实施机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集型部分,即推理、工作负载。
机器学习模型可以使用机器学习框架来实施和部署,例如TensorFlow框架、Microsoft Cognitive Toolkit(微软认知工具包)框架、Apache Singa框架或ApacheMXNet框架。
本说明书中描述的主题的实施例可以在计算***中实施,该计算***包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面、网络浏览器或用户可以通过其与本说明书中描述的主题的实施方式交互的app的客户端计算机,或者一个或多个这样的后端、中间件或前端组件的任意组合。***的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)相互连接。通信网络的示例包括局域网(Local Area Network,LAN)和广域网(Wide Area Network,WAN),例如互联网。
计算***可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在相应的计算机上运行的并且彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。在用户设备处生成的数据,例如用户交互的结果,可以在服务器处从设备接收。
虽然本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,并且甚至最初被如此要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中描绘了操作,并且在权利要求中以特定顺序叙述了操作,但是这不应该被理解为要求以所示的特定顺序或连续顺序执行这些操作,或者要求执行所有示出的操作,以获得期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中各种***模块和组件的分离不应理解为在所有实施例中都需要这种分离,并且应理解,所描述的程序组件和***通常可以一起集成在单个软件产品中或者打包到多个软件产品中。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中叙述的动作可以以不同的顺序执行,并且仍然获得期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来获得期望的结果。在一些情况下,多任务处理和并行处理可能是有利的。
Claims (19)
1.一种用于确定机器学习操作的放置的方法,包括:
接收指定要跨多个硬件设备分布用于处理的机器学习操作的数据;以及
确定将由所接收的数据指定的操作中的每一个分配给来自多个硬件设备的相应的设备的放置,包括:
从指定所述操作的数据,为多个操作中的每一个生成相应的操作嵌入;
将所述操作分组为多个操作组,包括使用具有多个分组器参数的分组器神经网络来处理相应的操作嵌入中的每一个,
其中所述分组器神经网络被配置为,对于操作中的每一个,按照所述分组器参数的训练值来处理所述操作的操作嵌入,以生成分组器输出,所述分组器输出将所述操作分配给来自多个操作组的操作组;以及
将所述操作组中的每一个分配给来自所述多个硬件设备的相应的设备,包括:
通过组合所述操作组中的操作的操作嵌入,为操作组中的每一个生成相应的组嵌入;以及
使用具有多个放置器参数的放置器神经网络处理所述操作组的相应的组嵌入,
其中,所述放置器神经网络被配置为按照所述放置器参数的训练值处理所述相应的组嵌入,以生成放置器输出,所述放置器输出将每个操作组分配给来自所述多个硬件设备的相应的硬件设备,
其中,所述分组器参数的所述训练值和所述放置器参数的所述训练值是通过使用强化学习联合训练所述分组器神经网络和所述放置器神经网络来确定的。
2.根据权利要求1所述的方法,进一步包括:
通过对于每个操作组,将所述操作组中的操作放置在所述操作组被分配到的硬件设备上,来调度所述操作用于由所述多个硬件设备进行处理。
3.根据权利要求1所述的方法,其中,所述操作是训练机器学习模型所必需的操作。
4.根据权利要求1所述的方法,其中,所述操作是使用机器学习模型执行推理所必需的操作。
5.根据权利要求1所述的方法,其中,指定所述操作的数据是表示计算图的数据,所述计算图具有表示操作的顶点和表示所述操作之间通信的数据的边。
6.根据权利要求1所述的方法,其中,所述分组器神经网络是前馈神经网络。
7.根据权利要求1所述的方法,其中,所述放置器神经网络是递归神经网络。
8.根据权利要求7所述的方法,其中,所述放置器神经网络是序列到序列神经网络。
9.根据权利要求1所述的方法,其中所述放置器神经网络采用用于所述多个硬件设备的可学习嵌入。
10.根据权利要求1所述的方法,其中,从指定所述操作的数据为多个操作中的每一个生成相应的操作嵌入包括:
为所述操作的多个属性中的每一个生成相应的属性嵌入;以及
组合所述属性嵌入以生成所述操作嵌入。
11.根据权利要求10所述的方法,其中,所述属性包括以下各项中的一个或多个:所述操作的操作类型、所述操作生成的输出的大小、或者向所述操作提供输入并接收所述操作生成的输出的操作。
12.根据权利要求1所述的方法,进一步包括:
通过重复地执行以下步骤,从所述分组器参数和放置器参数的初始值确定所述分组器参数和所述放置器参数的第一值:
按照所述放置器参数和所述分组器参数的当前值,使用所述分组器神经网络和所述放置器神经网络处理操作嵌入的当前序列,以选择所述操作跨多个设备的一个或多个放置;
对于每个所选择的放置:
根据所述放置跨所述多个设备执行所述操作,以及
确定完成处理所需的时间;
使用强化学习技术调整所述分组器参数和所述放置器参数的当前值,所述强化学习技术使用从针对所选择的放置中的每一个完成处理所需的时间中导出的回报。
13.根据权利要求12所述的方法,其中,所述强化学习技术是REINFORCE技术。
14.根据权利要求13所述的方法,其中,所述强化学***均导出的基线。
15.根据权利要求12-14中任一项所述的方法,其中,所述初始值已经通过预训练所述分组器神经网络和所述放置器神经网络来确定。
16.根据权利要求15所述的方法,其中,所述预训练使用不同的机器学习操作集合、不同的多个硬件设备或两者。
17.根据权利要求12-14中任一项所述的方法,还包括使用参数初始化技术初始化所述分组器参数和所述放置器参数的初始值。
18.一种用于确定机器学习操作的放置的***,包括一个或多个计算机和一个或多个存储指令的存储设备,当所述指令由所述一个或多个计算机运行时,使得所述一个或多个计算机执行权利要求1-17中任一项的相应方法的操作。
19.一个或多个存储指令的非暂时性计算机可读存储介质,当所述指令由一个或多个计算机运行时,使得所述一个或多个计算机执行权利要求1-17中任一项的相应方法的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762535790P | 2017-07-21 | 2017-07-21 | |
US62/535,790 | 2017-07-21 | ||
PCT/US2018/042377 WO2019018332A1 (en) | 2017-07-21 | 2018-07-17 | HIERARCHICAL DEVICE PLACEMENT WITH REINFORCEMENT LEARNING |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110476173A CN110476173A (zh) | 2019-11-19 |
CN110476173B true CN110476173B (zh) | 2023-08-01 |
Family
ID=63104061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880022767.0A Active CN110476173B (zh) | 2017-07-21 | 2018-07-17 | 利用强化学习的分层设备放置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10438113B2 (zh) |
EP (1) | EP3580698B1 (zh) |
CN (1) | CN110476173B (zh) |
WO (1) | WO2019018332A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190180319A1 (en) * | 2017-12-13 | 2019-06-13 | Unity IPR ApS | Methods and systems for using a gaming engine to optimize lifetime value of game players with advertising and in-app purchasing |
WO2019232466A1 (en) | 2018-06-01 | 2019-12-05 | Nami Ml Inc. | Machine learning model re-training based on distributed feedback |
JP7240916B2 (ja) * | 2019-03-22 | 2023-03-16 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
US11816509B2 (en) * | 2020-01-14 | 2023-11-14 | Vmware, Inc. | Workload placement for virtual GPU enabled systems |
DE202020101664U1 (de) * | 2020-02-07 | 2020-07-07 | Google Llc | Rechnergestützte Graphenoptimierung |
CN111309893A (zh) * | 2020-05-15 | 2020-06-19 | 支付宝(杭州)信息技术有限公司 | 基于源问题生成相似问题的方法和装置 |
US11288097B2 (en) | 2020-06-12 | 2022-03-29 | Disney Enterprises, Inc. | Automated hardware resource optimization |
KR20220064665A (ko) * | 2020-11-12 | 2022-05-19 | 삼성전자주식회사 | 인공지능 모델을 분산 처리하는 전자 장치 및 그 동작 방법 |
CN112685504B (zh) | 2021-01-06 | 2021-10-08 | 广东工业大学 | 一种面向生产过程的分布式迁移图学习方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03294983A (ja) * | 1990-04-12 | 1991-12-26 | Toshiba Corp | 文字認識装置 |
CN101873638A (zh) * | 2010-07-15 | 2010-10-27 | 吉林大学 | 基于模糊神经网络的异构无线网络接入选择方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240014612A (ko) * | 2015-10-28 | 2024-02-01 | 구글 엘엘씨 | 계산 그래프들 프로세싱 |
US10338931B2 (en) * | 2016-04-29 | 2019-07-02 | International Business Machines Corporation | Approximate synchronization for parallel deep learning |
-
2018
- 2018-07-17 CN CN201880022767.0A patent/CN110476173B/zh active Active
- 2018-07-17 WO PCT/US2018/042377 patent/WO2019018332A1/en active Search and Examination
- 2018-07-17 EP EP18749968.6A patent/EP3580698B1/en active Active
- 2018-07-19 US US16/040,186 patent/US10438113B2/en active Active
-
2019
- 2019-08-28 US US16/554,217 patent/US11455514B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03294983A (ja) * | 1990-04-12 | 1991-12-26 | Toshiba Corp | 文字認識装置 |
CN101873638A (zh) * | 2010-07-15 | 2010-10-27 | 吉林大学 | 基于模糊神经网络的异构无线网络接入选择方法 |
Non-Patent Citations (3)
Title |
---|
A HIERARCHICAL MODEL FOR DEVICE PLACEMENT;Azalia Mirhoseini et.al;《ICLR 2018》;20181231;第1-11页 * |
Device Placement Optimization with Reinforcement Learning;Azalia Mirhoseini et.al;《arXiv:1706.04972v2 [cs.LG]》;20170625;第1-8页 * |
Resource Management with Deep Reinforcement Learning;Hongzi Mao et.al;《ACM》;20161231;第50-56页 * |
Also Published As
Publication number | Publication date |
---|---|
US11455514B2 (en) | 2022-09-27 |
US20190392294A1 (en) | 2019-12-26 |
US10438113B2 (en) | 2019-10-08 |
EP3580698B1 (en) | 2024-02-14 |
EP3580698A1 (en) | 2019-12-18 |
WO2019018332A1 (en) | 2019-01-24 |
CN110476173A (zh) | 2019-11-19 |
US20190026624A1 (en) | 2019-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110476173B (zh) | 利用强化学习的分层设备放置 | |
CN110268422B (zh) | 利用强化学习的设备布局优化 | |
CN111602148B (zh) | 正则化神经网络架构搜索 | |
US11790214B2 (en) | Mixture of experts neural networks | |
CN109983480B (zh) | 使用聚类损失训练神经网络 | |
JP2020521205A (ja) | タスク固有のポリシーおよび共有ポリシーをもつマルチタスクニューラルネットワークシステム | |
US11922281B2 (en) | Training machine learning models using teacher annealing | |
US20200090043A1 (en) | Generating output data items using template data items | |
CN111652378A (zh) | 学习来选择类别特征的词汇 | |
CN113348472A (zh) | 具有软内核选择的卷积神经网络 | |
CN111133458B (zh) | 增强神经网络 | |
CN113785314A (zh) | 使用标签猜测对机器学习模型进行半监督训练 | |
US20210027064A1 (en) | Parallel video processing neural networks | |
CN111008689B (zh) | 使用softmax近似来减少神经网络推理时间 | |
WO2023192678A1 (en) | Cross-cluster communication for machine learning workloads | |
CN118043818A (zh) | 用于处理来自多个模态的网络指标的基于自注意力的神经网络 | |
CN118428455A (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 |