
这个问题其实非常适合拿系统设计的思路来理解。AI 的发展史配资股票配资按月配资,同样是一部 system design 不断随着 constraint 和 cost curve 改变而重新做 trade-off 的历史。
AI 这几十年的发展,和很多大型工程系统一样,核心一直都是 constraint、trade-off 和 cost。一个时代有什么硬件,能承担多少计算,内存多少钱,网络多快,存储多贵,最后决定了这个时代能采用什么样的解决方案。
很多理论早就有了。真正卡住实践的,往往是工程边界。
先从互联网讲。
90 年代早期的互联网,Yahoo 干的事情现在看非常原始,基本就是互联网黄页。当时网站还没那么多,人可以手工把网站分成新闻、娱乐、商业、科技,然后一层一层做目录。为什么这么干?因为这是当时最便宜的办法。你站在今天看,肯定觉得荒唐。为什么不爬取全网?为什么不做全文搜索?为什么不做 semantic search?
问题是,1995 年的 CPU、存储和网络都是什么价格?工程设计从来不能脱离 cost。
网页数量从几十万、几百万迅速膨胀以后,人工目录首先撞上 scalability boundary。于是新的问题出来了:怎么自动发现网页?怎么快速找到包含某个关键词的页面?Crawler、倒排索引这些东西就起来了。
搜索引擎提前把网页抓下来,建立 inverted index。用户搜“北京天气”的时候,系统根本不需要现场重新读一遍全互联网,只需要去 index 里找到哪些文件包含“北京”,哪些包含“天气”,再进行 ranking。
这其实就是一个非常经典的系统设计。把贵的工作提前做。用 offline computation 换 online latency。用 storage 换 compute。预计算、索引、缓存。今天做后端开发的人应该对这套东西非常熟悉。
然后互联网继续变大。
能搜出来已经不够了,因为搜一个词可能出来几十万个网页。新的瓶颈变成 ranking。Google 的 PageRank 就是在解决这一层问题。互联网本身就是一个巨大的 graph。一个网页链接另一个网页,可以看成一次投票,重要网页投出来的一票权重更高。
于是 Google 可以利用整个互联网的 link structure,提前计算网页的重要性。这里仍然有一个很关键的工程特点:PageRank 也可以离线算。Google 不需要每收到一次 query,就现场遍历几十亿网页之间的 link graph。Crawler 抓网页,建立 index,提前计算各种 ranking signal。用户真正搜索的时候,只需要在已经准备好的结构上快速 retrieval 和 ranking。
为什么 00 年代的互联网主要长成了搜索引擎这个样子?因为在当年的计算成本下,这套架构的性价比最高。技术发展很多时候并不是大家突然发现了一个此前从未有人想到的 idea。更多时候,是边界发生变化以后,原来不划算的方案突然开始划算了。
AI 尤其如此。神经网络一点都不新。很多基础理论已经存在了几十年。人工神经元模型可以追到 1940 年代,Perceptron 是 1950 年代的,back propagation 研究了几十年,CNN 也远早于 2012 年,LSTM 是 1997 年的。
理论经常领先实践几十年。
数学史上这种事情到处都是。非欧几里得几何出现的时候,大家也不知道后来还能拿去描述时空。理论只负责告诉你,这条路在数学上可能存在。
真正走过去,是另外一回事。AI 长期以来最大的现实问题,就是计算。一个神经网络写在纸上当然不难。真正 scale 起来,就完全是另一回事。拿语言模型来说,可以把训练过程极度简化成一件事情:给模型前面一串 token,让它预测下一个 token。猜错了,计算 loss,通过 back propagation 调整参数。
然后继续。几千亿次,几万亿次。
模型越来越大以后,每一步都涉及海量的矩阵运算。GPT-3 有 1750 亿个参数,训练所需的计算量已经到了大约 10^23 FLOPs 这个量级。这个数字放到 2000 年的硬件条件下,已经没什么工程讨论价值了。
理论上当然能算。工程上算不起。工程里面从来不能只问一句 Can it be done,还得问第二句:
At what cost?
如果一个模型需要跑十年,烧掉几十亿美元,最后效果还不一定比成熟的统计模型、SVM、hand-crafted feature 好,那这条路线在商业世界里基本等于不存在。这里还有一个很重要的时代差异。
传统互联网行业相当长一段时间里,工程师最常解决的其实是 I/O 问题。为什么数据库要建 index?为什么要 cache?为什么后来 Redis 这种东西到处都是?为什么系统设计天天讲 locality、sharding、replication?
因为很多传统 workload 里面,CPU 本身并没有忙到极限。数据得先从 disk、database、memory 或者 network 搬过来,CPU 算几下,再把结果送出去。大量时间花在等数据。
所以传统互联网系统优化,很多时候都围绕一件事展开:少搬数据,少等数据。能 cache 就 cache,能 index 就别 full scan,能顺序访问就别随机访问,能在本机处理就尽量少过网络。很多时候 CPU 是在等 I/O。
到了深度学习,这个画风发生了很大的变化。神经网络的大量计算其实并不复杂。乘法,加法,矩阵乘法。
问题是海量。
你给它更多 compute,它真能吃掉。模型越大、token 越多,需要做的 multiply-accumulate 就越多。以前很多互联网系统绞尽脑汁减少 computation,到了大模型训练这里,反过来了:几万张 GPU 一张卡都贵得要死,你得想办法把它们全部喂饱,绝对不能让计算单元在那里闲着。
所以理解这一轮 AI 革命,不能只盯着算法史看。还得看另一条线:HPC,尤其是 massive parallel computing。CPU 的设计思路和这种 workload 不太一样。CPU 有少量非常复杂的 core,擅长 branch、复杂控制流、操作系统、数据库这些东西。
GPU 最早是为了画游戏。
一个屏幕几百万个 pixel,每一帧都要对大量数据执行高度相似的计算。所以 GPU 天生走的就是大规模并行计算这条路。几百个、几千个,后来几万个计算单元一起干活。
结果 deep learning 一看:这东西简直是给自己量身定做的。2012 年 AlexNet 的意义就在这里。CNN 已经存在很多年了。ImageNet 提供了以前没有的大规模标注数据。Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 又把 GPU 真正用到了大规模 neural network training 上。
两张 GTX 580。
然后 ImageNet 的效果直接跨了一个台阶。整个行业开始重新计算以前的 trade-off。过去搞 neural network,训练慢,模型小,成本高,效果还经常干不过传统机器学习,那当然没人愿意大规模押这个方向。
GPU 把 compute cost 打下来以后,原来的账就得重新算。这跟很多 system design 的变化完全一样。RAM 贵的时候,大家拼命省内存。RAM 便宜以后,疯狂 cache。机械硬盘时代,database architecture 要高度考虑 seek 和 sequential I/O。SSD 普及以后,一大堆以前天经地义的 trade-off 都得重算。
网络很贵的时候,计算尽量本地。Network bandwidth 上去以后,distributed system 才能越铺越大。Underlying cost curve 一变,architecture 就会跟着变。神经网络也是这么活过来的。
然后单张 GPU 很快又撞到了新的 boundary。模型放不下了。训练太慢了。
怎么办?
把一张卡的问题变成很多张卡的问题。Data parallelism、model parallelism、tensor parallelism、pipeline parallelism,一个接一个出来。几十张 GPU,几百张,几千张,几万张。
然后新的问题马上又来了。
GPU 自己算得很快,可 GPU 之间交换数据太慢。于是 bottleneck 开始从单纯的 compute 转向 interconnect。
PCIe 不够,搞 NVLink。
单机不够,上高速 Ethernet、InfiniBand。GPU 的 arithmetic throughput 又继续往上涨,然后发现 memory bandwidth 跟不上。于是 HBM 开始变成关键资源。
然后又是一个循环。
前面说传统互联网长期在解决 I/O,AI 好像终于变成了 compute 问题。结果 compute 被疯狂堆起来以后,I/O 又回来了。
只不过这时候的 I/O 已经不是“CPU 等硬盘”那么简单。现在变成了几万张每张价值几万美元的 GPU 在等数据。HBM 不够快,GPU 等。NVLink 不够快,GPU 等。InfiniBand 堵了,GPU 等。Storage 喂不进来,GPU 还是等。
所以现代 AI 基础设施里面大量所谓的“高科技”,说穿了还是在解决那个古老的问题:
别让昂贵的计算单元闲着。模型继续往上堆以后,单纯算得快又不够了。一万张 GPU 里面总会有机器挂掉。Network 会抖。Storage 会堵。训练跑一个月,不可能第 29 天坏一张卡,然后所有人从第一天重新来。
于是 checkpoint、fault tolerance、job scheduling、distributed storage、collective communication 全进来了。
走到这个阶段,再把 AI 单纯理解成一个算法问题,基本就理解偏了。它已经变成了一个超大规模 distributed system。而 distributed system 最经典的剧情就是,永远有下一个 bottleneck。
Compute 搞上去了,memory 开始卡你。Memory 上去了,network 开始卡你。Network 提速了,storage 又不够。Storage 跟上以后,reliability 开始出问题。Cluster 再扩大,最后 power 和 cooling 又出来了。
技术 progress 很多时候就是这么发生的。找到现在最窄的 pipe,把它拓宽。然后第二窄的那个马上暴露出来。
继续搞。
2017 年 Transformer 出来以后,这条线又发生了一次很重要的变化。Transformer 的理论创新当然非常重要,但它还有一个特别适合这个时代的工程特征:Parallelism 好。以前 RNN 的 sequential dependency 很重,前面的状态和后面的计算有天然的顺序关系。
GPU 最不喜欢这种 workload。花一大堆钱买来的并行计算单元,全在那里排队。Transformer 可以把大量计算转化成 matrix operation,一次喂给 GPU 大量 token。于是 algorithm 和 hardware 开始互相强化。GPU 越来越适合 deep learning,model architecture 也越来越围绕 GPU 的特点演化。
Tensor Core 为什么会出现?因为 AI workload 已经值钱到值得单独设计芯片。为什么这几年 HBM 突然成了战略资源?因为 arithmetic throughput 上去以后,给 GPU 喂数据变成了问题。为什么 NVIDIA 拼命搞 NVLink?因为一张 GPU 已经根本装不下最大的 model。为什么 Google、Amazon、Microsoft 全都开始自己搞 accelerator?因为 workload 到了这个规模以后,省 10% cost 都是天文数字。这就又回到了 system design 最基本的东西。
Cost。
一天一千个 request 的服务,单次多花几分钱,可能没人在意。一天跑几万亿 token,每个 token 多一点 cost,最后全是 gross margin。于是今天 AI 前沿里面很多看起来特别高深的东西,其实还在干同一件事:
把当前系统里最贵的那一块弄便宜。Dense model 太贵,就搞 MoE,一次只 activate 一部分 parameters。FP32 太贵,就 FP16、BF16、FP8。Model 太大,就 quantization。Inference latency 太高,就 batching、speculative decoding、KV cache optimization。所有 query 都跑最大模型太贵,就 model routing。简单问题扔给小模型,复杂问题再升级。
Long context 太贵,就继续折腾 attention。GPU 太贵,就自己做 ASIC。High-quality data 快吃完了,就 synthetic data、RL、self-play。Model 只靠参数记知识容易 hallucinate,就接 retrieval、tools、search。
你会发现,这几十年其实一直是同一个 loop。当前有一个 boundary。在这个 boundary 里面找到最合理的 solution。Solution 跑起来以后,规模继续增长。新的 bottleneck 出现。
再设计新的 solution。
所以回头看 2000 年,会发现当时其实已经有很多今天 AI 所需要的东西。互联网有了。数据开始爆炸。搜索引擎有了。神经网络有了。Backpropagation 有了。CNN 有了。LSTM 也已经有了。
缺的是整个 engineering stack。如果你在 2000 年让一个工程师设计一个全球知识系统,他大概率会选择 crawler、index、ranking、cache。
这是当时非常合理的架构。
能够预计算的全部预计算。昂贵工作尽量扔到离线。用户 query 的时候只做快速 retrieval。因为 compute 太贵了。你如果提出另外一条路线:
我们把全互联网的数据都喂进一个几百亿、几千亿 parameter 的 neural network,把信息压进 parameter 里面,然后用户直接跟模型聊天。Idea 可以很酷。老板大概只需要问几个问题:要多少机器?训练多久?多少钱?结果比 Google 好多少?然后这个项目基本就可以散会了。到了 2020 年代,这几道题的答案开始同时发生变化。GPU performance 上来了。先进制程上来了。HBM 上来了。Datacenter network 上来了。Distributed computing 成熟了。CUDA 成熟了。PyTorch 这类 framework 把开发门槛压下来了。Cloud infrastructure 成熟了。Transformer 又提供了一个极其适合 parallel computing 的 model architecture。Mixed precision 继续往下打 cost。最后整个 cost curve 被重画了一遍。
以前理论上能做、工程上荒谬的事情,终于开始变得 economically feasible。然后 Scaling Law 又往这堆柴上添了一把火。人们发现,多加 parameter,多喂 data,多给 compute,很多时候 model performance 真的还会继续涨。
只要继续砸钱,有相当概率能买到更好的 intelligence。资本于是大规模进来。更大的 model 需要更多 GPU。更多 GPU 推动更大的 datacenter。更大的 workload 让 NVIDIA 有动力开发下一代加速器。更便宜的 compute 又允许训练更大的 model。
整个飞轮就转起来了。
所以今天再看 Yahoo、Google 和 Open AI,其实就是三个不同技术边界下的工程答案。互联网规模还小的时候,人肉目录够用。网页爆炸以后,crawler、index、PageRank 这套架构最划算Compute 再便宜几个数量级以后,人类才终于有资格问另外一个问题:
能不能别只给互联网建一个 index?能不能直接拿海量数据训练一个 model?这两种方案中间隔着的,核心就是 cost。
2000 年,这个问题基本没有工程意义。2020 年以后,有了。没有什么永恒的最佳架构。只有当前 constraint 下最合理的 trade-off。今天不值得做的 solution,十年以后 hardware cost 掉两个数量级,可能就是标准答案。
今天最先进的 Transformer,也没规定它一定能活到最后。哪天有人搞出一种架构,同样的 intelligence 只需要今天 1% 的 compute,整个行业的系统设计一样得重新洗一遍。
工程师真正关心的,来来回回就是那几个问题。现在最贵的是什么?现在最慢的是什么?现在最容易炸的是什么?为了改善它,我愿意拿什么东西去换?
然后算账。
理论可以领先实践几十年。最后什么时候真正改变世界,取决于工程什么时候把 cost 打下来。所谓技术进步,很多时候就是把一个问题从“做不到”,变成“理论上能做”;再从“理论上能做”,变成“贵得离谱”;然后从“贵得离谱”,变成少数大公司做得起。
最后变成普通人每个月花二十块钱,就能用。
AI 走的也是这条路。
Constraint,约束条件。系统设计里你绕不过去的硬限制,比如算力不够、显存放不下、网络太慢、电力不足、成本太高。架构设计本质上就是在一堆 constraint 里面找最优解。
Trade-off,取舍。改善一个指标通常要牺牲另一个指标。比如多用内存可以减少磁盘访问,用更多机器可以缩短训练时间,但成本和系统复杂度会上升。
Scalability,可扩展性。一个系统从 1 万用户增长到 1 亿用户,或者从 8 张 GPU 扩展到 1 万张 GPU 时,还能不能正常工作。很多架构小规模很好用,一放大就崩。
Scalability boundary,可扩展性边界。某种方案继续扩张时开始明显失效的位置。比如人工维护互联网目录,在网站只有几万个时没问题,几百万个以后就基本玩不下去了。
Crawler,网络爬虫。自动访问网页、发现新链接并把网页内容抓回来的程序。搜索引擎首先需要靠它把互联网“搬”回来。
倒排索引,Inverted Index。搜索引擎最基础的数据结构之一。普通索引可以理解成“这篇文章里有哪些词”,倒排索引反过来记录“这个词出现在哪些文章里”。这样搜一个词时不用重新扫描所有网页。
Index,索引。为了提高查询速度而提前建立的数据结构。核心思想就是多占一点存储、多做一点预处理,换取查询时少干活。
Ranking,排序。搜索引擎已经找到几万个相关网页以后,还得决定谁排第一、谁排第二。这个过程就是 ranking。
PageRank,网页排名算法。Google 早期最著名的算法之一。基本思想是把网页之间的超链接看成投票,同时让重要网页投出的票权重更高,从整个互联网的链接结构估算网页的重要程度。
Graph,图。在计算机科学里,graph 不是柱状图、折线图那个“图表”,而是由节点和节点之间的连接组成的数据结构。互联网网页可以看成节点,超链接就是节点之间的边。
Link Structure,链接结构。网页彼此通过超链接连接形成的网络关系。PageRank 利用的就是这个结构。
Offline Computation,离线计算。提前慢慢算,不要求用户等待。比如每天凌晨重新计算网页排名。只要用户搜索时结果已经准备好就行。
Online Latency,在线延迟。用户真正发出请求以后,需要等待多久才能拿到结果。搜索引擎希望把大量复杂计算放在 offline,换取非常低的 online latency。
Precomputation,预计算。把以后可能反复用到的结果提前算好保存起来。索引、缓存、PageRank 都带有这种思想。
Cache,缓存。把经常需要的数据放到更快的位置,避免每次都重新读取或者重新计算。本质上通常是拿 storage 换 latency 和 compute。
Retrieval,检索。从大量已有信息里找到最相关的那一部分。传统搜索引擎主要做 retrieval,今天很多 AI 系统也会先 retrieval,再让大模型处理结果。
Semantic Search,语义搜索。传统关键词搜索主要看你输入了什么词,semantic search 更关注“你到底想表达什么”。比如搜索“苹果手机厂商”,即使网页没有完全相同的文字,也可能匹配到 Apple。
Artificial Neural Network,ANN,人工神经网络。受生物神经网络启发构造的一类数学模型,通过大量参数和层级结构学习输入与输出之间的关系。
Artificial Neuron,人工神经元。神经网络里最基本的计算单元。简单理解就是接收一批数字,乘上不同权重,加起来,再通过一个函数产生输出。
Perceptron,感知机。1950 年代提出的早期神经网络模型,是后来各种 neural network 的重要祖先。
Backpropagation,反向传播。神经网络训练的核心方法之一。模型产生错误以后,从输出端往回计算每个参数对错误贡献了多少,然后按这个方向修改参数。
CNN,Convolutional Neural Network,卷积神经网络。特别适合处理图像的一类神经网络。通过卷积操作识别边缘、纹理、形状等局部特征。AlexNet 就属于 CNN。
LSTM,Long Short-Term Memory,长短期记忆网络。一种改进型循环神经网络,1997 年提出,主要用于处理序列数据,并缓解普通 RNN 很难记住长期信息的问题。
Token,词元。大语言模型处理文字时的基本单位,不一定正好等于一个汉字或者一个英文单词。一个英文单词可能拆成几个 token,一个汉字也可能对应一个或多个 token,取决于 tokenizer。
Loss,损失函数。衡量模型“错得有多严重”的数字。训练的目标就是不断调整参数,让 loss 越来越低。
Parameter,参数。模型通过训练学出来的内部数字。所谓 70B model,就是大约有 700 亿个可训练参数。参数越多通常意味着模型容量越大,但计算和存储成本也越高。
Matrix Operation,矩阵运算。把大量数字排成矩阵以后进行乘法、加法等运算。现代神经网络绝大部分计算最终都可以归结为大规模矩阵运算。
FLOP,Floating Point Operation,浮点运算。一次浮点数计算,比如一次加法或者乘法。
FLOPs。这个词在不同上下文有两种常见用法。描述硬件性能时,通常是 Floating Point Operations Per Second,也就是每秒能进行多少次浮点运算;描述训练总计算量时,人们也常说“用了多少 FLOPs”,指整个训练过程中完成了多少次浮点运算。
I/O,Input/Output,输入输出。数据在 CPU、内存、硬盘、网络和其他设备之间搬运的过程。很多传统系统真正慢的地方不在“算”,而在“把数据送过来”。
Workload,工作负载。一套硬件或者系统具体要运行的任务类型。数据库、网页服务、AI 训练虽然都跑在计算机上,但 workload 完全不同,因此适合的硬件和架构也不同。
Locality,局部性。尽量让计算靠近数据,或者让近期会再次访问的数据留在高速存储中,减少昂贵的数据搬运。
Sharding,分片。把一大份数据或者任务拆成很多份,分散到不同机器上。大型数据库和分布式 AI 系统都会大量使用。
Replication,复制。把同一份数据保存多个副本,通常是为了提高可靠性、读取性能或者容灾能力。
Full Scan,全量扫描。不依赖索引,把全部数据从头到尾检查一次。数据量大以后非常昂贵,因此数据库和搜索引擎才需要 index。
HPC,High Performance Computing,高性能计算。利用大量 CPU、GPU、高速网络和并行算法完成普通计算机无法承受的大规模计算任务。
Massive Parallel Computing,大规模并行计算。把一个巨大任务拆成大量可以同时执行的小任务,让成千上万个计算单元一起运行。GPU 和现代 AI 的结合很大程度上建立在这个能力上。
Branch,分支。程序根据不同条件走不同路径,比如 if/else。CPU 很擅长处理复杂 branch,而 GPU 更喜欢大量线程做类似的工作。
ImageNet。一个大规模图像数据集和相关视觉识别竞赛,对 2010 年代深度学习爆发影响巨大。它给研究者提供了以前很难获得的大规模统一训练和评测数据。
AlexNet。2012 年 ImageNet 竞赛中的著名 CNN,由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 团队完成。它利用 GPU 训练深层神经网络,并以巨大优势击败当时的传统方法,成为这一轮深度学习浪潮的重要标志。
Labelled Data,标注数据。已经有人告诉模型“正确答案”的训练数据。比如一张图片明确标注为“猫”,模型就可以通过它学习猫的视觉特征。
Traditional Machine Learning,传统机器学习。通常指深度学习全面兴起以前常见的各种算法,比如逻辑回归、决策树、随机森林、SVM 等。
SVM,Support Vector Machine,支持向量机。深度学习兴起前非常重要的一类机器学习算法,在分类问题上曾长期占据重要位置。
Hand-crafted Feature,人工设计特征。工程师根据经验先决定哪些信息有用,再把这些特征交给机器学习算法。深度学习的重要优势之一,就是越来越多的 feature 可以直接从数据中自动学出来。
Sequential I/O,顺序 I/O。连续读取存储设备上的数据。机械硬盘时代,顺序读取通常远快于到处随机跳着读取。
Distributed System,分布式系统。由多台独立机器共同完成一项任务的系统。大规模互联网服务和今天的大模型训练集群本质上都是分布式系统。
Data Parallelism,数据并行。每张 GPU 放一份相同模型,但分别处理不同训练数据,最后汇总梯度。是最经典的多 GPU 训练方式之一。
Model Parallelism,模型并行。一个模型太大,单张 GPU 放不下,于是把模型拆到不同 GPU 上共同计算。
Tensor Parallelism,张量并行。把同一层里的大型矩阵或 tensor 运算进一步拆给多张 GPU 同时计算,是大型语言模型训练常用的并行方法。
Pipeline Parallelism,流水线并行。把模型不同层分布到不同 GPU 上,让不同批次的数据像流水线一样同时经过模型的不同阶段。
Bottleneck,瓶颈。整个系统里最限制性能的那一部分。优化系统的本质很多时候就是不断找到并消灭当前最大的 bottleneck。
PCIe,Peripheral Component Interconnect Express。服务器内部连接 CPU、GPU、SSD 等设备的高速总线。通用性非常强,但大型 AI 集群里有时带宽仍然不够。
NVLink。NVIDIA 开发的 GPU 高速互联技术,可以让 GPU 之间交换数据的速度显著高于传统 PCIe。
Ethernet,以太网。今天数据中心最普遍的网络技术。随着高速 Ethernet 持续发展,也被越来越多地用于大型 AI 集群。
InfiniBand,一种高性能低延迟网络技术。长期大量用于 HPC 和 AI 集群,尤其适合机器之间需要频繁交换大量数据的 workload。
Arithmetic Throughput,算术吞吐量。芯片单位时间内能完成多少计算。比如 GPU 的矩阵乘法性能越来越高,就是 arithmetic throughput 在增加。
Memory Bandwidth,内存带宽。处理器每秒可以从内存读取或者写入多少数据。GPU 算得再快,如果数据送不过去,计算单元一样只能等。
HBM,High Bandwidth Memory,高带宽内存。专门追求极高数据传输速度的一类内存,通常与 GPU 或 AI accelerator 紧密集成。现代 AI 芯片性能越来越受 HBM 容量和带宽限制。
Checkpoint,检查点。训练过程中定期保存模型状态。这样中途机器故障以后,可以从最近一次 checkpoint 继续,而不用重新训练。
Fault Tolerance,容错。系统里某些机器、网络或者组件发生故障后,整个系统仍然能够继续工作的能力。
Job Scheduling,任务调度。决定哪些计算任务什么时候运行、分配到哪些 GPU、占用多少资源。大型 AI 集群里这本身就是一个复杂系统。
Distributed Storage,分布式存储。把数据分散保存到多台机器上,并共同提供统一存储服务,用于处理单机无法承受的容量和吞吐量。
Collective Communication,集合通信。大量 GPU 训练时常见的一组通信操作,比如 broadcast、all-gather、all-reduce,让很多 GPU 能够同步和交换数据。
All-reduce。分布式训练里极其重要的一种 collective communication。简单理解,就是让很多 GPU 把各自计算出的结果汇总,再把汇总结果发回所有 GPU。
Reliability,可靠性。系统长时间运行时保持正常工作的能力。一个训练任务涉及几万块 GPU 时,即便单台机器故障概率非常低,整个集群里“总有东西会坏”也会变成常态。
Transformer。2017 年提出的一类神经网络架构,后来成为现代大语言模型的核心基础。它的重要优势之一,是大量计算非常适合 GPU 并行执行。
RNN,Recurrent Neural Network,循环神经网络。处理序列数据的一类早期重要神经网络。其计算天然带有较强的前后顺序依赖,因此很难像 Transformer 一样充分利用 GPU 并行能力。
Sequential Dependency,顺序依赖。后一步计算必须等前一步完成才能继续。顺序依赖越强,可以并行执行的工作就越少。
Parallelism,并行性。一个任务中可以同时执行多少计算。现代 AI architecture 是否具有良好的 parallelism,会直接决定它能不能高效利用大型 GPU 集群。
Tensor Core,张量核心。NVIDIA GPU 中专门用于高速矩阵乘加等 AI 运算的硬件单元。可以理解成芯片已经开始为了 neural network workload 专门长出新的器官。
Accelerator,加速器。针对某类计算专门设计的芯片。GPU 是一种 accelerator,Google TPU、Amazon Trainium 等也属于 AI accelerator。
ASIC,Application-Specific Integrated Circuit,专用集成电路。针对特定用途专门设计的芯片。通用性不如 CPU、GPU,但如果 workload 足够稳定,可以换来更高性能或者更低成本。
Dense Model,稠密模型。每次运行时,大部分甚至所有参数都参与计算的神经网络。传统 Transformer 大多属于这种模式。
MoE,Mixture of Experts,混合专家模型。模型内部有多个“专家”,每次处理一个 token 时只调用其中一部分。这样可以拥有非常多参数,同时避免每次都把所有参数算一遍。
FP32,32 位浮点数。过去深度学习训练常用的数据精度。精度高,但占内存、带宽和算力都比较多。
FP16,16 位浮点数。精度比 FP32 低,但计算更快、占用空间更小,因此被大量用于 AI。
BF16,Brain Floating Point 16。Google 推广的一种 16 位浮点格式,特别适合深度学习,在降低计算成本的同时保留较好的数值范围。
FP8,8 位浮点数。比 FP16 进一步降低精度和资源消耗。新一代 AI 芯片越来越多使用 FP8 加速训练和推理。
Mixed Precision,混合精度。不是所有计算都使用相同数值精度。重要的部分保留高精度,不敏感的部分使用低精度,以减少显存和计算成本。
Quantization,量化。把模型参数从 FP16、FP32 等高精度格式压缩成 INT8、INT4 等更低精度表示,以减少模型大小和推理成本。
Inference,推理。模型训练完成以后,真正拿来回答用户问题、生成图片、写代码的过程。训练是“学习”,inference 是“干活”。
Inference Latency,推理延迟。用户发出请求以后,模型需要多久给出结果。
Batching,批处理。把多个用户请求凑到一起送进 GPU 统一计算,可以提高 GPU 利用率和吞吐量,但可能增加部分请求的等待时间。
Speculative Decoding,推测解码。先让一个较小、较快的模型猜未来几个 token,再让大模型一次验证,从而减少大模型逐 token 生成的成本和延迟。
KV Cache,Key-Value Cache。Transformer 生成文本时保存前面 token 已经算过的一部分 attention 结果,避免每生成一个新 token 都从头计算。长上下文下 KV cache 会消耗大量显存。
Model Routing,模型路由。根据任务复杂度把不同请求发送给不同模型。简单问题用便宜的小模型,复杂问题再调用昂贵的大模型。
Long Context,长上下文。模型一次可以读取和处理非常长的文本。上下文越长,通常需要的内存、通信和计算也越多。
Attention,注意力机制。Transformer 的核心组件之一。模型在处理一个 token 时,可以动态判断上下文中哪些其他 token 更重要。
RL,Reinforcement Learning,强化学习。模型通过行动、获得奖励或者惩罚,再调整策略的学习方法。大模型后训练阶段越来越多地使用各种强化学习方法。
Self-play,自我对弈或者自我训练。模型自己产生问题、策略或者对手,再从这些交互中学习。AlphaGo 是最著名的 self-play 案例之一。
Hallucination,幻觉。模型生成听起来很合理、实际却不存在或者错误的信息。因为语言模型的基本目标是预测合理的 token,并天然不等于查询一个保证正确的数据库。
Retrieval-Augmented Generation,RAG,检索增强生成。让模型回答问题之前先去外部知识库、文档或者搜索引擎检索相关内容,再根据这些资料生成答案。
Scaling Law,规模定律。研究发现,在相当大的范围内,只要按照一定关系增加模型参数、训练数据和计算量,模型性能会呈现较稳定、可预测的提升趋势。这给“大力出奇迹”提供了某种工程依据。
Cost Curve,成本曲线。某项技术随着规模、时间和产业成熟度变化,其单位成本如何变化。AI 能在 2020 年代爆发,很重要的一点就是整个 compute cost curve 被重画了。
Economically Feasible,经济上可行。不是问“能不能做出来”,而是问“花这个钱做出来值不值”。大量 AI 理论很早就成立,但过去长期不 economically feasible。
CUDA。NVIDIA 推出的 GPU 通用并行计算平台和编程体系。它让开发者不只是拿 GPU 画图,还可以方便地用 GPU 做科学计算和 AI,也是 NVIDIA 今天最重要的软件护城河之一。
PyTorch。当前最主流的深度学习框架之一。研究人员和工程师可以用它比较方便地定义、训练和部署 neural network,而不需要自己从头写 GPU 底层代码。
Cloud Infrastructure,云基础设施。通过数据中心按需提供计算、存储和网络资源。云计算让企业不需要自己先买几千台服务器,也能快速获得大规模计算能力。
Datacenter,数据中心。集中部署服务器、GPU、存储、网络、电力和冷却设备的大型基础设施。今天最前沿的 AI model,本质上就是跑在巨型 datacenter 里的 distributed system。
Flywheel,飞轮效应。一个环节改善以后推动另一个环节,另一个环节再反过来强化第一个环节。AI 现在就是:更好的芯片→更大的模型→更强的需求→更多投资→更好的芯片。
Architecture配资股票配资按月配资,架构。系统各个组成部分如何划分、如何连接、如何协作的整体设计。不同技术时代的 cost 和 constraint 不一样,最合理的 architecture 自然也会变化。
保利配资提示:文章来自网络,不代表本站观点。