研究人员开发了一种自动化解决方案,帮助程序员通过有效利用复杂数据结构中的两种冗余形式:稀疏性和对称性,来增强其深度学习算法的性能。
神经网络AI模型通常用于医学成像和语音识别等领域,处理高度复杂的数据结构,这些结构需要显著的计算资源。这种高强度的需求导致深度学习模型的高能耗。
为了提升AI模型的效率,麻省理工学院的研究人员推出了一种自动化系统,使深度学习算法的开发者能够同时利用这两种数据冗余。这种方法显著减少了机器学习任务的计算负担、带宽使用和内存需求。
当前的算法优化方法可能繁琐,并且通常限制开发者仅能利用稀疏性或对称性,而这两者都是深度学习数据结构中的独特冗余。
通过允许开发者从头开始创建同时利用这两种冗余的算法,麻省理工学院团队的方法在某些测试中将计算速度提高了近30倍。
该系统采用一种简单的编程语言,使其易于在各种应用中优化机器学习算法。它还可以帮助那些可能不是深度学习专家的科学家,提升他们用于数据处理的AI算法的效率。此外,该系统在科学计算领域也有潜力。
麻省理工学院的博士后研究员、系统论文的共同作者威洛·阿伦斯(Willow Ahrens)解释道:“捕捉这些数据冗余历来需要大量的实施工作。现在,科学家可以更抽象地指定他们想要计算的内容,而不需要详细说明如何实现它。”
她的研究团队还包括主作者拉达·帕特尔(Radha Patel)和资深作者萨曼·阿玛拉辛赫(Saman Amarasinghe),后者是电气工程与计算机科学系(EECS)的教授,以及计算机科学与人工智能实验室(CSAIL)的首席研究员。
减少计算负担
在机器学习中,数据通常通过称为张量的多维数组表示和操作。张量类似于矩阵,矩阵是数字在两个轴(行和列)上的矩形排列。然而,与二维矩阵不同,张量可以包含多个维度,使其操作更为复杂。
深度学习模型通过重复的矩阵乘法和加法对张量执行操作,这一过程是神经网络识别数据中复杂模式的方式。这些多维数据结构所需的大量计算占用了巨大的计算能力和能源。
然而,由于张量内部数据的排列,工程师通常可以通过消除不必要的计算来加快神经网络的操作。
例如,如果一个张量代表电商平台的用户评论,由于并非每个用户都会对每个产品进行评论,因此该张量中的许多条目很可能为零。这种冗余称为稀疏性,模型可以通过专门处理非零值来节省时间和计算资源。
另外,如果一个张量是对称的,意思是上半部分的值与下半部分的值相同,那么模型只需要处理一半,从而减少计算。这种冗余称为对称性。
阿伦斯指出:“然而,试图同时优化这两种冗余可能会使情况变得复杂。”
为此,阿伦斯及其团队开发了一种新编译器——一种将复杂代码转换为机器处理更简单格式的软件程序。他们的编译器名为SySTeC,能够通过自动利用张量中的稀疏性和对称性来提升计算性能。
SySTeC的开发始于识别通过对称性可以实现的三项主要优化。
首先,如果算法生成的输出张量是对称的,它只需要计算一半。其次,如果输入张量是对称的,算法只需读取一半。最后,如果张量操作的中间结果也是对称的,算法可以跳过冗余计算。
同时优化
使用SySTeC时,开发者提交其程序,系统会自动优化代码,提高所有三种对称性的效率。SySTeC的后续阶段会应用进一步的转换,以确保只存储非零值,从而为稀疏性优化程序。
最终,SySTeC生成可直接使用的代码。
阿伦斯指出:“这种方法使我们能够获得两种优化的好处。有趣的是,随着张量维度的增加,潜在的计算节省也在增加。”
研究人员使用SySTeC自动生成的代码实现了接近30倍的速度提升。
鉴于其自动化特性,该系统可能对希望使用新开发算法处理数据的科学家尤其有利。
未来,研究人员希望将SySTeC融入现有的稀疏张量编译器系统中,以创建更无缝的用户体验。他们还希望将其用于优化更复杂的程序。
这项研究部分得到了英特尔、国家科学基金会、国防高级研究计划局和能源部等组织的资助。