AI算力这块最近是真热闹,各种智算中心项目一个接一个落地。看到“某科技公司中标两大AI算力标杆项目”这类消息,很多人可能只当成普通新闻扫一眼。但作为在一线折腾过算力集群的人,看到的是另一层东西:这类项目往往意味着千卡甚至万卡级别的集群交付、复杂的网络与存储方案、还有从硬件到软件栈的完整落地能力。这背后藏着一整套工程方法论,也是很多团队想参与但又不清楚门道的地方。
这篇文章就借这两个标杆项目的视角,把AI算力集群从设计、选型到落地、运维的完整链路拆开聊聊。核心围绕几个关键词展开:AI算力、大模型集群、智算中心、高速互联、算力调度。不管你是刚接触算力基础设施的开发者,还是已经在做集群运维的工程师,又或者是想接这类项目的团队负责人,这里面的经验应该都能给你一些参考。
1. AI算力项目到底在建设什么
先说清楚一件事:所谓AI算力标杆项目,不是简单买几百张显卡插上就完事。它本质上是建设一个面向大模型训练和推理的专用基础设施,行业内通常叫智算中心或者AI算力集群。这种集群和传统数据中心最大的区别在于,它的每一个环节都要围绕大规模并行计算来设计,包括计算、网络、存储、散热、调度,甚至建筑本身的承重和电力规划。
1.1 从“买卡”到“建集群”的门槛差异
很多人对算力集群的认知停留在“买GPU卡”。实际上,当你只有几张卡的时候,插在主板上用PCIe互联就够了,顶多考虑一下供电和散热。但一旦规模上到百卡、千卡,问题就完全变了。
举个实际例子,假设要建设一个包含1024张加速卡的训练集群。这批卡如果全部采用8卡服务器,那就是128台服务器节点。这些节点之间要跑分布式训练,数据在每轮迭代中需要做梯度同步,通信量巨大。如果网络设计不到位,训练效率可能连单机的50%都发挥不出来。这就牵涉到网络拓扑、通信库调优、存储吞吐、作业调度等一系列问题。
我做过的项目里,很多第一次接触算力集群的团队最容易低估的就是网络。有人觉得“万兆网够了吧”,实际测下来,单机8卡做AllReduce,万兆网络瞬间就成为瓶颈,训练速度被拉低好几倍。真正能支撑大模型训练的,基本都要上到400Gbps甚至更高带宽的互联方案(如InfiniBand NDR或RoCEv2)。
1.2 标杆项目的技术指标画像
在行业里能被称作“标杆”的算力项目,通常有这几个特征:集群规模大、业务类型新、技术方案有前瞻性。规模上,千卡是起步,几千卡是常态;业务上,基本都瞄准大语言模型训练或者大规模多模态推理;技术方案上,会要求全栈国产化适配,或者采用最新的GPU架构和高速互联方案。
落实到具体技术指标,核心有几个:总算力(PFLOPS级别)、网络带宽(400Gbps起步)、存储性能(并行文件系统,读写吞吐要求达到TB/s量级)、可用性(长时间训练不中断)。这些指标背后对应的是一整套技术选型和工程实现。
2. 算力集群设计的四个核心决策
真正接手这类项目你会发现,前期的设计决策决定了后期所有的运维体验。四个核心决策,每个都值得单独展开。
2.1 算力规模的测算逻辑
算力规模的确定不是拍脑袋,而是根据业务需求倒推。这里有一套基本公式:总算力 = 单卡算力 × 卡数 × 平均利用率。其中平均利用率是经验值,训练场景一般取50%-70%,推理场景因为要留冗余应对峰值,一般取30%-50%。
以训练一个千亿参数规模的大模型为例,单次训练需要的计算量大约是10^23 FLOPs级别。如果采用当前主流的单卡算力FP16约1000 TFLOPS的加速卡,理论上一千张卡跑完一轮完整训练大概需要几十天。但如果想缩短训练周期,就需要扩大集群规模或者优化并行策略。
我见过一个实际项目的算力测算过程。项目方最初只想采购256张卡,业务方提出要训练700亿参数模型,我们按照数据并行+张量并行+流水线并行的混合并行方案估算,发现256张卡训练周期超过两个月,业务等不起。后来调整到512张卡,加上优化后的数据加载和通信策略,才把周期压缩到三周以内。算力规模从来不只是技术问题,更是业务交付节奏问题。
2.2 网络拓扑的选型与对比
网络是支撑大规模训练的地基,也是最多人走弯路的地方。当前主流的集群网络拓扑有两种:Fat-Tree(胖树)和Torus(三维环网),还有部分厂商在推的全互联(Fully Connected)。
胖树拓扑是绝大多数智算中心的选择,因为它带宽收敛比高、扩展性好、对故障的容错强。以千卡集群为例,通常采用两层或三层脊叶架构。叶子交换机连接计算节点,脊交换机连接叶子层,任何两台服务器之间的通信最多经过两个交换机跳数,时延可控。
Torus拓扑更常用于超级计算机,好处是成本低,但通信需要多跳转发,在大规模AllReduce场景下表现不如胖树。如果业务以大模型训练为主,建议优先考虑胖树,不要为了省网络成本牺牲训练性能。
网络速率的选择也直接影响成本:200Gbps方案适合卡数较少的集群,400Gbps方案是当前千卡集群的主流,800Gbps方案则更多用于超大规模基础设施。选型时可以按单卡平均带宽不低于25GB/s来估算,1024张卡对应至少400Gbps的互联带宽。
2.3 存储架构怎么搭
训练集群的存储往往是另一个容易被忽略的瓶颈。大模型训练过程中,需要反复读取训练数据集、写入模型检查点(Checkpoint)。特别是Checkpoint,一份千亿模型参数加上优化器状态,可能上百GB,训练中要周期性写入,如果存储跟不上,就直接拖慢整个训练进度。
存储架构我一般建议分三层:热数据层用并行文件系统(比如Lustre或BeeGFS),跑在NVMe SSD阵列上;温数据层用大容量HDD或对象存储,存放历史数据集;冷数据层做备份归档。核心训练数据集和Checkpoint一定要放在热数据层,而且网络要采用独立的高带宽通道,避免和数据网络争抢带宽。
关于Checkpoint的写入频率,有人为了数据安全每五分钟存一次,结果大量时间都耗在保存上。我见过一个项目做过对比测试:同样的模型、同样的存储,Checkpoint保存间隔从5分钟调整到30分钟,训练吞吐提升了将近15%。这个数值看着不大,但长周期训练累积下来就是好几天的差距。
2.4 供电与散热的隐藏成本
算力集群的功耗是实打实的成本大头。一张高性能加速卡功耗随型号不同在300W到700W之间波动,一台8卡服务器就是3kW到5kW级别,一个千卡集群加上网络设备和制冷,总IT功耗轻松超过1MW。
很多团队卡在电力审批上。一个实际项目经验:规划两个千卡集群,建设初期只预留了800kW电力容量,结果第一批设备上架就触顶了。后来不得不协调园区改造变电站,交付周期延后了将近两个月。做规划的时候一定要把冗余算进去,建议按峰值功耗的1.3倍预留电力,同时考虑未来扩容需求。
散热方案主流有两种:风冷和液冷。风冷成熟、成本低,但单机柜功率密度超过20kW时基本压不住;液冷尤其是冷板式液冷,散热效率高、噪音低,是目前高密度集群的主流选择。液冷需要做防漏液设计和监控,施工复杂度高,但对长期运行稳定性的提升非常明显。
3. 从硬件到软件的全栈落地
集群建设最磨人的阶段是软硬件联调。硬件到位不难,难的是让计算、网络、存储、调度系统协同工作。
3.1 GPU直通与容器化环境
现在的训练集群几乎都是容器化部署,主流方案是Kubernetes加上设备插件管理GPU资源。这种方式能让不同团队共享集群,按需申请卡数。核心是处理好设备插件和调度器的配合,让GPU资源能像CPU和内存一样被动态分配。
举例说明,一个物理节点有8张卡,可以分配给四个训练任务,每个任务2张卡,也可以全部给一个任务。这依赖两类组件:设备插件负责上报卡的健康状态和可用数量给Kubernetes,调度器负责根据任务申请决定把卡分配到哪个节点。二者配合不好时,最常见的故障是任务申请2张卡,调度器实际只绑定了1张卡的设备,训练直接报CUDA out of memory。
3.2 作业调度与资源隔离的策略
资源调度策略是集群运维里最有讲究的部分。简单按“一个任务申请多少卡就分配多少卡”很容易造成资源碎片化。比如集群总共256张卡,A任务申请150张,B任务申请100张,加起来超过256,B任务就永远等不到资源,A任务即使只用了80%也会一直占着。
实践中常用两种策略结合:层级队列和弹性配额。层级队列允许把集群划分成不同的资源池,训练和推理任务分池运行,互不干扰;弹性配额允许任务在资源空闲时临时借用,空闲释放。这样能提高资源利用率,实际项目中往往能把集群综合利用率从60%提升到接近85%。
3.3 监控告警是保命符
千卡规模的集群里,每天都有硬件故障。风扇转速异常、GPU温度偏高、网卡光模块告警、内存错误,这些都需要第一时间感知和处理。一套完整的监控体系至少覆盖三层:硬件层(服务器部件状态)、网络层(交换机流量、丢包率)、作业层(训练进度、吞吐、Loss曲线)。
监控的难点在于告警阈值怎么设置。设得太灵敏,一天上千条告警,运维团队直接麻木;设得太宽松,故障看不出来。我自己的经验是分优先级:硬件故障类告警即时通知,性能劣化类告警做趋势分析,比如GPU温度从60度涨到80度,不触发高温告警,但持续观察,如果半小时内继续上升再升级。
4. 项目实施中的高频故障与排查手册
再好的设计也免不了出问题。这里整理一下我在多个算力项目里实际踩过的高频故障,以及对应的排查思路。
4.1 网络丢包拖垮分布式训练
现象:多机训练时,训练速度随epoch推进越来越慢,甚至出现NCCL超时错误。
排查路径:先看交换机端口丢包统计,再看网卡的错误计数。之前一个项目里,training吞吐间歇性掉到正常值的一半,查了一圈硬件都没问题,最后发现是光纤跳线弯折半径过小,导致光模块收发光功率异常。重新走线之后恢复。
避坑:开局布线时一定要留好光纤弯曲半径,用光纤测试仪打好光衰报告再验收。不要贪图走线整齐就把光纤折成直角。
4.2 GPU卡间通信带宽不达标
现象:单机8卡训练,实测通信带宽远低于理论P2P带宽。
排查路径:用带宽测试工具(如NCCL的all_reduce_bench)逐项测试,先测单机内卡间通信,再测跨节点通信。单机内带宽不达标,大概率是PCIe链路降速或者CPU NUMA绑定问题;跨节点不达标,大概率是网络配置问题,比如RoCEv2的流控没开。
避坑:BIOS设置里,PCIe链路一定要固定到Gen4或Gen5,不要设成Auto,否则部分卡可能因为探活失败降速到Gen1,差距是数量级的。
4.3 存储IO阻塞训练循环
现象:训练日志显示GPU利用率周期性掉底,每一步训练时间不规律。
排查路径:IO瓶颈的特征是GPU空转等数据。排查时先看数据加载线程是不是单线程,再看存储端的读写延迟。很多数据集的图片都是海量小文件,如果直接用通用文件系统存储,读取效率极低。优化方案是把数据预先打包成大文件格式,比如TFRecord或者WebDataset格式,读取效率能提升好几倍。
避坑:数据预处理一定要在集群建设期就同步做掉,不要等训练跑起来再补救。有一个项目因为数据集格式问题,训练吞吐只有预期的40%,重新处理数据花了一周。
4.4 调度器与作业排队策略引发的死锁
现象:多个任务都在排队,但集群明明有空闲资源,就是调度不上。
排查路径:这种情况多半是资源碎片化。空闲卡分散在不同节点上,每节点剩余2-3张卡,但新任务一次性申请8张卡,调度器找不到满足条件的节点。
避坑:要么启用调度器的碎片整合功能,要么在任务申请时允许分片调度,配合弹性配额使用。实际运维里,一台节点上混跑多个小任务,比一个任务独占节点资源利用率高很多。
4.5 故障任务自动恢复的机制设计
现象:训练中途某个节点崩溃,整个任务从头开始练。对于大模型训练,一个跑了几天的任务崩溃重来,成本极高。
处理:分布式训练框架基本都支持定期保存Checkpoint和自动重启。工程上要做的是:配置好Checkpoint路径存储到高可靠的并行文件系统,设置合理的保存间隔;部署任务健康检查机制,发现训练进程异常自动重新调度;在重启后自动加载最新Checkpoint恢复。
避坑:Checkpoint的保存不能太频繁也不能太稀疏。按我的经验,千卡集群训练任务,每30分钟左右保存一次比较合适。太频繁影响训练吞吐,太稀疏丢失进度的代价按小时算。
5. 算力集群的长期运维心得
项目上线只是开始,长期稳定运行才是真正的考验。分享几条个人觉得比较有价值的运维心得。
5.1 硬件资产的精细化管理
千卡集群有几千个可替换部件,GPU卡、光模块、线缆、风扇、电源,都可能因为批次不同存在兼容性差异。建议从设备上架第一天就建立资产台账,记录每台服务器、每张卡的固件版本、驱动版本、硬件序列号。不要等到出了问题再去翻记录,故障处理时效性全靠台账。
5.2 建立固件和驱动的标准化基线
集群最怕的就是各节点驱动版本不一致。常见场景:某团队自己装了一个新版本驱动,和集群调度器的设备插件不兼容,GPU资源上报失败。管理上要强制统一基线版本,任何升级都走变更流程,先在测试池验证再批量灰度。
5.3 定期做全链路演练
不出故障不代表系统没隐患。我建议每季度做一次全链路演练:模拟单节点宕机、模拟交换机故障、模拟存储节点异常,观察集群自愈能力。演练中发现的告警盲区、应急流程缺陷,远比真的出故障时发现代价小得多。
5.4 容量规划要有前瞻性
模型规模的增长速度永远超出预期。去年规划集群时按照100亿参数模型设计,今年业务可能已经要跑千亿参数了。存储空间、网络带宽、电力容量都要预留扩展空间。特别是电力,改造周期最长,一定要提前规划。
6. 写在最后的实在话
算力集群建设写到这,大概把从设计到运维的核心链路都过了一遍。这东西看起来是个技术活,实际上更是个工程管理活。硬件选型有公开参数可以对比,网络拓扑有成熟方案可以复用,真正拉开差距的是细节把控——光纤走线的一点点疏忽、Checkpoint保存间隔的设置、告警阈值调得合不合理,都会在实际运营中变成真金白银的损失。
我个人操作里最大的体会是:不要迷信某一个厂商的整体方案,也不要把所有希望寄托在某一项新技术上。最可靠的路径是搭建一个小规模验证环境,把自己要用的并行策略、通信库、调度平台先在验证环境里跑通,再大规模铺开。这一步看着多花了两三周时间,但省掉的返工时间往往是倍数级的。
这个内容后续还能继续往深了写,比如大模型训练的具体并行策略选择、推理集群的延迟优化、异构算力的统一调度,都是有意思的方向。如果你正在折腾自己的集群,遇到具体问题欢迎随时交流,我们踩过的坑,你大概率也会遇到。