推文
@Kay2289123 · 2026-10-13 02:14
如果你在看算力互联,却不知道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://microsoft.ai/pdf/mai-thinking-1.pdf [2] PyTorch 文档,Distributed Data Parallel https://docs.pytorch.org/docs/stable/notes/ddp.html [3] NCCL 文档,Collective Operations https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/usage/collectives.html
曝光 3115 · 评论 3 · 点赞 20 · 书签 21 · 曝光/时 1108.0169699898834