硬核拆解::GPT-5、Claude和Gemini是若何训练和推理的???
一块黑板、几个方程式,,,芯片工程师Reiner Pope用这些工具,,,拆解了GPT-5、Claude和Gemini背后的训练与推理逻辑,,,并从公开的API定价中,,,反推出大模型不愿公开的架构细节。。。!
近日,,,驰名科技播客主持人Dwarkesh Patel与芯片创业公司MatX的CEO Reiner Pope进行了一场罕见以黑板推演为大局的深度对话。。。!ope此前在谷歌掌管TPU架构与编译器优化,,,被以为是少数真正贯通AI全栈——从芯片设计到模型架构——的工程师之一。。。!
Pope在黑板前用方程和图表,,,系统拆解了前沿大模型从训练到推理的底层逻辑。。。!T贒warkesh看来,,,这些细节“一旦理解,,,AI为何是今天这个样子——架构、定价、进取速度——就全都说得通了”。。。!
主题结论蕴含::若是不批量处置用户要求,,,单次推理成本可能逾越1000倍。。。!6鳪PT-5的预训练数据量,,,是理论最优解的100倍。。。!4送,,,DeepSeek V3占有256个专家,,,每次推理只激活其中一小部门(32个)。。。!oE(混合专家)架构被限度在一个机架72块GPU以内,,,这是制约模型规模扩大的主题物理瓶颈之一。。。!
一块GPU机架,,,决定了模型有多大
要理解顶级大模型为何是此刻这个样子,,,得先从硬件说起。。。!
现代大模型推理跑在GPU集群上。。。!S⑽按顱lackwell NVL72是目前主流的部署状态——一个机架塞了72块GPU,,,通过NVLink高速互联,,,肆意两块GPU之间只需两跳(经过中央互换机),,,通讯带宽极高。。。!
但一旦跨出这个机架,,,通讯速度就慢了8倍。。。!
这个"8倍差距",,,直接决定了MoE(混合专家模型)的部署上限。。。!
DeepSeek V3占有256个专家,,,每次推理只激活其中一小部门(32个)。。。!ope诠释,,,最天然的部署方式是"专家并行"——分歧专家放在分歧GPU上。。。!H魏蜧PU都可能向任何其他GPU发送token,,,这是一种"全对全"(all-to-all)通讯模式,,,和机架内NVLink的拓扑结构美满符合。。。!
但一旦专家散布到两个机架,,,问题就来了::跨机架的token有一半要走慢8倍的网络,,,直接成为瓶颈。。。!
"一个机架的巨细,,,限度了你能做多大的专家层。。。!" Pope说。。。!
这就诠氏缢一个市场上持久猜疑的问题::为什么Gemini看起来比其他尝试室更早获得大模型预训练的成功???Pope的揣度是,,,谷歌的TPU系统持久占有更大的scale-up域,,,能在更大领域内做全对全通讯,,,这让它能够部署更高稀少度的MoE模型,,,同时维持推理效能。。。!
批处置::省1000倍成本的奥秘
访谈还提及一个市场常见景象::Claude、Codex等产品提供“急剧模式”,,,价值逾越6倍,,,速度却只快2.5倍。。。!N裁???能不能反过来,,,用“慢速模式”换取更廉价值???
Pope的回覆直接::主题变量是批处置规模(batch size)。。。!K靡桓"发车时刻表"的比喻诠氏缢背后的逻辑。。。!
GPU每隔约20毫秒发出一班"列车"(执行一次批处置推理)。。。!C堪嗔谐的艽罴付喑丝,,,就是批处置大。。。!(batch size)。。。!
主题结论是::推理的单元成本,,,在批处置量小的时辰极高,,,随着批处置增大会急剧降落,,,最终趋于一个下限。。。!
原因是权重加载成本的摊销。。。!C看瓮评矶家涯P腿ㄖ卮幽诖妫℉BM)读入芯片。。。!U飧龀杀臼枪潭ǖ,,,不论服务1个用户还是2000个用户,,,权重只读一次。。。!H羰侵环务1个用户,,,这个固定成本就全压在他身上;;;服务2000个用户,,,成本均摊后险些能够忽略不计。。。!
Pope估算,,,若是不做批处置,,,成本能够逾越1000倍。。。!
那最优批处置规模是几多???Pope给出了一个简洁的公式::约等于300乘以模型稀少度。。。!6訢eepSeek这类激活1/8专家的模型,,,约莫是2400个并发序列。。。!U飧鍪钟肽P妥懿问课薰,,,只取决于硬件个性和稀少度——这是一个"反直觉"的结论。。。!
所以,,,"慢速模式"真的能便宜好多吗???从数学上看,,,不太行。。。!V缓存(存储每个用户汗青对话的内存)无法在分歧用户之间共享摊销,,,因而让用户多等并不能显著降低成本。。。!ope说::"(慢速模式)节俭不了太多,,,由于KV缓存是每个用户独立的,,,推算量也是独立的。。。!"
从API定价,,,反推模型架构
Pope展示了一个让人印象深刻的推理过程::通过公开的API定价,,,能够反推出模型的内部架构参数。。。!
线索一::Gemini在20万 token处涨价50%,,,为什么刚好是50%???为什么刚好在20万Token这个节点???
Gemini 3.1的定价在超过20万 token后上涨50%。。。!ope诠释,,,这对应着KV缓存的内存带宽成本超过权重矩阵推算成本的临界点——也就是模型从"推算瓶颈"切换到"内存带宽瓶颈"的转折点。。。!
他进一步用这个数字反算::如果激活参数约1000亿,,,临界点在20万 token,,,能够推算出每个token的KV缓存约莫占2KB。。。!U庥隒haracter AI等公开论文中描述确把稳力机制参数(8个KV头,,,维度128)高度吻合。。。!
"他们通过API定价泄露了相当多的信息。。。!" Pope说,,,"当然,,,他们有动力把价值定得靠近成本,,,不然竞争敌手能够抢走用户。。。!"
线索二::输出比输入贵5倍
大无数模型的输出token(decode)比输入token(prefill)贵约3-5倍。。。!T蛟谟::
Prefill阶段::一次性并行处置大量输入token,,,推算效能高,,,靠近"推算瓶颈"
Decode阶段::每次只天生一个token,,,要读取全数模型权重和KV缓存,,,极端受内存带宽瓶颈制约
这个价值差,,,现实上量化了当前顶级模型推理时的内存带宽瓶颈水平。。。!
线索三::缓存射中为何便宜10倍
API通常对"缓存射中"的token大幅打折。。。!ope诠释,,,这对应的是存储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补充说,,,这个推算的主题逻辑是::你花在服务用户上的推算,,,应该和你花在训练上的推算大体相当。。。!2蝗,,,就是在某一头糜花钱。。。!
用Patel的话说::"若是GPT-5要被最优地训练,,,那么所有效户使用它产生的token总量,,,应该等于预训练亏损的token总量——而预训练数据,,,约莫就是人类知识的总和。。。!"
Pope对此回应::"大体如此。。。!"
流水线并行::听起来很美,,,但大无数时辰用不上
关于流水线并行(把模型的分歧层分散到分歧机架上串行执行),,,Pope的结论是::它能节俭内存容量,,,但解决不了KV缓存问题,,,因而在推理场景价值有限。。。!
直觉上,,,流水线并行必要同时维持多个"在途"的batch,,,这让全局batch巨细随流水线级数成比例增长。。。!9倘幻扛龌苌系娜ㄖ卮娲⑾骷趿,,,但所有机架上的KV缓存总量并没有削减——由于必要更多并发序列来填满流水线。。。!
"你无法跨pipeline阶段摊销KV缓存,,,就像你无法跨batch摊销KV缓存一样。。。!" Pope总结道。。。!
这也诠氏缢为什么Ilya Sutskever曾说"此刻我们都知晓,,,流水线并行是不明智的"——这句话在访谈中被Patel引用,,,而Pope的推演给出了工程层面的注解。。。!
神经网络与密码学的“趋同进化”
访谈最后,,,Pope谈到了他写过的一篇博客概念::神经网络的架构与密码学和谈之间存在"趋同进化"。。。!
两者都必要把输入信息在整个系统中充分混合——密码学是为了让输出看起来像随机噪声,,,神经网络是为了提取暗藏的高层结构。。。!5副旮蘸孟喾::密码学致力粉碎结构,,,神经网络致力发现结构。。。!
Pope提到了一个具体的技术迁徙案例::Feistel网络——一种密码学中用于让不成逆函数变得可逆的机关,,,在2017年被引入神经网络,,,形成了"RevNets"(可逆网络)。。。!evNets允许在训练的反向传布过程中,,,无需预先存储所有层的激活值,,,而是边反向传布边重新推算——用更多推算换取更少内存。。。!
这与KV缓存的逻辑刚好相反::KV缓存是用更多内存换取更少推算。。。!ope说,,,"用内存换推算,,,在当前的硬件前提下通常是合算的。。。!"
访谈全文如下::
GPT-5、Claude 和 Gemini 的训练与推理机制——Reiner Pope 主讲主持人::Dwarkesh Patel 嘉宾::Reiner Pope(MatX 首席执行官)节目注明:: 本期选取了全新的黑板讲座大局,,,由 Reiner Pope 系统解说前沿大说话模型的训练与推理道理。。。!D谌萆婕按罅渴萦胧频,,,令人惊讶的是,,,仅凭几个公式、公开的 API 价值和一支粉笔,,,就能揣度出各大尝试室正在做什么。。。!D谌萋杂屑际跣,,,但极度值得深刻相识。。。!einer 是芯片创业公司 MatX 的 CEO(披露::主持人 Dwarkesh 是 MatX 的天使投资人)。。。!K饲霸 Google 从事软件效能、编译器和 TPU 架构工作,,,是极少数可能贯通从芯片设计到模型架构整个技术栈的专家之一。。。!5谝徽::批量巨细若何影响 Token 成本与速度Dwarkesh:: 今天我采访的是 Reiner Pope,,,他是新芯片创业公司 MatX 的 CEO。。。!4饲八 Google 主导了 TPU 架构等多项工作。。。!1酒谘∪『诎褰沧娜麓缶,,,我们专门为此打造了新的录制空间。。。!=裉煲牡幕疤夂悄P图芄、机械学习基础设施等诸多方面。。。!N乙晕飧龌疤饧戎匾。。。!R坏┠憷斫饬搜盗泛屯评碓诩褐械脑俗鞣绞,,,好多问题就会豁然开朗——为什么 AI 是此刻这个样子,,,为什么 AI 架构是此刻这个样子,,,为什么 API 价值是此刻这个样子,,,以及为什么 AI 进取是此刻这个节拍。。。!R嬲斫庹庑,,,你必要深刻细节,,,而深刻细节就必要一块黑板。。。!einer,,,极度感激你来参与。。。!J紫,,,我想请你诠释一个景象。。。!4丝逃屑讣夜,,,好比 Claude、Codex 和 Cursor,,,都提供类似"急剧模式"的选项——破费 6 倍的价值,,,能够获得 2.5 倍的 Token 输出速度。。。!N矣屑父鑫侍::这背后的机制是什么???为什么付更多的钱就能获得更低的延长???这种模式能一向延长下去吗???好比付 100 倍的价值,,,能获得更快的速度吗???反过来是否也成立???好比推出"慢速模式"——若是用户愿意等几分钟,,,能否获得更便宜的价值???Reiner:: 直接说结论::最大的影响成分是批量大。。。!(batch size)。。。!=酉吕次颐腔峋妨炕庖坏,,,分析它对延长和成本的影响。。。!1鸬幕褂幸桓鲂в,,,叫做揣摩解码(speculative decoding)或多 Token 预测(multi-token prediction),,,我们之后能够回头会商,,,但首先要讲的是批量巨细。。。!N蚁胍肓礁龇治鲎荚::第一,,,屋顶线分析(roofline analysis)。。。! 我们来分析若何在一个芯片集群上运行 Transformer 模型。。。!R Blackwell NVL72 集群为例,,,也就是一个 72 块 GPU 的机架。。。!N荻ハ叻治龉刈⒌氖悄诖娲砗屯扑慊苷饬礁鑫。。。!5诙,,,只关注模型的两个单一成分:: 操作权重的功夫,,,以及操作高低文(即 KV 缓存)的功夫。。。!N颐浅⑹怨浪阍诵心持肿刺耐评硭璧墓Ψ。。。!U獠皇蔷吩げ,,,而是近似——我们会说"功夫大于等于某个量"。。。!N颐撬伎剂礁龇矫::内存读取所需功夫,,,以及推算所需功夫。。。!U飧龅ヒ荒P湍芨颐羌惹康脑げ饽芰。。。!M扑愎Ψ颍╰_compute)若何估算???必要做两件事::一是乘以所有活跃参数;;;二是做把稳力推算。。。!6杂谌ㄖ鼐卣蟪朔ǖ耐扑愎Ψ,,,公式如下::tcompute=B×NactiveFLOPstcompute=FLOPsB×Nactive【注::B 为批量巨细,,,N_active 为活跃参数数量,,,FLOPs 为芯片的浮点运算吞吐量。。。!0盐攘ν扑悴棵畔喽越闲,,,可忽略。。。!!!!
内存功夫(t_mem)若何估算???
必要取出所有权重,,,以及读取 KV 缓存::
tmem=Ntotal内存带宽+B×Lcontext×bytes_per_token内存带宽tmem=内存带宽Ntotal+内存带宽B×Lcontext×bytes_per_token
【注::N_total 为总参数量(不只是活跃参数),,,第二项是 KV 缓存读取功夫,,,与批量巨细和高低文长度成正比。。。!!!!
Dwarkesh:: 批量指的是同时服务多个用户,,,对吧???
Reiner:: 对。。。!E康囊馑家舱谟诖恕羰遣话讯喔鲇没Ч椴⒊梢慌,,,成本和经济性可能比归并处置差一千倍。。。!N颐巧院蠡崦飨缘乜吹秸庖坏。。。!
以 DeepSeek V3 为例,,,它有约 370 亿活跃参数,,,总参数约 7000 亿。。。!N颐枪刈⒌氖谴χ玫ジ Token 时用到的活跃参数。。。!
关于 KV 缓存,,,单一诠释一下::
在自回归推理的解码阶段,,,已有一批文本 Token,,,模型要天生下一个 Token。。。!U庖徊奖匾阅P椭兴胁愕娜ㄖ鼐卣笞銎肴那跋虼,,,同时通过把稳力机制,,,让当前 Token 关注所有汗青 Token——它关注的是模型对汗青 Token 天生的内部暗示,,,这就是 KV 缓存。。。!
这个"单 Token 关注全数汗青"的过程重要由内存读取主导,,,而非矩阵乘法。。。!R蚨,,,内存读取功夫由以下公式给出::
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(内存功夫)::由两部门组成。。。!
权重读。。。!::是一个与批量巨细无关的常数(基础偏移)。。。!
KV 缓存读。。。!::与批量巨细近似线性正比。。。!
两者之和形成一条向上倾斜的曲线。。。!
总功夫 t = max(t_compute, t_mem),,,取两条曲线的上包络线。。。!
这意味着什么??? 这是一张延长图。。。!K孀排烤尴冈龃,,,最初延长对批量巨细的依赖较弱,,,存在一个延长下界。。。!U庖丫棵呕馗擦四愕奈侍::对于给定的硬件配置,,,延长存鄙人界,,,即把所有参数从内存读取到芯片所需的最短功夫。。。!<捶奖阌萌诖娲,,,也无法比这更快。。。!
Dwarkesh:: 从你画的斜率来看,,,若是推算功夫的斜率始终高于 KV 缓存对内存功夫的贡献斜率,,,是否意味着批量足够大时,,,内存始终不是瓶颈???
Reiner:: 这对高低文长度极度敏感。。。!K孀鸥叩臀某ざ仍龀,,,KV 缓存读取功夫会不休上升,,,最终会从推算受限(compute-limited)切换到内存受限(memory-limited)。。。!5绷教跚咝甭矢蘸孟喑剖,,,意味着系统同时处于内存受限和推算受限的平衡点,,,这是梦想状态。。。!
以一个单一的代数例子注明::如果最优高低文长度是 10 万 Token,,,若是切换到 20 万 Token,,,MFU(模型浮点利用率)会降至约 50%。。。!I晕⑵胱钣徘,,,对 MFU 的影响是显著的。。。!
Dwarkesh:: 稀少把稳力(sparse attention)是否能解决这个问题???
Reiner:: 我对稀少把稳力很感兴致。。。!ense(密集)把稳力的内存读取功夫与高低文长度成线性关系,,,而稀少把稳力的扩大性要好得多。。。!eepSeek 已经颁布了稀少把稳力机制的论文,,,在 KV 缓存这一项中引入了平方根关系,,,大幅改善了扩大性。。。!V劣诟鞔蟪⑹允以谑导手杏玫氖鞘裁,,,外部很难确定。。。!
批量巨细 vs. 成本(cost per token)图像分析::
成本的寓意是::运行这次推理必要占用 GPU 若干毫秒,,,按小时租用费(例如 2 美元/小时/GPU)换算成成本。。。!6獯瓮评泶χ昧思付 Token???就是批量巨细 B。。。!K::
每 Token 成本=tB每 Token 成本=Bt
我们把前面三条曲线都除以 B::
推算功夫曲线::正本与 B 线性正比,,,除以 B 后变为常数。。。!
KV 缓存读取曲线::正本与 B 线性正比,,,除以 B 后也变为常数。。。!
权重读取曲线::正本是常数,,,除以 B 后变为双曲线(parabola),,,随 B 增大而降落。。。!
取最大值后,,,整体状态如下::在批量巨细为 1 时,,,成本极高(权重读取无法被摊销);;;随着批量增大,,,权重读取成本被摊销,,,趋近于下界,,,最终由推算功夫主导,,,形成成本下界。。。!
"慢速模式"(Slow Mode)有没有效??? 根基没有。。。!S捎 KV 缓存和推算对每个批次都是唯一无二的,,,无法通过更大的批量来摊销这两项成本。。。!"慢速模式"只是让要求在这条成本曲线上停顿更久,,,无法突破那条下界。。。!
最优批量巨细的推算::
我们关注的是权重读取功夫等于权重推算功夫的那个点(忽略 KV 缓存项以简化分析)::
Ntotal内存带宽=B×NactiveFLOPs内存带宽Ntotal=FLOPsB×Nactive
整顿后::
FLOPs / 内存带宽 = B × (N_active / N_total) 内存带宽FLOPs=B×NtotalNactive
左边是一个硬件参数,,,称为算术强度比。。。!R FP4 精度为例(每次乘法 0.5 字节),,,这个比值在大无数 GPU 上约为 300(无穷纲)。。。!S冶叩 NactiveNtotalNtotalNactive 是稀少度参数。。。!R蚨::
B≥300×NtotalNactive=300稀少度B≥300×NactiveNtotal=稀少度300
以 DeepSeek 为例,,,激活 256 个专家中的 32 个,,,稀少度为 1/8,,,因而::
B≈300×8=2400B≈300×8=2400
这个估算与实际中的数值极度靠近。。。!J导手型ǔ;;;崛 2 到 3 倍的余量,,,由于现实效能不如屋顶线分析梦想。。。!K宰钣排烤尴冈寄 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:: 是的。。。!U庾⒚饕桓鱿低持辽俦匾锏 Gemini 千分之一的规模能力在市场上有竞争力。。。!U馐且桓鲇幸馑嫉南陆。。。!
关于稀少度与模型质量的衡量::
论文《Unified Scaling Laws for Routed Language Models》钻研了在维持活跃参数量不变的情况下,,,增长稀少度对模型质量的影响。。。!F揪菥砂 MoE 技术的尝试了局,,,64 个专家、3.7 亿活跃参数的模型,,,质量与 13 亿参数的 Dense 模型相当。。。!R簿褪撬,,,总参数量扩大了 64 倍,,,才换来了相当于 4 倍活跃参数的成效——价值相当大。。。!
Dwarkesh:: 稀少度增大一倍,,,总参数量就要扩大 8 倍,,,这到底是合算的吗???
Reiner:: 从zbo智博1919com分析框架来看,,,这是纯正的净收益——由于更大的总参数量能够通过更大的批量来摊销,,,所以只有你有足够多的用户,,,就尽量增长稀少度。。。!Nㄒ坏南薅仁悄诖嫒萘::更多的总参数意味着必要更多的内存来存储权重。。。!
Dwarkesh:: 关键点是::稀少度增长,,,必要的批量也更大,,,而更大的批量必要更大的内存容量来存储 KV 缓存,,,这是内存容量而非内存带宽的问题。。。!
Reiner:: 齐全正确。。。!U馐歉龊芎玫那腥氲,,,下面我们能够来聊聊 MoE 层在 GPU 机架上的物理布局。。。!
第二章::MoE 模型在 GPU 机架上的布局方式
Reiner:: 我们先放大看 MoE(混合专家)层的结构。。。!R桓龅湫偷 MoE 层蕴含::
路由层(Router)::接管输入 Token,,,决定将其路由到哪些专家。。。!
多个专家(Experts)::路由层选择一小部门专家,,,例如 256 个当选 1/32。。。!C扛鲎易陨硎且桓龀叨 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)。。。!R蚨,,,单个机架是 MoE 专家并行的美满场景。。。!
跨机架的问题::
当我必要扩大到两个机架时,,,麻烦来了。。。!;;;芗渫ㄑ妒褂玫氖枪婺@┐笸纾╯cale-out network),,,其带宽约为机架内 NVLink(scale-up network)的 1/8。。。!U庖馕蹲::跨机架部署 MoE 时,,,约有一半的 Token 必要走这条慢速通道,,,成为严重瓶颈。。。!R蚨,,,单个机架限定了 MoE 专家层的规模上界。。。!
这也正是行业一向在推动更大互联域(interconnect domain)的动力。。。!
机架的物理结构简介::
机架是一个物理结构,,,通常高约数米、宽约一到两米,,,包容约 64 块 GPU,,,受限于供电、重量和散热能力。。。!vidia 的 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 重要是从"托盘"状态切换到"机架"状态的产品决策。。。!4 64 到 500 则必要更复杂的物理机架设计,,,主题挑战是电缆密度——随着 GPU 数量翻倍,,,电缆密度也要翻倍,,,受限于机架内的物理空间、电缆弯曲半径、背板衔接器密度以及重量和散热等多方面约束。。。!
为何不直接建一个超大互换机把所有 GPU 都互联??? 重要原因是布线拥塞——必要铺设的电缆数量极其重大,,,物理上难以实现。。。!
更大 scale-up 域对 AI 进展的影响::
GPT-4 据传占有超过一万亿参数,,,但直到近半年才有更大规模的模型颁布——这是否由于我们一向在期待足够大的内存来包容一个五万亿参数模型???
Reiner:: 是的,,,这正是关键地点。。。!R Hopper 为例,,,8 块 H100 有约 640 GB 显存(截至 2022 年)。。。!6 Blackwell 的 scale-up 内存终于达到 10~20 TB 量级,,,足以包容一个五万亿参数模型及其 KV 缓存。。。!8蟮 scale-up 域是一次重大解锁。。。!
Google 的 TPU 部署持久占有较大的 scale-up 域,,,这也诠氏缢为何 Gemini 似乎在预训练方面当先更早。。。!;;;钤静问芡扑愠杀鞠薅,,,总参数受 scale-up 域规模限度——这两者共同界定了可行的模型设计空间。。。!
第三章::流水线并行若何跨机架散布模型层
Dwarkesh:: 我们会商的单 scale-up 域内操作,,,是出格合用于某种具体工作负载,,,还是普遍合用——无论是前向传布还是后向传布,,,无论是预填充(prefill)还是解码(decode),,,无论是预训练、RL 天生还是用户推理???
Reiner:: 要回覆这个问题,,,我们必要会商其他通讯模式。。。!3俗也⑿校╝ll-to-all),,,还有张量并行(tensor parallelism)和数据并行(data parallelism),,,以及流水线并行(pipeline parallelism)。。。!K孀抛伊6仍嚼丛较,,,张量并行已不再那么重要,,,但流水线并行和数据并行极度适合跨多个机架使用。。。!
流水线并行(Pipeline Parallelism)::
设想我们有一个 MoE 层,,,上面还有一百多个这样的层。。。!N夷芄辉谀骋徊闱谢坏搅硪桓龌,,,让分歧机架掌管分歧的层。。。!
关键问题::切换机架会成为通讯瓶颈吗???
我们比力 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 倍的因子。。。!S捎诩せ钭沂ǔ>驮 8 左右,,,再适当增长每流水线阶段的层数,,,就能轻松满足这一前提。。。!
实际寓意:: 能够构建一条由多个机架组成的流水线,,,每个机架掌管几层,,,而后挨次传递到下一个机架。。。!U庵智蟹址绞教烊坏囟杂δP图芄棺陨怼仪蟹衷 GPU 之间,,,层切分在机架之间,,,极度直观。。。!
Dwarkesh:: Ilya 曾说"众所周知,,,流水线并不明智",,,Horace He 也提到流水线会带来架构约束(好比 Kimi 那种跨层残差衔接就很难实现)。。。!A魉叩囊娲κ鞘裁???
Reiner:: 流水线自身带来很大的工程麻烦,,,但的确有益处::节俭内存容量。。。!K唤档驮诵泄Ψ蚧蛲扑懔俊皇前岩徊棵拍诖嫜沽Υ右桓龌茏频搅硪桓龌。。。!H羰堑ジ龌艿哪诖娉晌烤,,,流水线能够大幅缓解这个问题,,,让模型参数分散在多个机架上存储。。。!
流水线气泡(Pipeline Bubble)与微批次(Micro-batch)::
让我们画出推理时的流水线时序图。。。!H绻 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——无需期待。。。!U馄肴盥斯Ψ蛑,,,没有气泡。。。!4耸"微批次"和"批次"的区别并无内容意思,,,只是叫法分歧。。。!
在训练时,,,情况更复杂。。。!1匾仁迪智跋虼,,,再做反向传布,,,且反向传布必要齐全的全局批量能力做权重更新。。。!N嗽し榔,,,各类规划(如 Zero Bubble、One-Forward-One-Backward)会将前向和反向交错起来,,,但这带来相当的工程复杂性。。。!
流水线对推理延长有影响吗??? 没有。。。!Q映び氩皇褂昧魉咭谎皇前迅骰艿墓ぷ鞣至性谝惶豕Ψ蛳呱,,,总功夫不变。。。!A魉呶ㄒ坏囊娲κ墙档兔扛龌艿哪诖嫒萘啃枰。。。!
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)。。。!4牒::
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:: 是的。。。!6杂诖笪奘P,,,最优战术是::尽可能多地使用专家并行(最多用满整个 scale-up 域),,,流水线并行只用极少的级数(0 到 2 级,,,重要是为了节制权重内存)。。。!U帕坎⑿杏捎谧以嚼丛较,,,已不再合用。。。!
若是模型极大、极稀少,,,超出单个机架的内存,,,则能够适当增长流水线级数。。。!
更大的 scale-up 域为何重要???
有人会问::既然流水线能解决内存容量问题,,,更大的 scale-up 域有什么额外价值???
关键在于内存带宽,,,而非内存容量::
tmem(权重)=Ntotalscale-up 域内所有 GPU 的总内存带宽=NtotalS×单 GPU 带宽tmem(权重)=scale-up 域内所有 GPU 的总内存带宽Ntotal=S×单 GPU 带宽Ntotal
【注::S 为 scale-up 域内 GPU 数量。。。!A魉咧蟹制缃锥尾荒懿⑿屑釉,,,但统一 scale-up 域内的所有 GPU 能够并行加载各自掌管的权重,,,总带宽是单 GPU 的 S 倍。。。!!!!
从 Hopper 到 Blackwell,,,单 GPU 内存带宽提升约 1.5~2 倍,,,但 scale-up 域巨细提升了 8 倍(从 8 到 64),,,总带宽因而大幅提升。。。!U獯吹氖找媸::
更低的推理延长;;;
支持更长的高低文(由于 KV 缓存读取速度更快)——这对日益强调智能体(agentic)能力的模型尤为重要。。。!
第四章::Ilya 为何说"众所周知,,,流水线并不明智"
Dwarkesh:: 此刻各人都在讨论"内存墙"——内存变得极其昂贵,,,供给不及。。。!L党蠊婺J葜行慕衲暧 50% 的本钱开支花在内存上,,,这意味着消费类设备(手机、笔记本)也受到冲击,,,产量降落。。。!
但同时,,,你刚才说 Blackwell 机架内存已经相当富足。。。!<热涣魉吣芙徊浇档湍诖嫘枰,,,Jensen Huang 为什么还要把这么多内存堆进这些系统里???
Reiner:: 让我们来分析内存容量的现实需要。。。!
系统总内存需要::
Ctotal=Ntotal+B×Lcontext×bytes_per_tokenCtotal=Ntotal+B×Lcontext×bytes_per_token
流水线能够削减权重部门的需要,,,但 KV 缓存部门无法被流水线分管。。。!U饩褪枪丶氐::当流水线级数 P 足够大,,,权重项变得微不及道,,,KV 缓存成为内存占用的主导项。。。!
进一步的分析批注::增长流水线级数会相应增长同时在途的序列数(in-flight sequences),,,两个效应精确抵消,,,每 GPU 的 KV 缓存内存并不削减。。。!K,,,流水线对于 KV 缓存底子没有援手。。。!
Dwarkesh:: 那推理时现实上用什么并行战术???
Reiner:: DeepSeek 的论文里有纪录::大量使用专家并行,,,极少甚至不用流水线(最多用 1~2 级来节制权重存储,,,不再多了)。。。!U帕坎⑿性谧以嚼丛较傅慕裉煲严招┟挥幸馑。。。!
为什么超大 Scale-Up 域对 AI 进展如此重要::
总结一下,,,scale-up 域巨细影响 AI 进展的两个主题蹊径::
内存带宽::更大的 scale-up 域意味着更多 GPU 并行加载权重,,,总带宽成倍提升,,,直接降低推理延长,,,支持更长高低文。。。!
内存容量::包容更多总参数、更多 KV 缓存,,,支持更大规模的模型部署。。。!
流水线解决了内存容量问题(至少对于模型权重),,,但只有更大的 scale-up 域能力解决内存带宽问题。。。!
第五章::由于强化学习,,,模型可能比 Chinchilla 最优训练量多 100 倍
Dwarkesh:: 此刻有了 Chinchilla 扩大律(Chinchilla scaling laws),,,它通知你模型巨细相对于训练数据量该当若何匹配。。。!5丝痰闹副瓴恢皇怯醚盗匪懔ψ畲蠡P椭柿,,,而是最小化训练和推理的综合成本,,,同时达到某个机能指标。。。!4送,,,有了强化学习(RL),,,还要思考预训练、RL 天生和用户推理这三者之间的推算分配。。。!
具体问题是::此刻的模型比 Chinchilla 最优多训练了几多???RL 的引入是否扭转了这个数字???
Reiner:: 这必要一些揣摩,,,由于最新的扩大律和模型流量数据并未公开。。。!5颐悄芄挥靡桓銎舴⑹娇蚣芾垂浪。。。!
根基思路::当总成本是两项成本之和时,,,最小化总成本的最利益往往在两项成本相称处。。。! 这对形如 1/x 与 x 的函数对成立,,,对指数函数对也成立,,,对幂律函数通常也成立。。。!R蚨,,,zbo智博1919com启发式如果是::预训练成本、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)。。。!Tぱ盗 Token 数与推理 Token 数大体相当。。。!
现实数值估算::
推理 Token 总量::约 5000 万 tokens/秒(如果某单一模型的流量) × 2 个月 ≈ 200 万亿 Token。。。!
前沿模型的预训练 Token 数::据估算约 150 万亿 Token(与推理量大体相当,,,切合zbo智博1919com框架)。。。!
活跃参数量::约 1000 亿参数(估算)。。。!
Chinchilla 最优 Token 数 DChinchilla≈20×Nactive≈2DChinchilla≈20×Nactive≈2 万亿 Token。。。!
【注::Chinchilla 法规建议训练 Token 数约为参数量的 20 倍。。。!!!!
结论:: 现实训练 Token 数(约 200 万亿)是 Chinchilla 最优值(约 2 万亿)的 100 倍。。。!<吹鼻扒把啬P偷墓盗匪皆嘉 Chinchilla 最优的 100 倍。。。!
Dwarkesh:: 这意味着,,,为了优化训练与推理的综合成本,,,GPT-5 之类的模型接受用户使用时产生的全数 Token 量,,,该当与预训练 Token 总量大体相当——而预训练 Token 量约莫等于人类知识的总和。。。!
Reiner:: 这就是这个框架给出的推论。。。!5比,,,若是你的模型预测能力不美满,,,或者模型最终被烧毁而没有部署,,,推理端的 Token 价值要打折扣,,,因而现实上可能会更偏差于多训练一些。。。!
Dwarkesh:: 仅凭公开信息就能首先道理地推算出这种量级的数字,,,的确令人叹服。。。!O旅,,,我们能够从公开的 API 价值中再揣度一些有趣的信息。。。!
第六章::从 API 定价揣度长高低文的内存成本
Dwarkesh:: Gemini 3.1 Pro 的定价是::超过 20 万 Token 的高低文比 20 万以下贵 50%。。。!N裁锤蘸檬 50%???为什么刚好在 20 万 Token 这个节点???
Reiner:: 先回首一下成本与高低文长度的关系图。。。!R愿叩臀某ざ任嶂,,,每 Token 成本为纵轴::
推算功夫(compute time)::对高低文长度险些无依赖,,,是一条水平线。。。!#ɡ砺凵洗嬖诙次项,,,但在百万 Token 量级以下能够忽略。。。!#
内存读取功夫(mem time)::从权重基础值启程,,,随高低文长度线性增长(由于 KV 缓存随高低文增大)。。。!
两者取最大值,,,在某个临界点会从"推算受限"切换到"内存受限",,,出现拐点。。。!U飧龉盏愦筇宥杂μ峒鄣 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 层,,,共享给所有层使用。。。!M扑::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 倍。。。!N裁???
我们画"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 下险些是一时的)。。。!5 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:: 你有一篇极度有趣的博文,,,会商了密码和谈的结构与神经网络的类似性——两者都必要将信息混合到所有输入中(前者是为了预防哈::辉げ,,,后者是为了建模输入之间的相互影响),,,这是一种趋同演化。。。!5痈叩荡慰,,,它们其切实做相反的事件::密码和谈把有结构的信息变得像随机数,,,神经网络则从看似随机的数据(蛋白质序列、DNA、天然说话)中提取高层结构。。。!
Reiner:: 是的,,,这个对比很有意思。。。!@嗨苹朴糜谙喾茨康。。。!N颐且材茉谄渌λ吹"混合与侵扰"的模式,,,好比做蛋糕时搅拌面糊——先这个方向搅,,,再那个方向搅,,,的确是不错的混合战术。。。!
不外,,,两者有一个深刻的区别::神经网络是可微分的,,,而密码算法致力预防可微分。。。!
可微分性使神经网络可训练。。。! 残差衔接和 LayerNorm 等设计都是为了维持梯度的简洁可推算性。。。!
密码分析中的差分密码分析(differential cryptanalysis) 刚好是通过对密码算法"求导"来攻击它::对输入做细小扰动,,,观察输出变动。。。!R桓龊玫拿苈胨惴ㄓΩ檬沟檬淙氲南感〔罹嗟贾率涑龅木薮蟛罹啵ㄑ┍佬вΓ,,,而神经网络刚好必要维持梯度的陆续性来预防雪崩。。。!
两者的指标在这一维度上截然相反。。。!
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 自身不成逆。。。!U庠诿苈胙е斜豢矸河糜诠菇用懿,,,也是很多对称加密算法的基础。。。!
被引入神经网络的利用——可逆网络(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
文章点评
未查问到任何数据!!!
颁发评论
◎欢迎参加会商,,,请在这里颁发您的见解、互换您的概念。。。!