现代大规模深度学习工作负载突出了在许多设备上并行执行的需要,以便将模型数据拟合到硬件加速器存储器中。在这些设置中,在计算期间可能需要数组再分配,但如果没有有效地完成,也可以成为瓶颈。在本文中,我们解决了在SPMD计算中重新分配多维阵列数据的问题,深度学习中最普遍的并行性形式。我们介绍了一种类型定向的方法来合成阵列再分配作为MPI式集体操作的序列。我们证明了我们的合成重新分发是内存高效的,并且不执行过多的数据传输。使用集体操作的SPMD计算的数组再分配也在XLA SPMD Partitioner的上下文中实现了一种用于跨加速器系统进行分区程序的生产级工具。我们评估我们对XLA实施的方法,并发现我们的方法提供了1.22美元的几何平均加速,最大加速度为高达5.7倍$,同时提供可提供的内存保证,使我们的系统特别吸引力 - 规模模型。
translated by 谷歌翻译
ALPA通过生成统一数据,操作员和管道并行性的执行计划来自动对大型深度学习(DL)模型的模型平行训练。现有的模型并行训练系统要求用户手动创建并行化计划,或者自动从有限的模型并行性配置中生成一个计划。它们不足以在分布式计算设备上扩展复杂的DL模型。 ALPA通过将并行性视为两个层次级别来分配大型DL模型的训练:操作员和操作员并行性。基于它,ALPA构建了一个新的分层空间,用于大规模的模型并行执行计划。 ALPA设计了许多汇编,以在每个并行性级别自动得出有效的并行执行计划。 ALPA实现了有效的运行时,以在分布式计算设备上协调两级并行执行。我们的评估表明,ALPA生成的并行化计划,即使在其设计的型号上,也可以匹配或超过手动模型并联训练系统。与专业系统不同,ALPA还推广到具有异质体系结构和模型的模型,而没有手动设计的计划。 ALPA的源代码可在https://github.com/alpa-projects/alpa上公开获得
translated by 谷歌翻译
培训大型神经网络架构的快速增长带来了对划分策略的需要,例如通过使用数据,模型或管道并行性。通过程序基元越来越多地支持这些方法,但识别有效的分区策略需要昂贵的实验和专业知识。我们介绍了自动分区器的原型,它无缝集成到现有的编译器和现有用户工作流中。我们的分区使SPMD风格的并行性能够包含数据并行性和参数/激活分片。通过归纳策略和在平台独立的分区IR中搜索的组合,Automap可以恢复用于变压器层的专家分区策略,如Megatron分片。
translated by 谷歌翻译
我们呈现GSPMD,一种用于公共机器学习计算的自动,基于编译的并行化系统。它允许用户以与单个设备的方式相同的方式编写程序,然后通过关于如何分发Tensors的一些注释来提供提示,基于哪个GSPMD将并行化计算。其分区的表示简单尚不一般,允许它在各种模型上表达并行性的不同或混合范式。GSPMD基于有限的用户注释为每个运算符的分区Inventing,使得缩放现有的单设备程序方便。它解决了生产使用的几种技术挑战,允许GSPMD实现50%至62%的计算利用率,用于高达2048个云TPUv3核心,适用于高达1万亿参数的模型。
translated by 谷歌翻译
一般矩阵乘法或GEMM内核在高性能计算和机器学习中占据中心位置。最近的NVIDIA GPU包括Gemm加速器,如Nvidia的张量核心。他们的剥削受到双语言问题的阻碍:它需要低级编程,这意味着低程序员的工作效率或使用只提供有限组件集的库。由于建立的组件方面的REPRASING算法经常引入开销,因此图书馆缺乏灵活性限制了探索新算法的自由。因此,使用GEMMS的研究人员无法立即享受编程生产力,高性能和研究灵活性。在本文中,我们解决了这个问题。我们在科学朱莉娅编程语言中展示了三组抽象和接口来编程宝石。界面和抽象共同设计用于研究人员的需求和朱莉娅的特征,以实现足够的担忧和灵活性的充分分离,以便在不支付性能价格的情况下轻松地扩展基本宝石。将我们的Gemms与最先进的图书馆Cublas和Cutlass进行比较,我们证明我们的性能在图书馆的相同球场中,并且在某些情况下甚至超过它,而无需在CUDA C ++中编写单行代码或者组装,而不面临灵活限制。
translated by 谷歌翻译
General mathematical reasoning is computationally undecidable, but humans routinely solve new problems. Moreover, discoveries developed over centuries are taught to subsequent generations quickly. What structure enables this, and how might that inform automated mathematical reasoning? We posit that central to both puzzles is the structure of procedural abstractions underlying mathematics. We explore this idea in a case study on 5 sections of beginning algebra on the Khan Academy platform. To define a computational foundation, we introduce Peano, a theorem-proving environment where the set of valid actions at any point is finite. We use Peano to formalize introductory algebra problems and axioms, obtaining well-defined search problems. We observe existing reinforcement learning methods for symbolic reasoning to be insufficient to solve harder problems. Adding the ability to induce reusable abstractions ("tactics") from its own solutions allows an agent to make steady progress, solving all problems. Furthermore, these abstractions induce an order to the problems, seen at random during training. The recovered order has significant agreement with the expert-designed Khan Academy curriculum, and second-generation agents trained on the recovered curriculum learn significantly faster. These results illustrate the synergistic role of abstractions and curricula in the cultural transmission of mathematics.
translated by 谷歌翻译
对表示形式的研究对于任何形式的交流都是至关重要的,我们有效利用它们的能力至关重要。本文介绍了一种新颖的理论 - 代表性系统理论 - 旨在从三个核心角度从三个核心角度进行抽象地编码各种表示:语法,综合及其属性。通过介绍建筑空间的概念,我们能够在一个统一的范式下编码这些核心组件中的每个核心组件。使用我们的代表性系统理论,有可能在结构上将一个系统中的表示形式转换为另一个系统的表示形式。我们结构转化技术的固有方面是根据表示的属性(例如它们的相对认知有效性或结构复杂性)的代表选择。提供一般结构转化技术的主要理论障碍是缺乏终止算法。代表系统理论允许在没有终止算法的情况下衍生部分变换。由于代表性系统理论提供了一种通用编码代表系统的通用方法,因此消除了进一步的关键障碍:需要设计特定于系统的结构转换算法,这是当不同系统采用不同的形式化方法时所必需的。因此,代表性系统理论是第一个提供统一方法来编码表示形式,通过结构转换支持表示形式的第一个通用框架,并具有广泛的实用应用。
translated by 谷歌翻译
我们介绍了多个并行性形式(例如数据和模型并行性)在分层加速器系统上的映射进行了新颖的,该分层加速器系统是大学感知的,大大减少了软件到硬件映射的空间。我们通过实验验证这些映射对全部降低性能的实质性效果(最多448倍)。我们提供一种新颖的语法引导程序综合框架,能够以层次结构和绘图感知的方式分解在一个或多个并行轴上减少一个或多个并行轴到集体的序列。对于69%的并行性展示位置和用户请求的缩减,我们的框架合成了在不同GPU层次结构(最大2.04x平均1.27倍)上进行评估时享受默认全部减少实现的程序。我们将综合工具补充,模拟器超过90%的前10前10个精度,因此减少了对综合结果进行大规模评估的需求,以确定一小一小一组最佳节目和映射。
translated by 谷歌翻译
本文介绍了正向和反向模式的校正和高效自动分化的校正和高效自动化。自动差异是获得数值节目梯度的方法,这对于优化,不确定量化和机器学习至关重要。计算渐变的计算成本是实践中的常见瓶颈。对于使用OpenMP为多核CPU或GPU并行化的应用程序,还希望并行计算渐变。我们提出了一个框架,原因是生成的衍生代码的正确性,我们向差异化模型证明了我们的OpenMP扩展。我们在自动差异化工具磁带上实施此模型,并在我们的扩展差异化过程之后差异化的目前的测试用例。生成的衍生程序的性能在前进和反向模式优于顺序,尽管我们的反向模式通常比输入程序更差。
translated by 谷歌翻译
In the past few years, neural architecture search (NAS) has become an increasingly important tool within the deep learning community. Despite the many recent successes of NAS, however, most existing approaches operate within highly structured design spaces, and hence explore only a small fraction of the full search space of neural architectures while also requiring significant manual effort from domain experts. In this work, we develop techniques that enable efficient NAS in a significantly larger design space. To accomplish this, we propose to perform NAS in an abstract search space of program properties. Our key insights are as follows: (1) the abstract search space is significantly smaller than the original search space, and (2) architectures with similar program properties also have similar performance; thus, we can search more efficiently in the abstract search space. To enable this approach, we also propose a novel efficient synthesis procedure, which accepts a set of promising program properties, and returns a satisfying neural architecture. We implement our approach, $\alpha$NAS, within an evolutionary framework, where the mutations are guided by the program properties. Starting with a ResNet-34 model, $\alpha$NAS produces a model with slightly improved accuracy on CIFAR-10 but 96% fewer parameters. On ImageNet, $\alpha$NAS is able to improve over Vision Transformer (30% fewer FLOPS and parameters), ResNet-50 (23% fewer FLOPS, 14% fewer parameters), and EfficientNet (7% fewer FLOPS and parameters) without any degradation in accuracy.
translated by 谷歌翻译
回答集编程(ASP)已成为一种流行的和相当复杂的声明问题解决方法。这是由于其具有吸引力的地址解决方案的工作流程,这是可以轻松解决问题解决的方法,即使对于计算机科学外的守护者而言。与此不同,底层技术的高度复杂性使得ASP专家越来越难以将想法付诸实践。有关解决此问题,本教程旨在使用户能够构建自己的基于ASP的系统。更确切地说,我们展示了ASP系统Clingo如何用于扩展ASP和实现定制的专用系统。为此,我们提出了两个替代方案。我们从传统的AI技术开始,并展示元编程如何用于扩展ASP。这是一种相当轻的方法,依赖于Clingo的reation特征来使用ASP本身表达新功能。与此不同,本教程的主要部分使用传统的编程(在Python中)来通过其应用程序编程接口操纵Clingo。这种方法允许改变和控制ASP的整个模型 - 地面解决工作流程。 COMENT of Clingo的新应用程序课程使我们能够通过自定义类似于Clingo中的进程来绘制Clingo的基础架构。例如,我们可能会互动到程序的抽象语法树,控制各种形式的多射击求解,并为外国推论设置理论传播者。另一种横截面结构,跨越元以及应用程序编程是Clingo的中间格式,即指定底层接地器和求解器之间的界面。我们通过示例和几个非琐碎的案例研究说明了本教程的前述概念和技术。
translated by 谷歌翻译
域特异性启发式方法是有效解决组合问题的必不可少的技术。当前将特定于域的启发式方法与答案集编程(ASP)集成的方法在处理基于部分分配的非单调指定的启发式方法时,这是不令人满意的。例如,在挑选尚未放入垃圾箱中的物品时,这种启发式方法经常发生。因此,我们介绍了ASP中域特异性启发式方法声明性规范的新颖语法和语义。我们的方法支持启发式陈述,依赖于解决过程中所维持的部分任务,这是不可能的。我们在Alpha中提供了一种实现,该实现使Alpha成为第一个支持声明指定的域特定启发式方法的懒惰的ASP系统。使用两个实际的示例域来证明我们的提议的好处。此外,我们使用我们的方法用A*实施知情},该搜索首次在ASP中解决。 A*应用于两个进一步的搜索问题。实验证实,结合懒惰的ASP解决方案和我们的新型启发式方法对于解决工业大小的问题至关重要。
translated by 谷歌翻译
归纳逻辑编程(ILP)是一种机器学习的形式。ILP的目标是诱导推广培训示例的假设(一组逻辑规则)。随着ILP转30,我们提供了对该领域的新介绍。我们介绍了必要的逻辑符号和主要学习环境;描述ILP系统的构建块;比较几个维度的几个系统;描述四个系统(Aleph,Tilde,Aspal和Metagol);突出关键应用领域;最后,总结了未来研究的当前限制和方向。
translated by 谷歌翻译
This paper introduces corpus-guided top-down synthesis as a mechanism for synthesizing library functions that capture common functionality from a corpus of programs in a domain specific language (DSL). The algorithm builds abstractions directly from initial DSL primitives, using syntactic pattern matching of intermediate abstractions to intelligently prune the search space and guide the algorithm towards abstractions that maximally capture shared structures in the corpus. We present an implementation of the approach in a tool called Stitch and evaluate it against the state-of-the-art deductive library learning algorithm from DreamCoder. Our evaluation shows that Stitch is 3-4 orders of magnitude faster and uses 2 orders of magnitude less memory while maintaining comparable or better library quality (as measured by compressivity). We also demonstrate Stitch's scalability on corpora containing hundreds of complex programs that are intractable with prior deductive approaches and show empirically that it is robust to terminating the search procedure early -- further allowing it to scale to challenging datasets by means of early stopping.
translated by 谷歌翻译
即使机器学习算法已经在数据科学中发挥了重要作用,但许多当前方法对输入数据提出了不现实的假设。由于不兼容的数据格式,或数据集中的异质,分层或完全缺少的数据片段,因此很难应用此类方法。作为解决方案,我们提出了一个用于样本表示,模型定义和培训的多功能,统一的框架,称为“ Hmill”。我们深入审查框架构建和扩展的机器学习的多个范围范式。从理论上讲,为HMILL的关键组件的设计合理,我们将通用近似定理的扩展显示到框架中实现的模型所实现的所有功能的集合。本文还包含有关我们实施中技术和绩效改进的详细讨论,该讨论将在MIT许可下发布供下载。该框架的主要资产是其灵活性,它可以通过相同的工具对不同的现实世界数据源进行建模。除了单独观察到每个对象的一组属性的标准设置外,我们解释了如何在框架中实现表示整个对象系统的图表中的消息推断。为了支持我们的主张,我们使用框架解决了网络安全域的三个不同问题。第一种用例涉及来自原始网络观察结果的IoT设备识别。在第二个问题中,我们研究了如何使用以有向图表示的操作系统的快照可以对恶意二进制文件进行分类。最后提供的示例是通过网络中实体之间建模域黑名单扩展的任务。在所有三个问题中,基于建议的框架的解决方案可实现与专业方法相当的性能。
translated by 谷歌翻译
我们提供了静态分析,用于发现给定概率程序的可区分或更普遍的平滑部分,并展示如何使用分析来改善路径梯度估计器,这是后验推理和模型学习的最流行方法之一。我们的改进将估计器的范围从可区分模型到非差异性模型的范围,而无需用户手动干预;改进的估计器会使用我们的静态分析自动识别给定概率程序的可区分部分,并将路径梯度估计器应用于已识别的零件,同时使用程序的其余部分使用更通用但效率较低的估计器(称为得分估计器)。我们的分析具有令人惊讶的微妙的声音论点,部分原因是从程序分析设计师的角度看待某些目标平滑性属性的不当行为。例如,某些平滑度属性不能通过函数组成保留,这使得在不牺牲精度的情况下很难分析顺序组成。我们在目标平滑度属性上制定了五个假设,证明了我们在这些假设下的分析的健全性,并表明我们的主要示例满足了这些假设。我们还表明,通过使用分析中的信息,我们的改进梯度估计器满足了重要的可不同性要求,因此,在轻度的规律性条件下,平均计算正确的估计值,即,它返回无偏见的估计值。我们在Pyro语言中使用代表性概率程序进行的实验表明,我们的静态分析能够准确地识别这些程序的平滑部分,并使我们改进的路径梯度估计器利用这些程序中的所有高性能机会。
translated by 谷歌翻译
在过去十年中,已经开发出新的深度学习(DL)算法,工作负载和硬件来解决各种问题。尽管工作量和硬件生态系统的进步,DL系统的编程方法是停滞不前的。 DL工作负载从DL库中的高度优化,特定于平台和不灵活的内核,或者在新颖的操作员的情况下,通过具有强大性能的DL框架基元建立参考实现。这项工作介绍了Tensor加工基元(TPP),一个编程抽象,用于高效的DL工作负载的高效,便携式实现。 TPPS定义了一组紧凑而多才多艺的2D张镜操作员(或虚拟张量ISA),随后可以用作构建块,以在高维张量上构建复杂的运算符。 TPP规范是平台 - 不可行的,因此通过TPPS表示的代码是便携式的,而TPP实现是高度优化的,并且特定于平台。我们展示了我们使用独立内核和端到端DL&HPC工作负载完全通过TPPS表达的方法的效力和生存性,这在多个平台上优于最先进的实现。
translated by 谷歌翻译
组合优化是运营研究和计算机科学领域的一个公认领域。直到最近,它的方法一直集中在孤立地解决问题实例,而忽略了它们通常源于实践中的相关数据分布。但是,近年来,人们对使用机器学习,尤其是图形神经网络(GNN)的兴趣激增,作为组合任务的关键构件,直接作为求解器或通过增强确切的求解器。GNN的电感偏差有效地编码了组合和关系输入,因为它们对排列和对输入稀疏性的意识的不变性。本文介绍了对这个新兴领域的最新主要进步的概念回顾,旨在优化和机器学习研究人员。
translated by 谷歌翻译
Automatic differentiation (AD) is a technique for computing the derivative of a function represented by a program. This technique is considered as the de-facto standard for computing the differentiation in many machine learning and optimisation software tools. Despite the practicality of this technique, the performance of the differentiated programs, especially for functional languages and in the presence of vectors, is suboptimal. We present an AD system for a higher-order functional array-processing language. The core functional language underlying this system simultaneously supports both source-to-source forward-mode AD and global optimisations such as loop transformations. In combination, gradient computation with forward-mode AD can be as efficient as reverse mode, and the Jacobian matrices required for numerical algorithms such as Gauss-Newton and Levenberg-Marquardt can be efficiently computed.
translated by 谷歌翻译
形状约束语言(SHACL)是通过验证图表上的某些形状来验证RDF数据的最新W3C推荐语言。先前的工作主要集中在验证问题上,并且仅针对SHACL的简化版本研究了对设计和优化目的至关重要的可满足性和遏制的标准决策问题。此外,SHACL规范不能定义递归定义的约束的语义,这导致文献中提出了几种替代性递归语义。尚未研究这些不同语义与重要决策问题之间的相互作用。在本文中,我们通过向新的一阶语言(称为SCL)的翻译提供了对SHACL的不同特征的全面研究,该语言精确地捕获了SHACL的语义。我们还提出了MSCL,这是SCL的二阶扩展,它使我们能够在单个形式的逻辑框架中定义SHACL的主要递归语义。在这种语言中,我们还提供了对过滤器约束的有效处理,这些滤镜经常在相关文献中被忽略。使用此逻辑,我们为不同的SHACL片段的可满足性和遏制决策问题提供了(联合)可决定性和复杂性结果的详细图。值得注意的是,我们证明这两个问题对于完整的语言都是不可避免的,但是即使面对递归,我们也提供了有趣的功能的可决定性组合。
translated by 谷歌翻译