feat: launch LLM Atlas research course
This commit is contained in:
@@ -0,0 +1,710 @@
|
||||
---
|
||||
import BaseLayout from "@/layouts/BaseLayout.astro";
|
||||
import ArchitectureExplorer from "@/components/ArchitectureExplorer.astro";
|
||||
|
||||
const toc = [
|
||||
["00", "orientation", "先建立阅读坐标"],
|
||||
["01", "architecture", "一张图看完整架构"],
|
||||
["02", "kda", "KDA:线性工作记忆"],
|
||||
["03", "mla", "Gated MLA:全局回看"],
|
||||
["04", "attnres", "Attention Residuals"],
|
||||
["05", "moe", "Stable LatentMoE"],
|
||||
["06", "vision", "原生视觉与优化器"],
|
||||
["07", "pretrain", "预训练与长上下文"],
|
||||
["08", "posttrain", "后训练与推理强度"],
|
||||
["09", "agents", "Agentic RL 环境"],
|
||||
["10", "infra", "2.8T / 1M 基础设施"],
|
||||
["11", "evaluation", "评测与局限"],
|
||||
["↳", "sources", "论文链与一手来源"],
|
||||
];
|
||||
---
|
||||
|
||||
<BaseLayout
|
||||
title="Kimi K3 技术报告完整导读"
|
||||
description="从三维信息流、KDA、Gated MLA、Attention Residuals、Stable LatentMoE 到 1M Agentic RL 与系统基础设施,逐步读懂 Kimi K3 技术报告。"
|
||||
section="k3"
|
||||
>
|
||||
<header class="page-hero">
|
||||
<div class="page-hero-inner">
|
||||
<div>
|
||||
<p class="eyebrow"><span>ANCHOR REPORT / 01</span> KIMI K3</p>
|
||||
<h1>把 47 页 K3 报告<br />读成一条因果链</h1>
|
||||
<p class="lead">
|
||||
不从 2.8 万亿这个最大数字开始,而从模型同时面对的四个瓶颈开始:
|
||||
序列太长、网络太深、容量太大、Agent 轨迹太久。K3 的每个新组件都可以放回这四个问题。
|
||||
</p>
|
||||
</div>
|
||||
<dl class="page-facts">
|
||||
<div><dt>REPORT</dt><dd>47 页 · 151 条参考来源</dd></div>
|
||||
<div><dt>MODEL</dt><dd>2.8T total / 104B active</dd></div>
|
||||
<div><dt>CONTEXT</dt><dd>1,048,576 tokens</dd></div>
|
||||
<div><dt>ARCH</dt><dd>69 KDA + 24 Gated MLA</dd></div>
|
||||
<div><dt>STATUS</dt><dd>首版导读 · 持续扩写</dd></div>
|
||||
</dl>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="report-shell">
|
||||
<aside class="side-rail" aria-label="本页目录">
|
||||
<p>CONTENTS</p>
|
||||
<ol>
|
||||
{toc.map(([number, id, label]) => (
|
||||
<li><a href={`#${id}`}><span>{number}</span>{label}</a></li>
|
||||
))}
|
||||
</ol>
|
||||
<div class="rail-note">
|
||||
<b>证据状态</b>
|
||||
本页架构和训练事实来自 K3 官方技术报告;直觉类比与简图为本站原创解释。
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<article class="article">
|
||||
<section class="article-section" id="orientation">
|
||||
<p class="eyebrow"><span>00</span> READING ORIENTATION</p>
|
||||
<h2>先别急着记缩写:K3 在扩展三种信息流</h2>
|
||||
<p class="lede">
|
||||
K3 报告自己的组织方式非常漂亮:沿序列长度、网络深度和模型宽度扩展信息流。
|
||||
这比“又加了哪些模块”更接近真正的设计逻辑。
|
||||
</p>
|
||||
<div class="concept-grid">
|
||||
<article>
|
||||
<span>SEQUENCE / TOKEN</span>
|
||||
<h3>一句话内部怎样交流</h3>
|
||||
<p>KDA 负责低成本持续记忆,周期性的 Gated MLA 负责完整全局交互。</p>
|
||||
</article>
|
||||
<article>
|
||||
<span>DEPTH / LAYER</span>
|
||||
<h3>信息怎样穿过 93 层</h3>
|
||||
<p>Attention Residuals 让当前层有选择地读取早期层,而不只是接收统一累加结果。</p>
|
||||
</article>
|
||||
<article>
|
||||
<span>WIDTH / EXPERT</span>
|
||||
<h3>容量怎样远大于计算量</h3>
|
||||
<p>Stable LatentMoE 建立 896 个路由专家,每个 Token 只激活 16 个。</p>
|
||||
</article>
|
||||
</div>
|
||||
<p>
|
||||
第四个问题藏在模型外部:这些结构要在真实硬件上完成预训练、百万 Token 强化学习和线上服务。
|
||||
所以报告第 5 章不是附录,而是 K3 设计的一半。没有 FlashKDA、专家并行、外置 KV Cache、
|
||||
可恢复沙箱和集群调度,前面的架构只是一张昂贵的蓝图。
|
||||
</p>
|
||||
<div class="plain-language">
|
||||
<b>一句话版本</b>
|
||||
<p>
|
||||
K3 想让信息在“很长的时间、很深的网络、很宽的专家库”里都能流动,同时让整个系统仍然能被训练和部署。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="architecture">
|
||||
<p class="eyebrow"><span>01</span> ARCHITECTURE OVERVIEW</p>
|
||||
<h2>一张图看完 K3:先看流向,再看数字</h2>
|
||||
<ArchitectureExplorer />
|
||||
|
||||
<h3>关键规格应该怎样读</h3>
|
||||
<div class="spec-grid">
|
||||
<div><span>总参数</span><b>2.8T</b><p>表示模型装下的总容量,不等于每个 Token 都计算全部参数。</p></div>
|
||||
<div><span>激活参数</span><b>104B</b><p>单个 Token 前向时实际经过的参数规模,仍然非常大。</p></div>
|
||||
<div><span>层数</span><b>93</b><p>其中 1 层 dense;注意力由 69 KDA 与 24 Gated MLA 组成。</p></div>
|
||||
<div><span>隐藏维度</span><b>7168</b><p>主干表示宽度;LatentMoE 内部路由空间压到 3584。</p></div>
|
||||
<div><span>专家</span><b>896 → 16</b><p>另有 2 个 shared experts,给通用变换保留稳定路径。</p></div>
|
||||
<div><span>上下文</span><b>1,048,576</b><p>约一百万 Token;能放下不等于不需要上下文管理。</p></div>
|
||||
<div><span>视觉编码器</span><b>401M</b><p>MoonViT-V2 把图像和视频编码到共享表示空间。</p></div>
|
||||
<div><span>部署精度</span><b>MXFP4 / 8</b><p>专家权重 MXFP4、专家激活 MXFP8,非专家模块保留更高精度。</p></div>
|
||||
</div>
|
||||
<div class="warning-note">
|
||||
<b>常见误解:2.8T 不是“每次都算 2.8T”</b>
|
||||
<p>
|
||||
MoE 的核心正是把参数容量和每 Token 计算拆开。2.8T 描述可用参数总量;104B 才更接近一次前向的激活规模。
|
||||
但 104B 依然远高于许多 dense 模型,所以“稀疏”不等于“能在普通显卡轻松运行”。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="kda">
|
||||
<p class="eyebrow"><span>02</span> KIMI DELTA ATTENTION</p>
|
||||
<h2>KDA:不保存所有配对,而是维护一份会更新的工作记忆</h2>
|
||||
<p class="lede">
|
||||
标准注意力会让每个新 Token 和许多旧 Token 直接比较。KDA 改成维护一个固定形状的状态:
|
||||
新信息到来时,先有选择地遗忘,再用“纠错式写入”更新这份状态。
|
||||
</p>
|
||||
|
||||
<h3>从标准注意力的账单说起</h3>
|
||||
<p>
|
||||
长度为 <em>n</em> 的序列,如果做完整 self-attention,需要形成近似 <em>n × n</em> 的交互。
|
||||
在一百万 Token 处,哪怕使用 FlashAttention 避免把整张矩阵写回显存,计算量仍按平方增长。
|
||||
线性注意力的基本想法是先把历史压进状态 <em>S</em>,读取时只让 Query 查询状态。
|
||||
</p>
|
||||
|
||||
<div class="formula">
|
||||
Sₜ = (I − βₜkₜkₜᵀ) · Diag(αₜ) · Sₜ₋₁ + βₜkₜvₜᵀ<br />
|
||||
õₜ = Sₜᵀqₜ
|
||||
<small>
|
||||
教学化书写,符号对应 K3 Report Eq. 1。α 控制各通道保留多少旧状态;β 控制本次写入强度;
|
||||
delta rule 先擦除当前 key 已有的预测,再写入新的 value。
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<h3>为什么叫 Delta Rule</h3>
|
||||
<p>
|
||||
如果直接做 <code>S ← S + kvᵀ</code>,同一个 key 反复出现会不断累加,状态容易被重复信息污染。
|
||||
Delta Rule 先问“现有状态对这个 key 已经会输出什么”,只写入真实 value 与旧预测之间的差值。
|
||||
它像修改文档:不是每次把整篇内容追加到末尾,而是找到对应位置做差量更新。
|
||||
</p>
|
||||
|
||||
<h3>K3 相比 Kimi Linear 改了什么</h3>
|
||||
<ol>
|
||||
<li>
|
||||
<strong>逐通道遗忘门。</strong>α 不是一个标量,而是 key channel 级别的保留率;不同维度可以拥有不同记忆时长。
|
||||
</li>
|
||||
<li>
|
||||
<strong>把 log-decay 下界固定为 −5。</strong>Kimi Linear 的衰减映射下界无穷,会让 chunk 内累计衰减的倒数爆大;
|
||||
K3 将其限制在可由 BF16 表示的范围,从而让对角 tile 也能直接使用 Tensor Core 的稠密矩阵乘。
|
||||
</li>
|
||||
<li>
|
||||
<strong>全秩、输入相关的输出门。</strong>读取状态后,模型可以对每个输入动态决定哪些输出通道放行。
|
||||
</li>
|
||||
<li>
|
||||
<strong>块内并行、块间递归。</strong>序列分成 chunk:chunk 之间传状态,chunk 内改写成并行矩阵计算,兼顾训练吞吐与线性推理。
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<div class="evidence-note">
|
||||
<b>论文证据怎样看</b>
|
||||
<p>
|
||||
K3 报告把整体约 2.5× scaling efficiency 改善归因于 KDA、AttnRes、Stable LatentMoE 与训练/数据配方的组合,
|
||||
不能把 2.5× 单独归到 KDA。KDA 的独立机制与消融需要同时阅读
|
||||
<a href="https://arxiv.org/abs/2510.26692">Kimi Linear</a> 和 K3 §2.1。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="mla">
|
||||
<p class="eyebrow"><span>03</span> GATED MLA</p>
|
||||
<h2>周期性 MLA:工作记忆之外,仍要把全局摊开来看</h2>
|
||||
<p>
|
||||
纯递归状态的优势是成本低,弱点是历史被压进固定大小状态后,精确回看某个遥远 Token 会更难。
|
||||
K3 没有把完整注意力全部删除,而是采用 <strong>3 层 KDA + 1 层 Gated MLA</strong> 的混合模式,
|
||||
并保证主干最后一层也是 Gated MLA。
|
||||
</p>
|
||||
|
||||
<h3>MLA 在压缩什么</h3>
|
||||
<p>
|
||||
Multi-head Latent Attention 由 <a href="https://arxiv.org/abs/2405.04434">DeepSeek-V2</a> 引入。
|
||||
标准多头注意力会为每个历史 Token 缓存多头的 K 和 V;MLA 先把它们压到低维 latent <em>cₜ</em>,
|
||||
服务时缓存 <em>cₜ</em>,计算注意力时再通过投影恢复各头所需内容。它保留全局 token-to-token 交互,
|
||||
同时显著缩小 KV Cache。
|
||||
</p>
|
||||
|
||||
<div class="formula">
|
||||
cₜ = Wᶜxₜ → 缓存 cₜ → 按需上投影为各头的 K / V
|
||||
<small>这是结构直觉,不是 MLA 完整公式。旋转位置编码的解耦与吸收技巧会在“长上下文”专题单独推导。</small>
|
||||
</div>
|
||||
|
||||
<h3>为什么 K3 的 MLA 不再使用位置编码</h3>
|
||||
<p>
|
||||
K3 在全部 MLA 层采用 NoPE:Query 和 Key 不显式加入位置编码。位置与近因信息主要由穿插的 KDA 提供,
|
||||
MLA 专注于全局内容匹配。这样扩展上下文时,也不必重新调 RoPE base 或应用 YaRN。
|
||||
这是混合架构的一个重要分工:<strong>KDA 提供位置敏感的持续混合,MLA 提供不受限的全局内容交互。</strong>
|
||||
</p>
|
||||
<p>
|
||||
K3 还给 MLA 加入与 KDA 对齐的输入相关全秩输出门,并在训练时将 attention output 保持为 FP32,
|
||||
以纠正 FlashAttention 中有偏的舍入误差;代价是更大的片上存储,报告为此重新安排了 kernel 中的 tile 缓冲重叠。
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="attnres">
|
||||
<p class="eyebrow"><span>04</span> ATTENTION RESIDUALS</p>
|
||||
<h2>把注意力从“时间方向”旋转到“深度方向”</h2>
|
||||
<p class="lede">
|
||||
Transformer 用注意力解决了 RNN 必须把全部历史压进一个时间状态的问题。
|
||||
K3 提问:普通 residual 是否又把所有早期层压进了一个深度状态?
|
||||
</p>
|
||||
<p>
|
||||
标准残差不断做 <code>hₗ₊₁ = hₗ + Fₗ(hₗ)</code>。它很利于梯度传播,但越早的特征会在统一累加中混在一起。
|
||||
Full AttnRes 为每一层设置可学习 pseudo-query,对 embedding 和所有先前层输出计算权重,再按权重组合。
|
||||
这里的“Query”不是当前 Token 内容,而是“第 l 层通常希望从哪些深度取信息”的可学习参数。
|
||||
</p>
|
||||
|
||||
<div class="formula">
|
||||
αᵢ→ₗ = exp(qₗᵀ · RMSNorm(kᵢ)) / Σⱼ exp(qₗᵀ · RMSNorm(kⱼ))<br />
|
||||
hₗ = Σᵢ αᵢ→ₗ · vᵢ
|
||||
<small>
|
||||
对应 K3 Report Eq. 8–9 的简化展示。RMSNorm 防止幅值大的层仅凭数值尺度垄断权重。
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<h3>为什么又要做 Block AttnRes</h3>
|
||||
<p>
|
||||
Full AttnRes 的层数平方计算在不足 100 层时并不离谱,真正麻烦是保留所有层输出带来的内存与流水线跨 stage 通信。
|
||||
K3 把层分成 block:block 内先求和,跨 block 才做完整深度注意力。报告称经验上约 8 个 block 可保留大部分收益;
|
||||
K3 使用 12 层一个 block,加上 embedding 来源,总计形成 9 个深度来源组。
|
||||
</p>
|
||||
<div class="warning-note">
|
||||
<b>当前证据边界</b>
|
||||
<p>
|
||||
Kimi Team 已公开 <a href="https://arxiv.org/abs/2603.15031">Attention Residuals 独立预印本</a>,
|
||||
在 48B-total / 3B-active 模型上用 1.4T Token 做了 scaling 与消融;K3 则证明它能进入 2.8T 系统。
|
||||
但它仍是 2026 年的新方法,第三方复现和跨架构外部有效性需要持续积累。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="moe">
|
||||
<p class="eyebrow"><span>05</span> STABLE LATENTMOE</p>
|
||||
<h2>896 选 16:极稀疏带来容量,也放大不稳定</h2>
|
||||
<p>
|
||||
传统 MoE 让被选中的每个专家都处理完整 <em>d</em> 维 Token。选更多专家时,不只计算变多,
|
||||
Token 跨设备发送的数据和专家权重读取也随 routing multiplicity 增长。
|
||||
LatentMoE 把通用的 full-width 路径留给 shared experts,把 routed experts 放进较窄 latent space:
|
||||
K3 主干宽度 7168,路由 latent 维度 3584。
|
||||
</p>
|
||||
|
||||
<div class="moe-flow" role="img" aria-label="Stable LatentMoE 信息流示意">
|
||||
<div><span>7168d</span><b>Token x</b><small>完整表示</small></div>
|
||||
<i>→</i>
|
||||
<div class="shared"><span>FULL</span><b>2 Shared</b><small>公共变换</small></div>
|
||||
<div class="split-label">同时</div>
|
||||
<div><span>W↓</span><b>压到 3584d</b><small>latent route</small></div>
|
||||
<i>→</i>
|
||||
<div class="experts"><span>TOP-K</span><b>896 选 16</b><small>专门知识</small></div>
|
||||
<i>→</i>
|
||||
<div><span>W↑</span><b>回到 7168d</b><small>合并输出</small></div>
|
||||
</div>
|
||||
|
||||
<h3>Stable 具体在稳定什么</h3>
|
||||
<p>报告指出极端稀疏度会放大两个失败模式:routed path 连续多次矩阵乘导致内部激活爆炸;近千专家的负载难以靠旧的无辅助损失 bias update 稳定平衡。K3 加入三项修复:</p>
|
||||
<ol>
|
||||
<li><strong>Normalized LatentMoE:</strong>在上投影之前加入 RMSNorm,阻止 routed aggregate 的尺度失控。</li>
|
||||
<li><strong>SiTU-GLU:</strong>用有界的 tanh 分支近似 SwiGLU 的近原点行为,同时限制大正输入的输出幅值。</li>
|
||||
<li><strong>Quantile Balancing:</strong>不只盯平均负载,而用路由分数的分位统计更新专家 bias,适应近千专家下更复杂的分布。</li>
|
||||
</ol>
|
||||
<p>
|
||||
这条技术线与 DeepSeekMoE 紧密相连:shared experts 保存公共知识,细粒度 routed experts 促进专业化。
|
||||
K3 再借 LatentMoE 让“选 16 个专家”的通信和权重读取可承受,并为极端稀疏补上稳定性机制。
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="vision">
|
||||
<p class="eyebrow"><span>06</span> NATIVE VISION & MUON</p>
|
||||
<h2>视觉是第一类输入;优化器也按注意力头重新分组</h2>
|
||||
<h3>MoonViT-V2 的角色</h3>
|
||||
<p>
|
||||
401M 参数 MoonViT-V2 将图片与视频编码成视觉特征,轻量 projector 把它们映射到语言主干的 embedding space。
|
||||
“原生”最重要的含义不是“能看图”,而是视觉数据在预训练阶段就进入统一模型;后训练中的 Agent 还能把截图、
|
||||
图表、裁剪/缩放后的新图片当作连续 observation,形成看—行动—再看的闭环。
|
||||
</p>
|
||||
<p>
|
||||
报告描述了渐进式多模态训练:先固定语言模型训练视觉组件,再逐步解冻主干;多模态编码器优化则涉及动态分辨率、
|
||||
packing 与避免视觉计算造成流水线 bubble。完整视觉谱系会从 ViT、CLIP、Flamingo、BLIP-2、LLaVA 讲到 Kimi-VL。
|
||||
</p>
|
||||
|
||||
<h3>Per-Head Muon 为什么出现</h3>
|
||||
<p>
|
||||
Muon 在矩阵更新上做正交化,目标是比逐元素 Adam 更好地控制隐藏层更新。K3 采用 per-head 分组:
|
||||
对 Q/K/V 等多头投影,按 head 分开应用 Muon,而不是把整块矩阵当作一个整体。
|
||||
直觉上,每个 head 是相对独立的子空间,按 head 归一更新可减少大矩阵不同部分相互干扰。
|
||||
</p>
|
||||
<div class="warning-note">
|
||||
<b>不要把优化器效果和架构效果混为一谈</b>
|
||||
<p>
|
||||
报告把 Per-Head Muon 放进统一训练配方,但整体 2.5× scaling efficiency 并不是单项优化器消融结论。
|
||||
Muon 的通用可扩展性应另外阅读 <a href="https://arxiv.org/abs/2502.16982">Muon is Scalable for LLM Training</a>。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="pretrain">
|
||||
<p class="eyebrow"><span>07</span> PRE-TRAINING</p>
|
||||
<h2>预训练:扩展的不只是参数,还有数据、长度和数值配方</h2>
|
||||
<p>
|
||||
K3 报告将模型能力的提升明确归因于架构、数据和训练 recipe 的共同作用,但没有公开足以复现的完整语料配比。
|
||||
这需要区分两件事:我们可以准确解释训练阶段和公开机制,却不能根据少量描述虚构完整数据集。
|
||||
</p>
|
||||
|
||||
<h3>Scaling Law 在这里怎样用</h3>
|
||||
<p>
|
||||
团队先在较小规模训练一系列模型,拟合 loss 与参数、数据和计算之间的关系,再用它比较架构候选与估计 2.8T 模型的预算。
|
||||
K3 所称约 2.5× overall scaling efficiency,是相对 K2 的经验缩放效率:在相同计算下取得更低 loss,或达到同等 loss 所需计算更少。
|
||||
它不是“推理速度提高 2.5×”,也不是所有下游任务统一提升 2.5×。
|
||||
</p>
|
||||
|
||||
<h3>长上下文不是把配置里的 32K 改成 1M</h3>
|
||||
<p>
|
||||
上下文扩展需要长度 curriculum、长文档数据、并行策略和稳定训练。K3 的 NoPE MLA 避免 RoPE 外推参数;
|
||||
KDA 的递归/块并行结构降低长序列成本;系统侧再用 KDA Context Parallelism 分摊状态与 chunk。
|
||||
最后还要在 post-training 里真正让模型经历长轨迹,否则“窗口能装下”不等于“模型会有效使用”。
|
||||
</p>
|
||||
<div class="plain-language">
|
||||
<b>窗口容量 vs. 使用能力</b>
|
||||
<p>
|
||||
能把一百万 Token 放进输入,像图书馆允许你搬进一百万字;能否跨文档找到证据、维持任务状态并避免遗忘,
|
||||
才是在考你是否真的读懂。K3 同时用架构、长程 RL 和上下文管理训练这件事。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="posttrain">
|
||||
<p class="eyebrow"><span>08</span> POST-TRAINING</p>
|
||||
<h2>九位“专家老师”,最后蒸馏成一个可调思考强度的模型</h2>
|
||||
<p>
|
||||
K3 的 post-training 覆盖 SFT 与 RL,RL 按三类 domain 与三种 reasoning effort 组织:
|
||||
general reasoning/knowledge、agentic、coding × low/high/max,形成九个专业策略。
|
||||
然后用 Multi-Teacher On-Policy Distillation(MOPD)把它们整合进统一学生模型。
|
||||
</p>
|
||||
|
||||
<div class="teacher-grid">
|
||||
<div class="corner">DOMAIN × EFFORT</div>
|
||||
<b>LOW</b><b>HIGH</b><b>MAX</b>
|
||||
<strong>REASONING</strong><span>Rₗ</span><span>Rₕ</span><span>Rₘ</span>
|
||||
<strong>AGENTIC</strong><span>Aₗ</span><span>Aₕ</span><span>Aₘ</span>
|
||||
<strong>CODING</strong><span>Cₗ</span><span>Cₕ</span><span>Cₘ</span>
|
||||
</div>
|
||||
|
||||
<h3>为什么要训练不同 reasoning effort</h3>
|
||||
<p>
|
||||
“更久思考”会提高部分难题表现,也会增加延迟、成本和过度思考。K3 通过预算控制参数训练 max/high/low 专家:
|
||||
先在较大预算下追求能力,再逐步退火得到更短策略。不同 domain 的预算调整由人工参与配置,
|
||||
因为一道数学题、一次网页研究和一个代码仓库任务的合理轨迹长度并不相同。
|
||||
</p>
|
||||
|
||||
<h3>On-policy distillation 为什么比离线模仿更适合长轨迹</h3>
|
||||
<p>
|
||||
普通蒸馏常让学生模仿教师已经生成的固定答案;学生一旦在真实生成中走到不同前缀,教师数据就失去覆盖。
|
||||
On-policy distillation 让学生自己生成当前前缀,再在这个前缀上比较教师和学生对下一个 Token 的概率,
|
||||
形成稠密 reward。这样训练分布更贴近学生真正会访问的状态,也能自然结合 partial rollout。
|
||||
</p>
|
||||
|
||||
<h3>部署约束直接进入后训练</h3>
|
||||
<p>
|
||||
K3 从 SFT 开始对 MoE expert weights 使用 MXFP4 QAT,expert activations 使用 MXFP8;
|
||||
RL rollout 和训练采用相同量化方案,减少训练—推理失配。预训练中的 MTP 层随后被微调为 EAGLE-3 风格 draft model,
|
||||
用低/中/高层 AttnRes 特征预测候选 Token,并直接优化与无损推测采样接受率相关的 LK loss。
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="agents">
|
||||
<p class="eyebrow"><span>09</span> AGENTIC RL</p>
|
||||
<h2>Agent 能力不是只靠“更聪明”,而是靠环境提供可学习的反馈</h2>
|
||||
<p>
|
||||
K3 报告最值得细读的部分之一,是它把 Agent 后训练写成环境工程:工具、system prompt、context management、
|
||||
skills、memory、subagents 和 harness 都成为可组合变量。训练时动态实例化 Kimi Code、Claude Code、Codex、
|
||||
OpenClaw、Hermes 等风格,避免模型过拟合一套固定工具 schema。
|
||||
</p>
|
||||
|
||||
<h3>六类环境回答六种失败模式</h3>
|
||||
<div class="environment-list">
|
||||
<article><span>01</span><h4>可验证搜索与专业工作</h4><p>多步检索、投行、数据分析、法律交付物;奖励落在证据和最终成果。</p></article>
|
||||
<article><span>02</span><h4>视觉推理</h4><p>模型在隔离 Python 环境里裁剪、放大、计算并把新图片作为 observation。</p></article>
|
||||
<article><span>03</span><h4>GPU Kernel 优化</h4><p>先过数值正确性,再比较专家实现与硬件 roofline,并检测缓存/降精度等作弊。</p></article>
|
||||
<article><span>04</span><h4>长期个人助理</h4><p>用 Gmail、Notion、Slack 等 mock app 构造跨多日事件;单次可达数千工具调用。</p></article>
|
||||
<article><span>05</span><h4>Autonomous Execution</h4><p>只给初始状态、目标、约束、工具和 verifier,不提供参考轨迹;奖励最终环境状态。</p></article>
|
||||
<article><span>06</span><h4>Web 开发</h4><p>容器内构建网页、游戏、3D、可视化;功能测试、结构/像素相似与模型检查共同评分。</p></article>
|
||||
</div>
|
||||
|
||||
<h3>为什么 verifier 比“模型说完成了”更重要</h3>
|
||||
<p>
|
||||
长任务最常见的失败之一,是 Agent 输出一段令人信服的总结,却没有真正改变目标状态。
|
||||
K3 的 AET 把 reward 绑定到独立 verifier 读取的环境结果;public verifier 提供诊断,
|
||||
hidden verifier 检查保留场景,并限制提交预算以减少 reward hacking。
|
||||
</p>
|
||||
<div class="plain-language">
|
||||
<b>这条主线会贯穿 Agent 专题</b>
|
||||
<p>
|
||||
可靠 Agent 的学习单位不是“一条漂亮回答”,而是状态明确、动作可执行、反馈可验证的一整段轨迹。
|
||||
Harness 多样化、持久环境和独立 verifier,分别处理接口过拟合、短视行为和自我宣告成功。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="infra">
|
||||
<p class="eyebrow"><span>10</span> INFRASTRUCTURE</p>
|
||||
<h2>2.8T 参数与 1M 轨迹,迫使系统重新设计状态放在哪里</h2>
|
||||
<p>
|
||||
K3 基础设施可以按三类状态理解:模型状态(参数、优化器)、序列状态(KDA state、KV Cache)、
|
||||
环境状态(代码仓库、应用、microVM)。三类状态的寿命和移动成本完全不同。
|
||||
</p>
|
||||
|
||||
<div class="system-stack">
|
||||
<article><span>ONLINE SERVING</span><h3>请求级状态</h3><p>KDA-aware prefix cache、专用 kernel、cache/budget-aware fleet scheduling,把共享前缀和不同思考预算纳入调度。</p></article>
|
||||
<article><span>1M AGENTIC RL</span><h3>轨迹级状态</h3><p>partial rollout、外置 KV retention、adaptive throttling 与可恢复 microVM,避免每次更新都丢掉漫长轨迹。</p></article>
|
||||
<article><span>3T PRE-TRAIN</span><h3>训练级状态</h3><p>MoonEP 用静态计算形状、平衡专家执行与 zero-copy communication,配合内存优化和多模态 encoder 调度。</p></article>
|
||||
<article><span>KDA CO-DESIGN</span><h3>算子级状态</h3><p>针对不同序列 regime 的 fused kernel、KDA Context Parallelism 与状态感知前缀缓存。</p></article>
|
||||
</div>
|
||||
|
||||
<h3>MoonEP 在解决什么</h3>
|
||||
<p>
|
||||
MoE 的理论 FLOPs 很漂亮,真实系统却可能被“这个专家突然收到太多 Token”拖垮。
|
||||
跨卡 all-to-all 通信、专家权重读取和不规则 shape 都会制造等待。K3 报告称 MoonEP 追求 perfectly balanced expert execution,
|
||||
使用静态计算形状和零拷贝通信把路由后的 Token 送到对应专家。这里的“平衡”是系统执行层结果,不等于路由概率天然均匀;
|
||||
它和模型侧 Quantile Balancing 是互补层次。
|
||||
</p>
|
||||
|
||||
<h3>为什么长程 RL 需要保留外部状态</h3>
|
||||
<p>
|
||||
传统 RL rollout 常在模型更新后重新生成。若一条轨迹已经调用工具几百次、积累几十万 Token,
|
||||
重新生成会浪费巨大。K3 将 KV Cache 放到外部、允许 partial rollout 暂停并续接;
|
||||
同时把工具环境放进可恢复 microVM,使代码、文件和应用状态与语言上下文一起跨训练 step 存续。
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="evaluation">
|
||||
<p class="eyebrow"><span>11</span> EVALUATION & LIMITS</p>
|
||||
<h2>K3 很强,但报告也明确说它总体仍落后最强闭源模型</h2>
|
||||
<p>
|
||||
官方报告的总体表述很克制:K3 在其评测套件中领先被比较的其他开放与部分闭源模型,
|
||||
但整体仍落后 Claude Fable 5 与 GPT-5.6 Sol。理解这句话,比挑一个 K3 第一名的榜单更重要。
|
||||
</p>
|
||||
|
||||
<h3>评测数字至少要带四个脚注</h3>
|
||||
<ol>
|
||||
<li><strong>思考预算:</strong>K3 主结果使用 reasoning effort=max,其他模型也尽量用 max/xhigh;成本和延迟不是相同维度。</li>
|
||||
<li><strong>Harness:</strong>代码与 Agent 分数是“模型 + Codex/Kimi Code/Claude Code 等脚手架”的系统结果。</li>
|
||||
<li><strong>工具增强:</strong>HLE、视觉数学等同时报告不用工具/用工具,不能把两列混为纯模型能力。</li>
|
||||
<li><strong>Fallback / Guard:</strong>某些闭源模型出现 fallback、拒答或 cyber guard,可能显著影响特定任务分数。</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
例如 BrowseComp 使用 300K Token 触发上下文压缩时 K3 报告 91.2;完整 1M 窗口、不做上下文管理时是 90.4。
|
||||
这反而给出重要工程信号:更大的窗口不自动消灭 context management,适时压缩可能更有效。
|
||||
</p>
|
||||
|
||||
<div class="warning-note">
|
||||
<b>我们当前还不能知道的事</b>
|
||||
<p>
|
||||
报告没有给出足以独立复现的完整数据配比、总训练 token 数、全部集群规模与训练成本;
|
||||
新架构也缺少广泛第三方复现。网站会持续加入开放权重评测和独立复现,但不会用参数量或单榜第一替代综合判断。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="article-section" id="sources">
|
||||
<p class="eyebrow"><span>↳</span> PRIMARY SOURCES</p>
|
||||
<h2>读完本页以后,下一步回到这些一手材料</h2>
|
||||
<div class="paper-chain">
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2607.24653">
|
||||
<time>2026</time><b>Kimi K3: Open Frontier Intelligence</b><p>本页锚点;架构、预训练、后训练、系统和评测的完整一手报告。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2603.15031">
|
||||
<time>2026</time><b>Attention Residuals</b><p>跨深度选择的独立预印本、Block AttnRes 系统设计与 scaling 消融。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2510.26692">
|
||||
<time>2025</time><b>Kimi Linear</b><p>KDA 的表达能力、chunkwise 算法与 hybrid linear attention 祖先。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2405.04434">
|
||||
<time>2024</time><b>DeepSeek-V2</b><p>MLA 与 DeepSeekMoE 的系统性引入,K3 周期性全局注意力的关键来源。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2401.06066">
|
||||
<time>2024</time><b>DeepSeekMoE</b><p>shared experts 与细粒度专家特化,Stable LatentMoE 的组织祖先。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2601.18089">
|
||||
<time>2026</time><b>LatentMoE</b><p>把 full model width 与 routed expert width 分离,扩张专家数量与激活数。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2501.12599">
|
||||
<time>2025</time><b>Kimi k1.5</b><p>大规模强化学习、长 CoT 与推理时扩展的 Kimi 前代主线。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2507.20534">
|
||||
<time>2025</time><b>Kimi K2</b><p>开放 Agentic Intelligence、MoE 主干和工具使用的直接前代。</p>
|
||||
</a>
|
||||
<a class="paper-row" href="https://arxiv.org/abs/2602.02276">
|
||||
<time>2026</time><b>Kimi K2.5</b><p>视觉 Agent、并行 Agent Swarm 与 K3 多模态/Agent 后训练的前代。</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="hero-actions">
|
||||
<a class="button primary" href="https://github.com/MoonshotAI/Kimi-K3/blob/main/k3_tech_report.pdf">打开官方 PDF</a>
|
||||
<a class="button" href="https://github.com/MoonshotAI/Kimi-K3">官方代码与权重说明</a>
|
||||
<a class="button" href="/roadmap/">回到完整学习地图</a>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.spec-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
max-width: 930px;
|
||||
margin: 34px 0;
|
||||
border-top: 1px solid var(--line);
|
||||
border-left: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.spec-grid > div {
|
||||
min-height: 180px;
|
||||
padding: 22px;
|
||||
border-right: 1px solid var(--line);
|
||||
border-bottom: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.spec-grid span {
|
||||
color: var(--muted);
|
||||
font: 0.61rem/1 var(--mono);
|
||||
letter-spacing: 0.1em;
|
||||
}
|
||||
|
||||
.spec-grid b {
|
||||
display: block;
|
||||
margin: 22px 0 14px;
|
||||
color: var(--copper);
|
||||
font: 700 1.25rem/1 var(--mono);
|
||||
}
|
||||
|
||||
.spec-grid p {
|
||||
color: var(--muted);
|
||||
font-size: 0.74rem;
|
||||
line-height: 1.65;
|
||||
}
|
||||
|
||||
.moe-flow {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(110px, 1fr) 24px) minmax(120px, 1fr);
|
||||
gap: 10px;
|
||||
align-items: center;
|
||||
max-width: 930px;
|
||||
margin: 34px 0;
|
||||
}
|
||||
|
||||
.moe-flow > div:not(.split-label) {
|
||||
min-height: 125px;
|
||||
padding: 18px;
|
||||
border: 1px solid var(--line);
|
||||
background: var(--paper-raised);
|
||||
}
|
||||
|
||||
.moe-flow .shared {
|
||||
border-color: rgba(85, 122, 114, 0.4) !important;
|
||||
background: var(--sage-pale) !important;
|
||||
}
|
||||
|
||||
.moe-flow .experts {
|
||||
border-color: rgba(173, 100, 69, 0.4) !important;
|
||||
background: var(--copper-pale) !important;
|
||||
}
|
||||
|
||||
.moe-flow span {
|
||||
color: var(--muted);
|
||||
font: 0.61rem/1 var(--mono);
|
||||
}
|
||||
|
||||
.moe-flow b,
|
||||
.moe-flow small {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.moe-flow b {
|
||||
margin-top: 20px;
|
||||
font-size: 0.93rem;
|
||||
}
|
||||
|
||||
.moe-flow small {
|
||||
margin-top: 7px;
|
||||
color: var(--muted);
|
||||
font-size: 0.66rem;
|
||||
}
|
||||
|
||||
.moe-flow > i {
|
||||
color: var(--muted-light);
|
||||
font-style: normal;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.split-label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.teacher-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 150px repeat(3, minmax(90px, 1fr));
|
||||
max-width: 760px;
|
||||
margin: 34px 0;
|
||||
border-top: 1px solid var(--line);
|
||||
border-left: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.teacher-grid > * {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
min-height: 72px;
|
||||
padding: 12px;
|
||||
border-right: 1px solid var(--line);
|
||||
border-bottom: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.teacher-grid .corner,
|
||||
.teacher-grid > b {
|
||||
background: var(--paper-deep);
|
||||
color: var(--muted);
|
||||
font: 0.62rem/1.4 var(--mono);
|
||||
}
|
||||
|
||||
.teacher-grid > strong {
|
||||
justify-items: start;
|
||||
font: 0.68rem/1.3 var(--mono);
|
||||
}
|
||||
|
||||
.teacher-grid > span {
|
||||
background: var(--paper-raised);
|
||||
color: var(--copper);
|
||||
font: 700 0.8rem/1 var(--mono);
|
||||
}
|
||||
|
||||
.environment-list,
|
||||
.system-stack {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
max-width: 930px;
|
||||
margin: 34px 0;
|
||||
border-top: 1px solid var(--line);
|
||||
border-left: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.environment-list article,
|
||||
.system-stack article {
|
||||
min-height: 190px;
|
||||
padding: 24px;
|
||||
border-right: 1px solid var(--line);
|
||||
border-bottom: 1px solid var(--line);
|
||||
}
|
||||
|
||||
.environment-list span,
|
||||
.system-stack span {
|
||||
color: var(--copper);
|
||||
font: 0.62rem/1 var(--mono);
|
||||
letter-spacing: 0.1em;
|
||||
}
|
||||
|
||||
.environment-list h4,
|
||||
.system-stack h3 {
|
||||
margin: 24px 0 12px;
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
.environment-list p,
|
||||
.system-stack p {
|
||||
color: var(--muted);
|
||||
font-size: 0.79rem;
|
||||
line-height: 1.72;
|
||||
}
|
||||
|
||||
@media (max-width: 760px) {
|
||||
.spec-grid,
|
||||
.environment-list,
|
||||
.system-stack {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.moe-flow {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.moe-flow > i {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
.teacher-grid {
|
||||
grid-template-columns: 100px repeat(3, minmax(64px, 1fr));
|
||||
font-size: 0.72rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</BaseLayout>
|
||||
Reference in New Issue
Block a user