(来源:MIT News)

在医疗图像处理、语音识别等应用中,AI 模型需要处理极为复杂的数据结构,这一过程消耗大量计算资源,而这也是深度学习模型能耗巨大的原因之一。

为了进一步提高 AI 模型的效率,麻省理工学院的研究人员开发了一套自动化系统,让深度学习算法开发者能够同时利用两种类型的数据冗余,进而减少了机器学习运算所需的计算、带宽和内存使用量。

现有的优化算法技术大都比较繁琐,并且通常只允许开发者利用“稀疏性”或“对称性”中的一种,两者均为深度学习数据结构中不同类型的冗余。

如今,麻省理工学院研究人员开发的新方法能让开发者从头构建同时利用这两种冗余的算法,在某些实验中该方法将计算速度提升了近 30 倍。

此外,由于该系统使用了一种用户友好的编程语言,因此它可以针对各种应用优化机器学习算法。同时,该系统还可以帮助那些并非深度学习专家,但希望提高他们所用 AI 算法效率的科研人员,因此在科学计算领域也有应用价值。

“长期以来,利用这些数据冗余需要大量部署工作,而现在,科学家只需要告诉系统他们想要计算的内容,而不需要详细说明如何计算。”该系统相关论文的合作者、麻省理工学院博士后 Willow Ahrens 表示。这篇论文将在国际代码生成和优化研讨会上发表。

除了 Willow Ahrens,另外两名作者分别是麻省理工学院计算机科学与人工智能实验室(CSAIL)的 Radha Patel 和电气工程与计算机科学系(EECS)教授、CSAIL 首席研究员 Saman Amarasinghe。



减少计算量

在机器学习中,数据通常以多维数组的形式进行表示和运算,这些数组被称为张量。张量类似于矩阵,即按行和列排列的二维数值阵列。但与二维矩阵不同的是,张量可以有多个维度,这导致张量的运算难度更大。

深度学习模型通过对张量进行重复的矩阵乘法和加法运算来处理数据,这个过程也是神经网络学习数据中复杂模式的方式。由于这些多维数据结构需要进行大规模计算,因此要消耗大量的计算资源和能源。

不过,借助张量中的数据排列方式,工程师们通常可以通过减少冗余计算来提高神经网络的效率。

例如,若一个张量代表来自电商网站的用户评论数据,由于并非每位用户都会对所有产品进行评论,所以该张量中的大多数值可能是零。这种类型的数据冗余被称为“稀疏性”,模型可以通过仅存储和运算非零值,就能节省大量时间和计算资源。

此外,有时张量是对称的,即数据结构的上半部分和下半部分是一样的。在这种情况下,模型只需对其中一半数据进行运算即可,从而减少计算量。这种类型的数据冗余被称为“对称性”。

“但是,当尝试同时利用这两种优化方式时情况会变得更加复杂。”Willow Ahrens 表示。

为了简化这个过程,她和团队开发了一种名为“SySTeC”的新编译器(编译器是一种将复杂的代码转换为机器可处理简单语言的计算机程序),能够通过自动利用张量中的“稀疏性”和“对称性”来优化计算。

在构建 SySTeC 的过程中,他们确定了可利用对称性进行的三个关键优化点。一,如果算法的输出张量是对称的,则只需要计算其中的一半;二,如果输入张量是对称的,则算法只需要读取其中的一半;三,如果张量运算的中间结果是对称的,算法就可以跳过冗余计算。



同步优化

使用 SySTeC 时,开发者只需输入他们的程序,系统会自动针对上述三种对称性对代码进行优化。然后,SySTeC 的接下来会进行额外的转换,只存储非零数据值,从而优化程序以利用稀疏性。最终,SySTeC 生成可以直接使用的代码。

“通过这种方式,我们可以同时获得两种优化的优势。有趣的是,随着张量维度的增加,节省的计算成本就越多。”Willow Ahrens 解释道。

研究人员证实,使用 SySTeC 自动生成的代码,运行速度提升了近 30 倍。

由于该系统是自动化的,因此在科学家需要从头编写算法来处理数据的情况下尤其有用。

展望未来,研究人员希望将 SySTeC 集成到现有的稀疏张量编译器系统中,为使用者提供一个无缝衔接的操作界面。此外,他们还计划用它来优化更复杂程序的代码。

这项工作部分得到了英特尔、美国国家科学基金会、国防高级研究计划局和能源部的资助。

https://news.mit.edu/2025/user-friendly-system-can-help-developers-build-more-efficient-simulations-and-ai-models-0203

ad1 webp
ad2 webp
ad1 webp
ad2 webp