起源:男子在车尾悬挂低俗标语被处罚作者:
硬核拆解:GPT-5、Claude和Gemini是若何训练和推理的?
一块黑板、几个方程式,芯片工程师Reiner Pope用这些工具,拆解了GPT-5、Claude和Gemini背后的训练与推理逻辑,并从公开的API定价中,反推出大模型不愿公开的架构细节。
近日,驰名科技播客主持人Dwarkesh Patel与芯片创业公司MatX的CEO Reiner Pope进行了一场罕见以黑板推演为大局的深度对话。Pope此前在谷歌掌管TPU架构与编译器优化,被以为是少数真正贯通AI全栈——从芯片设计到模型架构——的工程师之一。
Pope在黑板前用方程和图表,系统拆解了前沿大模型从训练到推理的底层逻辑。在Dwarkesh看来,这些细节“一旦理解,AI为何是今天这个样子——架构、定价、进取速度——就全都说得通了”。
主题结论蕴含:若是不批量处置用户要求,单次推理成本可能逾越1000倍。而GPT-5的预训练数据量,是理论最优解的100倍。此表,DeepSeek V3占有256个专家,每次推理只激活其中一幼部门(32个)。MoE(混合专家)架构被限度在一个机架72块GPU以内,这是造约模型规模扩大的主题物理瓶颈之一。
一块GPU机架,决定了模型有多大
要理解顶级大模型为何是此刻这个样子,得先从硬件说起。
现代大模型推理跑在GPU集群上。英伟达Blackwell NVL72是目前主流的部署状态——一个机架塞了72块GPU,通过NVLink高速互联,肆意两块GPU之间只需两跳(经过中央互换机),通讯带宽极高。
但一旦跨出这个机架,通讯速度就慢了8倍。
这个"8倍差距",直接决定了MoE(混合专家模型)的部署上限。
DeepSeek V3占有256个专家,每次推理只激活其中一幼部门(32个)。Pope诠释,最天然的部署方式是"专家并行"——分歧专家放在分歧GPU上。任何GPU都可能向任何其他GPU发送token,这是一种"全对全"(all-to-all)通讯模式,和机架内NVLink的拓扑结构美满符合。
但一旦专家散布到两个机架,问题就来了:跨机架的token有一半要走慢8倍的网络,直接成为瓶颈。
"一个机架的大幼,限度了你能做多大的专家层。" Pope说。
这就诠氏缢一个市场上持久猜疑的问题:为什么Gemini看起来比其他尝试室更早获得大模型预训练的成功?Pope的揣度是,谷歌的TPU系统持久占有更大的scale-up域,能在更大领域内做全对全通讯,这让它能够部署更高稀少度的MoE模型,同时维持推理效能。
批处置:省1000倍成本的奥秘
访谈还提及一个市场常见景象:Claude、Codex等产品提供“急剧模式”,价值逾越6倍,速度却只快2.5倍。为什么?能不能反过来,用“慢速模式”换取更廉价值?
Pope的回覆直接:主题变量是批处置规模(batch size)。他用一个"发车时刻表"的迸作诠氏缢背后的逻辑。
GPU每隔约20毫秒发出一班"列车"(执行一次批处置推理)。每班列车能搭几多乘客,就是批处置大。╞atch size)。
主题结论是:推理的单元成本,在批处置量幼的时辰极高,随着批处置增大会急剧降落,最终趋于一个下限。
原因是权沉加载成本的摊销。每次推理都要把模型权沉从内存(HBM)读入芯片。这个成本是固定的,不论服务1个用户还是2000个用户,权沉只读一次。若是只服务1个用户,这个固定成本就全压在他身上;服务2000个用户,成本均摊后险些能够忽略不计。
Pope估算,若是不做批处置,成本能够逾越1000倍。
那最优批处置规模是几多?Pope给出了一个简洁的公式:约蹬宗300乘以模型稀少度。对DeepSeek这类激活1/8专家的模型,约莫是2400个并发序列。这个数字与模型总参数量无关,只取决于硬件个性和稀少度——这是一个"反直觉"的结论。
所以,"慢速模式"真的能便宜好多吗?从数学上看,不太行。KV缓存(存储每个用户汗青对话的内存)无法在分歧用户之间共享摊销,因而让用户多等并不能显著降低成本。Pope说:"(慢速模式)节俭不了太多,由于KV缓存是每个用户独立的,推算量也是独立的。"
从API定价,反推模型架构
Pope展示了一个让人印象深刻的推理过程:通过公开的API定价,能够反推出模型的内部架构参数。
线索一:Gemini在20万 token处涨价50%,为什么刚好是50%?为什么刚好在20万Token这个节点?
Gemini 3.1的定价在超过20万 token后上涨50%。Pope诠释,这对应着KV缓存的内存带宽成本超过权沉矩阵推算成本的临界点——也就是模型从"推算瓶颈"切换到"内存带宽瓶颈"的转折点。
他进一步用这个数字反算:如果激活参数约1000亿,临界点在20万 token,能够推算出每个token的KV缓存约莫占2KB。这与Character AI等公开论文中描述确把稳力机造参数(8个KV头,维度128)高度吻合。
"他们通过API定价泄露了相当多的信息。" Pope说,"当然,他们有动力把价值定得靠近成本,不然竞争敌手能够抢走用户。"
线索二:输出比输入贵5倍
大无数模型的输出token(decode)比输入token(prefill)贵约3-5倍。原因在于:
Prefill阶段:一次性并行处置大量输入token,推算效能高,靠近"推算瓶颈"
Decode阶段:每次只天生一个token,要读取全数模型权沉和KV缓存,极端受内存带宽瓶颈造约
这个价值差,现实上量化了当前顶级模型推理时的内存带宽瓶颈水平。
线索三:缓存射中为何便宜10倍
API通常对"缓存射中"的token大幅打折。Pope诠释,这对应的是存储KV缓存在分歧内存层级的成本差距:沉新推算一次(从token ID重新天生KV缓存)versus从HBM/DDR/闪存中直接读取。
他进一步推算,依照Gemini"5分钟缓存"与"1幼时缓存"的定价差距,能够揣度这两个档位对应的存储介质别离是闪存和机械硬盘——后者让Pope也感应惊讶:"我没想到机械硬盘会被用在这里。"
GPT-5过度训练了几多?答案是100倍
这是整场讲座最具震撼性的推算。
Pope从一个经济学直觉启程:当预训练成本、RL训练成本、推理成本三者大体相称时,整体效能最优。
他把这三块成本写出来,发现激活参数量这个变量直接消掉了——也就是说,最优训练量的推算与模型大幼自身无关,只取决于推理流量。
而后他代入真实数字:
如果某前沿模型推理流量约5000万token/秒(全数流量除以一个家族中的多个模型版本)
模型性命周期约2个月(鄙人一版本颁布前)
计算推理token数约200万亿(2×10??)
Chinchilla最优解(基于约1000亿激活参数)约莫是2万亿token。
两者之比:100倍。
也就是说,当前顶级模型的预训练数据量,约是从纯训练效能角度启程所需数据量的100倍。
"我们知路这或许是对的,由于有传言说GPT-5预训练了约150万亿token,和我们算出的200万亿很靠近。" Patel说。
Pope补充说,这个推算的主题逻辑是:你花在服务用户上的推算,应该和你花在训练上的推算大体相当。不然,就是在某一头糜花钱。
用Patel的话说:"若是GPT-5要被最优地训练,那么所有效户使用它产生的token总量,应该蹬宗预训练亏损的token总量——而预训练数据,约莫就是人类知识的总和。"
Pope对此回应:"大体如此。"
流水线并行:听起来很美,但大无数时辰用不上
关于流水线并行(把模型的分歧层分散到分歧机架上串行执行),Pope的结论是:它能节俭内存容量,但解决不了KV缓存问题,因而在推理场景价值有限。
直觉上,流水线并行必要同时维持多个"在途"的batch,这让全局batch大幼随流水线级数成比例增长。固然每个机架上的权沉存储削减了,但所有机架上的KV缓存总量并没有削减——由于必要更多并发序列来填满流水线。
"你无法跨pipeline阶段摊销KV缓存,就像你无法跨batch摊销KV缓存一样。" Pope总结路。
这也诠氏缢为什么Ilya Sutskever曾说"此刻我们都知路,流水线并行是不明智的"——这句话在访谈中被Patel引用,而Pope的推演给出了工程层面的注解。
神经网络与密码学的“趋同进化”
访谈最后,Pope谈到了他写过的一篇博客概想:神经网络的架构与密码学和谈之间存在"趋同进化"。
两者都必要把输入信息在整个系统中充分混合——密码学是为了让输出看起来像随机噪声,神经网络是为了提取暗藏的高层结构。但指标刚好相反:密码学致力粉碎结构,神经网络致力发现结构。
Pope提到了一个具体的技术迁徙案例:Feistel网络——一种密码学中用于让不成逆函数变得可逆的机关,在2017年被引入神经网络,形成了"RevNets"(可逆网络)。RevNets允许在训练的反向传布过程中,无需预先存储所有层的激活值,而是边反向传布边沉新推算——用更多推算换取更少内存。
这与KV缓存的逻辑刚好相反:KV缓存是用更多内存换取更少推算。Pope说,"用内存换推算,在当前的硬件前提下通常是合算的。"
访谈全文如下:
GPT-5、Claude 和 Gemini 的训练与推理机造——Reiner Pope 主讲主持人:Dwarkesh Patel 嘉宾:Reiner Pope(MatX 首席执行官)节目注明: 本期选取了全新的黑板讲座大局,由 Reiner Pope 系统解说前沿大说话模型的训练与推理道理。内容涉及大量数据与数学推导,令人惊讶的是,仅凭几个公式、公开的 API 价值和一支粉笔,就能揣度出各大尝试室在做什么。内容略有技术性,但极度值得深刻相识。Reiner 是芯片创业公司 MatX 的 CEO(披露:主持人 Dwarkesh 是 MatX 的天使投资人)。他此前在 Google 从事软件效能、编译器和 TPU 架构工作,是极少数可能贯通从芯片设计到模型架构整个技术栈的专家之一。第一章:批量大幼若何影响 Token 成本与速度Dwarkesh: 今天我采访的是 Reiner Pope,他是新芯片创业公司 MatX 的 CEO。此前他在 Google 主导了 TPU 架构等多项工作。本期选取黑板讲座的全新大局,我们专门为此打造了新的录造空间。今天要聊的话题涵盖模型架构、机械进建基础设施等诸多方面。我以为这个话题极度沉要。一旦你理解了训练和推理在集群中的运作方式,好多问题就会豁然开朗——为什么 AI 是此刻这个样子,为什么 AI 架构是此刻这个样子,为什么 API 价值是此刻这个样子,以及为什么 AI 进取是此刻这个节拍。要真正理解这些,你必要深刻细节,而深刻细节就必要一块黑板。Reiner,极度感激你来参与。首先,我想请你诠释一个景象。此刻有几家公司,好比 Claude、Codex 和 Cursor,都提供类似"急剧模式"的选项——破费 6 倍的价值,能够获得 2.5 倍的 Token 输出速度。我有几个问题:这背后的机造是什么?为什么付更多的钱就能获得更低的延长?这种模式能一向延长下去吗?好比付 100 倍的价值,能获得更快的速度吗?反过来是否也成立?好比推出"慢速模式"——若是用户愿意等几分钟,能否获得更便宜的价值?Reiner: 直接说结论:最大的影响成分是批量大。╞atch size)。接下来我们会精确量化这一点,分析它对延长和成本的影响。另表还有一个效应,叫做揣摩解码(speculative decoding)或多 Token 预测(multi-token prediction),我们之后能够回头会商,但首先要讲的是批量大幼。我想引入两个分析准则:第一,屋顶线分析(roofline analysis)。 我们来分析若何在一个芯片集群上运行 Transformer 模型。以 Blackwell NVL72 集群为例,也就是一个 72 块 GPU 的机架。屋顶线分析关注的是内存带宽和推算机能这两个维度。第二,只关注模型的两个单一成分: 操作权沉的功夫,以及操作高低文(即 KV 缓存)的功夫。我们尝试估算运行某种状态的推理所需的功夫。这不是精确预测,而是近似——我们会说"功夫大于蹬宗某个量"。我们思考两个方面:内存读取所需功夫,以及推算所需功夫。这个单一模型能给我们极度强的预测能力。推算功夫(t_compute)若何估算?必要做两件事:一是乘以所有活跃参数;二是做把稳力推算。对于权沉矩阵乘法的推算功夫,公式如下:tcompute=B×NactiveFLOPstcompute=FLOPsB×Nactive【注:B 为批量大幼,N_active 为活跃参数数量,FLOPs 为芯片的浮点运算吞吐量。把稳力推算部门相对较幼,可忽略。】
内存功夫(t_mem)若何估算?
必要取出所有权沉,以及读取 KV 缓存:
tmem=Ntotal内存带宽+B×Lcontext×bytes_per_token内存带宽tmem=内存带宽Ntotal+内存带宽B×Lcontext×bytes_per_token
【注:N_total 为总参数量(不只是活跃参数),第二项是 KV 缓存读取功夫,与批量大幼和高低文长度成正比。】
Dwarkesh: 批量指的是同时服务多个用户,对吧?
Reiner: 对。批量的意思也在于此——若是不把多个用户归并成一批,成本和经济性可能比归并处置差一千倍。我们稍后会明显地看到这一点。
以 DeepSeek V3 为例,它有约 370 亿活跃参数,总参数约 7000 亿。我们关注的是处置单个 Token 时用到的活跃参数。
关于 KV 缓存,单一诠释一下:
在自回归推理的解码阶段,已有一批文本 Token,模型要天生下一个 Token。这一步必要对模型中所有层的权沉矩阵做齐全的前向传布,同时通过把稳力机造,让当前 Token 关注所有汗青 Token——它关注的是模型对汗青 Token 天生的内部暗示,这就是 KV 缓存。
这个"单 Token 关注全数汗青"的过程重要由内存读取主导,而非矩阵乘法。因而,内存读取功夫由以下公式给出:
tmem=Ntotal+B×Lcontext×bytes_per_token内存带宽tmem=内存带宽Ntotal+B×Lcontext×bytes_per_token
而总功夫为:
t=max?(tcompute, tmem)t=max(tcompute, tmem)
批量大幼 vs. 延长(latency)图像分析:
我们先画批量大幼与功夫的关系图。
t_compute(推算功夫):与批量大幼线性正比,无偏移量,是一条过原点的直线。
t_mem(内存功夫):由两部门组成。
权沉读。菏且桓鲇肱看笥孜薰氐某Jɑ∑疲。
KV 缓存读。河肱看笥捉葡咝哉。
两者之和形成一条向上倾斜的曲线。
总功夫 t = max(t_compute, t_mem),取两条曲线的上包络线。
这意味着什么? 这是一张延长图。随着批量大幼增大,最初延长对批量大幼的依赖较弱,存在一个延长下界。这已经部门回覆了你的问题:对于给定的硬件配置,延长存鄙人界,即把所有参数从内存读取到芯片所需的最短功夫。即方便用全数内存带宽,也无法比这更快。
Dwarkesh: 从你画的斜率来看,若是推算功夫的斜率始终高于 KV 缓存对内存功夫的贡献斜率,是否意味着批量足够大时,内存始终不是瓶颈?
Reiner: 这对高低文长度极度敏感。随着高低文长度增长,KV 缓存读取功夫会不休上升,最终会从推算受限(compute-limited)切换到内存受限(memory-limited)。当两条曲线斜率刚好相称时,意味着系统同时处于内存受限和推算受限的平衡点,这是梦想状态。
以一个单一的代数例子注明:如果最优高低文长度是 10 万 Token,若是切换到 20 万 Token,MFU(模型浮点利用率)会降至约 50%。稍微偏离最优区间,对 MFU 的影响是显著的。
Dwarkesh: 稀少把稳力(sparse attention)是否能解决这个问题?
Reiner: 我对稀少把稳力很感兴致。Dense(密集)把稳力的内存读取功夫与高低文长度成线性关系,而稀少把稳力的扩大性要好得多。DeepSeek 已经颁布了稀少把稳力机造的论文,在 KV 缓存这一项中引入了平方根关系,大幅改善了扩大性。至于各大尝试室在实际中用的是什么,表部很难确定。
批量大幼 vs. 成本(cost per token)图像分析:
成本的寓意是:运行这次推理必要占用 GPU 若干毫秒,按幼时租用费(例如 2 美元/幼时/GPU)换算成成本。而这次推理处置了几多 Token?就是批量大幼 B。所以:
每 Token 成本=tB每 Token 成本=Bt
我们把前面三条曲线都除以 B:
推算功夫曲线:正本与 B 线性正比,除以 B 后变为常数。
KV 缓存读取曲线:正本与 B 线性正比,除以 B 后也变为常数。
权沉读取曲线:正本是常数,除以 B 后变为双曲线(parabola),随 B 增大而降落。
取最大值后,整体状态如下:在批量大幼为 1 时,成本极高(权沉读取无法被摊销);随着批量增大,权沉读取成本被摊销,趋近于下界,最终由推算功夫主导,形成成本下界。
"慢速模式"(Slow Mode)有没有效? 根基没有。由于 KV 缓存和推算对每个批次都是唯一无二的,无法通过更大的批量来摊销这两项成本。"慢速模式"只是让要求在这条成本曲线上停顿更久,无法突破那条下界。
最优批量大幼的推算:
我们关注的是权沉读取功夫蹬宗权沉推算功夫的那个点(忽略 KV 缓存项以简化分析):
Ntotal内存带宽=B×NactiveFLOPs内存带宽Ntotal=FLOPsB×Nactive
整顿后:
FLOPs / 内存带宽 = B × (N_active / N_total) 内存带宽FLOPs=B×NtotalNactive
左边是一个硬件参数,称为算术强度比。以 FP4 精度为例(每次乘法 0.5 字节),这个比值在大无数 GPU 上约为 300(无穷纲)。右边的 NactiveNtotalNtotalNactive 是稀少度参数。因而:
B≥300×NtotalNactive=300稀少度B≥300×NactiveNtotal=稀少度300
以 DeepSeek 为例,激活 256 个专家中的 32 个,稀少度为 1/8,因而:
B≈300×8=2400B≈300×8=2400
这个估算与实际中的数值极度靠近。实际中通;崛 2 到 3 倍的余量,由于现实效能不如屋顶线分析梦想。所以最优批量大幼约莫是 2000 到 3000 个 Token。
【注:这里的"Token"指的是并发推理序列数——约莫 2000 条独立的对话序列同时做单步解码,而非一条长序列中的 Token 数。】
Dwarkesh: 参与 KV 缓存后,最优批量大幼会有什么变动?
Reiner: 若是参与 KV 缓存,它会亏损更多内存带宽,权沉加载可用的带宽就削减了,因而必要更大的批量来赔偿,最优批量大幼会增大。
Dwarkesh: 这个数字和 GPU 个数是无关的?
Reiner: 对。结论极度有趣——最优批量大幼只取决于稀少度,与模型规模自身无关(稀少度自身蕴含了模型规模的信息)。
每秒 Token 数(吞吐量)估算:
每秒 Token 数=BΔt=B×64≈2000×64=128,000 tokens/s每秒 Token 数=ΔtB=B×64≈2000×64=128,000 tokens/s
【注:Δt ≈ 15~20 毫秒,取倒数约为 64/s。】
Dwarkesh: Gemini 去年颁布的全球流量是每秒数亿 Token,这只是其千分之一左右。
Reiner: 是的。这注明一个系统至少必要达到 Gemini 千分之一的规模能力在市场上有竞争力。这是一个有意思的下界。
关于稀少杜纂模型质量的衡量:
论文《Unified Scaling Laws for Routed Language Models》钻研了在维持活跃参数量不变的情况下,增长稀少度对模型质量的影响。凭据旧版 MoE 技术的尝试了局,64 个专家、3.7 亿活跃参数的模型,质量与 13 亿参数的 Dense 模型相当。也就是说,总参数量扩大了 64 倍,才换来了相当于 4 倍活跃参数的成效——价值相当大。
Dwarkesh: 稀少度增大一倍,总参数量就要扩大 8 倍,这到底是合算的吗?
Reiner: 从PokerStars扑克官网分析框架来看,这是纯正的净收益——由于更大的总参数量能够通过更大的批量来摊销,所以只有你有足够多的用户,就尽量增长稀少度。唯一的限度是内存容量:更多的总参数意味着必要更多的内存来存储权沉。
Dwarkesh: 关键点是:稀少度增长,必要的批量也更大,而更大的批量必要更大的内存容量来存储 KV 缓存,这是内存容量而非内存带宽的问题。
Reiner: 齐全正确。这是个很好的切入点,下面我们能够来聊聊 MoE 层在 GPU 机架上的物理布局。
第二章:MoE 模型在 GPU 机架上的布局方式
Reiner: 我们先放大看 MoE(混合专家)层的结构。一个典型的 MoE 层蕴含:
路由层(Router):接管输入 Token,决定将其路由到哪些专家。
多个专家(Experts):路由层选择一幼部门专家,例如 256 个当选 1/32。每个专家自身是一个尺度 MLP,蕴含上投影(up projection)、非线性激活和下投影(down projection)。
汇聚与残差衔接:各专家的输出汇聚求和后,加上输入 Token 的残差衔接,输出最终了局。
若何将 MoE 映射到 GPU 机架?尺度做法是使用专家并行(expert parallelism):分歧的专家放在分歧的 GPU 上。
以 DeepSeek 的 256 个专家为例,在 Blackwell 机架的 72 块 GPU 上部署:为简化推算,只用其中 64 块(忽略其余 8 块),每块 GPU 存放 4 个专家。
Token 必要从路由层分发到各个专家地点的 GPU,而后再汇集回来——这产生了全互联(all-to-all)通讯模式:肆意 GPU 都可能向肆意其他 GPU 发送数据。
Blackwell 机架内的 NVLink 网络天然支持全互联通讯——每块 GPU 通过 NVLink 电缆衔接到机架内部的 NVSwitch,肆意两块 GPU 只需两跳即可通讯(GPU → NVSwitch → GPU)。因而,单个机架是 MoE 专家并行的美满场景。
跨机架的问题:
当我必要扩大到两个机架时,麻烦来了;芗渫ㄑ妒褂玫氖枪婺@┐笸纾╯cale-out network),其带宽约为机架内 NVLink(scale-up network)的 1/8。这意味着:跨机架部署 MoE 时,约有一半的 Token 必要走这条慢速通路,成为严沉瓶颈。因而,单个机架限造了 MoE 专家层的规模上界。
这也正是行业一向在推动更大互联域(interconnect domain)的动力。
机架的物理结构简介:
机架是一个物理结构,通常高约数米、宽约一到两米,包容约 64 块 GPU,受限于供电、沉量和散热能力。Nvidia 的 Blackwell 机架将 GPU 置于机架表侧,NVSwitch 置于内部,通过大量电缆衔接。
机架内(scale-up): 全互联,高带宽,低延长。
机架间(scale-out): 通过数据中心互换机衔接,带宽约为机架内的 1/8。
从 Hopper 到 Blackwell,scale-up 域的规模变动:
Hopper:8 块 GPU 的 scale-up 域(NVLink 域)
Blackwell:72 块 GPU(约 64)
Rubin(下一代):约 500 块 GPU
从 Hopper 到 Blackwell 重要是从"托盘"状态切换到"机架"状态的产品决策。从 64 到 500 则必要更复杂的物理机架设计,主题挑战是电缆密度——随着 GPU 数量翻倍,电缆密度也要翻倍,受限于机架内的物理空间、电缆弯曲半径、背板衔接器密度以及沉量和散热等多方面约束。
为何不直接建一个超大互换机把所有 GPU 都互联? 重要原因是布线拥塞——必要铺设的电缆数量极其重大,物理上难以实现。
更大 scale-up 域对 AI 进展的影响:
GPT-4 据传占有超过一万亿参数,但直到近半年才有更大规模的模型颁布——这是否由于我们一向在期待足够大的内存来包容一个五万亿参数模型?
Reiner: 是的,这正是关键地点。以 Hopper 为例,8 块 H100 有约 640 GB 显存(截至 2022 年)。而 Blackwell 的 scale-up 内存终于达到 10~20 TB 量级,足以包容一个五万亿参数模型及其 KV 缓存。更大的 scale-up 域是一次沉大解锁。
Google 的 TPU 部署持久占有较大的 scale-up 域,这也诠氏缢为何 Gemini 似乎在预训练方面当先更早;钤静问芡扑愠杀鞠薅,总参数受 scale-up 域规模限度——这两者共同界定了可行的模型设计空间。
第三章:流水线并行若何跨机架散布模型层
Dwarkesh: 我们会商的单 scale-up 域内操作,是出格合用于某种具体工作负载,还是普遍合用——无论是前向传布还是后向传布,无论是预填充(prefill)还是解码(decode),无论是预训练、RL 天生还是用户推理?
Reiner: 要回覆这个问题,我们必要会商其他通讯模式。除了专家并行(all-to-all),还有张量并行(tensor parallelism)和数据并行(data parallelism),以及流水线并行(pipeline parallelism)。随着专家粒度越来越细,张量并行已不再那么沉要,但流水线并行和数据并行极度适合跨多个机架使用。
流水线并行(Pipeline Parallelism):
设想我们有一个 MoE 层,上面还有一百多个这样的层。我能够在某一层切换到另一个机架,让分歧机架掌管分歧的层。
关键问题:切换机架会成为通讯瓶颈吗?
我们比力 scale-out 带宽需要与 scale-up 带宽需要之比:
tscale-uptscale-out=18×Nactivated experts×2×Nlayers per stagetscale-outtscale-up=81×Nactivated experts×2×Nlayers per stage
【注:1/8 来自 scale-up 比 scale-out 快 8 倍;×2 来自 all-to-all 的双向通讯(上行和下行);N_activated experts 是每个 Token 激活的专家数;N_layers per stage 是每个流水线阶段的层数。】
我们但愿这个比值 ≥ 1,即 scale-up 功夫 ≥ scale-out 功夫——这意味着 scale-up 不是瓶颈(它速度更快,处置完数据时 scale-out 尚未实现)。
必要克服的只是 8 倍的因子。由于激活专家数通常就在 8 左右,再适当增长每流水线阶段的层数,就能轻松满足这一前提。
实际寓意: 能够构建一条由多个机架组成的流水线,每个机架掌管几层,而后挨次传递到下一个机架。这种切分方式天然地对应模型架构自身——专家切分在 GPU 之间,层切分在机架之间,极度直观。
Dwarkesh: Ilya 曾说"多所周知,流水线并不明智",Horace He 也提到流水线会带来架构约束(好比 Kimi 那种跨层残差衔接就很难实现)。流水线的益处是什么?
Reiner: 流水线自身带来很大的工程麻烦,但的确有益处:节俭内存容量。它不降低运行功夫或推算量——只是把一部门内存压力从一个机架转移到另一个机架。若是单个机架的内存成为瓶颈,流水线能够大幅缓解这个问题,让模型参数分散在多个机架上存储。
流水线气泡(Pipeline Bubble)与微批次(Micro-batch):
让我们画出推理时的流水线时序图。如果有 4 个机架(流水线阶段):
功夫 →机架 1: [批次0][批次1][批次2][批次3][批次0][批次1]...机架 2: [批次0][批次1][批次2][批次3][批次0]...机架 3: [批次0][批次1][批次2][批次3]...机架 4: [批次0][批次1][批次2]...
在推理时,我们让批次 0 一进入机架 1,机架 1 就立刻起头处置批次 1——无需期待。这齐全填满了功夫轴,没有气泡。此时"微批次"和"批次"的区别并无内容意思,只是叫法分歧。
在训练时,情况更复杂。必要先实现前向传布,再做反向传布,且反向传布必要齐全的全局批量能力做权沉更新。为了预防气泡,各类规划(如 Zero Bubble、One-Forward-One-Backward)会将前向和反向交错起来,但这带来相当的工程复杂性。
流水线对推理延长有影响吗? 没有。延长与不使用流水线一样——只是把各机架的工作分列在一条功夫线上,总功夫不变。流水线唯一的益处是降低每个机架的内存容量需要。
Dwarkesh: 那为什么推理时不常用流水线?
Reiner: 由于 Blackwell 机架已经有几十 TB 的内存,而一个万亿参数的模型只需约 1 TB,内存正本就相当富足,流水线降低的是已经不大的数字,收益有限。
流水线与 KV 缓存的内存分析:
系统内存需要:
Ctotal=Ntotal+B×Lcontext×bytes_per_tokenCtotal=Ntotal+B×Lcontext×bytes_per_token
引入专家并行度 E(机架内 GPU 数,例如 64)和流水线并行度 P(机架数,例如 4),每 GPU 内存需要为:
Cper GPU=NtotalE×P+Bglobal×Lcontext×bytes_per_tokenE×PCper GPU=E×PNtotal+E×PBglobal×Lcontext×bytes_per_token
但是,引入 P 级流水线时,全局批量 Bglobal=P×bmicroBglobal=P×bmicro(P 个微批次,每个大幼为 b_micro)。代入后:
Cper GPU=NtotalE×P+bmicro×Lcontext×bytes_per_tokenECper GPU=E×PNtotal+Ebmicro×Lcontext×bytes_per_token
关键结论:流水线阶段数 P 只能削减权沉占用的内存,对 KV 缓存占用的内存没有援手! P 的增大使全局批量增大,两个效应刚好抵消。
这类似于之前的结论:KV 缓存无法通过大批量来摊销,此刻又发现它也无法通过流水线分管。
Dwarkesh: 所以前沿尝试室做推理时,根基上都在单个 scale-up 域内?
Reiner: 是的。对于大无数模型,最优战术是:尽可能多地使用专家并行(最多用满整个 scale-up 域),流水线并行只用极少的级数(0 到 2 级,重要是为了节造权沉内存)。张量并行由于专家越来越细,已不再合用。
若是模型极大、极稀少,超出单个机架的内存,则能够适当增长流水线级数。
更大的 scale-up 域为何沉要?
有人会问:既然流水线能解决内存容量问题,更大的 scale-up 域有什么额表价值?
关键在于内存带宽,而非内存容量:
tmem(权沉)=Ntotalscale-up 域内所有 GPU 的总内存带宽=NtotalS×单 GPU 带宽tmem(权沉)=scale-up 域内所有 GPU 的总内存带宽Ntotal=S×单 GPU 带宽Ntotal
【注:S 为 scale-up 域内 GPU 数量。流水线中分歧阶段不能并行加载,但统一 scale-up 域内的所有 GPU 能够并行加载各自掌管的权沉,总带宽是单 GPU 的 S 倍。】
从 Hopper 到 Blackwell,单 GPU 内存带宽提升约 1.5~2 倍,但 scale-up 域大幼提升了 8 倍(从 8 到 64),总带宽因而大幅提升。这带来的收益是:
更低的推理延长;
支持更长的高低文(由于 KV 缓存读取速度更快)——这对日益强调智能体(agentic)能力的模型尤为沉要。
第四章:Ilya 为何说"多所周知,流水线并不明智"
Dwarkesh: 此刻各人都在讨论"内存墙"——内存变得极其昂贵,供给不及。听说超大规模数据中心今年有 50% 的本钱开支花在内存上,这意味着消费类设备(手机、笔记本)也受到冲击,产量降落。
但同时,你刚才说 Blackwell 机架内存已经相当富足。既然流水线能进一步降低内存需要,Jensen Huang 为什么还要把这么多内存堆进这些系统里?
Reiner: 让我们来分析内存容量的现实需要。
系统总内存需要:
Ctotal=Ntotal+B×Lcontext×bytes_per_tokenCtotal=Ntotal+B×Lcontext×bytes_per_token
流水线能够削减权沉部门的需要,但 KV 缓存部门无法被流水线分管。这就是关键地点:当流水线级数 P 足够大,权沉项变得微不及路,KV 缓存成为内存占用的主导项。
进一步的分析批注:增长流水线级数会相应增长同时在途的序列数(in-flight sequences),两个效应精确抵消,每 GPU 的 KV 缓存内存并不削减。所以,流水线对于 KV 缓存底子没有援手。
Dwarkesh: 那推理时现实上用什么并行战术?
Reiner: DeepSeek 的论文里有纪录:大量使用专家并行,极少甚至不用流水线(最多用 1~2 级来节造权沉存储,不再多了)。张量并行在专家越来越细的今天已险些没有意思。
为什么超大 Scale-Up 域对 AI 进展如此沉要:
总结一下,scale-up 域大幼影响 AI 进展的两个主题蹊径:
内存带宽:更大的 scale-up 域意味着更多 GPU 并行加载权沉,总带宽成倍提升,直接降低推理延长,支持更长高低文。
内存容量:包容更多总参数、更多 KV 缓存,支持更大规模的模型部署。
流水线解决了内存容量问题(至少对于模型权沉),但只有更大的 scale-up 域能力解决内存带宽问题。
第五章:由于强化进建,模型可能比 Chinchilla 最优训练量多 100 倍
Dwarkesh: 此刻有了 Chinchilla 扩大律(Chinchilla scaling laws),它通知你模型大幼相对于训练数据量该当若何匹配。但此刻的指标不只是用训练算力最大化模型质量,而是最幼化训练和推理的综合成本,同时达到某个机能指标。此表,有了强化进建(RL),还要思考预训练、RL 天生和用户推理这三者之间的推算分配。
具体问题是:此刻的模型比 Chinchilla 最优多训练了几多?RL 的引入是否扭转了这个数字?
Reiner: 这必要一些揣摩,由于最新的扩大律和模型流量数据并未公开。但我们能够用一个启发式框架来估算。
根基思路:当总成本是两项成本之和时,最幼化总成本的最利益往往在两项成本相称处。 这对形如 1/x 与 x 的函数对成立,对指数函数对也成立,对幂律函数通常也成立。因而,PokerStars扑克官网启发式如果是:预训练成本、RL 成本和推理成本该当大体相称。
成本公式:
预训练推算量(FLOPs)= 6×Nactive×Dpretrain6×Nactive×Dpretrain(驰名的 6ND 公式,前向 + 反向 = 6 倍参数乘数据量)
【注:每个参数每个 Token 的前向传布约 2 FLOPs,反向传布约 4 FLOPs,计算约 6 FLOPs。】
RL 推算量 = α×Nactive×DRLα×Nactive×DRL,其中 α 在 2~6 之间(2 暗示只做天生不做反向传布,6 暗示每条轨迹都做齐全的前向+反向;现实上还要扣除 decode 的 MFU 低于训练 MFU 的低效因子,约 30%,因而有效 α ≈ 1/10)
推理推算量(FLOPs)= 2×Nactive×Dinference2×Nactive×Dinference(只有前向传布,系数为 2)
【注:前向传布 = 2 × 参数量 × Token 数,这就是推理的 FLOPs 起源。】
令三者相称(系数约 1/10 和 1/10),活跃参数量可约去,得到:
Dpretrain≈Dinference≈DRL×110Dpretrain≈Dinference≈DRL×101
即:RL Token 数应约为预训练 Token 数的 10 倍(由于 RL 每个 Token 的成本更高,要花同样多的钱就必要更少的 Token)。预训练 Token 数与推理 Token 数大体相当。
现实数值估算:
推理 Token 总量:约 5000 万 tokens/秒(如果某单一模型的流量) × 2 个月 ≈ 200 万亿 Token。
前沿模型的预训练 Token 数:据估算约 150 万亿 Token(与推理量大体相当,切合PokerStars扑克官网框架)。
活跃参数量:约 1000 亿参数(估算)。
Chinchilla 最优 Token 数 DChinchilla≈20×Nactive≈2DChinchilla≈20×Nactive≈2 万亿 Token。
【注:Chinchilla 法规建议训练 Token 数约为参数量的 20 倍。】
结论: 现实训练 Token 数(约 200 万亿)是 Chinchilla 最优值(约 2 万亿)的 100 倍。即当前前沿模型的过训练水平约为 Chinchilla 最优的 100 倍。
Dwarkesh: 这意味着,为了优化训练与推理的综合成本,GPT-5 之类的模型接受用户使用时产生的全数 Token 量,该当与预训练 Token 总量大体相当——而预训练 Token 量约莫蹬宗人类知识的总和。
Reiner: 这就是这个框架给出的推论。当然,若是你的模型预测能力不美满,或者模型最终被烧毁而没有部署,推理端的 Token 价值要打折扣,因而现实上可能会更偏差于多训练一些。
Dwarkesh: 仅凭公开信息就能首先道理地推算出这种量级的数字,的确令人叹服。下面,我们能够从公开的 API 价值中再揣度一些有趣的信息。
第六章:从 API 定价揣度长高低文的内存成本
Dwarkesh: Gemini 3.1 Pro 的定价是:超过 20 万 Token 的高低文比 20 万以下贵 50%。为什么刚好是 50%?为什么刚好在 20 万 Token 这个节点?
Reiner: 先回首一下成本与高低文长度的关系图。以高低文长度为横轴,每 Token 成本为纵轴:
推算功夫(compute time):对高低文长度险些无依赖,是一条水平线。(理论上存在二次项,但在百万 Token 量级以下能够忽略。)
内存读取功夫(mem time):从权沉基础值启程,随高低文长度线性增长(由于 KV 缓存随高低文增大)。
两者取最大值,在某个临界点会从"推算受限"切换到"内存受限",出现拐点。这个拐点大体对应提价的 20 万 Token 节点。 两段式定价结构(低于 20 万一个价,高于 20 万一个价)是应对这一成本结构的合理贸易战术。
从定价推算 bytes_per_token(每 Token 的 KV 缓存大。
令内存功夫蹬宗推算功夫的断点在 200K Token 处(忽略权沉读取项,仅思考 KV 缓存读取项):
B×Lcontext×bytes_per_token内存带宽=NactiveFLOPs内存带宽B×Lcontext×bytes_per_token=FLOPsNactive
B 约去,整顿得:
bytes_per_token=NactiveLcontext×内存带宽FLOPs=NactiveLcontext×1300bytes_per_token=LcontextNactive×FLOPs内存带宽=LcontextNactive×3001
代入 Nactive≈1000Nactive≈1000 亿,Lcontext=200,000Lcontext=200,000:
bytes_per_token=10112×105×1300≈1066≈1667 字节≈2 KBbytes_per_token=2×1051011×3001≈6106≈1667 字节≈2 KB
2 KB/token 是否合理? 齐全合理D芄煌ü韵铝教貂杈妒迪郑
密集把稳力 + 跨层共享: 如 Character.AI 和 Gemma 模型中的架构,全局 KV 缓存只有 1 层,共享给所有层使用。推算:1×2×dhead×NKV heads=1×2×128×8=20481×2×dhead×NKV heads=1×2×128×8=2048 字节。
其中 dhead=128dhead=128(把稳力头维度,典型值);NKV headsNKV heads 通常在 1~8 之间。
KV 头(存储汗青 Token 暗示,留在内存中)与 Q 头(只在当前 Token 确把稳力推算中一时使用)分歧。
稀少把稳力: 使用更多层和更多头,但引入一个稀少因子(1/sparsity)来降低等效的 bytes_per_token。
这进一步注明,API 定价现实上泄露了大量模型架构信息。
从输出价值比输入价值贵揣度 decode vs. prefill 的成本差距:
通常输出(decode)的价值比输入(prefill)贵约 5 倍。为什么?
我们画"pass 长度(len_pass)vs. 每 Token 成本"的关系图:
decode 是 len_pass = 1 的特殊情况。
prefill 对应较大的 len_pass。
每 Token 成本 = t / len_pass:
推算成本(t_compute / len_pass): 推算功夫自身不随 len_pass 变动,除以 len_pass 后是一条常数线——这意味着 prefill 的每 Token 推算成本与 decode 一样。
内存成本(t_mem / len_pass): 内存功夫随 len_pass 的增长而…其实险些不变(权沉读取是重要项,KV 缓存读取在 flash attention 下险些是一时的)。但除以 len_pass 之后,反而随 len_pass 增大而降低。
这注明:prefill 现实上比 decode 便宜,由于 decode 极端受限于内存带宽,而 prefill 能够更高效地利用推算能力。 decode 是内存带宽受限的,prefill 是推算受限的。
从"output 比 input 贵 5 倍"这肯定价,能够读出:decode 时内存带宽利用率约是推算利用率的 5 倍——即系统极端受内存带宽瓶颈造约。
提醒词缓存(Prompt Cache)的定价分析:
以 Gemini 2.5 Pro 的定价为例(非精确):
基础输入 Token:$5/百万 Token(相当于沉新推算 KV 缓存的成本)
写入缓存(5 分钟):略贵于基础价值
写入缓存(1 幼时):更贵
缓存的成本有两个维度:
检索成本(一次性): 从存储地位读取 KV 缓存到 HBM 的带宽成本。
持有成本(每秒): 占用存储空间的机遇成本(若占满该存储,GPU 无法处置更多要求)。
分歧内存层级的"排空功夫"(capacity / bandwidth):
HBM:≈ 20 毫秒(排空功夫极短,不适合长功夫持有)
DDR:≈ 秒级(1~10 秒)
Flash(NVMe SSD):≈ 分钟级(约 1 分钟)
机械硬盘(HDD):≈ 幼时级(约 1 幼时)
5 分钟缓存 vs. 1 幼时缓存刚好对应 Flash 和 HDD 两个层级。 令人意表的是,机械硬盘这种古老技术仍在数据中心中被使用,其排空功夫约为 1 幼时,成本极低但速度极慢。
第七章:神经网络与密码学的趋同演化
Dwarkesh: 你有一篇极度有趣的博文,会商了密码和谈的结构与神经网络的类似性——两者都必要将信息混合到所有输入中(前者是为了预防哈希函数被预测,后者是为了建模输入之间的相互影响),这是一种趋同演化。但从高档次看,它们其切实做相反的事件:密码和谈把有结构的信息变得像随机数,神经网络则从看似随机的数据(蛋白质序劣注DNA、天然说话)中提取高层结构。
Reiner: 是的,这个对比很有意思。类似机造用于相反目的。我们也能在其他处所看到"混合与侵扰"的模式,好比做蛋糕时搅拌面糊——先这个方向搅,再那个方向搅,的确是不错的混合战术。
不外,两者有一个深刻的区别:神经网络是可微分的,而密码算法致力预防可微分。
可微分性使神经网络可训练。 残差衔接和 LayerNorm 等设计都是为了维持梯度的简洁可推算性。
密码分析中的差分密码分析(differential cryptanalysis) 刚好是通过对密码算法"求导"来攻击它:对输入做微幼扰动,观察输出变动。一个好的密码算法应该使得输入的微幼差距导致输出的巨大差距(雪崩效应),而神经网络刚好必要维持梯度的陆续性来预防雪崩。
两者的指标在这一维度上截然相反。
Dwarkesh: 神经网络真的被用于密码学了吗?
Reiner: 用神经网络来做密码算法是极度危险的。99% 的新密码算法都是被攻破的。
但反方向——密码学的思想被引入神经网络——至少有一个极度成功的例子:Feistel 密码(Feistel Cipher / Feistel Network)。
Feistel 网络道理: 给定一个不成逆函数 f,若何机关一个可逆层?步骤是使用两个输入:
输入: (x,y)→输出: (x, y+f(x))输入: (x,y)→输出: (x, y+f(x))
加密(前向): 推算 z=y+f(x)z=y+f(x),输出 (x,z)(x,z)。
解密(逆向): 已知 (x,z)(x,z),复原 xx(直接读。,复原 y=z?f(x)y=z?f(x)(已知 x,能够沉新推算 f(x))。
整个机关是可逆的,即便 f 自身不成逆。这在密码学中被宽泛用于构建加密层,也是很多对称加密算法的基础。
被引入神经网络的利用——可逆网络(RevNets):
2017 年的论文《Reversible Residual Networks》(RevNets)将 Feistel 思想引入 Transformer 等神经网络:
两个输入: (x, y)网络层 f(例如 Transformer 层)前向: output_x = x output_y = y + f(x)逆向: x = output_x y = output_y - f(output_x)
这现实上是将残差衔接从 1 层造成了跨 2 层的衔接(y 来自上一层的残差)。
益处:彻底解除激活值内存占用。
通常训练: 前向传布时必要将每一层的激活值写入 HBM,反向传布时再读出(内存占用随层数线性增长,往往是训练中最大的内存开销)。
RevNets 训练: 由于网络可逆,前向传布时能够不保留激活值;反向传布时,同步地早年向传布的最终状态逆向沉构出所需的激活值(沉算,rematerialization)。
价值是:必要额表的推算(沉算一遍前向传布),换来了大幅削减的内存占用。
Dwarkesh: 有趣——这和 KV 缓存的逻辑正好相反:KV 缓存是用更多内存来节俭推算,而 RevNets 是用更多推算来节俭内存。
Reiner: 齐全正确。鉴于当前硬件的内存与推算成本比,"花内存省推算"(如 KV 缓存)通常是更合算的;但 RevNets 展示了反过来也能够有价值。
Dwarkesh: 太杰出了,Reiner,极度感激你!这场黑板讲座齐全实现了我们建造这个新录造空间的初衷。
Reiner: 极度感激,很欣喜能来!
视频地址:https://www.youtube.com/watch?v=xmkSf5IS-zw
@童梦齐:通宝tb222体,美军方将参加复原霍尔木兹通航的行动@赖翊。耗凶油稚擦锍 用手硬顶住
@刘佳玉:曹德旺女儿为最大甲醇双燃料船定名
热点排行
- 1 bet365
- 2 豹城娱乐
- 3 京彩集团app官方下载
- 4 猫乐玩游戏平台
- 5 凯发娱乐体育官方网址
- 6 网络赌钱大全
- 7 利发国际电竞
- 8 188雷速比分篮球
- 9 最老版捕鱼达人