基础知识:离散选择、Top-k 与稀疏路由
argmax、top-k、beam search、MCTS、router、gating、expert load、entropy 和 load balancing 都在处理有限预算下的离散选择。模型先给候选打分,再选择少数候选、归一化权重并重新分配计算预算:下一个 token、top-k expert、检索文档、候选轨迹和 draft tree 节点都可以这样读。
打分:先把候选变成可比较的数字
给定候选集合 ,模型通常先给每个候选一个 score:
这里 是上下文, 是候选编号。score 可以来自 logits、router MLP、retriever 相似度、value head 或 reward model。
score 的作用是提供排序依据,不直接说明“真理”。后面所有选择错误,都可能来自 score 本身不准,也可能来自选择规则不适合任务。
Argmax 和 Top-k:从连续分数到离散选择
最硬的选择是 argmax:
它只保留分数最高的一个候选。top-k 则保留前 个:
语言解码里的 top-k、MoE router 里的 top-k experts、候选动作排序里的 top-k plans,都是这类操作。它们的共同代价是:被排除的候选不再参与后续计算,因此早期 score 错误会变成不可恢复的剪枝。
Beam search:保留多条前缀,而不是只走一条
贪心解码每一步只取当前最高分 token:
beam search 会保留 条候选前缀,并按累计 log probability 排序:
beam search 是一种有限宽度搜索,不是随机采样。 越大,搜索空间覆盖越广,但计算越贵,也更可能偏向高似然但乏味或过短的序列。读 EAGLE 的 draft tree、传统 seq2seq 解码或候选轨迹搜索时,beam 都可以先理解成“预算有限的多分支前缀保留”。
MCTS:边搜索边更新树上的价值
Monte Carlo Tree Search 不只是 top-k 排序。它通常循环四步:
- Selection:从根节点沿着当前最有希望的分支往下走。
- Expansion:展开新的候选动作或 token。
- Evaluation / Simulation:用 value model、rollout 或 reward 估计叶子好坏。
- Backup:把叶子价值回传,更新路径上的访问次数和价值估计。
一个 PUCT 风格的常见选择规则会在 exploitation 和 exploration 之间折中:
这里 是当前价值估计, 是先验概率, 是访问次数, 控制探索强度。MuZero 用树搜索把 learned dynamics、policy prior 和 value 接起来;EAGLE-2 的 draft tree 虽然不是完整 MCTS,但也在做“哪些分支值得扩展”的预算分配。
Softmax gating:把分数变成权重
如果不想只做硬选择,可以先把 score 转成概率权重:
这里 表示第 个候选的原始 score,分母对全部候选求和,所以所有 的总和等于 1。
MoE router 常在 top-k 之后只对被选中的 expert 重新归一化:
其中 表示 score 最高的 个 expert 集合;新的分母只在 内求和,因此未入选 expert 的权重为 0,入选权重重新加总为 1。
然后把 expert 输出加权合并:
这里 是第 个 expert。读这行式子时,重点是稀疏性:总共有很多 expert,但每个 token 只激活少数几个。
负载均衡:不能让所有 token 都挤向少数专家
如果 router 总是选择同几个 expert,MoE 会出现 hot expert:少数专家过载,其他专家闲置。一个简单负载向量可以写成:
理想状态下, 不必完全相等,但不能严重塌缩。负载均衡 loss 的不同论文写法很多,核心都是约束 router 分布和实际 token 分配不要太偏。

图源:DeepSeek-V3 技术报告相关图,已本地化于论文专题。原图展示不同设置下 expert load 的热力图。这里的重点是:稀疏路由不仅要选 top-k,还要监控专家负载是否均衡。
Entropy:选择分布有多尖
router 或采样分布的熵可以写成:
低熵表示分布很尖,模型强烈偏向少数候选;高熵表示分布更平,候选更分散。
这在两个地方很重要。第一,生成解码里,低熵上下文更容易被 draft model 猜中,高熵上下文需要更大候选预算。第二,MoE 里,router 熵过低可能导致专家塌缩;熵过高则可能说明路由没有学出清晰分工。
Capacity 和丢弃:选择还受系统预算约束
理论上 top-k 选中了 expert,系统就该处理它。但训练和推理中,每个 expert 的容量可能有限。若某个 expert 被太多 token 选中,系统要么排队,要么溢出,要么使用 dropless routing 和更复杂通信。
所以稀疏选择有两层约束:
| 层次 | 问题 | 典型指标 |
|---|---|---|
| 模型层 | 该选哪些候选 | accuracy、reward、acceptance、expert specialization |
| 系统层 | 选中的候选能否高效执行 | expert load、all-to-all、GEMM size、latency |
这解释了为什么 MoE 报告不能只看 total parameters 和 activated parameters。router 数学上选得漂亮,如果系统执行时 hot expert、all-to-all 或碎 GEMM 成为瓶颈,实际吞吐仍会受影响。
常见误读
| 误读 | 更稳的理解 |
|---|---|
| top-k 就是简单排序 | top-k 是不可逆剪枝,score 误差会直接影响后续计算 |
| beam search 就等于更聪明的采样 | beam 是确定性搜索,常偏向高似然路径,不等于多样性 |
| MCTS 只是暴力枚举 | 它用访问次数、先验和价值估计决定搜索预算 |
| router 概率就是专家质量 | router 概率只是当前上下文下的分配权重,不等于专家全局能力 |
| MoE 激活参数少就一定快 | 稀疏计算还要付 token dispatch、通信和负载均衡成本 |
| 熵越低越好 | 低熵可提高确定性,也可能导致探索不足或专家塌缩 |
读完以后怎么判断
看到 top-k、beam、MCTS、router、gating、expert load 或 entropy,先问:score 来自哪里,选择是硬的还是软的,被剪掉的候选是否还能恢复,树搜索怎样分配探索预算,负载是否均衡,稀疏选择省下的计算有没有被系统成本吃掉。这个问题链会支撑 DeepSeek-V3、Kimi-K2、Nemotron、Gemini、EAGLE-2、MuZero、稀疏注意力和候选轨迹排序论文。
- Title: 基础知识:离散选择、Top-k 与稀疏路由
- Author: Charles
- Created at : 2026-06-02 09:00:00
- Updated at : 2026-06-02 09:00:00
- Link: https://charles2530.github.io/2026/06/02/ai-files-prerequisite-math-discrete-selection-topk-and-routing/
- License: This work is licensed under CC BY-NC-SA 4.0.