关于人工智能:从GFS到GPTAI-Infra的激荡20年

43次阅读

共计 13242 个字符,预计需要花费 34 分钟才能阅读完成。

导读

最近 AIGC 和 LLM 的浪潮层层迭起,大有把 AI 行业过来十年画的饼,一夜之间齐全变现的势头。而 AI Infra(构建 AI 所需的基础设施),也成了探讨的焦点之一。公众对 AI Infra 的关注点,往往放在 AI 算力上——比方 A100/H100 的芯片封闭;比方马斯克又买了一万张 GPU,等等。

算力无疑是 AI 浪潮中至关重要的一环,然而 AI Infra 并不只与算力相干。冰冻三尺非一日之寒,正如 GPT 并不是忽然的胜利一样,AI Infra 行业其实也经验了漫长的积攒与迭代。笔者最近跟共事、敌人一直地在探讨 AI 的各种倒退,每每聊到 AI Infra,心里总会涌出一言半语却又难以言表,于是明天决定入手把想说的都写下来。

如题目所说,整个 AI 的倒退离不开大数据,而大数据的开始,天然是谷歌的三大件:Google File System、MapReduce 和 BigTable。其中 GFS 论文发表于 2003 年,距今刚好整整 20 年。这 20 年,也是大数据、AI、互联网倒退突飞猛进的 20 年。

本文试图去梳理这 20 年间 AI Infra 的一个个里程碑事件。因为当咱们身处其中时,往往分不清炒作与干货,也看不清部分当先和最终取胜的架构之争。只有当回顾历史,察看长周期的改革时,一些法则才会涌现。话不多说,让咱们就此开始!

目录索引

【2003/2004 年】【框架】:Google File System & MapReduce

【2005 年】【数据】:Amazon Mechanical Turk

【2007 年】【算力】:CUDA 1.0

【2012/2014 年】【研发工具】:Conda/Jupyter

【小结】

【2012 年】【框架】:Spark

【2013/2015/2016 年】【框架】:Caffe/Tensorflow/Pytorch

【2014 年】【框架 / 算力 / 研发工具】:Parameter Server & Production Level Deep learning

【2017 年】【算力】:TVM/XLA

【2020 年】【数据 / 算力】:Tesla FSD

【2022 年】【数据】:Unreal Engine 5.0

【2022 年】【数据 / 研发工具】:HuggingFace 融资 1 亿美元

【当下】OpenAI 有什么 AI Infra?

【结语】


【2003/2004 年】【框架】:Google File System & MapReduce

2003 年谷歌公布的 GFS 论文,堪称是掀开了这场 20 年大戏的尾声,宣告人类社会正式进入互联网大数据的时代。一个小插曲是谷歌尽管凋谢了论文,却没有开源实现,导致起初的 Apache Hadoop 以「一言难尽」的性能霸占了开源生态(也为 Spark 日后横空出世埋下伏笔),而开源社区爆发式的倒退想必也影响了起初谷歌对开源零碎的态度。

GFS 和 MapReduce 能够说是开启了分布式计算的时代,同时也在传统单机操作系统、编译器、数据库这些畛域之外,让「Infrastructure」这个词开始逐渐深入人心。对于 GFS 这里不多说,重点想探讨下 MapReduce 的「问题和毛病」。不晓得有没有人在第一次学习 MapReduce 编程模式后,也跟笔者一样在心里犯嘀咕:这个 Map 和 Reduce 是有什么非凡之处嘛?为什么是它们而不是别的接口?为啥肯定要用这个范式编程呢?是倒排索引必须用 MR 能力建么?种种疑难即使是起初通读了 Paper 也未能齐全了解。

而且起初发现,吐槽的还不止笔者一个。2008 年,过后还没取得图灵奖的数据库大牛 Michael Stonebraker 就撰文狠批《MapReduce: A major step backwards》,还间接点名批评西海岸某学校:“Berkeley has gone so far as to plan on teaching their freshman how to program using the MapReduce framework.”。而 Stonebraker 传授次要鞭挞的点,便是 MR 缺失了传统数据库的一大堆 Feature,尤其是 Schema & 高阶 SQL 语言、Indexing 查问减速等等。咱阿里的同学看到这想必心里乐了:“嘿嘿,您老说的这些 Feature,咱 MaxCompute 的湖仓一体 /SQL 查问 / 主动减速,当初全都有啦!MR 也能够棒棒滴”。

不过这曾经是古代了,让咱们先回到 2004 年,看看为什么在没有日后这些高级 Feature 的状况下,谷歌仍然要推出 MapReduce 并定义了整个开源大数据生态的模式。这里想说是:「理解胜利架构的毛病,能力真正了解其长处到底带来多大的收益,以至于能够抹杀掉所有的有余」。MapReduce 并不见得是一个好的编程范式(起初的倒退也证实有各种更好的范式),它让算法实现变得复杂 & 教条,它只能实现很少一部分算法,它的性能可能比原问题的最优实现差之甚远。然而它在 2004 年的时候,让一般程序员应用大规模分布式计算变得非常简单!不须要理解 Mpi,不须要理解分布式通信同步原理,写完 Mapper 和 Reducer,你就能在上千台服务器的集群上运行程序,要害是还不必放心呈现机器故障等等各种异样问题。

归根结底,MapReduce 是一个斗争

MR 就义了灵活性,就义了性能,却让用户取得了稳固牢靠的分布式计算能力。而各种各样的「斗争」,在前面一代代的 AI Infra 中,未然就是主旋律。不过咱们也能惊喜地看到,随着古代工程技术的倒退,在灵活性、性能、稳定性三个维度均得高分的零碎亘古未有。当然,新的斗争点依旧会存在,这也是 AI Infra 或者说 Large-Scale Computer System 这个畛域令人着迷的起因之一。

对于 GFS 和 MR 要说的还有最初一点,那便是「面向 Workload 的设计」,谷歌在论文里也说了,整个大数据系统的设计与他们的搜索引擎业务非亲非故:文件系统只会 Append 写而不会删除,读取次要是程序读而不是随机读,须要 MR 的工作也以扫库建索引为主。而传统数据库、文件系统对于其余通用需要的反对,必然也导致它们在大数据处理这个工作下,不会是最优解。

好了,读到这有读者可能会问,光一个 20 年前的 GFS 你就讲这么多,我关怀的 GPT 在哪里?怎么能力造出 GPT?别急,太阳底下无新事,20 年前对框架的设计思考,与最新的 AI Infra 相比未必有什么实质不同。

【2005 年】【数据】:Amazon Mechanical Turk

工夫来到 2005,让咱们从零碎畛域抽出来,看看 AMT 给世界带来了什么样的惊喜。其实 Web1.0 刚开始的时候,也是互联网泡沫期嘛,可能跟咱们当初的感觉也差不多,整个社会在一个癫狂的状态。也不晓得是谁在亚马逊突发奇想,基于互联网搞了这么个众包平台,但这可乐坏了在学校研究所里依附学生、人工招募对象来标注数据的老师们。于是乎,Stanford 的 Fei-Fei Li 团队,开始基于 AMT 来标注了 CV 有史以来最大的一个 Image Classification 数据集:ImageNet,并从 2010 年开始举办较量,最终在 2012 年 AlexNet 技惊四座,引发了第一次深度学习反动。

对于 AMT 和 ImageNet 这里想说 3 个点:

1. 预先看对于「数据」方面的历次反动,特点就很显著了,每一次要么是极大地升高了获取数据标注的老本,要么是极大地提高了数据的规模量。正是 AMT 或者说互联网,让人类第一次能够很不便地,为了钻研 AI 而大规模地获取标注数据。而到了 2023 年的 LLM,大家对这个问题其实也想得很分明了:『原来基本不必什么众包平台,每个在互联网上说过话的人,以及之前写过书的今人,其实都是在帮 AI 标数据』。

2. 很多同学不晓得为什么 ImageNet 有个 Net,或者认为 ImageNet 的 Net 和 AlexNet 的 Net 一样都指神经网络,其实基本不是。这里能够参考 ImageNet 的原始论文,次要是因为之前有另一个我的项目 WordNet,是相似常识图谱或者大词典的一个工作,将各种领域和概念都进行了记录和网状关联。ImageNet 在 WordNet 的根底上,选择性地结构了 1000 类物体类别,对视觉分类工作进行了设计。从古代来看,这叫图文多模态,但其实这是很早就有的一个范式:「借用 NLP 的 Taxonomy,对 CV 的分类工作进行定义」。

3.Fei-Fei Li 有很多十分有意思的 CV 论文,Citation 量个别都不高,因为其切入点常常不同凡响。另外 Fei-Fei Li 的高徒 Andrej Karpathy 想必大家都十分相熟,尽管 AK 的论文大家倒是不肯定记得(甚至不晓得他也在 ImageNet 的 author list 里),但 AK 的博客和 Github 却是有极高的影响力,从最早的《Hacker’s guide to Neural Networks》到最近的 nanoGPT,而且 AK 的博士论文题目就是:《Connecting Images and Natural Language》

【2007 年】【算力】:CUDA 1.0

2007 年,当游戏玩家们还在纠结买啥显卡能跑孤岛危机时,NVIDIA 悄悄公布了第一代 CUDA。之所以用悄悄一词,是因为预计过后没激发什么水花。因为几年后笔者听到做图像处理的师兄对 CUDA 的评估无一例外都是:「真难用 」。是啊,毕竟曾经被编译器和高级语言惯坏了这么多年了,忽然跟你说写个程序还得思考 GPU 硬件是怎么运行的,还得手动治理高速缓存,略微一不注意程序反而会变得死慢死慢,谁能喜爱得起来呢?而且更要命的是 CUDA 的浮点数精度问题。当年笔者第一次用 CUDA,灰溜溜写完一个矩阵乘法后,一比照发现,咦?怎么后果差这么多,难道哪里写错了?排查半天无果,毕竟「 用 CPU 的时候,后果有错素来都是我的错不会是硬件的错」。起初经同学指导,原来是 CUDA 的浮点数精度不够,须要用上 Kahan Summation. 就是上面这段代码:


float kahanSum(vector<float> nums) {
    float sum = 0.0f;
    float c = 0.0f;
    for (auto num : nums) {
        float y = num - c;
        float t = sum + y;
        c = (t - sum) - y;
        sum = t;
    }
    return sum;
}

加上后后果就神奇地对了。而现在每天用着 V100/A100,而后吐槽 NPU/PPU 这不好那不能适配的同学可能未必晓得,当年 CUDA 刚推广的时候,也好不到哪里去。尤其在高性能计算畛域,因为大客户都是各种跑偏微分方程的科研机构,长年应用科学家们写的上古 Fortran 代码,而硬件上素来都是 CPU 双精度浮点数保平安。所以相当长一段时间,CUDA 压根不在思考范畴内。Intel 在高性能畛域也成为相对的霸主。

另外,在此还要介绍一位已经被 Intel 寄予厚望的配角:Xeon Phi。 Xeon Phi 芯片最早公布于 2010 年,就是为了反抗 CUDA 而研发的众核架构。笔者在 13 年加入 ASC 超算较量时,当年 Intel 收费资助了一大批 Phi 并间接出了一道题让大家试用 Phi。大家用完的体感嘛 …… 不便是真不便,毕竟主打的是编译器包办所有事件,原有的高性能分布式代码一行不必改,间接适配众核架构。这也是 Intel 始终以来做 CISC 架构 CPU 和编译器的思路:「底层实现简单的指令集,编译器实现所有转译和优化」,下层用户齐全无感,每年付费即可享受摩尔定律的红利(值得一提的是,Intel 的 Icc 高性能编译器和 MKL 库都是要额定付费的)。惋惜的是,Phi 的指标和愿景尽管很美妙,但它的编译器和众核架构没有做到标称所说的,一键切换后,性能失去极大晋升。Phi 我的项目始终没有积攒大量用户,也在 2020 最终关停。

另一方面,CUDA 却获得了节节胜利:人们发现,写 SIMD 模式的高性能利用时,CUDA 其实比 CPU 更好用。起因恰好是「编译器做得少 」。写 CUDA 时,所写即所得,不必再像写 CPU 高性能利用那样,时常须要编译出汇编码去查看向量化有没有失效、循环展开对不对。因为无奈对 CPU Cache 进行间接治理,更是只能靠教训和实测来理解以后 Cache 的分配情况。这里也引出一个问题:「 编译器和语言设计肯定要满足所有人的需要么?」想必不是的,找准这个语言的真正用户(高性能工程师)可能才是要害。

而与本文最相干的是,CUDA 找到了 AI 这样一个神奇的客户。说它神奇,因为 AI 算法真的要让《数值剖析》的老师赞不绝口,让《凸优化》老师吐血。为什么呢?这么大规模的一个数值计算利用,竟然说「精度不重要 」,而且「 全是 CUDA 最善于的根本矩阵运算」。机器学习不须要双精度,间接单精度浮点数搞定,甚至在推理时连单精度都嫌多,半精度、int8、int4 都能用。而在优化角度,也是突破了凸优化的所有传统认知:一个非凸优化问题,传统各种算法统统不须要。而且搞全量数据优化反而成果不好,SGD 的 mini-batch 尽管会自带乐音,但乐音反而对训练无益。于是乎,GPU 另一个软肋:显存受限,在 mini-batch 的算法下,也变得不是问题了。

总之,CUDA 和 GPU 仿佛就是为 AI 而生,毛病最终全变成了 Feature,也让老黄变成了厨房霸主,核弹之王。而目前集举国之力攻坚自研芯片的咱们也不要忘了,CUDA 公布这 16 年以来,除了底层的芯片之外,软件层工具链和用户习惯用户生态是怎么从 0 到 1 一步步演进的。GPU 将来是不是肯定就一家独大?TPU/NPU/PPU 会不会弯道超车?让咱们静观其变。

【2012/2014 年】【研发工具】:Conda/Jupyter

聊完了框架、数据和算力,咱们再来看看 AI 的研发工具是什么状况。而这里不得不探讨的问题便是:为什么 AI 的支流语言是 Python?其实,不只是 AI,Python 的普及率原本就在逐年回升。开源社区很早就发现为一个我的项目提供 Python 接口后,用户使用量会大增,而且大家更偏向于应用 Python 接口。究其原因,无需编译的动静脚本语言的魅力切实是太大了。在这里无需多言,毕竟大家都晓得:

人生苦短,我用 Python

而 Python 的生态自身也在一直的欠缺,基于 Pip 的包治理原本就很不便,2012 年推出 Conda 之后,更是让「虚拟环境治理」变得极为容易。要晓得,对于一个频繁须要复用开源软件包的开发畛域,这相对是一个 Killer Feature。

除了包治理,Python 的另一大冲破便是基于 IPython 的 Jupyter。它把 Python 原本就好用的交互性能晋升到了新的标杆,并且打造了大家脍炙人口的 Jupyter Notebook。至于说 Notebook 算不算 AI Infra,看看谷歌的 Colab,看看目前各种 AI 开源我的项目的导引教程、以及咱们本人的 PAI-DSW 就能晓得,Notebook 曾经是 AI 研发和常识分享中不可或缺的一环。其隔离后端集群的 Web 端的研发体验,让用户一站式操控海量算力资源,再也不必只能用 Vim 或是近程同步代码了。

而对于笔者来说,写 Data 相干 Python 试验代码的第一抉择也早已不是 IDE,而是 Jupyter Notebook. 起因很简略:解决图像、Dataframe、Json 这样的数据,并且须要频繁「迭代不同的算法策略 」时,「 代码怎么写取决于其内在数据格式和后面的算法后果 」。而数据和算法后果都是在运行时能力看到其具体模式,所以,「 一边运行代码一边写代码」是数据处理、AI 算法工程师的粗茶淡饭。很多不了解这一点的 Infra 工程师,设计进去的框架或者工具,不免让人一言难尽。前面咱们也会看到,在交互性和动态性上开倒车的 Tensorflow,用户也在一点点的散失。

【小结】

通过后面这 4 个板块代表性工作的介绍,咱们不难看到 AI Infra 全貌的雏形:

  1. 算力:须要弱小的 CPU/GPU 为各种数值计算工作提供算力反对,同时编译器须要为高性能工程师提供良好的编程接口。
  2. 框架:针对特定的 Workload 形象出一个既有通用性,又满足肯定束缚的编程范式。使得执行引擎能够一站式提供诸如分布式计算、容灾容错、以及各种运维监控的能力。
  3. 研发工具:AI 和数据算法研发冀望在代码编写时是能实时交互反馈的;开源社区要求代码和其余生产资料可能被很容易地打包、公布、集成、以及版本治理。
  4. 数据:须要一个提供 AI 训练所需海量数据的工具或模式。

带着这些思路,其实就很容易能看清起初 AI Infra 倒退的根本脉络了,让咱们持续来看看。

【2012 年】【框架】:Spark

还是 2012 年,这一年 Berkeley 的 Matei Zaharia 发表了驰名的 Resilient Distributed Datasets 论文,并且开源了 Spark 框架。Spark 彻底改变了 Hadoop 生态「慢」和「难用」的问题,借助 Scala 和 Pyspark/Spark SQL 的遍及,将很多编程语言畛域的最新进展引入了大数据开源社区。其实目前来看,RDD 是不是 In Memory 可能都不是最重要的,毕竟大部分 Job 并不是 Iterative 的。然而,光是借助 Scala interactive shell 实现的 Spark shell,对于动辄启动工作就要分钟级别的 Hadoop,自身就是颠覆性的(想想你通知一个天天写 Java based MR 接口的同学,你当初能够在 Python 命令行里搞大数据计算了是什么感触)。更别提 Scala 的各种语法糖,以及对海量算子的反对了。

总而言之:Spark 用 Scala、Python、SQL 语言的极好交互式体验对轻便的 Java 实现了降维打击,并提供了更优的零碎性能。 而人们也看到,只有「用户体验」足够好,即使是一个成熟的开源生态也是能够被颠覆的。开源大数据生态也因而进入了百花齐放的阶段。

【2013/2015/2016 年】【框架】:Caffe/Tensorflow/Pytorch

2013 年,最靠近公众认为的 AI Infra 工作来啦。那就是贾扬清大牛开源的 Caffe,自此 Deep Learning 的门槛被大大降低,通过模型配置文件,就能搭建网络,实现训练,利用 GPU 的算力。一时间模型翻新开启了大暴发时代。其实同一期间开源框架还有 Theano,以及基于 Lua 的 Torch,不过应用形式各有差别。随后,大公司纷纷入局,谷歌和 FB 别离在 15 和 16 年公布了 Tensorflow 和 PyTorch,再加上日后 Amazon 背书的 MxNet,以及百度的 PaddlePaddle,机器学习框架迎来了百家争鸣的时代。对于机器学习框架能够探讨的点太多了,公开的材料也很多,这里只探讨其中的两个点:

一个是从框架设计方面的「Symbolic vs. Imperative」。这个探讨最早能够追溯到 MxNet 的技术博客 Deep Learning Programming Paradigm。而 MxNet 也是最早两种模式均反对的框架,并在博客里点明了:Imperative 更灵便易用,Symbolic 性能更好。再看看其余框架晚期的版本,则专一到其中一种范式:Tensorflow 是 Symbolic,PyTorch 是 Imperative。而前面的事件大家也都晓得了,Pytorch 残缺继承了 Python 语言的长处,一贯以灵便、适宜科研应用著称;TF 则在工程化部署时更敌对,但就义了交互性。而后通过漫长的迭代,两种范式也根本走向了交融。TF 也反对 Eager 模式,前面还间接推出了新框架 Jax;Pytorch 也能够把 Symbolic Graph 进行导出和操作,比方 TorchScript、Torch.fx。如同 MapReduce 是一种斗争,各个机器学习框架也都在「易用性 」和「 性能」上做着某种斗争。但整体看,主打 Imperative,放弃与 Python 应用习惯吻合的 Pytorch 还是在用户量上逐步占据上峰。当然,当初下任何论断都还为时尚早。机器学习框架的倒退和迭代远没有完结。

另一个可探讨的点是「机器学习框架演进和算法演进 」之间的关系,之所以要探讨这个点,是因为很多算法研发团队和工程框架团队习惯于甲方乙方的工作模式。把框架研发和框架降级了解为:算法科学家为了实现某个模型或者想法,发现现有框架无奈反对,于是给工程团队提一些对于算子 Op 实现、新的分布式计算范式、性能优化方面的新需要。这样的模式有很多弊病,比方只能反对部分的小翻新,而且翻新的周期可能会很长,甚至会呈现常常被工程团队吐槽的:「 上一个需要还没实现完,算法侧又换了新想法 」。所以如何打磨好算法团队和工程团队的合作模式,是很重要的课题:比方 Co-Design 的方法论,单方都要换位思考,提前预判技术门路。比方工程团队不能把日常工作变成帮科学家实现性能代码,而是要提供一个灵便的下层接口让科学家自行摸索,框架层重点解决卡脖子的工程技术问题。而且最重要的是:单方肯定要意识到:「 目前的模型构造和框架实现,可能只是历史演讲过程中的一个偶尔 」,而「 模型设计和框架实现,会一直地相互影响着对方的演进路线

起因也很简略,在模型翻新最前沿,有一个鸡生蛋蛋生鸡的问题:算法科学家只能实现并验证那些现有框架能实现的 Idea,而框架反对的性能,往往又都是以往胜利过的算法架构或是科学家提出了明确需要的架构。那么 真正的零碎级翻新如何产生呢?可能还真回到了阿里的老话:

因为置信,所以看见

此外,算法与框架的共生关系,近年来也引发了大量的探讨。比方最近探讨比拟多的,LLM 为什么是 Decoder Only 架构?还有《The Hardware Lottery》一文里提出的“A research idea wins because it is suited to the available software and hardware”。

总而言之,对于机器学习框架而言,「框架」的意义早已超出了 MapReduce/Spark 这种大数据框架帮忙工程师实现各种 Data ETL 性能的领域。因为算法、模型的状态自身就是在变动在变革的,框架如果限度过死,就反而会制约算法的迭代和翻新。

【2014 年】【框架 / 算力 / 研发工具】:Parameter Server & Production Level Deep Learning

开源社区的框架引发了 AI 的新浪潮,而在互联网大厂的搜推广业务里,大家也开始推敲,Deep Learning 的胜利是否能在传统 Ctr 算法中复现呢?答案是必定的!基本上所有大厂都开始了相干的研发。这里打个广告,以笔者相熟的阿里妈妈展现广告业务线为例,从 2013 年的 MLR,再到起初的大规模分布式训练框架 XDL,再到 DIN 和 STAR,搜推广的同学们应该都十分理解了。开源框架不反对大规模 Embedding Table 和靠谱的分布式训练,这也让自研的类 Parameter Server 框架迎来了倒退空间。大规模分布式训练的框架也成为了这几年搜推广算法迭代的次要推手。而与上文说的一样,在模型高频迭代,大促提效常态化的背景下,算法翻新和框架演进是一个简单的共生关系,这里也举荐大家看看怀人老师写的 广告举荐技术倒退周期,残缺形容了整个算法架构的演进历程。

另一方面,训练引擎仅仅只是整个搜推广算法工程化的冰山一角。模型推理引擎,实时数据流,ABTest 试验平台,容器调度平台等等都须要一整套残缺的 Infrastrature,这里写得最具体的当然是五福老师的 AI OS 综述。笔者也在下图大抵梳理了在工业级机器学习利用中,面临的一些常见问题。

在这里不得不说,搜推广的 Ctr 模型,因为与互联网业务、营收高度相干,始终是大厂里的技术洼地。通过有数人与日俱增的一直打磨,能够说是把 y = f(x) 这个学习范式的每个细节都做到了极致,上图的每个小框都值得 10+ 篇技术分享。而在 GPT 时代 LLM、半监督学习范式以及将来前景广大的 AI 利用中,阿里在这一块的积攒肯定能够失去迁徙和复用,持续发光发热。

【2017 年】【算力】:TVM/XLA

工夫到了 2017 年,TVM 和 XLA 都在这一年公布,而 AI 编译器这个话题也值得咱们独自讨论一下。与机器学习框架次要解决易用性问题不同,AI 编译器重点解决的是性能优化、计算芯片最优适配的问题。个别通过对单算子的底层计算代码生成,或是对计算图的重组和交融,来晋升模型推理的性能。在芯片断供、自研芯片百花齐放的当下,AI 编译器也成了目前 AI Infra 倒退最为迅猛的畛域之一。阿里 PAI 团队的杨军老师也写过对于 AI 编译器的综述。

既然是编译器,则又会呈现咱们前文所说的,编译器用户是谁以及接口约定的问题。此外还有通用编译优化 vs. 专有编译优化的问题。比方搜推广业务,因为其模型构造的特殊性,往往就会自建专有编译优化,专门总结出某些优化 Pattern 以撑持模型迭代带来的海量推理算力需要。而通用的编译优化算法,其实很难将这些特定的 Pattern 形象整合到优化规定中去。

另一方面,AI 编译器的图优化算法往往对一般算法同学不太敌对,起因在于很可能略微对模型进行一些改变,就会导致原有优化规定无奈命中。而无奈命中的起因,往往也不会给出提醒。这就又回到了前文所说的 CPU 高性能编译器的问题,尽管编译器看似很弱小很通用,能够暗藏硬件细节。但 理论能写出高性能代码的用户,个别还是须要对硬件的底层逻辑有充沛的理解,并且理解编译器的实现逻辑以进行检查和验证。

所以 AI 编译器到底是像 torch.compile 那样帮忙小白用户一键晋升性能,还是仅作为一个自动化工具,为具备底层认知的高性能模型工程师进步研发效率呢?目前来看两者均有,比方 OpenAI 也在 2021 年公布了 Triton,能够用 Python 的语法更加不便地进行类 CUDA GPU 编程。像 Triton 这样的工作就是既须要程序员大抵理解 GPU 多线程模型的原理,又大幅升高了入门门槛。而 TVM 也同样在一直降级,比方能够看看天奇大神写的《新一代深度学习编译技术改革和瞻望》。将来的 AI 编译器会如何倒退,让咱们刮目相待!

【2020 年】【数据 / 算力】:Tesla FSD

工夫来到 21 世纪的第三个 10 年,此时公众感知到的 AI 畛域略微会有点爽朗。因为上一波 AlphaGo 带起的 RL 反动还没有在理论场景中获得大量收益,L4 无人驾驶也陷入瓶颈,其余 AI 之前画的饼都还在纸上。搜推广的工程架构也从 3.0 做到了 4.0 再到 5.0,6.0,7.0……

正当大家还在思考,AI 有什么搞头时,这一年 Andrej Karpathy 带队的的 Tesla 忽然放了大招,公布了纯视觉架构的 Full Self-Driving 无人驾驶计划,还间接在随后每年的 Tesla AI Day 上颁布残缺的技术计划:BEV 感知、数据闭环 Data Engine、端上 FSD 芯片,云端 Dojo 超大规模训练引擎等。一石激起千层浪,Tesla 一下扭转了行业的认知,在国内大部分主动驾驶公司的 PR 稿里,都能看到其影子。

配图来自 Tesla AI day

能够说,Tesla 把监督学习的工程架构又拔到了一个新高度:大规模的半自动标注引擎、大规模的被动难例数据收集、大规模的分布式训练和模型验证,底层的 AI Infra 撑持着几十个感知规控模型的继续迭代。

【2022 年】【数据】:Unreal Engine 5

工夫来到 2022 年 4 月,ChatGPT 还有 8 个月达到战场,而这个月 UE5 正式公布。关注的同学想必都晓得,成果那是无比的惊艳:Nanite 的超大规模三角面片实时渲染,Lumen 的动静全局光照。在官网 DEMO《The Matrix Awakens》里咱们也能看到现今实时渲染到底能做到什么程度。

配图来自 Unreal Engine 官网

那 UE 5 是不是 AI Infra 呢?答案也是必定的。首先,基于 UE4 的各种开源仿真渲染工具比方 AirSim,CARLA 早就在无人机、无人驾驶上被大规模用来生成训练数据。而在 GTA 外面训练无人车,在 MuJoCo 训练君子跑步 (MuJoCo 已在 2021 年被 Deepmind 收买) 也都不是新鲜事了。UE5 如此革命性的更新,外加整个材质构建、3D 模型产线的倒退,也必然会让实时渲染仿真的成果一步步迫近实在的物理世界。

恩,DeepMind + MuJoCo + UE5 会不会在将来某天放大招?让咱们刮目相待。

【2022 年】【数据 / 研发工具】:HuggingFace 融资 1 亿美元

关注 AI、GPT 的同学最近必定常常看到这个笑脸,可是 Hugging Face 到底做了什么,为什么也能成为 AI Infra 的要害一环并在 2022 年胜利融资一个亿呢?如果你晓得 OpenCrawl、Pile、Bigscience、Bigcode、PubMed 这些我的项目,那你肯定也是在钻研 LLM 训练数据的老兄。而你会惊奇地发现,原来很多语料库数据,都曾经被整顿好放在 Hugging Face 上了。他们还整了个 Python 包,名字就叫 Datasets!

人不知; 鬼不觉中,Hugging Face 曾经成为了 AI(至多 NLP)畛域的 Github for Data & Model。看到这里有同学要问了,搞了这么多年 AI 的人脸识别、搜推广、主动驾驶公司,素来都说数据就是最强壁垒,没听说过谁家会把最宝贵的数据和模型开源放到网上呀。但事件到了 LLM、到了 GPT 这,却产生了本质性的改观。目前多模态大模型应用的这些数据,人造就是存在于互联网上的,自身就是 Open 的,获取比拟容易(版权问题除外)。所以当初的模式变成了大家一点点地帮忙收集、整顿数据,最终制作出了大量高质量的原始语料库(比方 LAION 组织的创始人就是一位 高中老师)。

其实对于 LLM 和 AGI,将来很可能是这样格局:数据 + 算力 + 算法这个传统 AI 三要素中,数据因为开源可能反而不是惟一壁垒了,在有芯片硬件的大厂里,最初比拼的就是算法和基于 AI Infra 打造的迭代速度了!

【当下】:OpenAI 有什么 AI Infra?

那么,AI Infra 对于打造 GPT 有什么帮忙呢?从 OpenAI 被公开的 架构 来看,上文提到的方方面面根本都有波及。而在 Compute 和 Software-Engineering 两 Topic 下,也能够看到 OpenAI 本人发表的大量对于 AI Infra 的博客。其中很多是在算力 - 算法 Co-Design 的方向。比方在 2021 年初,OpenAI 治理的 K8S 集群达到了 7500 个节点的规模(4 年前是 2500 节点)。而后在 21 年 7 月份开源了后面提到的 Trition,一个能用 Python 语法实现 GPU 高性能编程的编译器。22 年的时候也花很大的篇幅介绍了他们进行大规模分布式训练的技巧。

不难看出,最大限度地让算法研发用上用好海量的算力资源,是 OpenAI Infra 的头等目标。另一方面,从 AI and Compute 和 AI and Efficiency 两篇文章中能看到,OpenAI 花了不少精力在剖析随着工夫的演进,最强模型所需算力的增量曲线,以及因为算法改良而导致的算力效率变动曲线。而相似这样的剖析,也在 GPT- 4 的 Predictable scaling 中失去了体现。也就是说,给定训练算法,所耗费的算力与所能达到的智能水平是可被预测的 。这种「 算力算法 Co-Design」的指标就能很好地去领导算法研发 vs. 工程架构降级的节奏和方向。

除了算力这条线,AI 开源社区的停顿也是突飞猛进,想必很多也为 GPT 的呈现做出了奉献。除了 Hugging Face,还有很多值得称道的 AI 守业公司不断涌现,在此笔者还来不及去细细剖析各家公司的工作和意义。但改革未然在一直产生,新事物的呈现速度未然是以周为单位。

【结语】

最近几个月 AI 的倒退速度,的确远超笔者之前的认知。毫无疑问,AI2.0 的时代曾经到来,上一代基于纯监督学习的范式未然不够用。AI 画的饼大家也都吃进了嘴里,而且真香!作为 AI 从业者,过来几个月也让笔者心潮澎湃。尽管看完了本文,你还是无奈做出 GPT,但想必你也看到了 AI Infra 这 20 年的倒退。无论将来 AI 算法往哪走,底层的算力层和底层的零碎仍然会是算法研发的基石

回望这 20 年的倒退,从 03 年到 13 年这十年是 Web1.0 的时代,笔者还是个孩子;13~23 年笔者全程目击了 AI1.0 和 Web2.0 的倒退浪潮,但更多时候也只是个吃瓜大众。而将来的十年,天然是 AI2.0 和 Web3.0 革命性的十年,笔者齐全无奈设想 10 年后的明天,世界会是什么样的样子。但惟一确定的是,这一次终于能够残缺参加其中,跟气味相投的小伙伴们一起做出能影响行业的事件!

话都说到这里了,不发广告怎么行呢?咱们是 高德视觉技术核心的训练工程平台团队 ,负责反对数据闭环、大规模训练、算法服务化等各种算法工程化需要。咱们力求在 AI2.0 时代打造有技术差异性的 端云协同一体 AI Infra,一方面会复用团体和阿里云大量的中间件,一方面会自建很多专用 AI 工具链。而 高德视觉,目前也成为了团体最大的视觉算法团队之一,反对高精地图、车道级导航、智能出行等多种业务,波及感知辨认、视觉定位、三维重建和渲染等多个技术栈。

正文完
 0