00 THE PROBLEM COMPASS
先把二十四个对象分开,才不会被“大、快、强”三个字带走
一篇技术报告最容易制造的错觉,是把参数量、激活计算、缓存、训练成本、吞吐和能力揉成一个“效率”。 下面每张账只问一个对象,并把回答能走到哪里、不能走到哪里同时写出来。
为什么 DeepSeek LLM 不是可跳过的序章?
它固定 tokenizer、数据、架构和 scaling 试验的起点;并不单独证明后续所有设计。
671B / 37B 各表示什么?
total 是装下的容量,activated 是每 Token 经过的专家参数子集;都不等于端到端 FLOPs。
为什么切小专家还要多选?
DeepSeekMoE 把每个专家缩成 1/m,总数和激活数同乘 m,近似保持专家计算。
为什么把公共知识单独隔离?
始终激活的 shared experts 减少 routed experts 重复;它们仍然要付激活计算。
为什么稀疏 FLOPs 不等于便宜?
路由会产生 dispatch/combine、跨节点 all-to-all、负载长尾和权重访问。
aux-loss-free 到底去掉了什么?
V3 的 expert bias 影响选择、不进入最终 gate weight;仍有 sequence-wise auxiliary loss 防极端失衡。
为什么 V2 把服务状态当架构问题?
权重只装一次,KV 随请求、层、Token 增长,直接限制并发和长上下文。
MQA、GQA、MLA 的差别是什么?
MQA/GQA 共享 K/V 头;MLA 联合低秩压缩 K/V 内容并在计算中恢复。
MLA 为什么不必恢复完整 content K/V?
无位置项时可利用矩阵乘结合律,把 K/V 上投影吸收到 query/output 投影。
为什么要 decoupled RoPE?
RoPE 会阻断固定权重吸收,所以 V2 另设小 RoPE query/key 分支,并缓存 key。
“FP8 训练”包含哪些角色?
主要 GEMM 用 FP8,并配细粒度缩放、较高精度累加和高精度敏感算子;不是全路径 FP8。
DualPipe 隐藏了什么?
从两端注入 micro-batch,让成对前后向 chunk 与通信重叠;它减少而非清零 bubble。
训练和推理各怎样使用 MTP?
顺序模块增加未来 Token 监督;推理可丢弃,也可复用于 speculative draft。
去掉 critic 后还剩什么?
policy/reference、同题多 rollout、reward/verifier、clip 和 KL;主要省掉 value model。
R1-Zero 的奖励能覆盖哪些任务?
论文用数学、代码、逻辑等规则可验证域和格式奖励;开放任务仍是限制。
R1-Zero 究竟证明了什么?
强 V3 Base 在无 reasoning SFT 时可被规则奖励继续塑造;不等于没有预训练先验。
正式 R1 为什么不是纯 RL?
cold start → reasoning RL → rejection/SFT mix → general RL,分别修可读性、广度和对齐。
学生为什么不是“小号 R1-Zero”?
1.5B–70B 学生主要对约 800K 教师样本做 SFT,没有重演同一 RL 探索。
DAPO / Dr.GRPO 修的是哪类问题?
它们处理 clip、采样、聚合、截断、长度和难度偏差;是后续研究,不是已披露 R1 内部配方。
可学习 indexer 为什么不是固定稀疏?
indexer 对历史内容评分,主 attention 只读 top-k;它需要专门训练,也可能漏检。
V3.2 怎样把 reasoning 放进环境?
specialist distillation + mixed RL;环境、工具、任务、解法和 verifier 构成数据闭环。
CSA 与 HCA 各压什么?
CSA 先压缩再稀疏 top-k;HCA 更强压缩后保留全部 compressed entries。
mHC、Muon、QK/RMSNorm、clamp 各管什么?
它们分别管残差混合、矩阵更新、attention 尺度和 FFN 极值,不能合成一个技巧。
哪些是祖先,哪些只是同题新解?
DeepSeekMoE/MLA 有明确继承;QB、KDA、AttnRes、SiTU、MOPD 多是新解或同期路线。
先认对象→再看瓶颈→找到机制→核对系统代价→最后看证据边界
01 TEN PROBLEM SHIFTS
时间线不是发布会日历,而是十次“问题定义”转向
把 DeepSeek 看成模型名字序列会很乱;把它看成“容量、缓存、训练、推理、长上下文”五张账单, 技术演进就清楚了。
DeepSeek LLM
公开尺度规律与中英双语预训练,建立 7B / 67B dense 基线。
先弄清规模、数据与训练配方,再做稀疏化。
DeepSeekMoE
细粒度专家分割 + shared experts,让专家更专、公共知识不必重复。
把容量扩张和每 Token 计算量分开。
DeepSeekMath
从大规模数学数据工程走到 GRPO:用同题多条回答的相对奖励,省去独立 critic。
R1 的推理 RL 不是突然出现;算法与可验证数据的预演在这里发生。
DeepSeek-V2
MLA 压缩 KV Cache;DeepSeekMoE 扩张稀疏容量。
训练经济性之外,开始直接优化推理内存与吞吐。
DeepSeek-V3
671B-A37B、FP8 训练、无辅助损失负载均衡、MTP 与 DualPipe。
模型算法、数值格式与集群通信共同设计。
DeepSeek-R1
R1-Zero 从强 V3 Base 直接做规则奖励 RL、没有 reasoning SFT;R1 再用冷启动与多阶段训练修复可读性和广度。
从“模仿答案”转向用可验证奖励塑造推理策略。
DAPO / Dr.GRPO
公开后续研究分别暴露 clipping、采样、截断、响应长度与题目难度归一偏差。
复现不是 R1 的内部 recipe,而是一台看清 RL 优化对象的显微镜。
DeepSeek-V3.2
DeepSeek Sparse Attention 降低长上下文成本,并统一 thinking 与 tool use。
把推理模型推进长上下文 Agent 场景。
DeepSeek-V4
CSA/HCA 构成异构长状态,mHC 约束深层残差,Muon 与数值边界共同支撑百万 Token。
长上下文不再只是位置外推,而是注意力、训练与服务的全系统问题。
Dense 坐标
先固定数据、tokenizer、训练与 scaling 对照,后面的结构收益才有可比起点。
稀疏容量
细粒度 routed experts 加 shared experts,把总容量与单 Token 激活计算第一次清楚分开。
服务状态
MLA 不再只优化训练 FLOPs,而是直接改写随请求增长的 KV Cache。
协同训练
V3 把路由、FP8、MTP、pipeline 与通信写成同一套训练合同。
推理 RL
DeepSeekMath 先减掉 critic;R1-Zero 再隔离规则奖励,R1 恢复可读性与通用性。
复现显微镜
DAPO 与 Dr.GRPO 暴露 clipping、采样、截断、长度归一和题目难度偏差。
稀疏检索
V3.2 用学习型 indexer 选历史,再让主 attention 读取 top-k。
Agent 环境
推理从静态题目进入含工具、状态转移和 verifier 的交互数据闭环。
异构长状态
V4 用 CSA 与 HCA 处理不同时间尺度,并联合 mHC、Muon 和数值约束。
K3 对照
继承图必须允许没有箭头:相同的百万上下文目标,可以有完全不同的状态机器。
DeepSeek 的强项是把模型结构和硬件约束写在同一张设计图里。MLA 不只是新 attention, 它直接针对服务时 KV Cache;FP8 不只是少用几个比特,它要求累加精度、缩放和通信共同配合; GRPO 不只是 PPO 变体,它直接移除同规模 critic 的显存负担。
02 NUMBER GRAMMAR
先学会读报告数字:总容量、激活路径和系统成本不是同一列
MoE 的绝大多数专家参数对某个 Token 并未激活,但部署时权重仍要存放、调度和读取。
它比 total 更接近稀疏计算量,却仍不包含 attention、router、通信、padding 和 kernel 效率。
KV/latent state 与层数、上下文、batch 和存储格式相乘,是 V2 之后独立的一等架构对象。
GPU hours、吞吐和 benchmark 必须携带硬件、软件、预算、脚手架与比较基线。
671B 描述总容量,37B 描述每 Token 激活的参数子集;它不等于“和 37B dense 一样便宜”, 因为 attention、专家 dispatch/combine、负载长尾、并行通信与实际 kernel 都没有被这个缩写计算进去。
03 DEEPSEEK LLM
先用 Dense 模型建立基线:规模、数据和双语能力
2024 年初的 DeepSeek LLM 发布 7B 与 67B dense 模型, 在约 2T 中英文 Token 上预训练。它的重要性不在今天看来并不夸张的参数量,而在于建立后续研究的可比基线: tokenizer、数据配方、训练稳定性、中文评测和 scaling behavior 有了统一起点。
为什么先做 Dense 很重要
MoE 同时改变总参数、激活参数、路由、通信和数据分配。没有 dense 基线,很难判断收益来自“更多容量” 还是来自别的训练差异。DeepSeek LLM 还训练小规模模型拟合 scaling laws, 再用这些规律选择 67B 的超参数;这条“先小规模试验,再外推大模型”的方法后来在 V3/K3 都持续出现。
DeepSeek LLM 回答的是“如果我们先不引入稀疏专家和低秩缓存,一套扎实的中英 dense Transformer 能到哪里?” 后面的论文才有明确的对照物。
04 DEEPSEEKMOE
专家越大不一定越专:把一个大专家拆成许多细粒度专家
传统 MoE 往往把 FFN 分成少数大专家,每个 Token 选 1–2 个。问题是一个大专家仍可能同时处理许多无关知识, 专家之间也会重复学习公共能力。DeepSeekMoE提出两项互补策略。
少数大专家
每个专家覆盖面广,公共知识在多个专家中重复;可组合的专业分工有限。
细粒度 routed + shared
shared expert 吸收公共知识;更多小 routed experts 可以按 Token 组合出细分能力。
Fine-Grained Expert Segmentation
在保持单 Token 激活计算近似不变时,把专家 FFN 切得更小,同时选择更多个小专家。 组合数显著增加:同样的 Token 可以同时调用“代码语法”“Python 库”“矩阵计算”等几个子专长, 不必把它们硬塞进一个笼统的“代码专家”。
Shared Expert Isolation
某些变换几乎每个 Token 都需要。如果全部交给 routed experts,多个专家会重复学习。 DeepSeekMoE 把 shared experts 始终激活,承担公共知识;路由专家获得更强动力去形成差异化专长。 这套组织直接进入 DeepSeek-V2/V3,也成为 Kimi K3 Stable LatentMoE 的结构祖先。
Token 必须被发送到拥有对应专家的设备。专家越细、选择越多,all-to-all、负载波动和权重读取越可能成为瓶颈。 因此模型侧路由与系统侧 Expert Parallel 从来不能分开看。
05 DEEPSEEK-V2 / MLA
训练只付一次参数成本,KV Cache 却在每个请求、每个 Token 上重复付费
DeepSeek-V2 是整条谱系的关键转折: 236B 总参数、21B 激活参数、128K 上下文,把 DeepSeekMoE 用于训练经济性, 再用 Multi-head Latent Attention(MLA)直接攻击推理服务的内存瓶颈。
均为 V2 报告相对 DeepSeek 67B 的特定配置结果,不应外推为任意硬件上的固定倍数。
标准 MHA 为什么会让 KV Cache 爆长
自回归生成每一步都要查询历史 Token。历史的 K/V 不变,因此缓存起来避免重算。 但 MHA 为每层、每个 Token、每个 head 保存 K 和 V;batch、序列和层数一大,缓存会吃掉大量显存, 直接限制并发和长上下文。
每个 head 各存一份 K/V。
先存低维 joint latent,计算时再上投影。
为什么 MLA 比简单 MQA/GQA 更有野心
MQA 让所有 Query heads 共用一组 K/V,GQA 让一组 Query heads 共用 K/V,缓存更小但容量可能下降。 MLA 用低秩 latent 保留可恢复的内容子空间,并把 RoPE 相关部分分离,追求接近 MHA 的表达力与更小缓存。 它后来被 Kimi K2/K2.5 采用,并在 K3 中作为周期性全局注意力保留。
06 WEIGHT ABSORPTION × DECOUPLED ROPE
MLA 真正精巧的地方:低秩只是第一步,能否不还原才决定推理价值
V2 把历史内容压到联合 latent cₜᴷⱽ。如果每次 attention 又把它上投影回所有 head 的完整 content K/V,缓存虽然小了,解码计算和中间张量仍会把收益吃掉。线性代数的结合律允许把固定上投影移到 query 与 output 权重一侧。
qᵀ(Wᵁᴷc) = (Wᵁᴷᵀq)ᵀc先变换当前 query,再直接与缓存 latent 相乘;不需要物化完整多头 content key。
Wᴼ(Wᵁⱽc) = (WᴼWᵁⱽ)cvalue 上投影也可预先并入 output projection,计算对象仍停留在低维 latent。
qᵀR(t−j)WᵁᴷcRoPE 的旋转依赖相对位置,不能成为一组固定吸收权重,所以 V2 把位置分支单独拆出。
MQA/GQA 通过共享 K/V 头减少状态;MLA 用联合低秩内容空间与独立位置分支减少状态。 表达能力、投影计算、kernel 支持和量化元数据都依配置而变,实验台会把“元素公式”与“报告数字”分开展示。
07 DEEPSEEK-V3
V3 的亮点不是一个技巧,而是四层协同
DeepSeek-V3 扩到 671B 总参数、37B 激活参数, 在 14.8T Token 上预训练。报告给出的完整训练用量约 2.788M H800 GPU hours,并称整个训练没有不可恢复的 loss spike 或回滚。 这组数字之所以引人注目,是因为它背后同时改动模型、目标、数值和系统。
MLA + DeepSeekMoE
沿用 V2 验证过的低缓存 attention 与细粒度专家。
Aux-loss-free balance
用动态 expert bias 调整负载,减少辅助平衡损失对主目标的干扰。
Multi-Token Prediction
训练时预测多个未来 Token,增加训练信号,并可转化为推测解码草稿能力。
FP8 + DualPipe
低精度训练、计算通信重叠、跨节点专家并行共同压低成本。
无辅助损失负载均衡
MoE 必须避免少数专家过载。传统做法加入 load-balancing auxiliary loss, 但它与语言建模主目标可能冲突:为了均匀而把 Token 送给次优专家。V3 为每个专家维护 bias, 根据近期负载上调冷门专家、下调热门专家;bias 只影响路由选择,不直接进入最终门控权重, 从而把“系统要均衡”和“模型要准确”更松地解耦。
专题版推导会进一步区分 z-loss、辅助平衡损失、Loss-Free expert bias 与 K3 Quantile Balancing;“aux-loss-free”并不等于系统里不存在任何平衡约束。
FP8 训练真正难在哪
FP8 动态范围和有效精度有限,不能简单把所有 tensor 强转为 8 位。V3 使用细粒度量化、较高精度累加、 在线缩放和特定敏感模块的高精度保留;同时让低精度通信减少跨卡带宽。 论文最值得看的不是“首次大规模 FP8”宣传,而是哪些路径降精度、哪些路径绝不降,以及误差怎样被控制。
DualPipe:流水线的空泡是一笔真金白银
Pipeline Parallel 把层切到不同 stage;朴素调度会让设备在前向/反向依赖之间等待。 DualPipe 从流水线两端同时喂入 micro-batch,并重叠前向、反向与专家通信,尽量把空泡藏在计算后面。 它与 DeepEP 的高吞吐/低延迟 all-to-all 一起,把 MoE 理论稀疏性变成真实集群效率。
08 ROUTING WITHOUT OBJECTIVE COLLISION
让系统更均匀,但别让“均匀”改写模型真正想选的专家
路由有两种意图:模型想把 Token 交给最适合的专家,集群希望每个专家收到近似相同的负载。 传统辅助损失直接进入训练目标,均衡梯度可能与语言建模梯度争夺方向。V3 给每个 routed expert 维护动态 bias: 热门专家下调,冷门专家上调。
动态 bias 只改变谁能进入候选集合。
真正组合专家输出时,gate weight 不含这个 balance bias。
报告仍保留序列级辅助项,防止单个序列出现极端失衡。
所以 “auxiliary-loss-free” 指主要全局负载策略不靠辅助损失,并不等于训练系统完全没有辅助均衡约束。 K3 的 Quantile Balancing 继续处理同一个问题,但面对近千专家使用不同的分位数反馈,属于同题新解。
09 FP8 ROLE CONTRACT
“用 FP8 训练”不是一个开关,而是一张谁低精度、谁负责兜底的岗位表
吞吐和通信收益最大,但要控制不同 tile/block 的动态范围。
大量小乘积累积会放大舍入误差,不能把输入 dtype 等同于累加 dtype。
权重更新需要保留微小变化,优化器矩对精度更敏感。
尺度估计和概率归一若失真,会向全层传播。
节省保存与带宽,但要把缩放元数据和转换成本一起计入。
输入是什么格式?如何缩放?在哪里累加?master weight 放哪?哪些敏感算子保留高精度?通信和缓存是否也量化?
10 DUALPIPE × DEEPEP
理论 FLOPs 不会自动变成训练吞吐:GPU 等待和跨节点搬运都要付墙钟时间
Pipeline Parallel 把连续层分给不同 stage。一次前向必须沿 stage 传播,反向又沿相反方向返回; micro-batch 不够多或调度不佳时,管线两端会出现大片空泡。DualPipe 从两端注入 micro-batch, 把成对的 forward/backward chunk 排在一起,并尝试将 MoE 的 dispatch/combine 隐藏在计算之后。
依赖传播造成 warm-up / cool-down;通信若未重叠会继续暴露。
两端供给和 compute–communication overlap 减少空闲,但不保证任何配置都零 bubble。
DeepEP 则负责专家并行的高吞吐/低延迟 all-to-all。两者解释了一个重要边界: DeepSeekMoE 的参数稀疏性是模型性质,真实集群效率必须由拓扑、路由分布和通信 kernel 兑现。
11 MULTI-TOKEN PREDICTION
MTP 不是把一次采样魔法般变成多 Token,而是给每层表示更多未来监督
标准 next-token prediction 每个位置只监督下一个 Token。V3 在主模型之后串联多个 MTP module: 第 k 个模块结合上一模块的状态与更远未来 Token 的 embedding,预测第 k+1 个未来目标。 embedding 与 output head 可与主模型共享。
每段文本为中间表示提供更多学习信号,并鼓励预先组织未来信息。
主模型仍按标准自回归方式运行,不必为训练辅助头永久付费。
让 MTP 给出候选未来 Token,再由主模型验证;收益依接受率与 kernel 而定。
12 DEEPSEEKMATH / GRPO
GRPO:不用再养一个和策略模型同样昂贵的 Critic
DeepSeekMath 不只是数学模型论文。 它在 7B 模型和 120B 数学相关 Token 上验证数据工程,同时提出 Group Relative Policy Optimization, 为后来 DeepSeek-V2 对齐和 R1 大规模推理 RL 铺路。
PPO 的显存账单
经典 RLHF/PPO 常同时保留 policy、reference、reward model 和 value/critic model。 对大模型而言,critic 往往与 policy 同量级。GRPO 对同一道题采样一组答案, 用组内奖励的均值和标准差构造相对优势,省去单独 value model。
组相对不是免费午餐
一道题要采样多条答案,rollout 成本仍然很高;奖励若不可验证或存在偏差,组内比较也会放大奖励漏洞。 当一组奖励全相同,归一优势几乎不给学习信号。R1 的成功因此同时依赖可验证数学/代码奖励、足够多样的采样和大规模基础设施。
13 R1-ZERO / ISOLATION EXPERIMENT
它隔离掉的是 reasoning SFT,不是预训练知识、提示先验和验证器
R1-Zero 从 DeepSeek-V3 Base 开始,直接用 GRPO 与规则奖励训练,没有先用人工或教师 CoT 做 reasoning SFT。 这让研究者能单独观察:强 base model 中已有的求解分布,能否被结果奖励重新排序和继续塑造。
不先规定“优秀推理轨迹应该长什么样”。
大规模预训练已经提供数学、代码、语言和潜在反思模式。
准确性与格式奖励定义了什么会被强化。
同题多样采样、相对优势、clip 与 KL 仍构成优化系统。
训练中出现更长轨迹、反思、回溯与自我验证,论文把部分轨迹描述为 “aha moment”。 但公开的 Dr.GRPO 研究观察到 V3 Base 本身也能生成 “wait”等反思词,因此词面现象不能作为“RL 从零发明推理”的因果证据。
更严谨的结论是:在强 base、可验证任务和大规模 rollout 条件下,无 reasoning SFT 的规则奖励 RL 能显著改变求解策略与测试时计算。开放任务、不可验证质量和 base 能力边界仍然没有被这个实验消除。
14 DEEPSEEK-R1 / USABLE PIPELINE
正式 R1 的贡献,是承认隔离实验不等于可直接使用的助手
DeepSeek-R1 的历史意义, 不只在 R1-Zero 的能力增长,也在把可读性、广度、帮助性和安全重新接回训练流程。
R1-Zero 暴露的问题决定了后面的每个阶段
R1-Zero 会重复、可读性差、混合语言。奖励只关心最终正确时,模型没有充分动力照顾人类阅读体验。 正式 R1 因而先加入少量高质量 cold-start CoT 数据,再做 reasoning-oriented RL; 随后用 rejection sampling 产生 SFT 数据,混入写作、事实问答等非推理任务,再进行第二阶段 RL 兼顾帮助性与安全。
Distillation 的关键发现
团队用 R1 生成并筛选的约 800K 样本微调 Qwen/Llama dense 模型,发布 1.5B–70B 蒸馏版本。 这说明小模型不一定要自己承担完整的探索式 RL 成本,可以模仿强 reasoning teacher 的轨迹; 但蒸馏得到的是 teacher 数据分布上的能力,不等于小模型内部复现了同样的 RL 发现过程。
长轨迹可能包含有效搜索,也可能是重复与绕路。R1 证明的是在可验证任务和适当训练下, 增加推理计算可以转化为能力;不是“输出越长越聪明”。
15 PUBLIC FOLLOW-UP / DAPO × DR.GRPO
复现不是脚注:它把“R1-like 训练有效”拆成了四种优化偏差
DAPO 与Understanding R1-Zero-Like Training都是 R1 之后的公开研究,不是 DeepSeek 已披露的内部 R1 recipe。它们的价值是让研究者看到: 一条奖励曲线上升,可能同时包含能力改善、采样过滤、长度倾向和损失聚合偏差。
正向更新别太早被截断
提高正优势样本的上界,为少见但正确的长推理保留更大上升空间。
全对与全错组不给相对信号
过滤组内奖励方差为零的 prompt,避免花 rollout 成本却得到近零归一优势。
先按 Token 聚合再更新
改变不同长度响应对 batch 梯度的权重,避免 response-level aggregation 的隐含偏置。
截断不该制造奖励悬崖
对接近长度上限的轨迹做平滑惩罚,降低突然截断带来的噪声。
响应长度偏差 + 题目难度偏差
response-level 长度归一会改变长短答案的 Token 权重;用每题组内标准差归一,又会让不同奖励方差的题目获得不同尺度。 Dr.GRPO 去掉这些归一项,追问“我们究竟在优化正确率,还是在无意中优化长度与题型权重?”
它们给出的是审计工具:观察采样组是否有方差、clip 是否非对称、长响应怎样进入损失、截断怎样进入奖励、 不同难度题是否被标准差重新加权。页面实验台会让这些偏差在一个小样本里显形。
16 DEEPSEEK-V3.2 / DSA
从会推理到会在长上下文里使用工具
DeepSeek-V3.2 把三条线合并: DeepSeek Sparse Attention(DSA)降低长上下文成本,更大规模的 RL 提升 reasoning, Agentic task synthesis 则把 reasoning 放进工具交互轨迹。
DSA 的两阶段直觉
完整注意力让每个 Query 和全部历史交互。DSA 先用轻量、可学习的 indexer 给历史 Token 评分, 选出小部分候选,再让主 attention 只在候选上做高容量计算。 关键不只是 top-k,而是 indexer 也在训练中学习“什么值得看”;这比固定窗口更能适应内容相关的远距离依赖。
Agent 方面,V3.2 的任务合成管线系统地产生复杂、交互式工具任务,让思考与 tool use 交织。 这与 K3 的 white-box harness、知识图谱任务合成和可验证环境形成同期对照:前沿模型竞争正在从静态题库转向训练环境。进入 Agent 专题查看 V3.2 的 search/code/general-agent 合成管线 →
17 V3.2 / AGENTIC DATA LOOP
从“回答一道题”到“在环境里留下可验证的状态变化”
V3.2 的 Agent 能力不是在聊天模板上多放几个 tool token。报告把 specialist distillation 与 mixed RL 结合, 分别训练 search、code 和 general-agent 能力,再把它们蒸馏回统一模型。general-agent 部分报告了 1,827 个合成环境;这个数字只代表该报告口径,不是所有 Agent 数据的总量。
文件、网页、API 或模拟器会因动作而改变。
schema、权限、错误和延迟共同限定策略空间。
不只要语言通顺,还要工具调用能够推进状态。
最终答案、测试、文件或环境状态构成奖励证据。
这条线与 K3 的 white-box harness、知识图谱任务合成和百万 Token Agentic RL 同期呼应; 两份报告都把竞争焦点从静态 benchmark 推向“环境能否生成、执行、验证和归因”。Agent 专题给出了完整环境合同与失败树 →
18 DEEPSEEK-V4
百万上下文从“支持”变成一套专门架构
2026 年的 DeepSeek-V4 preview 包含 1.6T-A49B 的 Pro 与 284B-A13B 的 Flash,均支持 1M Token。 它使用 Compressed Sparse Attention(CSA)与 Heavily Compressed Attention(HCA)的混合注意力, Manifold-Constrained Hyper-Connections(mHC)改善深度残差,并采用 Muon 优化器。
V4 官方报告摘要数据;模型是 preview 版本,后续版本需按研究截止日重新核验。
报告称在 1M 上下文下,V4-Pro 的单 Token 推理 FLOPs 是 V3.2 的 27%,KV Cache 是 10%。 这说明长上下文竞争已从单一位置外推转向混合注意力、压缩缓存、残差、优化器和后训练的系统协同。 它也解释 K3 报告为何把 V4 列为同代开放基础模型对照。
进入长上下文专题,可以把 V4 的 CSA/HCA 与 K3 的 KDA/NoPE MLA 放进同一张“计算—缓存—状态容量”账本逐项比较。
V4 用 CSA/HCA 混合压缩与稀疏注意力;K3 用 3:1 KDA/Gated MLA 混合线性递归与全局注意力。 两者目标相近——降低百万上下文成本并保留能力——但状态表示、检索方式和系统内核不同。
19 V4 / HETEROGENEOUS STATE MACHINE
CSA 与 HCA 不是两个稀疏率档位,而是两种不同的历史表示
先以较温和压缩率形成历史条目,再用 DSA 风格 indexer 选 top-k,让主 attention 只访问相关子集。
使用更激进的压缩率,把所有 compressed entries 保留下来,不再走与 CSA 相同的 top-k 稀疏路径。
为什么长上下文还需要一整套稳定性与优化器设计
按 head 控制 query 与 compressed KV 的尺度。
只在部分维度编码旋转位置,保留内容与位置的职责分离。
把 residual mixing 映射到双随机 Birkhoff polytope,约束深层信息混合。
多数二维参数用 Muon;embedding、head、RMSNorm 等角色仍由 AdamW 处理。
线性分支截到 [−10, 10]、gate 设上限 10,限制极端激活。
再配 grouped output,把内容压缩与 head 组织一起设计。
top-6 routed experts;HCA rate 128、CSA rate 4、CSA top-k 1024。
top-6 routed experts;同样混合 HCA/CSA,CSA top-k 512。
V4 报告把 Pro 在 1M context 下与 V3.2 比较。真实服务还受 batch、序列分布、量化、page allocator、 kernel、并行策略和硬件影响;这里保留“作者报告”标签,不把比例外推到任意部署。
20 INTO KIMI K3
DeepSeek 的哪些思想直接流入 K3,哪些只是同期呼应
这正是为什么 DeepSeek 值得在 LLM Atlas 中作为贯穿案例:它不是 K3 的“对手名单”之一, 而是 K3 架构里多条思想的公开祖先与同代参照。读懂 V2 的 MLA 和 DeepSeekMoE, K3 的一半架构会突然变得熟悉。
主模型 AttnRes 以 12 层为一个深度 block;报告中 block size 2 出现在芯片设计 nano-model 的 MiniTriton proof-of-concept,不是 93 层主模型结构。这类同词异义正是继承图必须保留上下文的原因。
21 FOUR INTERACTIVE LEDGERS
把四个最容易被口号遮住的对象,重新变成可以动手改的变量
稀疏容量实验区分总容量、激活计算与通信;MLA 实验给出精确缓存元素并把 RoPE key 算进去; V3 协同实验拆开 FP8、pipeline 与 MTP;RL 偏差镜则让零方差、长度偏差和难度归一在同一组样本里显形。
INTERACTIVE / DEEPSEEK SYSTEM ATLAS
四本账,把“模型创新”拆回可计算对象
这里混合精确计数与显式 toy model:参数组合和 KV 元素按公式计算;通信、bubble 与梯度权重只展示方向。 每个面板都标出证据边界,不能拿来替代真实 checkpoint 或集群复跑。
总参数很大,不代表每个 Token 都经过全部专家
切换架构或自定义专家配置,分开观察总容量、激活计算和跨设备通信;组合数只是可选路径,不是能力分数。
按 expert width 折算,不含 attention
每 Token 的教学 FFN 单位
只表示可组合路径,不代表专长质量
教学指标;不是 GB/s 实测
V3 每层含 1 个 shared 与 256 个 routed experts,每 Token 激活 8 个 routed;理论稀疏计算仍需要 expert dispatch/combine 与负载均衡。
MLA 省的不是模型权重,而是每个请求不断增长的历史状态
所有方案都与当前 MHA 基线比较;MLA 的缓存必须包含 joint latent 和 decoupled RoPE key,不能只报 latent。
完整 K 与 V,所有 heads 分开缓存。
Query heads 分组共享 K/V。
joint latent + decoupled RoPE key。
qᵀ(WUKc) = (WUKᵀq)ᵀc固定线性上投影可吸收到 query/output 权重,不必先物化完整多头 content K/V。
qRᵀ R(j−i) kRRoPE 是位置相关运算,无法作为固定矩阵吸收;因此 key 的小位置分支仍要缓存。
当前 L × T × B × bytes
同一配置,不是报告基线
由当前滑条计算
V2 报告相对 DeepSeek 67B
元素公式是精确账;GiB 只按所选 dtype 计算,没有加入 allocator、page、quantization metadata 或 kernel workspace。
FP8、DualPipe 与 MTP 改的是三种不同成本
调度台只显示方向:bubble 与通信是 toy schedule;精度角色和 MTP 生命周期来自 V3 报告。
依赖等待怎样暴露设备空闲?
只由 stages / micro-batches 构造
重叠假设后的教学比例
一个“FP8”标签不够描述训练
V3 把主要 GEMM、缩放、累加、master state、敏感算子和通信分别设计;“混合精度”才是完整对象。
同一模块在生命周期中有三种角色
主 NTP + 一层 V3-style MTP
推理可丢弃额外 module
草稿仍需验证,不取代主模型
V3 的顺序 MTP 首先增加训练信号;报告明确推理可直接丢弃,也可复用于 speculative decoding。
本台没有复跑 DualPipe 或 FP8 kernel;它只阻止把三个独立机制压成“V3 训练便宜”一句话。
奖励相同、回答长度和归一方式都会改变“谁被学得更多”
DAPO 与 Dr.GRPO 是 R1 之后的公开研究,不是 DeepSeek 已披露的 R1 内部配方;这里用 toy weight 暴露目标函数偏差。
GROUP-RELATIVE SIGNAL
奖励按组均值和标准差归一;response-level loss 再按各自长度平均,可能改变长短回答的 Token 权重。
- reward mean
- 0.475
- reward std
- 0.396
- effective samples
- 4 / 4
- provenance
- DeepSeekMath / R1
R1-Zero、R1 与 Distill 不是三个名字相近的同一步
R1-Zero 从 V3 Base 直接进行规则奖励 GRPO;“无 reasoning SFT”不等于“无预训练知识”。
优势公式与论文定义对齐;权重只用来显示归一和长度方向,没有 policy ratio、真实 token probability、KL 或 optimizer。
22 OFFICIAL WEIGHTS / EXECUTED
从“MLA 与 MoE 的概念”再往前一步:让官方 V2-Lite 权重真的跑起来
前面的四联实验负责建立公式与角色合同;下面的十三联工件实验固定官方 revision、tokenizer、 模型代码和 checkpoint 第一分片,在 RTX 5090 上连续执行 layer 0–6。它把真实观测、shape 推导、 吸收式 latent cache、长度对照、官方 chat-template 扰动、实现差距和未覆盖范围放在同一张证据图里。
1 个 dense 层 + 6 个 MoE 层;layer 7 因跨分片停止。
三档长度、模板、消息历史、等长 filler、边界、特殊词元家族与完整角色块八格控制的真实 top-6 选择。
同一真实 layer-1 权重的 naive / absorb active buffers。
三档长度、官方模板、历史因子、等长 filler、边界、角色词头、special family 与完整角色块均 byte-exact;比较使用 paired prompt bootstrap。
REAL-WEIGHT LAB / DEEPSEEK-V2-LITE
这一次不是调公式:让官方权重真的走过七层
固定官方 revision、tokenizer、模型代码和 BF16 第一分片;RTX 5090 连续执行 layer 0–6, 从 3,240 次 token 显微轨迹扩到 11,289,744 次公开语料路由,并让 layer-1 权重继续走入官方吸收式 cache。 所有结论都带证据身份与停止线。
先选层,再选 prompt 和 token
同一个 expert ID 只在当前层内有意义;跨层同号专家是不同参数,图中不会把它们连成“专长轨迹”。
颜色表示这条 prompt 在当前层的选择次数;空白表示本小样本未触达,不表示专家失效。
tokens × top-6
至少被选一次
std ÷ mean
exp(route entropy)
这是 4 条固定 prompt、90 个有效 token 的前六个 MoE 层;不能据此命名专家、估计线上总体负载或判断训练均衡。
“64 个专家几乎都用到了”为什么仍可能不均衡
覆盖只问是否出现过;CV、Gini 与 effective experts 才描述计数分布。这里同时展示 aggregate 与四条 prompt。
个专家在本样本为零;总选择数固定为 540。
同层 prompt 两两 Jaccard
只比较“用过哪些 ID”,不比较权重、次数或语义。
Layer 1 虽触达 63 个专家,CV 仍为 0.925,E8 被选 48 次。
Layer 2 的 64/64、CV 0.549 与 effective 55.08 才构成较完整的描述。
Layer 4 的 E48 只是该层参数索引;不能命名成“代码专家”。
MLA 定义了可压缩状态,不保证框架已经按压缩格式存
上半区是本次真实 shape;下半区只把相同维度扩展到可调 batch、context、layers 和 dtype。
512 KV latent + 64 decoupled RoPE key
官方 eager 路径物化展开后的多头 K/V
512 latent + 64 RoPE key;需要配套吸收与 attention kernel 才能兑现。
16 × (192 key + 128 value);按真实 shape 外推,不是服务显存 benchmark。
相同 B/T/L/dtype 下的元素倍数
相对本次 HF eager 物化口径
这是 V2 报告的另一模型 / 基线 / 配置口径
算法上“可以缓存 576 元素”与 HF eager“实际缓存 5,120 元素”同时为真;下一页继续执行官方 absorb 参考路径,生产吞吐仍需要受支持的优化 kernel 与 serving runtime。
这一次 576 元素真的进入了缓存
同一组真实 V2-Lite layer-1 权重、同一条 26-token hidden-state 轨迹: 先用 V3 官方 naive 路径展开 K/V,再用官方 absorb 路径做 25-token prefill + 1-token decode。
qᵀ(Wᴷc) = (Wᴷᵀq)ᵀc不再为每个历史 token、每个 head 存展开后的 no-RoPE key;query 先变成 512 维,再与 latent c 相乘。
Σ pₜ(Wⱽcₜ) = Wⱽ(Σ pₜcₜ)先对 512 维 latent 做加权和,再展开成各 head 的 value。含位置的 64 维 RoPE key 不能这样吸收,必须单独缓存。
K [1, 26, 16, 192]V [1, 26, 16, 128]26 × 5,120 元素;与 HF eager 是同一种展开状态。
latent [1, 26, 512]RoPE [1, 26, 64]26 × 576 元素;两个官方 buffer 的真实 active slice。
展开 K/V ÷ latent + RoPE
官方 V3 naive ↔ absorb decode
同一 BF16 权重转 FP32 做代数审计
完整 JSON SHA-256 6b4c714a…e63d
三组输出均 finite。FP32 不是新的 checkpoint 精度,而是把同一组 BF16 权重提升后, 隔离矩阵乘法顺序造成的舍入误差。
算法路径已执行,不等于优化 kernel 已执行
官方支持矩阵与编译目标只覆盖 SM90 / SM100;本机 RTX 5090 是 SM120。
真实权重、真实 latent / RoPE buffers、真实 incremental decode。
host 编译器边界;隔离 CUDA 13 环境缺少 cuda/std/utility。
源码只生成 sm_90a / sm_100f,dense decode 运行时还拒绝非 SM90a。
本实验复现的是“真实权重 + 官方参考实现中的压缩缓存与 decode 等价性”,不是 FlashMLA 性能、 生产 serving 吞吐或 V2 论文完整模型相对 MHA 的 93.3% 缓存降幅。
从自然长度,再走到同 prompt 的 16 / 24-token 对照
三个 cohort 都来自 WikiText-2、TNEWS、HumanEval、GSM8K;等长两档使用完全相同的 128 条源 prompt 和嵌套前缀。每个区间都重采样 prompt,不把相关 token 假装成独立样本。
natural ≤96 · matched 16 / 24
每档 4 domains × 32
答案未使用,代码未执行
三档 × 前六个 MoE 层
prompt-level / domain-stratified
自然长度与两个等长 cohort
自然长度 cohort:每条 prompt 先归一再等权;它保留来源长度差异,适合描述实际选中样本。
每一行独立着色;悬停查看 expert ID、份额与 95% 区间。同号 expert 只在当前层内有意义。
同层四域分布距离
0 表示两条分布相同,理论上界 ln(2)≈0.693;这里展示点估计与 prompt bootstrap 区间。
四域 token 总量不同;不能把差异全归因于内容。
同一条 prompt:16 → 24 tokens,CV 怎样变化?
short / long 每次 bootstrap 使用同一组 prompt indices;下方 Δ = CV24 − CV16。 负值表示读入后续 8 tokens 后,64-expert 分布更平。
六层中文↔代码 JSD 都下降,24-token 下仍保持非零经验距离。
这是三个固定公开 cohort 上的前六个 MoE 层,不是训练分布或线上流量;matched cohort 只代表各域至少 24 tokens 的子群。 bootstrap 区间描述本探针换 prompt 的稳定性,不是零差异假设检验;没有多重比较校正, 也不能把 E29、E48 等参数索引命名成“中文专家”或“代码专家”。
同一段内容,只在前面加上「User:」
三种输入使用同一 checkpoint、同一批 128 条 source prompt、同一 padded batch。 既比较真实整段输入,也只比较字符跨度与 token ID 都完全对齐的 2,874 个内容 token。
四域 × 32 · 固定哈希选样
raw · user · generation
三种协议的真实输入总数
三种协议 × 前六个 MoE 层
追加 Assistant: 后 ordered top-6 exact
完整 JSON SHA-256 da1f1033…bc1b9
每条固定 24 input tokens:1 BOS + 23 content。
apply_chat_template 的单轮 user 渲染。
只在末尾追加 suffix;不能反向改变此前 token。
精确对齐内容:三种条件只保留相同相对字符跨度与相同 token ID;wrapper 和边界重切分 token 同时剔除。
同一 batch 内逐 token ordered top-6;未来 suffix 不得改写过去。
CV Δ / TV / JSD;对齐内容不包含新追加的 Assistant:。
整段统计会变化,因为 generation 条件确实加入了新的 suffix token。
角色前缀没有一个跨层恒定方向
每格是一层;绿色表示 USER 更平,红色表示 USER 更集中。切换 scope / aggregation 后重新计算。
RAW→USER 的变化只描述固定 23-content-token 探针中的协议敏感性;不能命名专家, 不能推出完整 27 层或线上对话流量,也没有生成答案。USER→GENERATION 的共享前缀 exact 是 causal-mask 实现负对照,不是“Assistant: 没有作用”——新增 suffix 自己仍有路由。
把 system 与 one-shot 拆成四格,而不是只做两组对比
同一批 128 条目标内容,在官方模板中切换两个固定处理。system 每条恒增 16 tokens, one-shot 每条恒增 17 tokens;四格同 batch,目标内容精确对齐。
与上一模板探针逐项同 cohort
S0F0 · S1F0 · S0F1 · S1F1
四格完整协议输入
四格 × 前六个 MoE 层
相同字符跨度与 token ID
完整 JSON SHA-256 5765fbf8…c1fb
无 SYSTEM
每条约 30 tokens;只含目标单轮。
相对 base 每条固定 +17 tokens。
固定 SYSTEM
相对 base 每条固定 +16 tokens。
两种增量严格相加:+16 +17 tokens。
目标内容:四格只保留相同相对字符跨度与相同 token ID;下方 Δ 均为 CV 的 source-paired 2×2 效应。
有 one-shot 时,六层四域的 system-edge TV 全部下降。
system at F0 → system at F1,平均下降约 74%。
绝对 CV system effect 从均值 .068 降至 .016。
不能单独归因给示例语义;距离、EOS、角色与文本共同变化。
同样增加 16 tokens,先经过一轮历史后变化更小
每域同时显示目标路由 TV 与逐 token top-6 set exact;左为 F0,右为 F1。
Interaction:两个处理是否可以简单相加
绿色为 CV 下降,红色为 CV 上升;颜色身份只表示方向,不表示能力好坏。
这组 2×2 同时改变固定文本、角色边界、EOS、距离与长度;“24 / 24 TV 下降”是本探针中的 历史缓冲模式,不证明 one-shot 语义本身稳定了路由,更不证明答案质量提升。
把“历史缓冲”再拆一层:可读示例并不是唯一来源
system 开 / 关分别搭配无历史、17-token 重复词元 filler 与 17-token 原 one-shot。 filler / demo 的角色、EOS、目标位置与 batch 形状完全相同,只替换历史文本。
四个公开域各 32 条;同一 cohort
system 0/1 × none/filler/demo
六格完整官方模板输入
六格 × 前六个 MoE 层
相同字符跨度与 token ID
完整 JSON SHA-256 423a095d…e648e
无 SYSTEM
目标前没有已完成 turn。
相对 none 固定 +17 tokens。
同样固定 +17 tokens。
固定 SYSTEM
system 相对 S0 固定 +16 tokens。
与 S1 demo 的目标位置相同。
只把 filler 文本替换为原示例。
目标内容:六格只保留相同相对字符跨度与相同 token ID;TV 是两条真实 system edge 的分布距离。
none → filler 的 system-edge TV 全部下降,区间也全部低于零。
filler → demo 再次全部下降,区间同样全部低于零。
重复历史复现约一半缓冲;原示例再贡献一个台阶。
`x` 仍是学习过的 token;没有生成答案,也没有测能力。
Filler − None:等长历史结构的第一个台阶
绿色表示 selected history 让 system-edge TV 下降;每格都来自六格共享 source-bootstrap。
filler 与 demo 在这些协议字段上完全相同,因此可比较固定文本替换。
none → filler 仍同时加入历史与重复 token,不能命名为纯位置因果效应。
跨实验 token IDs 虽 exact,深层 gate hash 可因矩阵形状改变;正式结论只做六格组内比较。
filler 已说明“可读正确示例”不是缓冲出现的必要条件,但 `x` 不是无语义空气; demo 的额外台阶也不能归因给示例正确性。下一步仍需 EOS、角色、多 filler 与行为指标控制。
只换 assistant 后面的一个 ID:EOS 不是普通占位符
重复词元历史、角色标记、长度、目标绝对位置与 32-row batch 全部不动; 只把官方 EOS `100001` 分别换成单 token 的 x、句点或换行。
四个公开域各 32 条;同一 cohort
system 0/1 × 四种边界 ID
八格逐组完全同长度
八格 × 前六个 MoE 层
相同字符跨度、位置与 token ID
完整 JSON SHA-256 9bb93834…b9c37
ID 100001官方 template 自然产生;唯一的合法序列格。
ID 87普通内容 token;相对官方序列只改一个 ID。
ID 13普通标点 token;长度与后续位置完全不变。
ID 185普通换行 token;保留紧随其后的 `User:` 标记。
每个 source 在 S0 / S1 内都通过 4 / 4 同长度、4 / 4 同目标位置;768 / 768 反事实格相对官方 token 序列恰好只改一个 ID。
目标内容:八格只比较完全相同的后续内容 token;正 ΔTV 表示替换 EOS 后 system edge 更大,不表示能力更差。
system-edge TV 全部高于 EOS;23 / 24 配对区间完全高于零。
点估计全部高于 EOS;同样 23 / 24 区间完全高于零。
16 / 24 区间完全高于零;比另两个对照更依赖层与域。
EOS / x / 句点 / 换行;不是准确率或优劣排名。
x − EOS:只替换历史边界的一个 input ID
红色为替换后 system-edge TV 更大,绿色为更小;每格使用八格共享 source-bootstrap。
在固定模型、目标、位置、mask 与 batch 内,EOS→control 的路由差异来自这一个输入干预。
实验没有删除全部回合结构,只识别 EOS token identity;三个反事实也不是合法官方 chat。
不能把较小 TV 命名为“理解回合结束”;下方 Round 04 已另用 V2-Lite-Chat 做实际生成对照。
EOS 条件下后续目标路由对 system 开关更稳定,但本实验既未生成答案,也未覆盖 Chat 权重; 更小 TV 不等于更正确。角色标记、special-token 家族与 Chat 行为已由后续实验逐层拆开。
只换 `User:` 的第一个 ID:直接作用不等于统一调制 system
官方 EOS、冒号、长度、目标位置、mask 与 32-row batch 全部不动; 目标后的 generation head 另做 causal suffix 负对照。
四个公开域各 32 条;沿用同一 cohort
system 0/1 × 四种词头水平
八格逐组完全同长度
八格 × 前六个 MoE 层
目标 layer×token×system ordered top-6
完整 JSON SHA-256 9dc0e37f…b8caf
5726 / 77398目标入口与 generation prompt 都保持官方词头。
5726 → 77398只改目标前词头;冒号与官方 EOS 不动。
5726 → 87普通内容 token 对照;仍只改一个 ID。
77398 → 5726发生在目标之后;目标路由必须 causal-exact。
256 / 256 组同长度同目标位置;768 / 768 个反事实相对官方序列恰好一 ID。 三个反事实都不是官方合法 chat。
目标内容:正 ΔTV 表示替换词头后 system edge 更大;direct TV 单独回答“这个 ID 本身改了多少路由”。
S0 / S1 mean target TV;前置词头有直接作用。
S0 / S1;普通 token 对照同样改变后续路由。
目标 ordered top-6 exact;direct TV / JSD 全为零。
U→A / U→x 的 24 格方向混合,均值近零。
User→Assistant:system-edge TV 相对官方的变化
每格用八条件共享 source-bootstrap;红色为更大、绿色为更小,跨零不冒充稳定方向。
单个角色词头 ID 足以条件化后续 token 的专家集合。
六层 × 两个 system 水平全部 causal-exact;对齐与 mask 闸门通过。
冒号仍在,且 base ≠ Chat/SFT;没有生成、准确率或安全行为。
同样 32 rows、同样 official token IDs,companion rows 改了,深层 route 仍会分化
当前 official 与上一轮 EOS 条件的 256 / 256 token-ID hashes 相同;下表是跨实验 official target route-hash exact。
前置词头会改变后续路由,但没有统一调制 system;后置负对照严格为零。 special-token family 与完整两-token 角色块已在后续页签闭环;Chat 权重与行为指标见下方 Round 04。
EOS 与 BOS 都测了:具体身份比“是否 special”更诚实
固定 tokenizer 只有两个 special IDs;本轮完整枚举 EOS/BOS,再放入 `x` 与句点两个普通 单-ID 对照。四个水平同长度、同目标位置、同一个 32-row BF16 batch。
四个公开域各 32 条;同一固定 cohort
system 0/1 × 四个边界 ID
BOS 与 EOS 全枚举;PAD 与 EOS 同 ID
56,784 tokens × 前六个 MoE 层
三类反事实都恰好修改一个 ID
完整 JSON SHA-256 c372c1b0…4af5bf
词表约十万,不代表有十万个 special token
`all_special_ids = [100000, 100001]`;PAD 复用 EOS `100001`。 所以 BOS/EOS 是完整 special 库,但 `x`/句点只是普通库中的两个选定对照。
100001官方 assistant 历史边界;同时承担 PAD。
100000完整 special inventory 中的另一个独立 ID。
87一个普通内容 token;不是普通词元总体样本。
13一个普通标点 token;不代表全部 delimiter。
目标内容:正 ΔTV 表示替换边界后 system edge 更大;2-vs-2 只描述这四个 ID。
24 个 layer×domain 的目标内容均值。
22↑ / 2↓;19 个 paired CI 全正。
均值 +.016457 / +.017771。
四 ID 描述性汇总;不是总体类别推断。
BOS − EOS:同为 special,路由模式仍不同
红色为更大、绿色为更小;每格保留 source-paired 95% bootstrap 区间。
只看编辑位置之后精确对齐的 23 个目标 tokens。
包含被编辑 token 自身,方向可与目标内容不同。
没有生成、正确率、回合理解或安全性指标。
token 合同 768 / 768 exact;companion rows 改变后,深层 gate 可分化
下表合计 EOS / x / 句点三个共享水平,显示跨上一轮实验的 target route-hash exact。
可以说 BOS 不复现 EOS,也可以描述这四个 ID 的 2-vs-2 差异; 不能说普通 token 普遍比 special token 更强,更不能把 route TV 改写成行为质量。
`User:` 不是一个 token:把词头与分隔符放进同一个 2×2
`User:` = `[5726,25]`,`Assistant:` = `[77398,25]`。本轮独立操纵 head 与 delimiter,官方 EOS、目标、长度、位置、mask 和 generation suffix 全部固定。
四域各 32 条;沿用固定 cohort
system × head × delimiter
两个位置都是普通 token,不是专用 role ID
八格 × 六个 MoE 层
零改动 / 单 ID / 双 ID 全 exact
完整 JSON SHA-256 a703dddb…7e82
同一个 2×2 同时识别 head、delimiter 与 interaction
四个块长度都为 2;`Assistant x` 相对官方 `User:` 恰好改两个 ID。
[5726, 25]官方目标入口。
[77398, 25]只改 head。
[5726, 87]只改 delimiter。
[77398, 87]同时改两个位置。
head main:平均跨过两个 delimiter,User→Assistant 对 system-edge TV 的影响。
User: / Assistant: / User x / Assistant x 均值非常接近。
9↑ / 15↓;CI 3 正 / 3 负 / 18 跨零。
8↑ / 16↓;23 / 24 个 paired CI 跨零。
6↑ / 18↓;局部正负单元同时存在。
S0 / S1 direct target TV。
多数格低于 head@colon。
冒号→x 也会条件化后续路由。
system modulation 仍跨层跨域混合。
head main:User→Assistant 是否统一改变 system edge
每格是带符号 ΔTV;孤立的稳定单元不会被升级成全局结论。
head 与 delimiter 都会条件化后续目标路由。
直接作用不等于统一放大或削弱 system。
`x` 只有一个对照;base ≠ Chat,也没有生成行为。
共享 `User:` / `Assistant:` token 合同 512 / 512 exact
下表合计两个共享水平;L1 路由全 exact,深层随 companion rows 改变而逐步分化。
可以识别固定 `User/Assistant × :/x` 的路由效应与 interaction; 不能把一个 delimiter control 泛化成标点规律,也不能把 base routing 等同于 Chat 行为。
为什么执行到 layer 6 就停,而不是把“部分下载”写成“完整复现”
第一分片完整包含 layer 0–6;layer 7 跨两个分片。停止线由 checkpoint index 决定,不由页面叙事决定。
604d5664…2482de0shard 1 · 8.005 GiB · 27.4%torch 2.11.0+cu128- provenance、configuration、tokenization
- initial / final 与逐层 hidden hashes
- 7 层 MLA shapes
- 6 层 aggregate loads 与全部 token routes
计时不比较:kernel warm-up、频率与系统噪声不属于确定性证据。
官方 2024 remote code 引用已移除的 is_torch_fx_available。
隔离依赖、本地 package 导入;官方模型源码不打补丁。
81ff4ab34d20…1f1aef0d7e9f39bde4…1f1e8da7d8e52210952…b45b9c41f3bf64213d…29f669Base checkpoint 的完整 27 层路由 trace、受支持硬件上的 FlashMLA 优化 kernel、生产服务、训练负载、FP8/pipeline 与 R1-like 训练 trace 仍未覆盖;Chat 的完整 27 层生成已在 Round 04 以 GPU+CPU offload 单独执行。
experiments/deepseek/v2_lite_trace.py ·experiments/deepseek/v2_lite_absorb_probe.py ·experiments/deepseek/v2_lite_routing_corpus.py ·experiments/deepseek/compare_routing_length_control.py ·research/DEEPSEEK_ROUTING_LENGTH_CONTROL_AUDIT.md ·experiments/deepseek/v2_lite_routing_template_probe.py ·research/DEEPSEEK_ROUTING_TEMPLATE_AUDIT.md ·experiments/deepseek/v2_lite_routing_history_factorial_probe.py ·research/DEEPSEEK_ROUTING_HISTORY_FACTORIAL_AUDIT.md ·experiments/deepseek/v2_lite_routing_history_distance_control.py ·research/DEEPSEEK_ROUTING_HISTORY_DISTANCE_CONTROL_AUDIT.md ·experiments/deepseek/v2_lite_routing_history_boundary_token_control.py ·research/DEEPSEEK_ROUTING_HISTORY_BOUNDARY_TOKEN_AUDIT.md ·experiments/deepseek/v2_lite_routing_role_marker_head_control.py ·research/DEEPSEEK_ROUTING_ROLE_MARKER_HEAD_AUDIT.md ·experiments/deepseek/v2_lite_routing_special_token_family_control.py ·research/DEEPSEEK_ROUTING_SPECIAL_TOKEN_FAMILY_AUDIT.md ·experiments/deepseek/v2_lite_routing_role_marker_block_factorial.py ·research/DEEPSEEK_ROUTING_ROLE_MARKER_BLOCK_AUDIT.md23 ROUTING IS NOT THE ANSWER
第七层之后不再只看 expert:加载完整 Chat 权重,实际生成 128 个输出
Base checkpoint 的路由实验回答“输入协议怎样改变专家路径”,却不能告诉我们模型最终说了什么。 这一轮固定官方 DeepSeek-V2-Lite-Chat revision 与 31,412,968,448 bytes BF16 参数, 把同一批 source 带进完整 27 层 generation。由于本机 32GB 显存低于官方 40GB 单卡边界, layers 25–26、final norm 与 LM head 明确落到 CPU;offload 事实、截断率和复跑覆盖都直接展示。
ROUND 04 / CHAT BEHAVIOR · OFFICIAL BF16
路由变了以后,模型最后真的会说出不同答案吗?
同一组 source 从 Base checkpoint 的路由显微镜进入DeepSeek-V2-Lite-Chat:system off/on × EOS/BOS/x/句点, 每条 source 的八格在同一 batch 内做 greedy generation。这里观察的是最终输出, 不再用 route TV 代替行为。
不是 Base,也不是 R1 / RL
四域各 4 条完整 source
在 128-token 上限内结束
能力分数不得横向解释
每域首条逐 token 复跑
固定一条 source,再沿一条边比较两格
Exact 表示整段 generated token IDs 完全相同;similarity 是 token Levenshtein 相似度,不是语义得分。
d975cf38b1f984b0…- PROMPT
- —
- GENERATED
- —
- TOKEN HASH
—
- PROMPT
- —
- GENERATED
- —
- TOKEN HASH
—
一处历史边界 ID 或一条 system message 可以让 greedy 轨迹分叉;分叉只说明这条固定输入、固定 checkpoint、固定解码路径发生变化。
十条边,不要压成一句“有影响 / 没影响”
每域只有 4 条 source;下表是完整 token exact 数与平均编辑相似度,适合定位分叉,不是总体效应估计。
四域合计;不同域的输出长度与完成率不等,均值只作导航。
16 条里只有 2 条完整输出 exact;平均 token similarity 48.3%。
0 / 16 exact;平均 similarity 29.8%。这是固定 ID 对照,不是“x 更坏”。
不同格的数学 exact / code parse 不满足公平能力比较的完成合同。
31.4GB BF16 权重怎样在 32GB 卡上完成生成
官方 model card 给出单卡 BF16 需要 40GB;本机可见 32,607 MiB,因此明确使用 Accelerate GPU+CPU offload。
29.256 GiB · 全 BF16
含 safetensors headers
85864749cd61…12 / 12 文件同 revision
峰值 CUDA allocation 29.41 GiB;29GiB 是参数放置上限,KV/cache 会继续占显存。
layers 25–26、final norm 与 LM head;进程 max RSS 17.80 GiB。
4 shards → device map
16 source batches · 128 outputs
Transformers 4.41.2 · Accelerate 1.13.0
延迟不代表生产 kernel / serving
同一个问题,至少要跨过三层证据
上一轮能看到专家路径,这一轮能看到生成文本;两者仍不能自动给出基准能力与机制因果。
回答“历史协议改变后,前六个 MoE 层的目标 token 路由怎样变”。
不能回答最终生成了什么回答“固定 SFT Chat checkpoint 下,八格输出是否 exact、在哪里分叉”。
不能回答普遍能力或采样分布需要完整结束、足够样本、可执行 evaluator、采样复跑与预注册统计。
97 格截断,所以这一层未过闸官方合法 Chat 序列;同时是 PAD alias。
另一个 special ID;不是合法历史结束。
普通单 token 内容控制。
普通单 token 标点控制。
revision metadata + SHA-256
prompt、IDs、text、EOS 全一致
32-token smoke = 正式前缀
截断率是结果的一部分
“EOS 让答案更好” · “ordinary token 更差” · “route TV 解释了文本差异” · “4 条/域代表 benchmark” · “greedy exact 等于采样稳定” · “CPU offload 延迟等于生产吞吐”。
85864749cd611b4353ce1decdb286193298f64c7;正式原始 JSON54496955d0dd20a3…。32 格长序列复跑逐 token exact; 其余 96 格未做完整 128-token 独立复跑。24 COMPLETION IS NOT CORRECTNESS
把 128-token 的截断账补齐,再沿完整 27 层看差异怎样传播
上一轮证明固定 Chat checkpoint 的 greedy 输出会分叉,却有 97 / 128 格在 128-token 上限处停止。这一轮对全部 128 格统一重跑 512-token 预算,用官方 GSM8K gold 与 HumanEval tests 分开记录完成、可评测和正确;同时在相同输入上执行 prompt-only 全深度 forward,追踪 29 个隐藏状态阶段、26 个 MoE gate 与 1,918,176 次 top-6 目标路由决定。隐藏状态、路由与任务结果仍是三类证据,不互相冒充因果解释。
ROUND 05 / COMPLETION × FULL DEPTH
一句输出怎样穿过 27 层:完成、答对、表示、路由分四张账
同一官方 SFT Chat checkpoint、同 16 条完整 source、同八格输入。 先把统一预算升到 512,再沿 embedding → 27 decoder layers → final norm 追踪隐藏状态,并读取 26 个 MoE gate。每个数字都能回到原始 JSON 与独立复跑。
128-token 时只有 31 / 128
4 tasks × 8 conditions
官方 HumanEval tests
embedding + 27 layers + norm
target top-6 decisions
hidden + route + weights exact
长度上限不是 EOS,更不是错误答案
两次运行都对全部 128 格使用统一预算;不是只给先前截断的 97 格“续杯”。 512 解决了大部分截断,但仍有 7 格没有自然结束。
- NATURAL EOS
- 31 / 128
- BUDGET TRUNCATED
- 97 / 128
- NATURAL EOS
- 121 / 128
- BUDGET TRUNCATED
- 7 / 128
6 个 English continuation + 1 个未闭合的 HumanEval code fence
输入身份没有漂移
512 运行完整复现短预算前缀
完整 token IDs、文本与停止状态
把“可解析”与“通过官方测试”分开
数学按 final marker 优先抽取,最后数字只作 fallback;代码先抽取与 AST parse, 再逐 candidate 进入无网络、只读、无 host mount 的新容器。
通过 / exact 执行但失败 fallback 或未执行
20 boxed · 8 answer phrase · 4 last-number fallback
24 pass · 5 assertion · 2 runtime · 1 not run
gold 与 tests 从不进入 prompt
先确认结果能被判定
65534 · cap drop ALL · no mounts
pass 只是功能证据,不是安全证明
目标 token 相同,何时开始“不再是同一个状态”
embedding 是逐 token lookup,所以 10 条 edge 的 15,370 个目标行全部 exact; 进入 layer 00 后,前文开始通过 attention 混入,十条 edge 的 exact rows 都变成 0。
逐 token lookup;目标 IDs 相同
token-weighted
4/16 source mean
byte-exact BF16 rows
本阶段目标内容范围
tokenizer 有 56 个 token 横跨字符边界,已排除;留下的 1,537 个 token / condition 在八格中 ID 序列完全一致。否则“同位置”未必是“同 token”。
表示轻微转动,也可能换掉 top-6 专家排序
ordered exact 要求六个专家与顺序都相同;set exact 只要求集合相同; weighted TV 还读取门控权重。三者回答不同问题,不能只挑一列讲故事。
64 routed experts · top-6
六个专家及顺序完全相同
忽略六个专家的顺序
逐 token 专家集合
top-6 门控质量变化
target + full input · fresh process
26 gates × 8 cells × 2 scopes × 4
BF16 gate weights exact
路由分叉不能自动解释输出或能力
85864749cd611b4353ce1decdb286193298f64c7;512 formal6af40512c5868caa…; full-depth formal 5678ed238f13e3b0…。 四域各 4 条是机制显微镜,不是 benchmark。25 GREEDY IS NOT A DISTRIBUTION
把单条最大概率路径打开:八个预注册 seed 下,轨迹集合是否仍然分叉
上一轮的 512-token 结果仍是 deterministic greedy:它只能看到每一步概率最大的 一条路。这一轮冻结四条 source、八格 prompt batch 与八个 SHA-256 派生 seed, 启用 checkpoint 随附的 temperature=.3 / top_p=.95,生成 256 条 sampled outputs。停止、任务正确、集合相似度与新进程复现继续分账; batch-seed aligned 也明确不冒充逐行共享随机数的 paired causal design。
ROUND 06 / PREREGISTERED SAMPLING
greedy 只是一条路:固定八个 seed,打开有限的生成轨迹集合
同一官方 SFT Chat checkpoint、同四条 source、同八格 prompt batch。 只把解码切到官方 temperature=.3 · top_p=.95,显式关闭 top-k; 生成、任务评测与新进程复跑仍分三层保存。
4 sources × 8 seeds × 8 cells
5 格在 512-token 触顶
完整 token hash;不是语义类别
同一题的重复采样
24 个唯一执行候选
八项预注册字段 exact
同一格不是一个答案,而是八条有限样本
点任意 seed 查看长度、停止状态、hash 与短预览。unique 只比较完整 token IDs; pairwise similarity 用 token 编辑距离,不把同义改写冒充 exact。
完整 trajectory hash
触顶与自然结束分开
八样本是否抽到 mode 轨迹
28 对 mean · min–max
EOS 512 截断 重复完整轨迹
—
—自然结束、能解析、能运行,仍然不保证正确
这里各只有一条 task source。64 是 8 conditions × 8 seeds,不是 64 道题; gold 与 tests 在生成冻结后才进入独立 evaluator。
“坏掉 1/4”被误写成“只剩 1/4”
两条都自然 EOS,并明确输出 \boxed{100};抽取器没有错, 是推理把仍可工作的 3/4 丢掉了。
AST 合法、可以执行,却漏掉所有大于 2 的偶数
if n < 2: return False
if n == 2: return True
for i in range(3, sqrt(n), 2): ...
# 缺少 if n % 2 == 0: return Falseofficial test 触发 assertion failure;流畅说明与闭合 code fence 都没有替它兜底。
EOS / budget cap
final marker / fence
number / AST + sandbox
gold / official tests
不要拿一对随机回答,冒充两个条件的分布
aligned 看同 replicate label 的八对;nearest 让每条样本去另一侧寻找最接近轨迹, 再双向平均。两者都只是八样本描述量。
完整 token trajectory
“会变化”和“可复现”必须同时成立
不同 seed 应该分叉;相同 checkpoint、输入、行顺序、软件与 seed 则应该回到同一条 token trajectory。两者不是矛盾,而是采样实验的两道独立闸门。
31 / 32 同格 trajectory 分叉
新进程完整 token IDs exact
随机轨迹不是环境漂移
取前 4 bytes
取前 8 bytes mod 2⁶³−1
记录 pre/post state hash
顺序改变即新协议
12 个模型文件逐 SHA-256
generation utils 也记录 hash
final norm + LM head offload
不能扩大写成 256 / 256
FORMAL 46c7edf…45af · EVAL 078f486…c4d8 · RERUN 72d050e…f6a026 SEEDS ARE NOT TASKS
同一道题抽 64 次,仍然只有一道题:把预算移到 16 条预先冻结的 source
Round 06 证明了 sampled trajectory 会跨 seed 分叉,也能在固定执行合同下逐 token 复现;但 Math 与 Code 各只有一道题。Round 07 保持 256 条正式输出的总预算不变, 改为四域各四条 source、每格四个 seed,只保留system off/on × EOS/句点 四格。source 是主要覆盖单位,seed 是题内重复; 方向先逐 source 计算,不把 64 个生成误写成 64 道独立任务。
ROUND 07 / SOURCE-BLOCKED FOLLOW-UP
seed 不是题目:把同题重复与跨题覆盖拆成两层
总预算仍是 256 条,但从上一轮的 4 sources × 8 seeds × 8 cells改成 16 sources × 4 seeds × 4 cells。source 是覆盖单位,seed 只是题内重复;所有方向都先逐 source 计算,再描述四条 source 是否同向。
四域各 4 条,结果前冻结
16 × 4 seeds × 4 cells
6 条在 512-token 触顶
四道 GSM8K,不是同题 64 次
四道 HumanEval,沙箱执行
八项合同逐字段 exact
64 个 seed 输出,不会自动变成 64 道题
先选择一个域与条件。每张卡是一条独立 source,四个圆点才是该题内的四次采样。 圆点高度表示生成长度,颜色表示自然 EOS 或预算截断。
English · 中文 · Code · Math
跨题方向只在这一层数
观察同题采样离散,不扩充题数
4 sources × 4 seeds
micro count;不等于正确
四条 source 的平均长度跨度
每题 seed 长度跨度的均值
47 / 64 与 52 / 64 背后,是八条完全不同的题目轨迹
每格分母固定为四个 seed。绿色越深表示通过越多;自然结束、数值抽取、AST 解析与官方测试各自记账,不用“看起来完成了”替代任务正确。
MATH · STRICT47 / 64
—
—
—
一个极端 source,可以让均值与多数方向相反
下图是每条 source 的“句点 − EOS”平均生成长度差。负数代表句点更短; 四个点才是四个覆盖单位,域均值只放在旁边,不拿它替代点的方向。
四条 source 中负方向数量
tokens · period − EOS
比均值更不易被单点拖动
如果只看这一条,会得到“句点大幅缩短 English”的印象。
另三条分别 +44.5、+41.0、+1.4;均值仍为 −8.5,只因首题权重大。
mean -8.5 · median 21.2
mean -13.9 · median -13.0
mean -130.0 · median -166.1
mean -19.8 · median -9.6
正式生成、独立评测、分析与复跑彼此锁定
R0 的 16 sources × 4 conditions 在全新进程重跑。比较不只看 headline, 而是逐格检查 seed、prompt、完整 token IDs、文本、停止状态与 RNG pre-state。
R0 与 R1 的同 source-condition 轨迹
R0 与全新进程 R0′
分叉与复现同时过闸
1,980,601 bytes
370,580 bytes
597,066 bytes
30,037 bytes
168,001 bytes
官方 DeepSeek-V2-Lite-Chat revision
BF16 · eager attention
norm 与 LM head 也在 CPU
47 个唯一候选;17 次 cache hit
FORMAL f013132…d7f7c · EVAL e88b274…b8975 · REPLAY 143dc9d…02a627 TASKS ARE NOT RANDOM TAPES
换一道题与换一条随机带,不是同一种不确定性:把 32 题 bootstrap 与真正的共同随机数接起来
Round 07 把 source 提升为覆盖单位,却仍只有每域四题;四行也只是共享 batch seed,不是真正共享同一概率分位。Round 08 在 HumanEval 与 GSM8K 各冻结 32 题, 主分析统一使用 T0;另取每域四题跑 T0–T3。每个 source、tape、step 的uₜ 由 SHA-256 显式派生,四个 prompt 条件读取同一个uₜ,再穿过各自的 temperature=.3 / top_p=.95CDF。这样可以把任务差异、sampling tape 差异与 prompt 条件差异放进不同账本。
ROUND 08 / TASK BOOTSTRAP × EXPLICIT CRN
把“换题”和“换随机数”拆开,再问 prompt 到底改变了什么
主分析固定 T0,在 HumanEval 与 GSM8K 各 32 道预选题上逐题配对; 另取每域 4 题跑 T0–T3。四格在第 t 步读取同一个显式uₜ,再各自穿过不同的 token CDF。
Code / Math 始终分开
256 主分析 + 96 额外 tape
输出前冻结并逐格 exact
每条消费前缀重新派生
固定 32 题框,不外推总体
十二项字段全部 exact
同一个 seed,不一定是同一个随机冲击
旧实验把四行放在同一个 seeded batch,torch.multinomial 为不同 行消费不同 RNG 子流。本轮直接定义每一步的均匀数,所以配对对象终于可见、可重建。
同一 seed 与调用时序,但四行不是同一概率分位。
同题、同 tape、同 step 的四格读取完全相同的 uₜ。
protocol · tape · source · step
四格同一个概率分位
prompt 改变各自 logits / CDF
同 uₜ 可以落入不同 token
柱高是 float32 uₜ;hex 是冻结的 uint64 前缀。
带宽回答“换这 32 道题的权重会怎样”
每次在固定 32 题中有放回抽 32 题,四条件保持题级配对。它不包含换随机带的不确定性, 也不是完整 benchmark population confidence interval。
同一次抽样中,四个 prompt condition 保持配对。
这条带不覆盖 generation-tape uncertainty。
—
平均差为 0,也可能是 fail→pass 与 pass→fail 抵消
每页 8 道题。P/F 是 T0 上的独立 evaluator 结果;末列显示所选 contrast 的 success 差、长度差与共同 token 前缀。
4 道题 × 4 条 tape,不是 16 道独立题
行是预先固定的题,列是 T0–T3。先在题内横向看 tape range,再在 tape 内纵向看 task range;两种变化不能揉成一个普通样本方差。
固定一条 tape,四题之间的 contrast 跨度
固定一道题,四条 tape 之间的 contrast 跨度
不是 16 个独立观测;只做敏感性诊断
先锁 trajectory,再打开 gold;偏离也写进证据链
formal、独立 evaluator、replay 与 analysis 各自有文件 hash。重放检查的不只是 headline,而是每格 12 个冻结字段。
source、tape、contrast、bootstrap seed
88/88 runs 不消费 PyTorch RNG
停止、覆盖、正确、失败分账
全新进程 · 十二字段
The first manifest mislabeled routing-probe hashes as Chat prompt hashes; all 256 Chat hashes were corrected before model output.
The reused runner loaded gold for a post-decode narrow task_score before generation finished. Gold never entered prompts, logits, sampling, selection, or the authoritative evaluator.
FORMAL ea0607…1809 · EVAL 82b2fc…77ab · REPLAY 64/6428 THE MAIN LINE IS NOT THE WHOLE TREE
如果只读 V2 → V3 → R1 → V4,会漏掉五条反过来影响主线的旁支
DeepSeek-Coder → Coder-V2 → ESFT
代码数据配方、continued pretraining 与只微调相关专家,说明 MoE 的价值不只在通用模型参数量。
打开一手来源 →数学与证明DeepSeekMath → Prover-V1.5 → Prover-V2
从数学语料、GRPO 走到 formal proof feedback、subgoal decomposition 与可验证证明搜索。
打开一手来源 →视觉与压缩DeepSeek-VL/VL2 → Janus → OCR
理解、生成与光学压缩形成另一条主干;它们不应被挤进纯文本 V2→V4 时间线。
打开一手来源 →系统实现DeepEP → DualPipe → DeepGEMM / FlashMLA
论文里的稀疏计算、流水线、FP8 与 MLA 最终必须落到可调用的通信和 kernel 实现。
打开一手来源 →条件记忆Engram
把可查表的静态模式从动态网络中分离,增加一条不同于 MoE 与 attention 的稀疏轴。
打开一手来源 →旁支不是“其它产品”清单:Coder-V2 检验 V2 架构如何继续预训练,ESFT 检验 expert specialization 如何进入微调,Prover 把可验证奖励推进 formal proof,DeepEP/DualPipe 把模型假设变成系统实现, Engram 则提出不同于专家和注意力的条件记忆稀疏轴。
29 EVIDENCE AUDIT
同一张页面里有三种知识,它们的语气必须不同
作者报告或官方仓库明确写出的事实
模型配置、训练阶段、V2 的 93.3%、V3 的 2.788M H800 hours、V3.2 的 1,827 environments、V4 的 27%/10% 都属于这一层,必须携带比较对象。
从公开配置按公式重新计算
例如 MHA 的 2nₕdₕ 与 V2 MLA 的 d꜀+dᴿ 元素数。公式可以精确,换成 GiB 时仍依赖 dtype、batch、allocator 与实现。
为了看趋势而构造的交互近似
通信压力、pipeline bubble 和 RL 权重是方向性玩具模型;它们不冒充 H800 集群、真实 checkpoint 或论文复跑。
不写:R1-Zero 没有任何监督或先验;RL 从零发明了 “aha”。
不写:DAPO / Dr.GRPO 是 DeepSeek 官方 R1 recipe。
不写:aux-loss-free 就是完全没有辅助均衡;FP8 就是全模型都用 8 位。
不写:V4 和 K3 都是 1M,所以架构相同;蒸馏学生就是小号 R1-Zero。
↳ READING ORDER
六十个一手 / 官方节点:从祖先、对照、主线、复现到 K3 汇流点
不建议直接从 R1 开始。先读 MoE、MQA/GQA、RoPE、PPO 和 pipeline 的祖先,再进入 DeepSeek 主线; DAPO / Dr.GRPO 放在 R1 后作为反查,Kimi K2/K3 放在末端做同题对照。