乐趣区

关于人工智能:LLVM之父Chris-Lattner模块化设计决定AI前途不服来辩

不足模块化的单体零碎就像浑然一体的金字塔,失去了演变空间,克制了翻新。以后,AI 畛域正面临零碎和工具链的互不兼容和碎片化,对这种混淆场面,编译器大牛 Chris Lattner 看不下去了。

他于 2022 年 1 月发表下海守业,同 Tim Davis 独特成立了 Modular AI,指标是重建寰球 ML 基础设施,包含编译器、运行时,异构计算、边缘到数据中心并重,并专一于可用性,晋升开发人员的效率。目前,Modular AI 已构建了来自 TensorFlow、TF Lite、XLA、TPU、Android ML、Apple ML、MLIR 等世界上大部分的生产机器学习基础设施,并已将生产工作负载部署到数十亿用户和设施。

此前,Chris Lattner 在《编译器的黄金时代》中指出,随着硬件和软件的协同设计变得更加重要,咱们须要比以往更快地推动翻新。而在最新文章里,他们鞭挞了以后 AI 软件技术栈的碎片化现状,并极尽对模块化设计的推崇。

Chris Lattner 自己负责 Modular AI 联结创始人和 CEO,他毕业于波特兰大学的计算机科学系,具备创立和领导多个出名大型项目的教训,其中包含 LLVM、Clang、MLIR 和 CIRCT 等编译器基础设施我的项目,他还带头创立了 Swift 编程语言。他还曾在苹果开发者工具部门、特斯拉主动驾驶团队、Google Brain 和 SiFive 公司领导相干工程研发工作。Tim Davis 负责 Modular AI 的联结创始人及首席产品官,他此前在谷歌团队参加了 TF Lite、Android ML、NNAPI 等我的项目的编译器开发工作。

以下是原文,由 OneFlow 社区编译。

作者|Chris Lattner、Tim Davis

翻译|胡燕君、程浩源

TensorFlow、PyTorch、CUDA 等平台不够模块化——没错,不服来辩!它们属于技术蔓延大背景下的产物,各自有数千个相互依赖的组成部分,每个局部各自演变、横蛮成长,倒退成简单的构造。

在应用多种硬件平台和加速器将工作负载部署到服务器、挪动设施、微控制器和 web 浏览器时,人工智能软件开发人员必须应答这种混淆的情况。

除初始畛域指标之外,上述提到的单体零碎(Monolithic systems)不易扩大或泛化,这迫使硬件制造商不得不本人构建相应的技术栈。

其后果是,AI 部署畛域变得高度碎片化,呈现了数十种工具链,它们各有取舍和局限性。更重要的是,这些设计模式的易用性、可移植性和可扩展性妨碍了翻新速度。

咱们曾经见证并且参加到粗浅扭转人类和事实世界的许多 AI 我的项目,包含用 AI 援救大堡礁、帮忙残疾人士重拾音乐梦以及教人类跳舞等。但很遗憾,构建和部署这些 AI 利用的技术依然太过简单,还是要全栈专家能力胜任,只有科技巨头里的那些机器学习技术的缔造者们,能力应用最尖端的 AI 利用。

请畅想这样一个世界:寰球范畴内的 ML 研究成果都能够疾速无效地利用到理论生产当中,每个人都能受惠于这种科技进步;每个有志于翻新产品的人不再因为软硬件的复杂性而碰壁,能够简略便捷地实现翻新,从而极大改善人类的生存程度。在这个世界中,AI 将会更易用、易取得、可移植、可扩大,并将促使一个更大的社区去影响人类社会的衰弱、环保、娱乐、金融、生产制作和商业等各畛域。

你可能感觉,咱们注定会失败?AI 的事实复杂性使其无奈做到这一点?

咱们并不这样认为。软件行业的倒退其实是一个轮回,咱们曾遇到并解决过相似的问题。

1

1990 年代软件业的碎片化

正如明天的 AI 行业一样,上世纪 90 年代的软件业也存在碎片化问题。过后,C 和 C ++ 语言都有本人的社区,但却扩散到数十种专有编译器软件上,这些编译器都有各自的供应商扩大(vendor extensions)和小瑕疵,奇怪的边角案例和不残缺的实现。

过后,构建跨平台软件十分艰难,因而呈现了各种工具来帮忙开发人员应答碎片化,使得装置、构建和配置软件(如 autoconf)变得更容易。

起初,GCC 编译器的衰亡援救了咱们,它不仅反对跨平台运行、性能良好且稳固,并且是收费的,因而在 90 年代获得了微小的胜利。GCC 的胜利推动了工具行业的整合浪潮,通过使其能力成为行业事实标准,去碎片化催生了新一波的翻新浪潮。

因为软件不再受限于 C /C++ 语言各自为政的问题,硬件也不再须要跟在一直变动的 C /C++ 语言规范前面疲于奔命地调整适应,所以这波浪潮催化了软硬件的变革,在软件方面,Linux 等开源软件社区得以迅速崛起;在硬件方面,指令集架构得以翻新,新商业模式得以萌芽。

尽管 GCC 对计算机世界造福至深,但它在架构上也有一些挑战。GCC 因循了所有古代编译器所应用的经典的“解析器 + 优化器 + 代码生成器”的架构,但它被无意设计成一个单体的批处理编译器零碎,而且 GCC 的领导者也不违心改良设计、进步模块化水平,针对这个问题,业内也始终争论不休。

2

模块化设计的崛起

可能大家回过头来才意识到,其实 2000 年是编译器和编程语言史上具备里程碑式意义的一年,因为在这一年,LLVM 我的项目面世了。

LLVM 之所以呈现,是因为过后的编译器难以扩大,而且很难基于它们进行编译器钻研工作。

22 年后的明天,LLVM/Clang 反对着世界上的大部分计算,包含 iOS、Android、Google、Meta 等公司和零碎。然而,人们却对它的胜利感到诧异,因为 LLVM/Clang 和它的前身一样,仍然采纳规范的“解析器 + 优化器 + 代码生成器”办法,它没有突破性的代码生成算法,而其余零碎最终都遵循了“全程序优化”等晚期翻新。LLVM 在传统的 C /C++ 工作负载方面没有超过现有的编译器,但它还是获得了胜利。

LLVM 的翻新之处在于其软件架构:LLVM 是一个模块化库的汇合。这些库领有已定义的接口,可能以翻新的形式进行组合和扩大,它们能够被内置到大型软件我的项目中,也能够重新组合,用于十分小的利用,例如特定畛域的即时编译器。模块化和清晰的接口会进步可测试性,有助于高质量的实现。模块化和关注点拆散也让领域专家不用事无巨细地理解零碎各局部如何工作就能够开发大规模我的项目。

Chris Lattner 曾在 2011 年撰文回顾 LLVM 的倒退(https://www.aosabook.org/en/l…),其中写到,模块化使 LLVM 可能扩大,从而产生新的开发者工具(如 clang-format)和翻新的编程语言(如 Rust、Julia、Swift)等等。上述技术以前在实践上就能够实现,但正是因为 LLVM 的可用性和可编辑性,它们才得以成真。模块化设计为 OpenCL 和 CUDA 等下一代即时加速器编程模型的诞生提供了条件,推动了下一波编译器技术的整合,这就是 LLVM 当初成为大多数 CPU、GPU 和 AI 零碎的根底的起因。

LLVM 最激动人心的奉献是它能够用在许多让人意想不到的中央。LLVM 设计之初并没有打算用在 AI,或者 Snowflake 的数据库查问优化器上,但如果没有 LLVM(或相似 LLVM 的货色),许多这些用例或者永远不会实现,比方,一个数据库团队如果想做查问优化,但没有 LLVM,那他们就必须从头开始构建一个 X86 代码生成器,能力建设即时编译器履行查问优化。

3

2022 年的 AI 基础设施

明天,咱们见证了人工智能行业的巨大进步,比方,世界各地的数据科学家能够通过 Jupyter Notebook 平台在 100+PetaFLOP 超级计算机上训练模型。尽管如此,至今端到端模型部署还没有实现“平民化”,还不能触达更多人。正如 1990 年代和 2000 年代初期的编译器和工具那样,明天的 AI 模型部署工具遇到的问题与其相比惊人地类似,仍然是重大的碎片化,硬件品种繁多且都有各自的定制工具。

多年来,世界上各大科技巨头曾经构建了多个针对不同硬件产品的外部工具链,而这些工具链往往不兼容,而且共享的代码很少。整个行业内曾经诞生了许多参差不齐的转换器和编译器,是时候做减法了。

许多业内人士认为,这些问题是因为人工智能的外在个性造成的,但咱们晓得这只是因为人工智能基础设施仍处于起步阶段。人工智能曾经对世界产生了如此惊人的影响,但咱们还是忍不住构想,如果咱们有机会以正确的形式重建 ML 行业,那它的影响到底会有多大?

4

下一代 AI 零碎的指标

过来十年,AI 基础设施和工具倒退神速,咱们从中吸取了很多教训,当初曾经可能充沛了解已经孜孜摸索的许多货色。是时候联合过来的教训和行业最出名的技术,建设一个模块化的、可组合的零碎了。

下一代 ML 零碎须要达到高质量并满足开发人员的需要。

下一代 ML 零碎不须要对用户代码付出老本昂扬的重写、从新架构或从新定位(Rebasing);它是原生的多框架、多云和多硬件的组合;它要将最好的性能、最高的效率与最佳易用性联合起来。这是缩小碎片化和解锁下一代硬件、数据和算法翻新的惟一路径。

这是一项艰巨的重任。实现这一指标须要多方人员的单干,包含架构师、工程师和技术首领,他们既是许多现有零碎的开创者,也是尖端技术倒退的推动者。在追赶这个指标的过程中,专一、自律以及对卓越技术的谋求缺一不可,这是一种以正确形式构建事物的价值体系。为了实现这一指标,咱们须要在面对一些迷人我的项目时有说“不”的定力,以确保咱们的基本面不会变形。

咱们的指标是让 AI 更易用、易于涉及、可移植、可扩大,使全世界的开发者都能畅通无阻地用 AI 造福人类。在这个世界上,咱们应该花更多工夫用 AI 来解决理论问题,而不是蒙受碎片化、低质量的工具和基础设施的折磨。这就是咱们要为之致力的将来。

咱们正在构建 AI 的将来,愿景是让任何人、任何中央都能够应用 AI。

原文链接:https://www.modular.com/post/…

欢送下载体验 OneFlow v0.7.0 最新版本:
https://github.com/Oneflow-In…

退出移动版