
把一个带熵正则的Top-k门控类命名为K3DynamicGate并不能证明它复现了Kimi K3。名字是作者起的算法归属需要回到报告。K3技术报告的2.3.3节给出了Quantile BalancingQB专家偏置参与Top-k选择混合权重仍由被选专家的原始分数归一化得到。偏置更新依据分数与选择门槛之间的margin分位数并在下一批生效。这与“给熵损失加权、实时唤醒冷门专家”的通用设计并不是同一件事。K3报告v2偏置改变派发不直接改混合权重对一个token假设四个专家的原始分数是0.8、0.4、0.2、0.1。给第三个专家增加0.7的选择偏置后它能进入Top-2但它在输出混合中的权重仍按原始0.2计算不能拿加偏置后的0.9直接归一化。这一区分很容易在最小实现中丢失把softmax(scorebias)一路传给专家输出代码能运行却已经改变了目标机制。from math import isclose def route(scores, bias, k): if len(scores) ! len(bias) or not 0 k len(scores): raise ValueError(invalid routing shape) if any(s 0 for s in scores): raise ValueError(this example requires nonnegative raw scores) chosen sorted( range(len(scores)), keylambda j: (scores[j] bias[j], -j), reverseTrue, )[:k] total sum(scores[j] for j in chosen) if total 0: raise ValueError(selected scores have zero mass) return chosen, {j: scores[j] / total for j in chosen} scores (0.8, 0.4, 0.2, 0.1) bias (0.0, 0.0, 0.7, 0.0) selected, weights route(scores, bias, 2) assert selected [2, 0] assert isclose(weights[2], 0.2) assert isclose(sum(weights.values()), 1.0) assert route(scores, tuple(b 5 for b in bias), 2)[0] selected print(routing checks passed)这是选择与混合权重的教学检查并非完整QB训练实现。它还显式规定了相同分数的排序规则。大规模实现中的分位数插值、并列分数、全局批次统计与分布式直方图都需要另外核对。QB与ID用的是不同反馈QB的一个直觉是先固定当前token侧的选择门槛再为每个专家寻找接近期望派发量的偏置。总token数为m、专家数为n、每token选k个专家时目标负载是mk/n。共同偏移不改变Top-k因而可以对偏置重新居中。不能据这个目标就声称每批、每个分片都达到了绝对均衡。9月30日首发、10月18日修订的ID Balancing论文则从控制视角分析这些方法。ID更新积累归一化负载误差并在原有不均衡继续加剧时增加导数修正。它是Qwen团队提出的另一项研究不能写成Kimi已经采用的新模块。ID Balancing v2两种机制的比较应先保持路由分数、批量和热点切换过程一致。可以记录过载幅度、低负载程度和偏置变化再检查语言建模质量是否受影响。负载曲线更平不等于任务质量更好单层模拟更稳也不能推出All-to-All通信必然快了某个百分比。本文没有进行多卡性能测量或2.8T模型训练。可运行的小例子只检查了一个明确不变量选择偏置与混合权重不能混用。若继续做QB复现下一步应实现报告规定的margin、分位数与跨批生效规则而不是从另一套门控损失出发为它换上K3的名字。本地核验将上方代码保存为example.py在 Python 3.9.6、仅标准库的临时目录执行python3 example.py退出码为 0输出routing checks passed。这验证了教学示例中的断言不代表模型、GPU或线上系统实测。K3是7月发布、报告v2为8月7日修订的背景材料ID论文是9月首发、10月修订均不是10月24日的新发布。