☰
AI Infra时代与全书地图:从算力到业务的系统工程实战指南
2026/10/14 6:54:01 网站建设 项目流程

算力、数据、模型训练、推理部署、资源调度……这两年“AI Infra”这个词出现频率越来越高,几乎每个搞大模型团队的人都在聊。但聊的人多,能把这摊事讲清楚的人少。这份“前言-AI Infra时代与全书地图”不是一本传统意义上的书,更像是一张从算力到业务价值的完整作战地图,把AI基础设施拆成一层一层的系统来理解。这篇文章我就基于自己的实践,把这张地图展开聊聊,也顺手把我在真实项目中踩过的坑、算过的账、选型时纠结过的点一起放进来,给正准备进入这个领域或者已经在里面摸爬滚打的同行一个参考。

1. AI Infra时代来了,到底发生了什么

1.1 三个肉眼可见的行业变化

先说说我为什么觉得“AI Infra时代”这个提法是准确的。大概两三年之前,团队做AI项目,讨论的核心还是模型结构、损失函数、准确率。那时候一个模型能不能work,主要取决于算法的创新和调参的手感。但到了大模型阶段,情况完全变了。模型结构本身趋于收敛,大家都在transformer那一套框架上做修补,真正的差距开始往工程层面转移。

第一,模型规模撑爆了单卡极限。几年前训练一个视觉模型,几张卡跑几天就完事。现在动辄百亿、千亿参数的模型,单卡连参数都装不下,必须切分到几十甚至上千张卡上,这就涉及到并行策略、通信拓扑、显存管理一堆问题。

第二,GPU集群成为硬资产。以前买服务器是按台算,现在采购GPU是按“集群”算,一个集群少则几十卡,多则上千卡。硬件多了,故障率就跟着上来。我见过不少团队,模型代码写得没问题,最后卡在显卡故障、通信超时、存储瓶颈上。

第三,成本模型变了。大模型训练一次的费用从几十万到上千万元不等,推理服务每月的账单也高得吓人。以前我们不太会精细计算每次实验花了多少钱,现在leader第一句就问“这次训练烧了多少卡时”。这个变化逼着每个工程师都得懂一点成本估算和资源规划。

这三个变化放到一起,你会发现:单纯会写模型代码已经不够用了,从硬件选型、集群部署、数据流水线、训练框架,到推理优化、资源调度、成本控制,整条链路才是决定项目成败的关键,这就是AI Infra要解决的问题。

1.2 AI Infra的边界:从机房到应用之间的整条链路

AI Infra这个词听起来很玄,但拆开看其实没那么复杂。我习惯把它的边界画成一条从机房到业务的链路:

  • 硬件资源层:GPU、CPU、内存、高速存储、网络交换设备,这是所有计算的地基。
  • 集群与调度层:把一堆物理机器组织成一个逻辑上统一的资源池,解决“谁用哪张卡”“怎么排队”“故障怎么迁移”的问题。
  • 数据与存储层:数据采集、清洗、去重、格式化、存储介质选择,以及训练过程中数据怎么高效喂给GPU。
  • 训练与微调框架层:分布式训练、并行策略、显存优化、断点续训、超参调优。
  • 推理与服务层:模型压缩、推理加速、服务编排、弹性伸缩、高并发保障。
  • 观测与运维层:监控指标采集、日志、链路追踪、告警、成本账单。

这六层串起来,基本就是AI Infra的全貌。大多数团队实际的痛点不在某一层,而在层与层之间的衔接上。比如数据管道出问题导致GPU空转,表面看是数据层的锅,实际是存储带宽规划不合理;再比如训练过程中频繁OOM,不一定是显存不够,可能是并行切分策略选择不当。这套地图存在的意义,就是帮人建立整体视角,出问题的时候知道往哪个方向排查。

1.3 为什么是“时代”:瓶颈已经完成了从模型到系统的转移

“时代”这两个字不是说AI火了就算时代,而是指整个技术栈的核心瓶颈发生了转移。

早期AI的瓶颈在算法,谁能设计出更好的网络结构,谁就能刷榜。中期瓶颈在数据和算力,谁手里的数据多、GPU多,谁就有优势。现在这批大模型把算力需求推到前所未有的高度,瓶颈变成了“系统能力”——你有没有一套系统能让几千张卡的利用率保持在40%以上?能不能在训练中途某个节点故障时快速恢复而不是从头再来?能不能在推理高峰时弹性扩容而不是盲目留一堆闲置资源?

这些问题不是靠某一个算法突破能解决的,而是靠一套系统工程能力。这种系统能力就是AI Infra。当一个问题需要系统化解决而不是靠单点技术突破时,说它是“一个时代”,并不夸张。

2. 全书地图:怎么理解这套知识体系

2.1 地图总览:五层链路与三层横切

我拿到这份“全书地图”的第一感觉是:它把AI Infra分成了五层主链路和三个横切面。这个分类方法很实用,既有纵向的层次感,又有横向的关联性。

五层主链路是:算力层、数据层、训练层、推理层、平台层。每一层都对应一类具体问题和一批工具选择。三层横切面是:可观测性、成本治理、安全合规。横切的意思就是不管你在哪一层干活,都要同时考虑这三个方面。

这个结构的好处是方便“定位”。比如一个训练速度慢的问题,你先判断是算力层利用率不够,还是数据层喂数据太慢,还是训练层并行策略不合理,然后再深入对应的章节找解决方案。比起网上零散的文章,这种按层拆解的地图更像一个知识索引。

2.2 章节安排的逻辑:先宽后深、先单机后分布式

整张地图在章节安排上有一条很清晰的主线:先建立全貌,再逐层深入;先讲清楚单机上的事情,再扩展到分布式场景。

这个顺序我一开始觉得有点常规,实际用下来发现确实是最优解。很多人一上来就研究分布式训练框架,结果连单机上的显存分配和数据加载都没搞清楚,遇到问题根本不知道是框架的锅还是自己的锅。先单机后分布式的路径能让你把基础打牢,遇到问题知道在哪里设置断点排查。

另一个值得注意的安排是“横向对比”章节。地图里多次把不同实现方案放在一起对比,比如并行策略里数据并行和模型并行各自的适用场景,调度系统里集中式调度和共享式调度的取舍。这种对比不是简单的优缺点列表,而是给出了明确的决策条件,比如模型多大、显存多少、卡间带宽多少、团队规模多大,基于这些可量化的指标做选择。

2.3 怎么使用这张地图:精读、查漏、实战

作为一份知识地图,它的用法和一本传统技术书不一样。我自己的建议是分三种场景使用:

  • 系统性学习:按章节顺序从前往后读,适合新手建立整体认知。每一章内容不长,但覆盖面很全,重点在于理解层与层之间的依赖关系。
  • 按需查漏:对于已经有一定经验的工程师,更适合把它当字典用。遇到具体问题直接跳到对应章节,比如“GPU利用率上不去”就去算力层找排查清单,“训练总是不稳定”就去训练层看稳定性相关的内容。
  • 实战对照:在做实际项目时,把地图当作checklist。设计一个训练系统之前,把每一层要解决的事项过一遍,这样不容易漏掉关键环节。我自己就有过深刻的教训:一开始只关注了训练框架选型,完全没设计数据缓存层,结果数据加载成为瓶颈,GPU利用率只有10%出头,白白烧了好几天卡时。

3. 核心专题拆解:每一层都在解决什么问题

3.1 算力层:有效算力才是真算力

算力层是整个AI Infra的物理基础,但一个重要观点是:你买到的算力不等于真正用起来的算力。GPU的峰值算力是厂商给的理想值,实际能发挥多少取决于你的系统好不好。MFU(Model FLOPs Utilization)这个指标就是衡量模型实际计算效率的,业界做到40%-50%已经算不错,很多团队实测连20%都到不了。

影响有效算力的因素有几个。第一是计算密度,你写的算子能不能充分利用GPU的并行计算单元,卷积和矩阵乘法这类稠密算子容易优化,但像Attention里的复杂索引操作就可能成为瓶颈。第二是通信开销,分布式训练时卡和卡之间要同步梯度,如果通信时间远大于计算时间,那你就是在等通信。第三是数据供给,数据加载、预处理、增广都是在CPU侧完成的,如果CPU处理速度跟不上GPU消费速度,GPU就会空转。

我做过的项目里有个典型例子:训练一个视觉大模型,单卡算力明明够,但整体吞吐就是上不去。排查了很久,发现瓶颈在图像解码和随机增强部分,CPU利用率接近100%,GPU利用率却在个位数徘徊。后来把数据预处理改成专用的数据加载流水线加预解码缓存,吞吐直接翻了一倍多。这个经历让我养成了一个习惯:看一个训练系统好不好,先盯住有效算力,而不是看显卡数量。

3.2 数据层:被低估的第一道关卡

数据层在很多团队是最被低估的。大家往往会花很多时间在模型结构上,却对数据质量、数据管线缺乏足够重视。事实是,对于大模型来说,数据的质量直接决定了模型能力的上限。

数据层的第一个关键任务是数据清洗。原始数据从网上爬下来,可能包含重复内容、有害内容、格式错乱、编码问题,如果不处理干净,后面训练出来的模型就会带着这些噪声。举个简单的例子,如果语料里大量重复,模型可能会在生成时不断复制粘贴,这就像做题时答案背诵过头,没有理解能力。

第二个关键任务是数据配比。不同来源、不同语言、不同领域的数据以什么比例混合,直接影响模型在下游任务上的表现。很多团队的经验是从小规模实验出发,先跑小模型来确定配比,再放大到全量数据。这个思路很实用,适合大多数做微调的团队。

第三个关键任务是数据管线。训练时的数据处理要处理成GPU能直接消费的格式,尽可能减少CPU和GPU之间的等待。这里的关键技术包括缓存打乱后的数据、预取、混合精度存储格式等。数据存储介质的选择也很重要,热数据放高性能存储,冷数据放低成本的归档存储,能省下一大笔钱。

3.3 训练与微调层:从跑通到跑稳

训练层是AI Infra最核心的部分,因为大多数项目的成败就看训练能不能稳定高效地跑完。很多人第一次接触大模型训练时,会遇到两个感受:第一是“跑起来好难”,第二是“跑稳了更难”。

“跑起来难”指的是代码层面。大模型参数量太大,一张卡装不下,你得选择并行策略。数据并行最简单,每个GPU存一份完整模型,数据切成多份,各自前向反向,然后同步梯度。但如果模型大到单卡放不下,就得用模型并行,把不同层放到不同卡上,或者把一层里的参数切开。张量并行、流水线并行、序列并行,各有各的适用场景,组合起来更复杂。

“跑稳了更难”指的是工程稳定性。长时间训练中,某个GPU故障或者网络抖动,整个任务就中断了。没有断点续训机制的话,前面几天的算力就白费了。所以框架要支持周期性保存检查点,同时要能快速检测故障并自动从最近一个检查点恢复。这个机制我建议放在一切优化之前先搞定,不然你后面做的所有优化都可能因为一次中断而付诸东流。

微调阶段相对温和,但也有坑。现在主流做法是低秩自适应(LoRA)这类参数高效微调技术,只更新一小部分额外参数,训练快、显存占用小。但LoRA的秩r的选择、学习率设置、目标模块的选取都会明显影响效果。我的经验是先从较小秩开始,比如r=8,跑通后再根据验证集表现向上调,不要一上来就用很大的秩,那样既慢又不一定效果好。

3.4 推理层:成本、时延与弹性的三角拔河

训练只是上半场,把模型部署上线才是真正每天面对成本压力的地方。推理层要解决的核心矛盾是:在时延满足需求的前提下,尽可能降低硬件成本。

先说时延。生成式模型的推理有一个特点,显存和计算量随上下文长度增长明显,响应时间长对用户体验影响很直接。为了降时延,最常用的是KV Cache,把已经算好的注意力缓存复用,避免重复计算。但KV Cache会显著增长显存占用,所以要做显存管理,比如把Cache分配到独立空间,动态调整容量。

降低推理成本更通用的是批量调度。GPU擅长并行计算,单条请求往往喂不饱GPU,把多条请求凑成一个批次一起推理,能显著提高吞吐。但批处理又不能无限加大,因为每条请求的生成长度不同,过长的请求会拖慢整个批次。为此需要Continuous Batching这类动态调度机制,我实际测试下来,把并发请求数从个位数调到两位数,单卡吞吐能提升好几倍。

弹性伸缩也是推理层的关键。线上流量有波峰波谷,盲目部署固定数量的实例,流量低时就是烧钱,流量高时就是超时。现在的做法是根据请求队列长度自动扩容缩容,但模型的冷启动加载很慢,所以要有预热池。一个冷启动时间在几十秒到几分钟的服务,没有预热池的话,高峰期第一次扩容基本等于不可用。

3.5 平台层:资源调度与团队协作

平台层是一群人一起做AI项目的黏合剂。人少的时候,每个人自己管自己的机器、自己跑自己的实验,问题不大。人一多,资源分配、环境隔离、任务排队、权限管理这些事如果不做,很快就会变成灾难。

资源调度要解决的核心问题是:怎么把有限的GPU公平且高效地分给不同团队、不同任务。常见做法是队列加配额,每个团队有自己的配额上限,排队时按优先级调度。难点在于大模型训练任务往往是长时间占用的,会一直抓住显卡不放,导致短任务的排队时间非常长。业界流行的解决方案是支持抢占式调度和弹性伸缩,把短任务塞进长任务的间隙里。

环境隔离也很重要。不同项目可能需要不同的框架版本、依赖库版本,如果都在同一个机器上乱装,很快就冲突到没法干活。容器化是目前的主流解法,把环境镜像化,启动快、可复现,配合调度平台就能做到“提交一个任务,自动分配资源、拉镜像、起容器、跑训练、释放资源”的全流程自动化。

平台层还有一个容易被忽略的价值:让团队的经验可沉淀。通过标准化的任务提交方式和日志收集系统,每个人跑过的实验都可以被记录和复现。新人来了不用从零开始摸索环境怎么搭,直接看之前的任务模板就能上手。这能省下大量沟通成本。

4. 实操推演:一个训练项目的资源估算与避坑清单

4.1 一个训练项目的算力估算演示

我经常被问到:训练一个7B量级的模型,到底需要多少算力?与其凭感觉拍脑袋,不如手把手算一遍。这里用的是一个行业里常用的近似公式。

训练大模型的总计算量大致等于6 × 参数量 × 训练token数。这是前向加反向的标准估算。假设一个7B模型(70亿参数),训练数据总量是2000亿token,那么总计算量为:

6 × 7×10^9 × 2×10^11 = 8.4×10^21 FLOPs。

接下来看硬件。假设你用的是某款主流训练GPU,单卡峰值算力约990 TFLOPS。但实际MFU不可能到100%,取一个相对合理的40%来估算有效算力。那么单卡每秒有效算力约为:

990×10^12 × 0.4 = 3.96×10^14 FLOPs。

一小时的有效算力是:

3.96×10^14 × 3600 ≈ 1.43×10^18 FLOPs。

于是单卡完成这个训练任务需要的时间是:

8.4×10^21 ÷ 1.43×10^18 ≈ 5880小时。

如果租用64张卡做并行训练,理想情况下并行效率不是百分百,算上通信开销按80%效率折算,则总时长约为:

5880 ÷ 64 ÷ 0.8 ≈ 115小时,也就是4到5天。

这个计算过程说明几个问题。第一,卡时是算得出来的,不是拍脑袋的。第二,MFU的假设值对结果影响很大,如果MFU只有20%,时间直接翻倍。第三,并行效率越接近1越好,但大规模并行时通信开销无可避免,这时网络拓扑、通信库的调优就非常重要。

推荐的做法是先跑一个极小规模的数据集(比如1万条样本),实测MFU和并行效率,用实测值回填公式,再推算全量训练时间。这样出来的预算靠谱得多。我的经验是实测值通常比理论的乐观值要低10到20个百分点。

4.2 训练链路常见的坑

训练链路是我踩坑最多的环节,列几个我亲身遇到过的典型问题。

Loss尖峰。训练到一半,Loss突然飙高,然后又慢慢降回来。原因是训练数据中出现异常批次,或者学习率设置不当,也可能是梯度更新出现数值不稳定。排查步骤是:先看数据是不是有脏数据,再看学习率是否过高,最后检查梯度裁剪是否生效。这里我的建议是提前开启梯度裁剪,设置一个最大范数,避免单次更新过猛。

显存OOM。明明显存看起来够用,跑着跑着就OOM了。很多时候不是参数本身太大,而是中间激活值、梯度、优化器状态没有规划好。现代框架都有显存分析和自动混合精度等功能,要用起来。另一个容易被忽略的是显存碎片,长时间训练后碎片化会导致可以分配的连续块越来越少,重启任务或者使用显存整理机制可以缓解。

通信超时。分布式训练中,某个节点迟迟没有同步梯度,导致整个任务卡住,直到超时崩溃。大模型训练中通信量巨大,网络抖动、TCP重传、交换机拥塞都可能引发。排查时先看是不是某些GPU计算明显慢于其他(掉速),再看网络是否有丢包。优化的抓手包括调整通信超时阈值、使用更高带宽的网卡、优化通信拓扑。但这些都不是治本,治本是让计算尽量本地化,减少跨节点通信。

断点恢复失败。检查点文件写了一半,或者恢复时发现元数据不匹配,导致无法恢复。关键是要做原子性写入,先把检查点写到临时文件,确认写完再重命名为正式文件。另外要定期验证检查点的可恢复性,不要等到真出故障才发现备份文件已经损坏。我在项目里就是靠“每两小时自动保存检查点+每次保存后校验文件大小”这种笨办法,才在一个48小时的训练任务中,遇到一次节点故障后只丢了两小时的进度。

4.3 推理链路常见的坑

推理链路的问题和训练链路完全不同,它更贴近线上服务的稳定性。

第一是冷启动。模型文件几个GB到几十GB,加载到显存需要几十秒甚至几分钟,流量高峰时段如果实例不够自动扩容,新实例还没起来请求已经超时了。解决办法是提前预热,在扩容前就保持一定数量的空闲实例。

第二是显存爆炸式增长。长上下文场景下,KV Cache随序列长度快速增长,如果没设置上限,一个长请求就可能把显存打爆。更隐蔽的是多个并发请求共享显存时,总Cache大小没有统一规划。一定要在服务框架层做显存预算,设定单请求Cache上限和总并发上限。

第三是GPU利用率低但时延还是高。这种情况通常是推理框架没有做连续批处理,或者模型量化程度不够。我曾经把一个模型的精度从FP16降到INT8,时延降低接近一半,效果损失在可接受范围内。量化是一个性价比极高的优化手段,但要先做评估,确认量化后的效果不掉得太厉害。

5. 工具选型与上手路径:我的建议

5.1 先别急着上集群

看到这里,如果你正准备入坑AI Infra,我有一条发自内心的建议:先别急着上集群。

很多新手一上来就想着搭一套几百卡的大集群,用最复杂的调度系统。但如果你只有一个或者两个GPU,最好的做法是在单机上把整个链路跑通。单机训练、数据加载优化、推理部署、监控埋点,这些事情在单机上都能做,而且调试方便、成本低。等你在单机上跑稳定了,再租几台机器组成一个小集群,体验分布式带来的麻烦和收益,那时候你才知道那些分布式框架解决的问题到底是什么。

对个人开发者和小团队来说,我的建议是先从云上租用、按需付费的GPU实例开始,而不是自己买卡托管。自建机房的前期投入和维护成本实在太高,先用云资源跑通业务,等规模确实足够大了再谈自购。

5.2 工具分级选型

工具选型是整个AI Infra决策里最让人头疼的部分。现在的开源生态里有大量框架和工具,而且迭代飞快,选错了意味着未来迁移成本极高。我的经验是按团队规模和技术能力分级来选。

  • 个人和两三人小团队:用最主流的深度学习框架自带的分布式能力就够了,数据加载用其内置的数据集类,训练日志用简单的控制台输出加可视化工具,监控用显卡的官方查询工具看利用率。这个阶段的目标是减少新概念、跑通流程。
  • 十到五十人的中型团队:需要考虑统一的环境和资源管理方案。用容器化方式统一环境,用轻量级的调度工具管理任务排队,同时建立基础的监控告警体系。训练框架可以继续使用主流框架,但在并行策略上要花时间优化。
  • 五十人以上的大型团队:这时就需要完整的平台化了。统一的资源调度系统、数据平台、模型仓库、CI/CD流水线、成本账单系统都是标配。选择这类平台时一定要考虑开放性和可扩展性,避免被某个封闭方案绑定。

不管哪种规模,我的一个核心理念是:能白嫖标准化的,就不要自己造轮子。我见过不少团队花大量时间自研调度系统,结果维护成本远高于收益。用成熟的开源系统做二次开发,把精力放在自家业务的差异化上,才是更可持续的方式。

5.3 如果只做一件事:建立可观测性

如果让我对所有正在做AI基础设施的人只提一个建议,我会说:把可观测性作为最高优先级去建设。

AI系统的故障往往不是一下子全挂,而是性能逐渐劣化。可能是某个数据管道变慢了,也可能是某个GPU风扇坏了导致降频,还可能是网络丢包率悄悄上升了1%。如果没有系统性的监控数据,这些劣化很难被及时抓住。有监控数据和没有监控数据的排查效率差距是数量级的——有数据,你可能在十分钟内定位到问题;没数据,你可能要花几天在各层之间反复猜测。

需要监控的维度至少包括:GPU利用率、显存占用、温度、功耗、CPU利用率、内存占用、磁盘I/O、网络吞吐、丢包率、任务排队时间、训练吞吐(样本/秒)、Loss曲线、推理时延、请求成功率、排队请求数、平均生成token数。这些数据不一定要一步到位全部建设,但要从项目第一天就开始记录,先记录再完善。

我自己的做法是做一个最简表:把每个任务的启动时间、使用的GPU数量、每步耗时、样本吞吐、Loss曲线全部打进系统化的日志里,然后在可视化面板上集中查看。这个投入不多,但长期积累下来,能帮你发现很多规律,比如“每周三下午网络延迟都会变高”“这个模型的Loss在训练到第X步时有一个固定的下跌模式”。这些都是优化系统的重要线索。

这套“AI Infra时代与全书地图”的内容体系,我的整体体会是:与其把它看作一本技术手册,不如看作一份帮你建立系统思维的导览。AI Infra是一个交叉地带,它要求你懂一点硬件、懂一点系统、懂一点分布式、懂一点算法,但不需要你在每个方向都成为专家,关键是知道每一层解决什么问题、层与层之间怎么衔接。个人学习路径上,也未必一定要按顺序啃,可以从自己正在面对的实际问题切入,比如今天训练慢就去看算力层,明天部署老超时就去查推理层,用问题驱动的方式把这张地图的脉络串起来。等你真正在一个项目里完整走过从算力规划、数据准备、训练稳定化、上线部署到成本治理的全程,你会发现,AI Infra不是终点,它只是让模型能力真正落地的那条必经之路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询