导读
最近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全貌的雏形:
- 算力 :须要弱小的CPU/GPU为各种数值计算工作提供算力反对,同时编译器须要为高性能工程师提供良好的编程接口。
- 框架 :针对特定的Workload形象出一个既有通用性,又满足肯定束缚的编程范式。使得执行引擎能够一站式提供诸如分布式计算、容灾容错、以及各种运维监控的能力。
- 研发工具 :AI和数据算法研发冀望在代码编写时是能实时交互反馈的;开源社区要求代码和其余生产资料可能被很容易地打包、公布、集成、以及版本治理。
- 数据 :须要一个提供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工具链。而 高德视觉,目前也成为了团体最大的视觉算法团队之一,反对高精地图、车道级导航、智能出行等多种业务 ,波及感知辨认、视觉定位、三维重建和渲染等多个技术栈。