Kimi K3 近期终于公布了技术报告,不仅涉及模型架构,在基础设施层也披露了诸多细节。如果把硬件比作手机本体,AI 比作应用软件,那么 AI 基础设施层就是中间的操作系统,没有它硬件无法发挥作用。业内普遍认为,国产开源大模型未来的商业化将依赖于厂商自部署,因为自部署的成本远低于第三方。这背后的关键在于基础设施层面的技术和经验差距。OpenAI 核心工程师翁家翌曾表示,大模型训练的核心差距在于基础设施,工程师的主要工作是修复基础设施的 Bug。这意味着,当模型架构趋同、公开数据和蒸馏技术降低了复现门槛后,基础设施工程能力将成为拉开训练成本、部署效率和运行稳定性差距的关键。Kimi K3 虽然公开了这些细节,但从商业角度看必然有所保留,不同公司的部署效率可能大相径庭。但这并不妨碍我们学习其设计理念。本文将结合 Kimi K3 的技术报告,探讨 AI 基础设施的核心原则。
**为什么基础设施至关重要?**
翁家翌曾指出,大模型训练中工程师的主要工作就是给基础设施修 Bug。这里的 Bug 既包括导致结果错误、训练中断的传统错误,也包括那些虽然不影响数学正确性,但会造成 GPU 空闲、内存浪费、通信阻塞和吞吐量下降的系统性问题。具体来说,就是要在保证计算逻辑正确的前提下,确保 GPU 被充分利用,没有不必要的重复计算,负载均衡且稳定。这些 Bug 最终影响的是集群吞吐量。
**模型浮点运算利用率(MFU)**是评估训练效率的标准指标,即观测吞吐量与理论最大吞吐量的比值。目前,字节跳动的 MegaScale 在万卡、千亿参数的完整预训练案例中,以 55.2% 的 MFU 保持着公开可验证的最高纪录之一。而马斯克旗下的 xAI 虽然坐拥约 55 万张英伟达 GPU,但内部备忘录显示其 MFU 仅为 11%,远低于业界 35% 至 45% 的正常水平,也不及 Meta 和谷歌等竞争对手。拥有更高的训练效率意味着更短的训练周期、更低的成本、更多的实验机会以及更大的模型规模。
**总体设计**
Kimi K3 的分布式训练采用了经典的并行方法,包括流水线并行、专家并行和 ZeRO 分片等。大模型训练包含大量串行过程(如前向到反向传播),但矩阵计算可以并行化,且单张卡的内存难以装下超大参数。简单来说,盖房子必须一步步来,但搬水泥和钢筋可以同时进行。为此,模型通常在参数、数据和激活值维度进行切分。例如流水线并行将不同层放在不同 GPU 上,为避免气泡通常将 batch 切分为微批次。张量并行则将大层拆分到多卡,但增加了通信开销。值得一提的是,技术报告提到 MoE 层使用在各 EP rank 之间复制的共享专家,这意味着每个 GPU 都保存一份参数完全相同的共享专家,以便吸收数据中的共有特征。
**KDA:混合 KDA 注意力机制**
KDA 全称 Kimi Delta Attention,是一种线性注意力机制。标准注意力机制的计算量随输入长度呈平方增长,是制约大模型扩展的核心瓶颈。KDA 做出的改变是先让 K 和 V 相乘(类似网页内容总结),再由 Q 去匹配,计算量与输入长度无关。此外,KDA 继承了 Gated DeltaNet 的遗忘机制,可以在推理过程中合理地遗忘旧内容。但这引入了串行依赖,导致 GPU 算力利用率不足。为此,月之暗面提出了 FlashKDA,将 token 分块并行计算,块间传递递归状态。在多设备上,Kimi K3 采用 KDA 上下文并行(KCP)方法,通过拆解状态转移函数,在不知道输入状态的情况下独立求值,再精确合成,从而提升并行度。
**AttnRes:注意力残差机制**
标准残差连接通过“原输入 + 本层计算结果”实现梯度传播和深层训练。但随着深度增加,早期层的贡献会被稀释。AttnRes 则在此基础上引入基于语义理解的筛选。但额外计算会带来内存负担,于是月之暗面提出了 Block AttnRes。它将神经网络层分为多个块,块内用标准残差,块间用注意力机制。研究表明,约 8 个块即可达到大部分性能优势。为了节省显存,Kimi K3 采用了以下策略:块表示只需计算一次并缓存复用;前向传播时不保存注意力中间结果,反向传播时重算;利用流水线并行,将块表示沿层顺序依次传递缓存。这样,显存中只保留“当前时刻确实仍有用的数据”,达到了理论内存占用下限。
**MoonEP:负载均衡方案**
在 MoE 架构中,不同专家接收的 token 数量不均会导致负载不均,最忙的 GPU 拖累整体吞吐量。同时,动态变化的张量大小会导致显存碎片化。Kimi K3 提出了 MoonEP 方法,让每个 GPU 接收固定的 S×K 个 token,并在 GPU 内配置冗余专家来分摊高负载专家的任务。通过理论证明,每个 GPU 只需配置不超过专家总数除以 GPU 数量的冗余专家,即可实现负载均衡。相比过去依赖固定冗余数量或上限限制的方法,MoonEP 更加灵活且不易导致训练终止。实际落地时,仍会采用近似优化手段以控制成本。
**写在最后**
KDA 关注串行过程的并行化,AttnRes 关注消除重复计算,MoonEP 关注负载均衡。这三者体现了贯穿系统的工程思维:凡是串行链条就寻找可并行拆解的部分,凡是重复计算就判断能否重算或缓存,凡是动态负载就转化为可预测的静态形状。AI 基础设施的竞争不是简单堆砌 GPU,而是不断识别并消除那些默认存在的等待、复制、同步和闲置。单个优化看似只节省几个百分点,但在万亿参数、数月的训练中,这点差异会被放大为巨额的算力、时间和资金成本。
需要提醒的是,本文提到的三点只是技术报告冰山一角,不同硬件、网络和场景下的最优解各不相同。技术报告能帮助后来者少踩坑,但真正决定部署效率的,仍是团队能否在长期运行中发现并修复自己的基础设施 Bug。总之,模型架构决定了能力的上限,而基础设施决定了这种可能性能否以可承受的成本、稳定地变为现实。
