为高效的视觉AI系统创建定制编程语言

发布于:2025-04-17 ⋅ 阅读:(92) ⋅ 点赞:(0)

在这里插入图片描述

一张照片可以让我们瞥见创作者的世界——他们对一个主题或空间的兴趣和感受。但是帮助这些图像成为可能的技术背后的创造者呢?
麻省理工学院电气工程和计算机科学系副教授乔纳森·拉根-凯利就是这样一个人,他设计了从电影视觉效果工具到工业中广泛用于照片编辑和处理的卤化物编程语言的一切。作为麻省理工学院IBM沃森人工智能实验室和计算机科学和人工智能实验室的研究员,拉根-凯利专门研究高性能、特定领域的编程语言和机器学习,这些编程语言和机器学习支持2D和3D图形、视觉效果和计算摄影。

拉根-凯利说:“我们许多研究的最大目标是开发新的编程语言,使编写在当今计算机中日益复杂的硬件上真正高效运行的程序变得更加容易。”“如果我们想继续提高我们可以实际用于实际应用的计算能力——从图形和视觉计算到人工智能——我们需要改变我们的编程方式。”

寻找中景

在过去的二十年里,芯片设计人员和编程工程师见证了摩尔定律的放缓,以及从CPU上的通用计算向GPU和加速器等更多样化、更专业的计算和处理单元的显著转变。这种转变带来了一种权衡:在CPU上运行通用代码的速度有点慢,而硬件更快、更高效,需要对代码进行大量调整,并通过定制的程序和编译器映射到它。经过改进编程的更新硬件可以更好地支持高带宽蜂窝无线电接口、解码高度压缩的视频以进行流式传输,以及在功率受限的手机摄像头上进行图形和视频处理等应用。

“我们的工作主要是释放我们所能构建的最佳硬件的力量,以传统编程语言无法实现的方式,为这类应用程序提供尽可能多的计算性能和效率。”

为了实现这一目标,拉根-凯利将他的工作分为两个方向。首先,他牺牲通用性来捕捉特定和重要计算问题的结构,并利用它来提高计算效率。这可以从图像处理语言Halide中看出,他与他人共同开发了该语言,并帮助改变了Photoshop等程序中的图像编辑行业。此外,由于它专门设计用于快速处理密集、规则的数字数组(张量),它也适用于神经网络计算。第二个重点是自动化,特别是编译器如何将程序映射到硬件。麻省理工学院IBM沃森人工智能实验室的一个这样的项目利用了拉根-凯利团队开发的一种语言Exo。

多年来,研究人员一直在顽强地使用编译器实现编码自动化,这可能是一个黑匣子;然而,性能工程师仍然非常需要明确的控制和调整。拉根-凯利和他的团队正在开发跨越每种技术的方法,平衡权衡利弊,以实现有效和资源节约的编程。视频游戏引擎或手机摄像头处理等许多高性能程序的核心是最先进的系统,这些系统主要由人类专家用C、C++和汇编等低级详细语言手动优化。在这里,工程师对程序在硬件上的运行方式做出具体选择。

Ragan-Kelley指出,程序员可以选择“非常辛苦、非常低效、非常不安全的低级代码”,这可能会引入错误,或者“更安全、更高效、更高级别的编程接口”,这些接口无法在编译器中对程序的运行方式进行微调,通常会提供较低的性能。因此,他的团队正试图找到一个中景。“我们正在努力弄清楚如何为人类性能工程师希望能够控制的关键问题提供控制,”Ragan-Kelley说,“因此,我们正在尝试构建一类新的语言,我们称之为用户可调度语言,它提供更安全和更高级别的句柄来控制编译器的功能或控制程序的优化方式。”

解锁硬件:高级和服务不足的方式

Ragan-Kelley和他的研究小组正在通过两条工作路线来解决这个问题:应用机器学习和现代人工智能技术来自动生成优化的时间表,这是一个与编译器的接口,以实现更好的编译器性能。另一个使用他正在实验室研究的“外部编译”。他将这种方法描述为一种“把编译器翻过来”的方法,用一个编译器的骨架来控制人类的指导和定制。此外,他的团队可以在顶部添加他们定制的调度程序,这可以帮助瞄准专门的硬件,比如IBM研究的机器学习加速器。这项工作的应用涵盖了各个领域:计算机视觉、对象识别、语音合成、图像合成、语音识别、文本生成(大型语言模型)等。

他与实验室合作的一个大项目将这项工作向前推进了一步,从系统的角度来看待这项工作。在他的顾问兼实验室实习生威廉·布兰登与实验室研究科学家拉姆斯瓦尔·潘达的合作下,拉根-凯利的团队正在重新思考大型语言模型(LLM),寻找稍微改变计算和模型编程架构的方法,以便基于转换器的模型可以在不牺牲准确性的情况下在人工智能硬件上更高效地运行。拉根-凯利说,他们的工作在很大程度上偏离了标准的思维方式,在削减成本、提高能力和/或缩小LLM以减少内存并在更小的计算机上运行方面可能会带来巨大的回报。

在计算效率和硬件方面,拉根-凯利擅长这种更前卫的思维,并看到了它的价值,尤其是从长远来看。“我认为有一些(研究)领域需要追求,但已经成熟或显而易见,或者已经足够传统智慧,许多人已经或将要追求它们,”他说。“我们试图找到这样的想法,既具有实际影响世界的巨大影响力,同时也是不一定会发生的事情,或者我认为社区其他成员相对于其潜力而言服务不足。”

他现在教授的课程6.106(软件性能工程)就是例证。大约15年前,设备从单处理器转向多处理器,导致许多学术项目开始教授并行性。但是,正如拉根-凯利所解释的,麻省理工学院意识到学生不仅要理解并行性,还要优化内存和使用专用硬件来实现最佳性能的重要性。

“通过改变我们的编程方式,我们可以释放新机器的计算潜力,使人们有可能继续快速开发能够利用越来越复杂和具有挑战性的硬件的新应用程序和新想法。”