如果你在看算力互联,却不知道AI 训练 GPU卡和卡之间到底在传什么,那这篇一定要看完,会了解为什么互联非常重要
不论是投资 $NVDA $MRVL 等一众算力互联标的,还是 AI Infra 学习,收藏搞懂我这篇帖子,对你帮助都一定会很大。过程中所有的讲解,我都放到这幅图里了
上一篇我讲了推理的时候 GPU 在干什么,这一篇讲训练。为什么训练一个模型要几百几千张卡?卡和卡之间每一步到底在传什么?这个帖子是我认真整理的多卡训练内部流程,看懂了它,你再看英伟达为什么卖整机柜、卖 NVLink,会更有体感
1/ 我先来说两个词
> NVLink:卡和卡之间的高速通道,不用绕主板上的 PCIe。一台 8 卡 A100 服务器里,8 张卡两两全互联
> NCCL:英伟达的卡间通信库,负责在这条通道上搬数据。它只会搬字节,不认识“这是哪一层的权重”
多卡训练时,卡和卡之间主要搬两样东西。一样是梯度:几张训练卡各算各的,每一步都要凑到一起取平均,这叫 all-reduce。一样是权重:训练卡改完以后,要发给负责写答案的卡,这叫广播
你可以大致粗略地记一句话:训练卡负责改权重,写答案的卡负责用权重,NCCL 负责把改好的权重送过去。送得越快,卡就越不用干等
2/ 那强化学习训练的时候,GPU 到底在干什么?
以现在最主流的 GRPO 为例,每一步就三件事:让模型对一批题写答案;按对错打分、算梯度、改权重;再把新权重交给写答案的那一份模型。我把一张卡和多张卡怎么干这三件事画进了一张动图,分三段
1. 一张卡上,写答案和训练只能轮流来,训练占了八成时间。非常难,训练和推理学(两项任务)会相互阻塞,因此我们需要多看
2. 多卡先分工,一部分卡专门写答案,一部分卡专门训练。卡要加在慢的那一侧:训练这侧加卡几乎线性变快;写答案这侧加卡几乎不变快,因为一批答案要等最长的那份写完。通常我们有一些 tricks,比如轮到下一轮继续生成,或者直接丢弃
3/ 先过一遍第一段:1 张卡 vs 6 张卡
① 单卡:一步要写 128 份答案(8 道题,每题 16 份),再分 8 轮训完,最后把新权重拷给负责写答案的推理引擎 vLLM。显存里同时放着两份权重,一份用来写,一份用来训
② 6 张卡:2 张专门写答案,各写一半;4 张专门训练,每张放一份完整的模型,128 份答案平分,每张只训 32 份。这叫数据并行(DDP)
③ 4 张训练卡喂的答案不一样,算出来的梯度也不一样,就是图里高高低低的红柱子。所以改权重之前,要先经 NVLink 把梯度取平均,4 张卡拿到同一个梯度,改出同一份新权重
④ 新权重只由其中 1 张广播给 2 张写答案的卡,另外 3 张不用重复发
以 1.5B 的小模型为例,这一步可以把单轮训练从 14.85 秒降到 5.68 秒
但是我们从图上来看,在训练的时候推理卡就会停掉,存在潮汐问题。因此,聪明的研究工程师开始想如何让两边并行起来,榨干 GPU 的潜力
4/ 第二段:边训练边生成
训练卡训第 t 批的时候,写答案的卡用手上的旧权重,先把第 t+1 批写出来,这叫“落后一版”
修正办法叫重要性采样:写答案时把每个 token 被抽中的概率记下来,训练时用新权重再算一遍,按两者的比值给每个 token 加权,比值太大的按上限clip,防止偏移太大
5/ 第三段:权重到底是怎么传过去的
① 推理完一批,再接收新请求:写答案的卡把手上这一批写完,不在写到一半的时候换权重
② 权重传递预留:训练主进程先用 HTTP 告诉 vLLM,这次要传 338 个张量,各叫什么、什么形状、什么类型,对方照着清单开好空位。这一步走 CPU
③ NCCL 广播:打包成大块,从 GPU2 的显存经 NVLink 直接进 GPU0、GPU1 的显存,一发两收
④ 权重装载:vLLM 按名字把张量放回去,q、k、v 三块拼成一块,fp32 转成 bf16
⑤ 清缓存,改版本:旧权重算出来的 KV 缓存作废,版本号加一,接着写下一批
其中 NVLink 上真正搬 6.17 GB 只要 0.027 秒,其余时间花在报清单、装载和清缓存上
想搞投资,相信你看到这儿已经差不多都懂了。我们以小模型为例,训练的时候,卡和卡之间每一步都在搬几个 GB:15 亿参数的小模型,传一次权重就是 6.17 GB;大厂的模型大几百倍,要在几千张卡之间搬。微软 MAI 的技术报告里,最大的一次强化学习用了 4,864 张 GB300,4,096 张做推理、768 张做训练。
改成异步以后,新权重每隔几步就得送到整个推理集群,传得慢,推理卡就要闲着,答案也会更旧
想入门训练,我的建议是先把这三段自己画一遍:谁在写答案,谁在训练,权重从哪张卡流到哪张卡。这就是为什么我们说互联非常重要
我会沿着这条主线,结合每天的信息以及具体实践,帮大家搭建起科技到投资中间的这座桥梁
出处
[1] MAI-Thinking-1 技术报告,§3.6.4、§3.6.5 https://t.co/4ifkQ8xHtN
[2] PyTorch 文档,Distributed Data Parallel https://t.co/OjNoKY1ngu
[3] NCCL 文档,Collective Operations https://t.co/CKla8eRxiQ
𝕏 原文阅读 · 帖子
美研芒格君 · 2026-10-12 · 帖子
美研芒格君 2058239737522204672 2026-10-12T18:14:44.000Z保留来源原文。时间显示为 Toronto 当地时间;未保存的配图与引用请前往 X 查看。
返回 X 阅读保存说明:除条目另有标注外,正文尚未人工核对 · 图片未保存 · 引用或对话上下文可能不完整。