Agent 时代的工程学·计算层篇:六个决策点,和一条「接口冻结」定律

决策地图系列第三篇,钻到最底层:kernel、数值精度、并行策略、解码加速、稀疏架构、RL 训练系统。用同一套「论文→产品」传导链判收敛,并用一个反例修正上一篇的物理-社会梯度:计算层全是物理问题,却仍有不收敛的角落——因为收敛的真正前提不是"离物理近",而是"上游接口已冻结"。

决策地图系列钻到第三层:应用层之下是 Agent Infra,Infra 之下是计算层——真正烧电的地方:GPU 上的算子、权重里的比特、集群间的梯度、解码时的每一次采样。按上一篇的元规律(离物理越近越收敛),这一层全是物理问题,应该六个 ✅ 才对。但实际盘下来不是。这个”不是”恰好逼出一条更准的定律——收敛的前提不是离物理近,而是这个组件服务的上游接口已经冻结。带着这条定律读下面六个决策点,你能预测每一个的收敛时间表。

边界先划清:计算层指模型结构确定之后、token 吐出来之前的全部计算工程——它不关心你的 agent 循环长什么样,只关心每焦耳电换出多少有效 FLOP。判收敛的标准与前两篇相同:论文讲清原理 + 多家生产系统落成默认组件

决策点一:算子层——同一个数学式,怎么算快十倍?

根本问题:GPU 的算力增速远超显存带宽增速,attention 这类算子的瓶颈不在乘加,而在 HBM(显存)和 SRAM(片上缓存)之间搬数据。数学式一个字不改,搬数据的次序决定快慢。

源头论文FlashAttention(arXiv 2205.14135,2022)。Tri Dao 等人点破被整个领域忽略的一层:attention 算法要 IO-aware——用 tiling 把 Q/K/V 分块搬进 SRAM,在片上算完 softmax 的局部结果再写回,HBM 访问次数从平方级降下来,且是精确 attention,不是近似。这篇的意义超出一个算子:它宣告了”数学式等价 ≠ 性能等价”,算法设计必须携带内存层级模型。

落地技术代表:FlashAttention 系列 kernel 已是 PyTorch、vLLM、所有训练框架的默认;更广义的落地是 torch.compile/Triton 这条”算子融合自动化”路线(我在 FlashAttention 与算子融合里拆过原理)。

收敛度:✅ 完全收敛。为什么这么快?用本篇的定律看:attention 的数学定义 2017 年随 Transformer 冻结,七年没变——上游接口纹丝不动,底下的 kernel 优化就能放心收敛。

决策点二:数值精度——每个权重配几个比特?

根本问题:精度是最直接的”比特换算力”杠杆:位宽减半,显存、带宽、算力需求同时减半,代价是数值范围和分辨率。问题是砍到哪一档、砍谁不砍谁。

源头论文:训练侧的祖师爷是 Mixed Precision Training(arXiv 1710.03740,ICLR 2018):FP16 存权重/激活/梯度,三个补丁保精度——FP32 主权重副本、loss scaling 防梯度下溢、FP16 乘 FP32 累加。这套”低精度算 + 高精度锚”的模式沿用至今。最新一级台阶是 DeepSeek-V3(arXiv 2412.19437,2024)首次在极大规模上验证 FP8 训练可行——相对 BF16 基线 loss 误差稳定在 0.25% 以内,敏感算子(embedding、输出头、门控、归一化、attention)保留高精度。整个 671B MoE 模型全程训练只花 2.788M H800 GPU 时。推理侧则是另一条线:GPTQ(arXiv 2210.17323)用近似二阶信息做一次性 4/3-bit 量化(175B 模型约 4 GPU 时);AWQ(arXiv 2306.00978)发现看激活分布保护 1% 的显著权重就能大幅降低量化误差。

落地技术代表:训练默认 BF16、前沿探 FP8(硬件每一代冻结一次数值格式:A100 定 BF16、H100 定 FP8、Blackwell 探 FP4);推理默认 4-bit 权重量化,GPTQ/AWQ 格式在 HuggingFace 生态是一键加载。

收敛度:✅ 阶梯式收敛。注意收敛的节奏器是谁:不是论文,是硬件发布周期。数值格式的”接口”由芯片厂商冻结,每冻结一档,软件生态在两年内收敛到那一档。预测 FP4 的收敛时间表,看 Blackwell 的出货曲线就够了。

决策点三:并行策略——一张卡装不下,怎么切?

根本问题:模型和数据都大于单卡显存,必须切。切法只有三个正交维度:切数据(每卡全模型)、切层内张量(每卡一部分矩阵)、切层间流水(每卡几层)——外加一个正交的显存优化:优化器状态别每卡存一份。

源头论文Megatron-LM(arXiv 1909.08053,2019)给出张量并行的标准切法(8.3B 参数、512 卡、76% 扩展效率,只靠在原生 PyTorch 里插几个通信算子);ZeRO(arXiv 1910.02054,2019)证明数据并行的显存冗余可以被分片消掉——优化器状态、梯度、参数逐级分区,模型规模随卡数线性扩展。两篇合流成今天的”3D 并行 + ZeRO”标准菜单。

落地技术代表:Megatron-Core、DeepSpeed、PyTorch FSDP——三者是同一套思想的三种包装。训练一个新模型时,并行配置已经从”研究问题”退化成”查表问题”(我拆 nanoGPT 训练配方时体会过这条菜单的最小版本)。

收敛度:✅ 菜单收敛。它服务的接口——Transformer 结构 + Adam 优化器——2019 年后基本冻结,所以切法能收敛成菜单。留一个灰度:自动并行(编译器自己搜切法)论文很多、生产落地寥寥,因为搜索空间的定义依赖接口继续冻结,MoE 的到来又把它搅动了(见决策点五)。

决策点四:解码加速——串行瓶颈怎么绕?

根本问题:自回归解码一次一个 token,K 个 token 就是 K 次串行前向——算力在等带宽,GPU 大部分时间在闲置。这是推理侧最硬的物理约束。

源头论文Speculative Decoding(arXiv 2211.17192,ICML 2023)。Leviathan 等人把 CPU 的投机执行搬进随机采样的世界:小模型快速起草几个 token,大模型一次前向并行验证,配一个巧妙的接受-拒绝采样,数学上保证输出分布与原模型完全一致——T5-XXL 上 2–3 倍加速、零质量损失。“无损”这个性质是它与所有量化/蒸馏路线的本质区别。

落地技术代表:vLLM/SGLang/TensorRT-LLM 都内建投机解码;draft 模型的形态百花齐放——独立小模型、模型自带的额外解码头(Medusa)、n-gram 匹配。我在投机解码第二本账里算过它的经济账:加速倍数取决于草稿接受率,而接受率取决于任务分布——这是个必须拿自己流量实测的参数

收敛度:⚠️ 原理收敛(draft-verify + 无损采样无争议),配方未收敛。draft 怎么来、投机几步、何时划算,每家答案不同。用定律解释:它的上游接口是”你的流量分布”,而流量分布永远不冻结——所以配方层永远收敛不完。

决策点五:稀疏架构——参数和算力解耦

根本问题:稠密模型的每个参数对每个 token 都要算。想要更多参数(更多知识)但不想付更多每-token 算力,唯一的路是条件计算:每个 token 只激活一部分参数。

源头论文Switch Transformers(arXiv 2101.03961,2021)把 MoE 从”复杂、不稳、难通信”简化到能用:top-1 路由、容量因子、辅助负载均衡损失,同等算力下预训练提速最高 7 倍。DeepSeek-V3(arXiv 2412.19437)是当前配方的集大成:671B 总参数、每 token 只激活 37B,细粒度专家 + 无辅助损失的负载均衡 + 算法-框架-硬件协同设计把跨节点 MoE 通信做到近乎全遮蔽。

落地技术代表:前沿模型几乎清一色 MoE(DeepSeek、Mixtral 一系、各家旗舰)。但注意它的代价转移:MoE 把压力从算力甩给了通信和调度——决策点三的并行菜单、决策点二的精度选择都要为它重排(这正是”接口再冻结前,下游无法收敛”的活例子)。

收敛度:⚠️ 方向收敛(前沿=MoE),配方未收敛。专家粒度、路由策略、共享专家比例——每家一套,论文月月刷新。MoE 事实上重新打开了决策点三和决策点一的接口,把两个已收敛的邻居拖回了半收敛。

决策点六:RL 训练系统——训练和推理长在同一根轴上

根本问题:RL 后训练(RLHF/GRPO 一系)有一个前五个决策点都没有的结构:同一个模型要在训练态和生成态之间来回切换——rollout 阶段它是推理负载(要 vLLM 式的高吞吐采样),更新阶段它是训练负载(要 3D 并行的梯度计算),两种负载的最优并行布局完全不同,每一轮都要 reshard。

源头论文HybridFlow(arXiv 2409.19256,EuroSys 2025)——开源框架 verl 背后的论文。它把 RLHF 表述成一张数据流图:节点内用 multi-controller 保训练效率,节点间用 single-controller 保数据流的灵活表达,3D-HybridEngine 让 actor 在训练/生成两种并行布局间零冗余切换。这篇值得读的原因超出 RL:它是”训练系统”和”推理系统”两条谱系在一篇论文里正面相遇的第一个标准样本。

落地技术代表:verl 是当前开源默认(R1 复现潮的主力载具),OpenRLHF 等并行存在。我在 PPO 训练循环解剖伪代码后训练里拆过算法侧;系统侧的关键账本是:rollout 时间通常占大头,所以推理引擎的一切优化(决策点四)直接决定 RL 训练的成本。

收敛度:❌ 未收敛,计算层唯一的深度 explore 区。原因用定律一句话说清:它服务的上游接口——RL 后训练配方(PPO→GRPO→各种变体,奖励形态、on/off-policy 程度月月在变)——是整个技术栈里冻结得最慢的接口。配方不冻结,系统就只能跟着重构。想赌计算层的方向,赌在这里;agentic RL(上上篇末提过的 Landscape 综述)还会把环境、沙箱(Infra 篇决策点三)也拉进这根轴。

合成:地图与定律

决策点默认答案技术代表源头论文收敛度
算子层IO-aware kernel,融合交给编译器FlashAttention / torch.compile2205.14135✅ 完全收敛
数值精度训练 BF16→FP8;推理 4-bit 权重量化DeepSeek-V3 FP8 / GPTQ / AWQ1710.03740;2412.19437;2210.17323;2306.00978✅ 阶梯式收敛
并行策略3D 并行 + ZeRO 查表Megatron-Core / DeepSpeed / FSDP1909.08053;1910.02054✅ 菜单收敛
解码加速draft-verify 无损投机vLLM/SGLang 内建 + Medusa 类2211.17192⚠️ 原理收敛,配方看流量
稀疏架构前沿默认 MoEDeepSeek-V3 / Mixtral 系2101.03961;2412.19437⚠️ 方向收敛,配方未收敛
RL 训练系统数据流图 + 训练/生成混合引擎verl / OpenRLHF2409.19256❌ 未收敛

现在兑现开头的承诺。上一篇的梯度(离物理越近越收敛)在这一层失效了:六个决策点全是物理问题,却出现了 ⚠️ 和 ❌。把三篇的证据放在一起,更准的定律是:

一个组件的收敛速度,等于它上游接口的冻结速度。

attention 数学式 2017 年冻结→kernel 七年收敛到无聊;数值格式每代硬件冻结一次→精度阶梯式收敛;Transformer+Adam 冻结→并行成菜单;而流量分布(投机解码)、架构配方(MoE)、RL 训练配方(verl)都还在动,它们下面的系统就注定跟着动。上一篇的物理-社会梯度其实是这条定律的特例:社会接口(身份、协议)恰好是冻结最慢的那类接口。这条定律也给了你一个可执行的预测工具:判断任何一层 infra 值不值得深投入,先问它头顶的接口还动不动

照例的诚实提醒 + 亲手实验:本文数字全部有来源(0.25%、2.788M GPU 时、4 GPU 时、2–3 倍、7 倍、76%),无一亲手复现。这一层给普通人留的实验入口比想象中低:决策点二可以在一张消费级显卡上验证——同一个 7B 模型分别以 FP16 和 4-bit(AWQ/GPTQ)加载,记录显存占用,再各跑一遍同一份文本的困惑度,亲手拿到”显存降几倍、困惑度掉多少”两个数。这是三篇里成本最低的一次”读过→测过”兑换,排进实验队列。

参考来源

arXiv 论文

系列前篇