科技·via

训一个几千亿参数的大模型,上万张最顶级的显卡,有一大半时间根本没在算

训一个几千亿参数的大模型,上万张最顶级的显卡,有一大半时间根本没在算。 算力租金按秒扣费,电表飞速打转,机房风扇震耳欲聋。 但芯片的浮点运算单元,却在成片成片地熄火发呆。 业界的真实数字冷冰冰摆在那里。 哪怕是顶尖实验室,模型算力利用率通常也只有 35% 到 43%。 剩下的六成算力,蒸发去了哪里? 是算法写得太慢,还是代码逻辑不够优化? 为什么在 Python 里写得整整齐齐的线性代码,扔进上万张显卡之后,会碎成一地残渣? 这台让万亿资本买来的算力大面积瘫痪的机器,叫通信重叠与关键路径气泡。 要看懂这台机器,先看单张显卡和集群的本质区别。 单张显卡训练很简单:数据喂进显存,核心埋头计算。 但千亿参数的大模型,根本塞不进任何单张显卡的显存。 工程师必须把模型生生切碎,分摊到几千甚至上万张显卡上。 张量并行把每一层的矩阵乘法横竖切开。 全分片数据并行把模型参数、梯度和优化器状态彻底剥离。 专家并行和上下文并行把海量参数和数十万字的序列切散。 这种切分带来了一个致命代价。 任何一张显卡想要算下一层网络,必须先等别的显卡把中间结果传过来。 在硬件底层,显卡从来不是按代码顺序单线推进的。 它跑在两条平行的硬件轨道上。 一条是负责矩阵乘法的高速计算流。 一条是负责跨卡数据搬运的通信流。 这两条轨道在时间线上贴身肉搏。 最理想的状态,是当前层在计算流里疯狂运转时,下一层要用的参数已经在通信流里提前搬运完毕。 这在工程上叫计算与通信重叠。 只要算力跑完的瞬间数据刚好到位,跨卡通信的耗时就被彻底藏在计算背后。 但物理现实没有这么仁慈。 跨机柜的光纤只要有一丝抖动,或者层与层之间的依赖拓扑解不开,通信就会慢上几个微秒。 一旦计算流算完了,而通信流的数据还没送达,硬件同步机制会瞬间踩下急刹车。 在底层的执行轨迹图上,显卡会留下一大片空白。 工程上把这片空白叫气泡。 只要这个气泡落在了决定整体速度的关键路径上,几万张每小时烧掉几万美元的显卡,就必须集体陪着它原地发呆。 AI 研究者 Vlad Savinov 拆解过 PyTorch 官方分布式训练框架 torchtitan 的真实底层轨迹。 把掩盖在代码背后的底层事件拉平在时间轴上,才能看清真相。 算力根本不是平铺直叙的流水线,是一张充满阻塞、等待与抢跑的有向无环图。 Meta 训练 4050 亿参数的 Llama 3.1 时,动用了 1.6 万张 H100 显卡。 即便用尽了交错流水线调度、异步张量并行与微块切分,把能重叠的通信全部塞进计算缝隙,整体算力利用率依然被锁在 40% 左右。 这就是为什么 AI 军备竞赛的底层法则正在发生质变。 很多人看算力竞争,习惯盯着谁买了十万张显卡,以为算力是简单的乘法累加。 在超大规模分布式系统里,算力遵循的是残酷的拓扑规律。 芯片堆得越多,通信复杂度的爆炸速度就越快,时间轴上的气泡就越难被压平。 真正拉开顶尖实验室差距的,从来不是买显卡的支票厚度。 是在微秒级的时间轴上,把跨卡通信死死压进计算缝隙里的工程编排能力。 谁能把通信完全藏进阴影里,谁就能用一半的芯片跑出对手两倍的速度。 藏不住通信的,买再多显卡,也不过是在高昂的电费账单里,养了一大堆在网线面前排队发呆的昂贵发热器。

相关 / RELATED

JSON

导出 / EXPORT

订阅 · SUBSCRIBE

每周一封信号简报,重大进展可选即时推送。

不追踪邮件打开与邮件链接点击,一键退订。 或用 RSS · 详情