CN115066694A - 计算图优化 - Google Patents
计算图优化 Download PDFInfo
- Publication number
- CN115066694A CN115066694A CN202080095991.XA CN202080095991A CN115066694A CN 115066694 A CN115066694 A CN 115066694A CN 202080095991 A CN202080095991 A CN 202080095991A CN 115066694 A CN115066694 A CN 115066694A
- Authority
- CN
- China
- Prior art keywords
- embedding
- task
- neural network
- graph
- node
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2115—Selection of the most significant subset of features by evaluating different subsets according to an optimisation criterion, e.g. class separability, forward selection or backward elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/29—Graphical models, e.g. Bayesian 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
用于优化神经网络的操作的执行的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。所述方法之一包括:获得表示表征神经网络的多个操作的图的数据,其中,所述图的每个节点表征所述神经网络的操作并且所述图的每个边表征所述操作之间的数据依赖性;使用图嵌入神经网络来处理表示所述图的数据以生成所述图的嵌入;以及使用策略神经网络来处理所述图的嵌入以针对多个优化任务中的每一个生成相应的任务输出,其中,对于神经网络的多个操作中的每一个,每个任务输出包括用于对应优化任务的相应决策。
Description
技术领域
本说明书涉及使用神经网络来处理计算图。
背景技术
神经网络是采用一层或多层非线性单元以预测接收到的输入的输出的机器学习模型。一些神经网络包括除了输出层之外的一个或多个隐藏层。每个隐藏层的输出用作网络中的一个或多个其他层(即,一个或多个其他隐藏层、输出层或这两者)的输入。
发明内容
本说明书描述了一种在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统,该系统接收表征神经网络的数据作为输入,并且生成用于在一个或多个处理设备上优化神经网络的操作的执行的执行优化策略。在本说明书中,针对神经网络的每个操作,用于神经网络的“执行优化策略”是指定用于一个或多个不同执行优化任务中的每一个的相应决策的数据。
系统能够使用包括节点的计算图(为简单起见,也称为“图”)来表示神经网络,节点中的至少一些通过边连接。图的每个节点表示神经网络的操作,并且图的每个边表示神经网络的操作之间的数据依赖性。使用该图,系统能够为神经网络生成执行优化策略。然后,一个或多个处理设备能够使用每个执行优化任务的决策来执行神经网络的操作。
本说明书中描述的主题能够在特定实施例中实施以实现以下优点中的一个或多个。
本说明书中描述的技术允许通过生成用于一个或多个执行优化任务的策略来优化神经网络的操作的执行。能够训练本说明书中描述的一些策略生成系统,使得它们对于图的底层拓扑是不变的,因此能够为广泛的输入图集合生成策略。因此,该架构能够很好地推广到先前未见过的图。
本说明书中描述的一些技术允许一次生成用于多个不同执行优化任务的策略。因为图执行优化问题能够是强耦合的,所以针对多个不同执行优化任务的联合优化能够导致改善神经网络的执行的运行时间和设备利用率的解决方案。
一些现有系统依赖于手动调谐启发法以便优化特定神经网络的执行。这些手动调谐启发法能够是设备特定的,因此不能推广到其他设备。此外,需要使用专家领域知识不断地修改和微调启发法以适应由先前未见过的模型架构引起的新案例。本说明书中描述的技术对于广泛的设备和模型架构(包括在神经网络的训练期间未遇到的架构)是灵活的。
一些现有系统旨在学习用于执行单个特定神经网络的操作的执行优化策略。也就是说,针对每个单独的神经网络重新训练现有系统,并且现有系统的训练参数不可转移以生成用于其他神经网络的策略。使用本说明书中描述的技术,能够训练策略生成系统以生成用于各种不同神经网络的执行优化策略。这些技术能够应用于具有截然不同的架构的计算图。此外,这些技术能够允许针对现实大小的工作负载的图(例如,具有超过1M或10M个节点的图)生成执行优化策略。
旨在学习用于执行神经网络的操作的执行优化策略的一些现有技术在计算上是昂贵的,例如,通过神经网络的每次迭代为单个节点生成决策。本说明书中描述的系统能够以单次方式为特定神经网络生成执行优化策略,从而大大减少生成这种执行优化策略所需的时间。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是示例策略生成系统的图。
图2是示例策略神经网络的图。
图3是示例任务子网的图。
图4是用于生成执行优化策略的示例过程的流程图。
图5是用于生成多任务输出的示例过程的流程图。
各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
本说明书描述了一种生成用于在一个或多个处理设备上优化神经网络的操作的执行的执行优化策略的系统。神经网络的操作能够包括在神经网络的训练期间由一个或多个处理设备执行的神经网络的操作。替代地或附加地,神经网络的操作能够包括在神经网络已经被训练之后的推断时间期间由一个或多个处理设备执行的神经网络的操作。系统能够为一个或多个执行优化任务中的每一个生成任务输出。对于神经网络的每个操作,用于特定执行优化任务的任务输出能够包括用于特定执行优化任务的相应决策。
系统能够将神经网络的操作表示为计算图,其中,图的每个节点表示神经网络的操作,并且图的每个边表示神经网络的操作之间的数据依赖性。
例如,执行优化任务之一能够是设备放置,其中,神经网络的每个操作被分配为在多个处理设备中的特定一个上执行。设备能够包括任何适当类型的计算机硬件设备,即,能够执行计算图中表示的至少一些操作的任何设备。在一些实施方式中,设备是异构的。例如,设备能够包括中央处理单元(CPU)、图形处理单元(GPU)、张量处理单元(TPU)、其他专用集成电路(ASIC)或其他专用硬件、现场可编程门阵列(FPGA)等中的任何一个的组合。在一些其他实施方式中,设备是同构的,即,仅包括相同设备类型的设备,即,仅包括上述类型之一的设备或仅包括由上述类型的设备的相同组合组成的设备。因此,针对计算图的每个节点,针对该执行优化任务的任务输出是由该节点表示的操作被分配的特定处理设备的标识,例如识别处理设备的独热编码。
作为另一示例,执行优化任务之一能够是操作调度,其中,系统生成用于执行神经网络的操作的调度。作为特定示例,系统能够使用基于优先级的调度器,其中,当操作准备好被执行时(即,当操作的所有输入可用时),分配给特定设备的每个操作被置于优先级队列中。在此,用于该执行优化任务的任务输出能够是神经网络的每个操作的优先级值的标识,例如识别优先级值的独热编码。然后,当从优先级队列推送和弹出操作时,能够由被分配执行操作的处理设备使用用于神经网络的每个操作的相应优先级值。
作为另一示例,执行优化任务之一能够是操作融合,其中,神经网络的多个操作被合并,使得被分配执行多个操作的处理设备将多个操作视为单个操作。例如,当第一操作的输出是第二操作的输入时,操作融合能够是有用的。在这种情况下,如果处理设备将两个操作视为单个操作,则设备不需要将第一操作的输出写入存储器,并且稍后当设备正在执行第二操作时从存储器读回输出。因此,用于该执行优化任务的任务输出能够是要由所分配的处理设备视为单个操作的计算图的两个或多个节点的标识。
这些执行优化任务能够各自强耦合,即,针对一个执行优化任务做出的决策能够影响针对另一个执行优化任务的最优决策。作为特定示例,如果系统在执行设备放置时考虑在操作融合期间做出的决策,则系统能够将作为融合的良好候选的两个操作分配给同一设备。作为另一特定示例,如果系统在执行设备放置时考虑在操作调度期间做出的决策,则系统能够跨所有设备均匀地分散高优先级操作,并且跨所有设备均匀地分散低优先级操作,从而导致高设备利用率。也就是说,当联合地考虑多个不同执行优化任务时,系统能够利用跨多个任务的知识共享为多个任务中的每一个任务生成最优任务输出。
图1是示例策略生成系统100的图。策略生成系统100是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中,能够实现下面描述的系统、组件和技术。
策略生成系统100能够接收表征神经网络的操作的操作数据102,并且处理操作数据102以生成执行优化策略132,执行优化策略132包括针对神经网络的每个操作,用于一个或多个执行优化任务中的每一个的相应决策。
策略生成系统100能够包括图表示子系统110、图嵌入神经网络120和策略神经网络130。
图表示子系统110能够将操作数据102接收为输入。例如,对于神经网络的每个操作,操作数据102能够包括表征以下各项的数据:i)操作的类型,ii)其输出是操作的输入的神经网络的其他计算的列表,iii)将操作的输出作为输入的神经网络的其他操作的列表,以及iv)操作的输出的形状。操作的输出的形状能够是操作的输出张量的维度,例如,指定输出张量具有10×20×5个元素的维度的数据。
图表示子系统110能够处理操作数据102以生成图数据112,图数据112表示表征神经网络的操作的图。该图包括多个节点,其中至少一些节点通过边连接。图的每个节点能够表征神经网络的不同操作,并且图的每个边能够表征相应操作之间的数据依赖性。也就是说,如果神经网络的第一操作的输出是神经网络的第二操作的输入,则在表示第一操作的图的第一节点与表示第二操作的图的第二节点之间能够存在边。在一些实施方式中,图是有向图;也就是说,图的每个边具有与其相关联的方向,使得边的一个入射节点是源,而边的另一个入射节点是宿(sink)。在一些其他实施方式中,图是无向图,其中,每个边不具有与其相关联的方向。
能够通过初始节点嵌入在图数据112中表示图的每个节点。在一些实施方式中,用于图的每个节点的初始节点嵌入是对应操作的特征的机器学习的嵌入,即,通过使用机器学习模型处理节点的特征来生成。
在一些其他实施方式中,用于图的每个节点的初始节点嵌入是对应操作的特征的组合,如操作数据102中所描述的。例如,每个初始节点嵌入能够是以下各项的级联:i)对应操作的类型的嵌入,ii)图中的每个相邻节点的标识,以及iii)对应操作的输出的形状的嵌入。对应操作的类型的嵌入能够是操作的类型的独热编码;也就是说,嵌入能够具有与可能的操作类型的数量相同数量的元素,其中,对应于对应操作的类型的元素是“1”,而所有其他元素为“0”。对应操作的输出的形状的嵌入能够具有用于输出的每个维度的相应元素,例如,分别对应于输出的长度、高度和深度的三个元素。输出的形状的嵌入的每个元素中的值能够是输出在对应维度中的大小,例如,嵌入(10,5,3)可以指示输出在长度上是10个元素,在高度上是5个元素,并且在深度上是3个元素。在一些实施方式中,特定节点的每个相邻节点的标识能够是包括与图中的每个节点相对应的元素的嵌入,其中,如果对应节点是特定节点的相邻节点,则每个元素为“1”,如果对应节点不是特定节点的相邻节点,则每个元素为“0”。在一些其他实施方式中,特定节点的每个相邻节点的标识能够是整数列表,其中,每个整数对应于图中的特定相邻节点。在一些这样的实施方式中,图表示子系统110对每个节点的相邻节点的数量实施固定的上限,以确保每个初始节点嵌入是固定长度的。
在本说明书中,嵌入是表示特定嵌入空间中的输入的数值的有序集合。例如,嵌入能够是具有固定维度的浮点或其他数值的向量。
图数据还能够包括用于图的节点的邻接矩阵。用于n个节点的图的邻接矩阵是n×n矩阵,其中,如果节点i和节点j之间存在边,则第(i,j)个元素为1,否则为0。
图嵌入神经网络120能够将图数据112作为输入。在一些实施方式中,策略生成系统100能够接收图数据112而不是操作数据102作为输入;也就是说,在一些实施方式中,策略生成系统100不包括图表示子系统110。
图嵌入神经网络120能够处理图数据112以生成图的嵌入122。图嵌入122可以具有n个元素,其中,每个元素是用于图的节点的更新的节点嵌入。例如,图嵌入122能够是具有n行的矩阵,其中,每行是图的对应节点的更新的节点嵌入。
在一些这样的实施方式中,图嵌入神经网络120能够跨多个嵌入时间步为图的每个节点来生成更新的嵌入。也就是说,在每个嵌入时间步处,针对图的每个节点,图嵌入神经网络120通过处理在先前嵌入时间步中生成的图的节点的嵌入来生成该节点的新嵌入。在第一嵌入时间步中,图嵌入神经网络120能够通过处理图数据112中的初始节点嵌入来生成新的节点嵌入。
在给定的嵌入时间步处,图嵌入神经网络120能够首先针对图的每个节点来生成表征节点的邻居的节点的邻域嵌入。如果两个节点通过边连接,则第一节点是第二节点的邻居。在一些实施方式中,图嵌入神经网络120能够计算在先前嵌入时间步中生成的相邻节点的嵌入的平均值。在一些其他实施方式中,图嵌入神经网络120能够使用组合神经网络来处理在先前嵌入时间步中生成的相邻节点的嵌入。作为特定示例,图嵌入神经网络120能够针对每个节点v计算邻域嵌入hN(v):
然后,针对图的每个节点,图嵌入神经网络120能够组合i)节点的邻域嵌入和ii)在先前时间步处生成的节点的嵌入,以生成用于嵌入时间步的节点的新嵌入。在一些实施方式中,对于图的每个节点,图嵌入神经网络120能够级联两个嵌入以生成节点的组合嵌入。然后,针对图的每个节点,图嵌入神经网络120能够通过处理节点的组合嵌入(例如,通过处理具有一个或多个全连接神经网络层的节点的组合嵌入)来生成节点的新嵌入。
图嵌入神经网络120能够将图嵌入122提供给策略神经网络130。策略神经网络130能够处理图嵌入130以生成执行优化策略132。执行优化策略132能够包括用于一个或多个执行优化任务中的每一个的相应任务输出。针对神经网络的每个操作,用于特定执行优化任务的任务输出包括用于特定执行优化任务的决策。
在一些实施方式中,能够端到端联合地训练图嵌入神经网络120和策略神经网络130以优化特定目标函数。也就是说,训练系统能够通过每个神经网络反向传播误差,从而并行地确定对每个神经网络的参数的更新。在一些其他实施方式中,神经网络中的一个能够在训练另一个神经网络的同时被“冻结”。也就是说,系统在反向传播期间不确定对“冻结”神经网络的参数的更新。
在一些实施方式中,训练系统能够使用目标函数来训练策略生成系统100,该目标函数在根据生成的执行优化策略132执行操作时测量神经网络的操作的执行性能。作为特定示例,训练系统能够训练策略生成系统100以最小化峰值存储器使用的度量或平均存储器使用的度量。
作为另一特定示例,训练系统能够使用表征一组N个候选计算图的操作的预期运行时间的目标函数来训练策略生成系统100。每个候选计算图表示可以使用策略生成系统100来优化其操作的神经网络。例如,N个候选计算图能够包括在策略生成系统100的训练期间使用的计算图的训练集合。因此,通过训练策略生成系统100以最小化目标函数,训练系统能够训练策略生成系统100以减少N个候选图的操作的预期运行时间。在一些这样的实施方式中,系统使用以下目标函数J(θ):
其中,G是候选图,是候选图的空间,T表示对于一个或多个执行优化任务,由策略生成系统100生成的任务输出,πθ(G)表示使用策略生成系统100的参数的当前参数值θ生成的候选图G的策略,以及rG,T是奖励,该奖励是使用任务输出T由候选图G表征的操作的运行时间的函数。训练系统能够在生成用于一个或多个执行优化任务的任务输出T之后使用目标函数J(θ)来更新策略神经网络130的参数值,然后将更新反向传播到图嵌入神经网络120。
在一些实施方式中,训练系统能够使用邻近策略优化来优化目标函数。
在一些实施方式中,训练系统能够在真实系统上评估生成的执行优化策略,例如,通过在一个或多个真实处理设备上执行神经网络的操作并且测量运行时间。替代地或附加地,训练系统能够使用估计神经网络的操作的运行时间的模型来处理由策略生成系统100生成的任务输出。
图2是示例策略神经网络200的图。策略神经网络200是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中,能够实现以下描述的系统、组件和技术。
策略神经网络200接收用于表示神经网络的操作的图的节点的节点嵌入202作为输入,并且为一个或多个执行优化任务中的每一个生成相应的任务输出222a-c。节点嵌入202可能已经由图嵌入神经网络(例如,图1中描绘的图嵌入神经网络120)生成。
策略神经网络200能够包括用于一个或多个执行优化任务中的每一个的策略嵌入子网210和相应的任务子网220a-c。策略嵌入子网210能够接收节点嵌入202并且使用一个或多个注意力神经网络层(例如,使用多头注意力处理输入的神经网络层)来处理节点嵌入202。
在一些实施方式中,注意力神经网络层是双向的。也就是说,对于节点嵌入202中的每个节点嵌入,每个注意力神经网络层通过处理由先前注意力神经网络层生成的与节点嵌入202中的每个节点嵌入相对应的输出来生成与节点嵌入相对应的输出。
在一些其他实施方式中,注意力神经网络层是单向的或“掩蔽的”。也就是说,对于节点嵌入202中的每个特定节点嵌入并且给定节点嵌入202的次序,每个注意力神经网络层通过处理由先前注意力神经网络层生成的与特定节点嵌入和节点嵌入202的排序中的先前节点嵌入相对应的输出来生成与节点嵌入相对应的输出。在图是无向图的一些实施方式中,能够根据图的节点的拓扑排序来对节点嵌入202排列次序。具有有向边并且没有循环的图的拓扑排序是图的节点的线性次序,使得对于第一节点与第二节点之间的每个有向边,第一节点在次序中比第二节点更早。在一些其他实施方式中,节点嵌入202能够随机排列次序。
在一些这样的实施方式中,注意力神经网络层使用分段级递归机制。也就是说,节点嵌入202被分割成多个片段,其中,每个节点嵌入被分配给特定片段序列中的特定片段。对于每个片段和每个注意力神经网络层,能够缓存与片段中的每个节点嵌入相对应的注意力神经网络层的输出,并且当下一个注意力神经网络层正在生成与片段序列中的下一个片段中的节点嵌入相对应的输出时,这些缓存的输出能够用作下一个注意力神经网络层的输入。也就是说,对于每个特定节点嵌入,注意力神经网络层的输入能够包括i)由先前注意力神经网络层生成的与节点嵌入相对应的输出,ii)由先前注意力神经网络层生成的与相同片段中的先前节点嵌入相对应的输出,以及iii)由先前注意力神经网络层生成的与片段序列中的先前片段中的相应节点嵌入相对应的一个或多个缓存的输出。
在策略神经网络200生成用于单个执行优化任务的任务输出的实施方式中,策略嵌入子网210的输出能够是执行优化任务的任务输出。也就是说,策略神经网络200仅包括策略嵌入子网210。例如,策略嵌入子网210能够包括上述注意力神经网络层和输出神经网络层,该输出神经网络层处理与图中的特定节点的节点嵌入相对应的最后一个注意力神经网络层的输出,并且生成针对由特定节点表示的操作的执行优化任务的决策。
在策略神经网络200为多个执行优化任务中的每一个生成任务输出的实施方式中,策略嵌入子网210的输出能够是第一任务嵌入212a。然后,策略神经网络200能够依次生成用于多个执行优化任务的每个任务输出。当为相应的执行优化任务生成任务输出时,策略神经网络200能够将关于任务输出的信息用于已经生成的其他执行优化任务。
特别地,第一任务子网220a能够处理第一任务嵌入212a以生成与多个执行优化任务中的第一执行优化任务相对应的第一任务输出222a。第一任务子网220a还能够生成包括关于第一任务输出222a和第一任务嵌入212a的信息的第二任务嵌入212b。
第二任务子网220b能够处理第二任务嵌入212b以生成与多个执行优化任务中的第二执行优化任务相对应的第二任务输出222b。第二任务子网220b还能够生成包括关于第二任务输出222b和第二任务嵌入212b的信息的第三任务嵌入212c。
该序列能够继续直到与第m个和最后一个执行优化任务相对应的最后任务子网220m为止,最后任务子网220m能够处理由先前任务子网生成的任务嵌入以生成第m个任务输出222m。最后任务子网220m不生成任务嵌入,因为没有进一步的任务。因此,第i个任务子网使用来自所有先前任务输出的信息,通过处理第i个任务嵌入来生成第i个任务输出,第i个任务嵌入是由第(i-1)个任务输出和第(i-1)个任务嵌入生成的,第(i-1)个任务嵌入本身是由第(i-2)个任务输出和第(i-2)个任务嵌入生成的,依此类推。
在一些实施方式中,能够基于由节点嵌入202表示的计算图的特征来调节策略神经网络200。例如,策略神经网络200能够具有一个或多个调节神经网络层,其组合i)先前神经网络层的输出和ii)节点嵌入202。作为特定示例,策略神经网络200能够使用以下架构来计算密集神经网络层l的输出x(l+1):
x(l+1)=h(l)(c(x(0))⊙x(l)),
其中,x(l)是密集神经网络层l的输入,g(l)表征密集神经网络层l的操作,c是调节策略神经网络的神经网络层的特征,并且x(0)是节点嵌入202。
根据对应计算图的特征来调节策略神经网络200的一个或多个层能够允许策略神经网络200针对具有非常不同架构的神经网络来生成执行优化策略。例如,能够训练策略神经网络200以从广泛的应用领域(例如,计算机视觉、自然语言处理和机器人技术)来接收神经网络的图。这些神经网络能够具有截然不同的架构,能够具有不同类型的计算操作、数据形状和网络拓扑,并且能够具有范围在例如1K与10M之间的截然不同数量的操作。调节神经网络层允许策略神经网络200利用关于特定神经网络的信息,以便生成用于神经网络的执行优化策略。
图3是示例任务子网300的图。任务子网300是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中,能够实现以下描述的系统、组件和技术。
任务子网300接收与特定执行优化任务相对应的任务嵌入302,并且生成用于特定执行优化任务的任务输出322。任务子网300还能够生成与不同执行优化任务相对应并且能够被提供给与不同执行优化任务相对应的不同任务子网的下一任务嵌入332。任务子网300能够是例如图2中描绘的任务子网220a-c中的任何一个。
任务子网300包括任务注意力子网310和任务策略子网320。任务注意力子网310能够处理任务嵌入302以生成注意力嵌入312。任务注意力子网能够包括一个或多个注意力神经网络层,例如,具有分段级递归机制的注意力神经网络层。任务策略子网320能够处理注意力嵌入312以生成任务输出322。任务策略子网能够包括一个或多个全连接神经网络层。
任务子网300还能够包括组合任务输出322和任务嵌入302以生成下一任务嵌入332的组合子网。在一些实施方式中,组合子网330能够计算任务输出322和任务嵌入302的总和。在一些这样的实施方式中,组合子网还能够使用层归一化来处理总和以生成下一任务嵌入332。在一些其他实施方式中,组合子网330能够通过使用一个或多个神经网络层处理任务嵌入302和任务输出322来组合任务嵌入302和任务输出322。
在一些这样的实施方式中,与策略神经网络(例如,图2中描绘的策略神经网络200)中的相应不同执行优化任务相对应的每个任务注意力子网310能够共享参数。参数共享能够允许策略神经网络考虑多个执行优化任务之间的依赖性。作为特定示例,每个任务注意力子网能够包括相同递归注意力神经网络层中的一个或多个。作为另一特定示例,每个任务注意力子网能够是相同的子网,即具有相同的网络架构和参数值。在一些实施方式中,对应于策略神经网络中的特定执行优化任务的每个任务注意力子网310能够包括与对应于其他执行优化任务的其他任务注意力子网的残差连接。残差连接能够允许策略神经网络进一步捕获任务间依赖性。
图4是用于生成执行优化策略的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的策略生成系统(例如,图1中描绘的策略生成系统100)能够执行过程400。
系统获得表示表征第一神经网络的操作的图的数据(步骤402)。数据能够由图表示子系统(例如,图1中描绘的图表示子系统110)生成。数据能够包括用于图中的每个节点的相应初始节点嵌入,其中,图中的每个节点表示第一神经网络的不同操作。
系统使用图嵌入神经网络来处理表示图的数据以生成图的嵌入(步骤404)。图的嵌入能够包括在多个嵌入时间步上生成的用于图中的每个节点的相应的更新的节点嵌入。
系统使用策略神经网络处理图的嵌入以生成用于第一神经网络的执行优化策略(步骤406)。执行优化策略能够包括一个或多个任务输出,其中,每个任务输出对应于特定执行优化任务,并且包括对于第一神经网络的每个操作,用于特定执行优化任务的相应决策。策略神经网络能够通过使用具有分段级递归机制的多个注意力神经网络层处理图的嵌入来生成一个或多个任务输出。在策略神经网络生成多个任务输出的实施方式中,策略神经网络能够使用任务子网的序列按顺序生成每个任务输出。
系统将所生成的执行优化策略提供给一个或多个处理设备(步骤408)。处理设备能够使用所生成的执行优化策略来执行第一神经网络的操作。
图5是用于生成多个任务输出的示例过程500的流程图。每个任务输出对应于多个执行优化任务中的不同执行优化任务。为方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的策略神经网络(例如,图2中描绘的策略神经网络200)能够执行过程500。
系统接收表示第一神经网络的操作的图的嵌入(步骤501)。图的嵌入可能已经由图嵌入神经网络(例如,图1中描绘的图嵌入神经网络120)生成。
在第一时间步处,系统处理图的嵌入以生成第一任务嵌入(步骤502)。第一时间步和第一任务嵌入能够对应于多个执行优化任务中的第一执行优化任务。例如,系统能够使用策略嵌入子网(例如,图2中描绘的策略嵌入子网210)来处理图的嵌入。
在第一时间步处,系统处理第一任务嵌入以生成第一任务输出(步骤504)。第一任务输出包括针对第一执行优化任务的第一神经网络的每个操作的相应决策。例如,系统能够使用与第一执行优化任务相对应的任务子网(例如,图2中描绘的策略神经网络200的第一任务子网220a)来处理第一任务嵌入。
在后续时间步处,系统处理第一时间步的第一任务输出以生成后续任务嵌入(步骤506)。后续时间步和后续任务嵌入能够对应于与第一执行优化任务不同的后续执行优化任务。例如,系统能够使用组合子网(例如,图3中描绘的组合子网330)将第一任务输出与第一任务嵌入组合以生成后续任务嵌入。
在后续时间步处,系统处理后续任务嵌入以生成后续任务输出(步骤508)。后续任务输出包括针对后续执行优化任务的第一神经网络的每个操作的相应决策。
系统确定是否已经生成了所有任务输出(步骤510)。也就是说,系统确定是否已经为多个执行优化任务中的每一个生成了任务输出,并且因此确定是否完全生成了用于第一神经网络的执行优化策略。
如果在步骤510处没有生成所有任务输出,则系统返回到步骤506。也就是说,在与尚未生成任务输出的不同执行优化任务相对应的另一后续时间步处,系统处理先前时间步的任务输出以生成用于不同执行优化任务的后续任务嵌入,然后处理后续任务输出以生成用于不同执行优化任务的后续任务输出。
如果在步骤510处已经生成了所有任务输出,则系统将所生成的任务输出提供给一个或多个处理设备以用于执行第一神经网络的操作(步骤512)。
本说明书结合系统和计算机程序组件使用术语“配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使系统执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
本说明书中描述的主题和功能操作的实施例能够在数字电子电路系统中、在有形地体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施例能够实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。可替代地或附加地,程序指令能够被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,其被生成以对信息进行编码以传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”是指数据处理硬件并且包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还能够是或进一步包括专用逻辑电路系统,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还能够可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序,其也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码,能够用任何形式的编程语言(包括编译或解释语言,或者声明或过程语言)编写;并且它能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序能够存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序能够被部署为在一个计算机上或在位于一个站点处或跨多个站点分布并且通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广泛地用于指代任何数据的集合:数据不需要以任何特定方式结构化,或者根本不需要结构化,并且它能够被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库能够包括多个数据集合,每个数据集合可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,能够在相同的一个或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也能够由专用逻辑电路(例如,FPGA或ASIC)或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机能够基于通用或专用微处理器或这两者,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传输数据或这两者。然而,计算机不需要具有这样的设备。此外,计算机能够嵌入在另一设备(例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器,仅举几例)中。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例能够在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现。也能够使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收到的请求而向用户设备上的网络浏览器发送网页。此外,计算机能够通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且作为回报从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还能够包括例如专用硬件加速器单元,其用于处理机器学习训练或生产的公共和计算密集型部分,即推断、工作负载。
能够使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例能够在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户能够通过其与本说明书中描述的主题的实施方式交互的图形用户界面、Web浏览器或app的客户端计算机),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从其接收用户输入的目的。能够在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
除了上述实施例之外,以下实施例也是创新的:
实施例1是一种生成用于在一个或多个处理设备上执行神经网络的多个操作的任务输出的方法,其中:所述任务输出包括针对神经网络的多个操作的每一个,用于特定优化任务的相应决策,所述方法包括:
获得表示表征神经网络的多个操作的图的数据,其中,图的每个节点表征神经网络的操作并且图的每个边表征操作之间的数据依赖性;
使用图嵌入神经网络来处理表示图的数据以生成图的嵌入;以及
使用策略神经网络处理图的嵌入以生成任务输出。
实施例2是根据实施例1所述的方法,其中,图的嵌入包括图的每个节点的相应节点嵌入。
实施例3是根据实施例2所述的方法,其中,使用图嵌入神经网络处理表示图的数据包括在多个嵌入时间步中的每个嵌入时间步处:
接收在先前嵌入时间步期间生成的图的每个节点的当前嵌入;
针对图的每个特定节点,组合特定节点的每个相邻节点的相应当前嵌入以生成特定节点的邻域嵌入;以及
针对图的每个节点,组合节点的当前嵌入和节点的邻域嵌入以生成节点的新嵌入。
实施例4是根据实施例3所述的方法,其中,使用图嵌入神经网络处理表示图的数据进一步包括在第一嵌入时间步处:
使用节点的特征对图的每个节点生成初始嵌入,其中,特征包括以下中的一个或多个:
由节点表征的操作的操作类型,
由节点表征的操作的输出的输出形状,或者
用于节点的每个相邻节点的相应标识。
实施例5是根据实施例3或4中的任一实施例所述的方法,其中,组合特定节点的当前嵌入和所述特定节点的邻域嵌入包括:
级联特定节点的当前嵌入和特定节点的邻域嵌入以生成特定节点的组合嵌入;以及
使用一个或多个全连接神经网络层来处理特定节点的组合嵌入以生成特定节点的新嵌入。
实施例6是根据实施例3至5中的任一实施例所述的方法,其中,组合特定节点的每个相邻节点的相应嵌入包括:
针对特定节点的每个相邻节点,使用仿射变换来处理相邻节点的当前嵌入以生成针对相邻节点的处理后的嵌入;
针对特定节点的每个相邻节点,使用sigmoid激活函数来处理相邻节点的处理后的嵌入以生成针对相邻节点的激活嵌入;以及
通过使用最大池化层处理激活嵌入来组合所述特定节点的每个相邻节点的相应激活嵌入。
实施例7是根据实施例1至6中的任一项所述的方法,其中,特定优化任务是以下中的一个或多个:
设备放置任务,其中,神经网络的多个操作中的每一个被分配一个或多个处理设备中的特定处理设备;
操作调度任务,其中,神经网络的多个操作中的每一个被分配优先级,并且其中,每个处理设备包括基于优先级的调度器,所述基于优先级的调度器维护被分配给处理设备的操作的优先级队列;或者
操作融合任务,其中,神经网络的多个所选操作被确定为使所选操作像单个操作一样被执行。
实施例8是根据实施例1至7中的任一项所述的方法,其中,已经通过使用目标函数更新神经网络的参数θ来端到端训练图嵌入神经网络和策略神经网络,所述目标函数表征由多个候选图中的每个候选图表征的相应操作的预期运行时间。
实施例9是根据实施例8所述的方法,其中,所述目标函数是:
实施例10是根据实施例8至9中的任一项所述的方法,其中,已经通过使用邻近策略优化优化目标函数来训练图嵌入神经网络和策略神经网络。
实施例11是根据实施例1至10中的任一项所述的方法,其中,根据图的特征来调节所述策略神经网络。
实施例12是根据实施例11所述的方法,其中,根据图的特征来调节策略神经网络包括计算策略神经网络的神经网络层l的输出x(l+1):
x(l+1)=g(l)(c(x(0))⊙x(l)),
其中,x(l)是神经网络层l的输入,g(l)表征所述神经网络层l的操作,c是调节策略神经网络的神经网络层的特征,并且x(0)是由图嵌入神经网络生成的图的嵌入。
实施例13是根据实施例1至12中的任一项所述的方法,其中,所述方法进一步包括使用所生成的任务输出在一个或多个处理设备上执行神经网络的多个操作。
实施例14是根据实施例1至13中的任一项所述的方法,其中,策略神经网络包括多个注意力神经网络层。
实施例15是根据实施例14所述的方法,其中,多个注意力神经网络层包括分段级递归机制。
实施例16是根据实施例1至15中的任一项所述的方法,其中,所述方法进一步包括为多个优化任务中的每一个生成相应的任务输出,其中,每个任务输出包括对于神经网络的多个操作中的每一个,用于对应优化任务的相应决策,以及其中,使用策略神经网络来处理图的嵌入包括:
在对应于多个优化任务中的第一优化任务的第一时间步处:
从图的嵌入生成第一任务嵌入;以及
使用策略神经网络来处理第一任务嵌入以生成用于第一优化任务的第一任务输出;以及
在各自对应于多个优化任务中的相应优化任务的一个或多个后续时间步中的每一个时间步处:
处理先前时间步的任务输出以生成后续任务嵌入;以及
使用策略神经网络处理所述后续任务嵌入以生成针对对应优化任务的后续任务输出。
实施例17是根据实施例16所述的方法,其中,处理先前时间步的任务输出包括组合先前时间步的任务嵌入和先前时间步的任务输出以生成后续任务嵌入。
实施例18是根据实施例17所述的方法,其中,组合先前时间步的任务嵌入和先前时间步的任务输出以生成后续任务嵌入包括:
计算先前时间步的任务嵌入和任务输出的总和以生成总和表示;以及
使用层归一化来处理总和表示以生成后续任务嵌入。
实施例19是根据实施例16至18中的任一项所述的方法,其中:
策略神经网络包括策略嵌入子网,所述策略嵌入子网包括多个注意力神经网络层;以及
从图的嵌入生成第一任务嵌入包括使用策略嵌入子网来处理图的嵌入。
实施例20是根据实施例16至19中的任一项所述的方法,其中,所述策略神经网络包括:
用于多个优化任务中的每一个的相应任务注意力子网,其中,每个任务注意力子网包括一个或多个注意力神经网络层;以及
用于多个优化任务中的每一个的相应任务策略子网,
其中,使用策略神经网络来处理用于特定优化任务的任务嵌入包括:
使用与特定优化任务相对应的任务注意力子网来处理任务嵌入以生成注意力嵌入;以及
使用与特定优化任务相对应的任务策略子网来处理注意力嵌入以生成用于特定优化任务的任务输出。
实施例21是根据实施例20所述的方法,其中,多个优化任务中的每一个的任务注意力子网共享多个参数。
实施例22是根据实施例20至21中的任一项所述的方法,其中,对应于每个优化任务的相应任务注意力子网与对应于其他优化任务的一个或多个其他任务注意力子网中的每一个共享一个或多个残差连接。
实施例23是一种生成用于在一个或多个处理设备上执行神经网络的多个操作的优化策略的方法,其中:
优化策略包括用于多个优化任务中的每一个的任务输出,以及
对于神经网络的多个操作中的每一个,每个任务输出包括用于所述对应优化任务的相应决策,
所述方法包括:
获得表示表征神经网络的多个操作的图的数据,其中,图的每个节点表征神经网络的操作并且图的每个边表征操作之间的数据依赖性;
使用图嵌入神经网络来处理表示图的数据以生成图的嵌入;以及
使用策略神经网络处理图的嵌入以生成针对多个优化任务中的每一个的相应任务输出,所述处理包括:
在对应于多个优化任务中的第一优化任务的第一时间步处:
从图的嵌入生成第一任务嵌入;以及
使用策略神经网络来处理第一任务嵌入以生成用于第一优化任务的第一任务输出;以及
在各自对应于多个优化任务中的相应优化任务的一个或多个后续时间步中的每一个时间步处:
处理先前时间步的任务输出以生成后续任务嵌入;以及
使用策略神经网络来处理所述后续任务嵌入以生成针对对应优化任务的后续任务输出。
实施例24是根据实施例23所述的方法,其中,处理先前时间步的任务输出包括组合先前时间步的任务嵌入和先前时间步的任务输出以生成后续任务嵌入。
实施例25是根据实施例24所述的方法,其中,组合先前时间步的任务嵌入和先前时间步的任务输出以生成后续任务嵌入包括:
计算先前时间步的任务嵌入和任务输出的总和以生成总和表示;以及
使用层归一化来处理总和表示以生成后续任务嵌入。
实施例26是根据实施例23至25中的任一实施例所述的方法,其中,图的嵌入包括图的每个节点的相应节点嵌入。
实施例27是根据实施例26所述的方法,其中,使用图嵌入神经网络来处理表示图的数据包括在多个嵌入时间步中的每个嵌入时间步处:
接收在先前嵌入时间步期间生成的图的每个节点的当前嵌入;
针对图的每个特定节点,组合特定节点的每个相邻节点的相应当前嵌入以生成特定节点的邻域嵌入;以及
针对图的每个节点,组合节点的当前嵌入和节点的邻域嵌入以生成节点的新嵌入。
实施例28是根据实施例27所述的方法,其中,使用图嵌入神经网络处理表示图的数据进一步包括在第一嵌入时间步处:
使用节点的特征对图的每个节点生成初始嵌入,其中,特征包括以下中的一个或多个:
由节点表征的操作的操作类型,
由节点表征的操作的输出的输出形状,或者
用于节点的每个相邻节点的相应标识。
实施例29是根据实施例27至28中的任一实施例所述的方法,其中,组合特定节点的当前嵌入和所述特定节点的邻域嵌入包括:
级联特定节点的当前嵌入和特定节点的邻域嵌入以生成特定节点的组合嵌入;以及
使用一个或多个全连接神经网络层来处理特定节点的组合嵌入以生成特定节点的新嵌入。
实施例30是根据实施例27至29中任一实施例所述的方法,其中,组合特定节点的每个相邻节点的相应嵌入包括:
针对特定节点的每个相邻节点,使用仿射变换来处理相邻节点的当前嵌入以生成针对相邻节点的处理后的嵌入;
针对特定节点的每个相邻节点,使用sigmoid激活函数来处理相邻节点的处理后的嵌入以生成针对相邻节点的激活嵌入;以及
通过使用最大池化层处理激活嵌入来组合特定节点的每个相邻节点的相应激活嵌入。
实施例31是根据实施例23至30中的任一项所述的方法,其中,多个优化任务包括以下中的一个或多个:
设备放置任务,其中,神经网络的多个操作中的每一个被分配一个或多个处理设备中的特定处理设备;
操作调度任务,其中,神经网络的多个操作中的每一个被分配优先级,并且其中,每个处理设备包括基于优先级的调度器,所述基于优先级的调度器维护被分配给处理设备的操作的优先级队列;或者
操作融合任务,其中,神经网络的多个所选操作被确定为使所选操作像单个操作一样被执行。
实施例32是根据实施例23至31中的任一项所述的方法,其中,已经通过使用目标函数更新神经网络的参数θ来端到端训练图嵌入神经网络和策略神经网络,所述目标函数表征由多个候选图中的每个候选图表征的相应操作的预期运行时间。
实施例33是根据实施例32所述的方法,其中,目标函数是:
其中,G是候选图,是候选图的空间,T是用于多个优化任务中的特定优化任务的任务输出,πθ(G)是参数θ下的候选图G的策略,并且rG,T是奖励,所述奖励是使用任务输出T由候选图G表征的操作的运行时间的函数。
实施例34是根据实施例32至33中的任一实施例所述的方法,其中,已经通过使用邻近策略优化优化目标函数来训练图嵌入神经网络和策略神经网络。
实施例35是根据实施例23至34中的任一项所述的方法,其中,根据图的特征来调节策略神经网络。
实施例36是根据实施例35所述的方法,其中,根据图的特征来调节策略神经网络包括计算策略神经网络的神经网络层l的输出x(l+1):
x(l+1)=g(l)(c(x(0))⊙x(l)),
其中,x(l)是所述神经网络层l的输入,g(l)表征所述神经网络层l的操作,c是调节策略神经网络的神经网络层的特征,并且x(0)是由图嵌入神经网络生成的图的嵌入。
实施例37是根据实施例23至36中的任一项所述的方法,进一步包括:
使用所生成的优化策略在一个或多个处理设备上执行神经网络的多个操作。
实施例38是根据实施例23至37中的任一项所述的方法,其中:
策略神经网络包括策略嵌入子网,所述策略嵌入子网包括多个递归注意力神经网络层;以及
从图的嵌入生成第一任务嵌入包括使用策略嵌入子网来处理图的嵌入。
实施例39是根据实施例23至38中的任一项所述的方法,其中,策略神经网络包括:
用于多个优化任务中的每一个的相应任务注意力子网,其中,每个任务注意力子网包括一个或多个注意力神经网络层;以及
用于多个优化任务中的每一个的相应任务策略子网,
其中,使用策略神经网络处理用于特定优化任务的任务嵌入包括:
使用与特定优化任务相对应的任务注意力子网来处理任务嵌入以生成注意力嵌入;以及
使用与特定优化任务相对应的任务策略子网来处理注意力嵌入以生成用于特定优化任务的任务输出。
实施例40是根据实施例39所述的方法,其中,多个优化任务中的每一个的任务注意力子网共享多个参数。
实施例41是根据实施例39至40中的任一项所述的方法,其中,对应于每个优化任务的相应任务注意力子网与对应于其他优化任务的一个或多个其他任务注意力子网中的每一个共享一个或多个残差连接。
实施例42是一种系统,包括:一种系统,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时可操作以使所述一个或多个计算机执行根据实施例1至41中的任一项所述的方法。
实施例43是一种编码有计算机程序的计算机存储介质,所述程序包括指令,所述指令在由数据处理装置执行时可操作以使所述数据处理装置执行根据实施例1至41中的任一项所述的方法。
虽然本说明书包含许多具体实施方式细节,但是这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是作为可能特定于特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的上下文中描述的某些特征也能够在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也能够单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下能够从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中描绘了操作并且在权利要求中以特定顺序叙述了操作,但是这不应当被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应当被理解为在所有实施例中都需要这种分离,并且应当理解到,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在以下权利要求书的范围内。例如,权利要求中记载的动作能够以不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或相继顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (21)
1.一种生成用于在一个或多个处理设备上执行神经网络的多个操作的优化策略的方法,其中:
所述优化策略包括用于多个优化任务中的每一个的任务输出,以及
对于所述神经网络的所述多个操作中的每一个操作,每个任务输出包括用于对应优化任务的相应决策,
所述方法包括:
获得表示表征所述神经网络的所述多个操作的图的数据,其中,所述图的每个节点表征所述神经网络的操作并且所述图的每个边表征所述操作之间的数据依赖性;
使用图嵌入神经网络来处理表示所述图的所述数据以生成所述图的嵌入;以及
使用策略神经网络来处理所述图的所述嵌入以生成针对所述多个优化任务中的每一个的相应任务输出,所述处理包括:
在对应于所述多个优化任务中的第一优化任务的第一时间步处:
从所述图的所述嵌入生成第一任务嵌入;以及
使用所述策略神经网络来处理所述第一任务嵌入以生成用于
所述第一优化任务的第一任务输出;以及
在各自对应于所述多个优化任务中的相应优化任务的一个或多个后续时间步中的每一个时间步处:
处理先前时间步的所述任务输出以生成后续任务嵌入;以及
使用所述策略神经网络来处理所述后续任务嵌入以生成用于对应优化任务的后续任务输出。
2.根据权利要求1所述的方法,其中,处理先前时间步的所述任务输出包括组合所述先前时间步的所述任务嵌入和所述先前时间步的所述任务输出以生成所述后续任务嵌入。
3.根据权利要求2所述的方法,其中,组合所述先前时间步的所述任务嵌入和所述先前时间步的所述任务输出以生成后续任务嵌入包括:
计算所述先前时间步的所述任务嵌入和所述任务输出的总和以生成总和表示;以及
使用层归一化来处理所述总和表示以生成所述后续任务嵌入。
4.根据权利要求1至3中的任一项所述的方法,其中,所述图的所述嵌入包括所述图的每个节点的相应节点嵌入。
5.根据权利要求4所述的方法,其中,使用所述图嵌入神经网络来处理表示所述图的所述数据包括在多个嵌入时间步中的每个嵌入时间步处:
接收在先前嵌入时间步期间生成的所述图的每个节点的当前嵌入;
针对所述图的每个特定节点,组合所述特定节点的每个相邻节点的相应当前嵌入以生成所述特定节点的邻域嵌入;以及
针对所述图的每个节点,组合所述节点的所述当前嵌入和所述节点的所述邻域嵌入以生成所述节点的新嵌入。
6.根据权利要求5所述的方法,其中,使用所述图嵌入神经网络来处理表示所述图的所述数据进一步包括在第一嵌入时间步处:
使用所述节点的特征针对所述图的每个节点来生成初始嵌入,其中,所述特征包括以下中的一个或多个:
由所述节点表征的所述操作的操作类型,
由所述节点表征的所述操作的输出的输出形状,或者
用于所述节点的每个相邻节点的相应标识。
7.根据权利要求5或6中的任一项所述的方法,其中,组合特定节点的所述当前嵌入和所述特定节点的所述邻域嵌入包括:
级联所述特定节点的所述当前嵌入和所述特定节点的所述邻域嵌入以生成所述特定节点的组合嵌入;以及
使用一个或多个全连接神经网络层来处理所述特定节点的所述组合嵌入以生成所述特定节点的所述新嵌入。
8.根据权利要求5至7中的任一项所述的方法,其中,组合特定节点的每个相邻节点的相应嵌入包括:
针对所述特定节点的每个相邻节点,使用仿射变换来处理所述相邻节点的所述当前嵌入以生成针对所述相邻节点的处理后的嵌入;
针对所述特定节点的每个相邻节点,使用sigmoid激活函数来处理所述相邻节点的所述处理后的嵌入以生成针对所述相邻节点的激活嵌入;以及
通过使用最大池化层处理所述激活嵌入来组合所述特定节点的每个相邻节点的相应激活嵌入。
9.根据权利要求1至8中的任一项所述的方法,其中,所述多个优化任务包括以下中的一个或多个:
设备放置任务,其中,所述神经网络的所述多个操作中的每一个操作被分配所述一个或多个处理设备中的特定处理设备;
操作调度任务,其中,所述神经网络的所述多个操作中的每一个操作被分配优先级,并且其中,每个处理设备包括基于优先级的调度器,所述基于优先级的调度器维护被分配给所述处理设备的所述操作的优先级队列;或者
操作融合任务,其中,所述神经网络的多个所选操作被确定为使所述所选操作像单个操作一样被执行。
10.根据权利要求1至9中的任一项所述的方法,其中,已经通过使用目标函数更新所述神经网络的参数θ来端到端训练所述图嵌入神经网络和所述策略神经网络,所述目标函数表征由多个候选图中的每个候选图表征的相应操作的预期运行时间。
12.根据权利要求10或11中的任一项所述的方法,其中,已经通过使用邻近策略优化优化所述目标函数来训练所述图嵌入神经网络和所述策略神经网络。
13.根据权利要求1至12中的任一项所述的方法,其中,根据所述图的特征来调节所述策略神经网络。
14.根据权利要求13所述的方法,其中,根据所述图的特征来调节所述策略神经网络包括计算所述策略神经网络的神经网络层l的输出x(l+1):
x(l+1)=g(l)(c(x(0))⊙x(l)),
其中,x(l)是所述神经网络层l的输入,g(l)表征所述神经网络层l的操作,c是调节所述策略神经网络的神经网络层的特征,并且x(0)是由所述图嵌入神经网络生成的所述图的所述嵌入。
15.根据权利要求1至14中的任一项所述的方法,进一步包括:
使用所生成的优化策略在所述一个或多个处理设备上执行所述神经网络的所述多个操作。
16.根据权利要求1至15中的任一项所述的方法,其中:
所述策略神经网络包括策略嵌入子网,所述策略嵌入子网包括多个递归注意力神经网络层;以及
从所述图的所述嵌入生成所述第一任务嵌入包括使用所述策略嵌入子网来处理所述图的所述嵌入。
17.根据权利要求1至16中的任一项所述的方法,其中,所述策略神经网络包括:
用于所述多个优化任务中的每一个的相应任务注意力子网,其中,每个任务注意力子网包括一个或多个注意力神经网络层;以及
用于所述多个优化任务中的每一个的相应任务策略子网,
其中,使用所述策略神经网络来处理用于特定优化任务的任务嵌入包括:
使用与所述特定优化任务相对应的所述任务注意力子网来处理所述任务嵌入以生成注意力嵌入;以及
使用与所述特定优化任务相对应的所述任务策略子网来处理所述注意力嵌入以生成用于所述特定优化任务的所述任务输出。
18.根据权利要求17所述的方法,其中,所述多个优化任务中的每一个的所述任务注意力子网共享多个参数。
19.根据权利要求17或18中的任一项所述的方法,其中,对应于每个优化任务的相应任务注意力子网与对应于其他优化任务的一个或多个其他任务注意力子网中的每一个共享一个或多个残差连接。
20.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时可操作以使所述一个或多个计算机执行根据权利要求1至19中的任一项所述的方法。
21.一种编码有计算机程序的计算机存储介质,所述程序包括指令,所述指令在由数据处理装置执行时可操作以使所述数据处理装置执行根据权利要求1至19中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062971891P | 2020-02-07 | 2020-02-07 | |
US62/971,891 | 2020-02-07 | ||
PCT/US2020/055848 WO2021158267A1 (en) | 2020-02-07 | 2020-10-15 | Computational graph optimization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115066694A true CN115066694A (zh) | 2022-09-16 |
Family
ID=71739364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080095991.XA Pending CN115066694A (zh) | 2020-02-07 | 2020-10-15 | 计算图优化 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11657289B2 (zh) |
EP (1) | EP4100888A1 (zh) |
CN (1) | CN115066694A (zh) |
DE (1) | DE202020101664U1 (zh) |
WO (1) | WO2021158267A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11815943B1 (en) | 2020-06-05 | 2023-11-14 | State Farm Mutual Automobile Insurance Company | Systems and methods for processing using directed acyclic graphs |
CN111814977B (zh) * | 2020-08-28 | 2020-12-18 | 支付宝(杭州)信息技术有限公司 | 训练事件预测模型的方法及装置 |
US20230108001A1 (en) * | 2021-09-27 | 2023-04-06 | Advanced Micro Devices, Inc. | Priority-based scheduling with limited resources |
CN113703741B (zh) * | 2021-10-29 | 2022-02-22 | 深圳思谋信息科技有限公司 | 神经网络编译器配置方法、装置、计算机设备和存储介质 |
CN114816997B (zh) * | 2022-03-29 | 2023-08-18 | 湖北大学 | 一种基于图神经网络与双向gru特征抽取的缺陷预测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3580698B1 (en) * | 2017-07-21 | 2024-02-14 | Google LLC | Hierarchical device placement with reinforcement learning |
CN111353091A (zh) * | 2018-12-24 | 2020-06-30 | 北京三星通信技术研究有限公司 | 信息处理方法、装置、电子设备及可读存储介质 |
US20200249998A1 (en) * | 2019-02-01 | 2020-08-06 | Alibaba Group Holding Limited | Scheduling computation graph heterogeneous computer system |
-
2020
- 2020-03-27 DE DE202020101664.4U patent/DE202020101664U1/de active Active
- 2020-04-03 US US16/840,191 patent/US11657289B2/en active Active
- 2020-10-15 EP EP20801119.7A patent/EP4100888A1/en active Pending
- 2020-10-15 CN CN202080095991.XA patent/CN115066694A/zh active Pending
- 2020-10-15 WO PCT/US2020/055848 patent/WO2021158267A1/en unknown
-
2023
- 2023-05-22 US US18/321,691 patent/US20230306266A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
DE202020101664U1 (de) | 2020-07-07 |
EP4100888A1 (en) | 2022-12-14 |
US20210248445A1 (en) | 2021-08-12 |
US20230306266A1 (en) | 2023-09-28 |
US11657289B2 (en) | 2023-05-23 |
WO2021158267A1 (en) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3711000B1 (en) | Regularized neural network architecture search | |
US11675940B2 (en) | Generating integrated circuit floorplans using neural networks | |
EP3446260B1 (en) | Memory-efficient backpropagation through time | |
CN115066694A (zh) | 计算图优化 | |
US20200293838A1 (en) | Scheduling computation graphs using neural networks | |
JP7043596B2 (ja) | ニューラルアーキテクチャ検索 | |
CN110168578A (zh) | 具有任务特定路径的多任务神经网络 | |
CN109690576A (zh) | 在多个机器学习任务上训练机器学习模型 | |
CN110520871A (zh) | 训练机器学习模型 | |
CN110546653A (zh) | 使用神经网络的用于强化学习的动作选择 | |
US20210089834A1 (en) | Imagination-based agent neural networks | |
US20230176840A1 (en) | Learned graph optimizations for compilers | |
JP7284277B2 (ja) | 対話履歴グラフを使用したアクション選択 | |
CN112930541A (zh) | 通过最小化妄想影响来确定控制策略 | |
CN116582407A (zh) | 一种基于深度强化学习的容器化微服务编排系统及方法 | |
JP2020198135A (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
Ebrahim et al. | Lifelong Learning for Fog Load Balancing: A Transfer Learning Approach | |
CN111406267B (zh) | 使用性能预测神经网络的神经架构搜索 | |
US11823027B1 (en) | System, network and method for selective activation of a computing network | |
US20220374683A1 (en) | Selecting points in continuous spaces using neural networks | |
Chen et al. | Deep Recurrent Policy Networks for Planning Under Partial Observability | |
Oh et al. | Applying Multi-agent Reinforcement Learning and Graph Neural Networks to Flexible Job Shop Scheduling Problem | |
Shrivastava et al. | An Online Planning Agent to Optimize the Policy of Resources Management | |
CN118012580A (zh) | 基于强化学习和任务感知随机游走的深度学习任务调度方法和系统 | |
CN117806835A (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 |