作者 | OneFlow社区

来源 | OneFlow

缺乏模块化的单体系统就像浑然一体的金字塔,失去了演化空间,抑制了创新速度。当前,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等项目的编译器开发工作。

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/llvm.html),其中写到,模块化使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。

往期回顾

上云避坑指南100篇|云淘金时代,安全为王!

50行 Python 代码绘制数据大屏!

这些f-string的用法,我猜你不知道!

如何用一行Python代码制作一个GUI?

分享
点收藏
点点赞
点在看

LLVM 之父 Chris Lattner:模块化设计决定 AI 前途,不服来辩相关推荐

  1. LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件

    翻译|沈佳丽.贾川 人们曾经想象中的AI愿景很美好,现状却不尽人意.AI在自动驾驶.新药研发等日常应用上并未实现当初的预言,常见的吐槽是,全球的科技巨头汇集了一大批最聪明的大脑,但更多还是专注于思考广 ...

  2. LLVM之父Chris Lattner:模块化设计决定AI前途,不服来辩

    缺乏模块化的单体系统就像浑然一体的金字塔,失去了演化空间,抑制了创新速度.当前,AI领域正面临系统和工具链的互不兼容和碎片化,对这种混杂局面,编译器大牛Chris Lattner看不下去了. 2022 ...

  3. Swift 语言之父 Chris Lattner 宣布离开苹果

    Swift 编程语言主要作者 Chris Lattner 发布邮件称,Ted Kremenek 将接管自己作为 Swift 的"项目负责人". 邮件大致内容如下: 自苹果在 WWD ...

  4. Swift之父Chris Lattner将从Apple离职,加入特斯拉

    2010 年 7 月,Chris 开始着手 Swift 编程语言的设计工作,用一年时间奠定了基本架构.后来他又领导一个团队投入到 Swift 的研发中.2014 年 6 月,Apple 在 WWDC ...

  5. 编译器大神 Chris Lattner 官宣新编程语言:Mojo,比 Python 快 35000 倍!

    整理 | 王子彧    责编 | 张红月 出品 | CSDN(ID:CSDNnews) 说起 Chris Lattner,大家一定不陌生.这位编译器大神,曾经领导了众多大型技术项目.他不仅是 LLVM ...

  6. LLVM 介绍(一) 项目与Chris Lattner

    目录 LLVM 项目 编译器高材生Chris Lattner(克里斯·拉特纳) CLANG 项目 LLVM基本特性 LLVM优势特性 LLVM适用人群 LLVM 项目 LLVM项目是模块化.可重用的编 ...

  7. 【硅谷问道】Chris Lattner 访谈录(下)

    [硅谷问道]Chris Lattner 访谈录(下) Chris Lattner 访谈录(下) 话题 Swift 在 Server 和操作系统方面有着怎样的雄心抱负? Swift 与 Objectiv ...

  8. Swift Podcast: Chris Lattner 讲述 Swift 起源故事

    译者:jojotov:校对:numbbbbb,WAMaker:定稿:Pancf 在新推出的 Swift 社区播客第一集 中,Chris Lattner, Garric Nahapetian, 和 Jo ...

  9. Swift 编程语言首席架构师 Chris Lattner 简介

    Chris Lattner(1978年出生)是 LLVM 项目的主要发起人与作者之一,Clang 编译器的作者.他现在是苹果公司『开发者工具』部门的主管,领导 Xcode.Instruments 和 ...

最新文章

  1. 什么是C ++中的“-gt;”运算符?
  2. maven之setting.xml的配置详解
  3. 动态更改echarts 高度_EasyShu地图可视化新突破,ECharts图表完美集成
  4. 克鲁斯卡尔(并查集)hdu 1233
  5. linux下的软件包安装(rpm   yum)
  6. osi参考模型(开放系统互连参考模型)
  7. yaml for java_细数Java项目中用过的配置文件(YAML篇)
  8. R-大数据分析挖掘(5-R基础回顾)
  9. mysql查询很慢优化方法1
  10. 对美食评语进行情感分析
  11. centos7 默认启动项_如何在centos7中搭建 ISCSI 服务
  12. 施乐s2110进入维修模式_施乐进入维修模式步骤
  13. Python常用库大全
  14. 关系数据理论详解(模式分解与四大范式)
  15. 【k哥爬虫普法】爬虫第一案,侵犯个人隐私,“入侵”短视频服务器!
  16. 一点点读懂regulator(三)
  17. 织梦主要文件夹目录及模板文件说明
  18. fetch请求cookie设置
  19. 云队友丨何加盐:影响10位企业大佬的10本书
  20. 一加手机怎么root权限_一加手机OnePlus卡刷获取root权限图文教程

热门文章

  1. Linux中存储设备的命名规则
  2. 关于CSDN获取博客内容接口的x-ca-signature签名算法研究
  3. 持续集成(第二版)[来自:Martin Fowler]
  4. 知音微服务平台网上订烟_新商盟网上订烟登录工具
  5. 《SQL与关系数据库理论——如何编写健壮的SQL代码》一3.7 TABLE_DUM和TABLE_DEE
  6. HackTheBox-baby auth
  7. 【转】“上善若水”是什么意思?
  8. linux 内存越界判断_linux 内存越界判断
  9. CBA第32轮:八一南昌男篮再胜北控 完成赛季“四连杀”
  10. java 属性签名_java – 使用BouncyCastle将签名/身份验证的属性添加到CMS签名