模型发布通常只给你结果:跑分、榜单、能力描述。至于这个结果花了多少代价换来的、训练过程中有哪些时刻差点失控,一概不公开。
小米这次做了件不太一样的事:把 Mimo 2.6 的强化学习后训练过程做成了一个持续刷新的公开面板。pro 与 flash 两条训练线同时在跑,每一步迭代的读数都在上面。
它最有意思的地方不是数字好看,而是数字不好看的部分也在。
一、面板上到底有什么
先看两条线的当前状态:
mimo-v2.6-pro mimo-v2.6-flash
──────────────────────────────────────────────────────────
起始时间 2026-09-15 10:32 Z 2026-09-15 15:16 Z
已运行 1d 13:24:17 1d 08:40:06
当前步数 step 12 step 17
本次接受/目标 1,784 / 1,568 2,640 / 1,568
──────────────────────────────────────────────────────────
奖励均值 Δ 0.614 ▲0.049 0.603 ▲0.089
累计花费 76.9 万美元 33.6 万美元
单步 token 2.16B 2.6B
累计 token 22.8B 37.8B
已训练样本 276k 401k
训练批大小 1,568 × 16 seqs 1,568 × 16 seqs
──────────────────────────────────────────────────────────
DeepSWE v1.1 62.24 60.77
(mini-swe-agent, avg@3)
注意「本次接受 / 目标」这一栏:pro 线是 1784 / 1568,接受数超过了目标值;flash 线更夸张,2640 / 1568。这不是故障,而是动态采样器的正常表现——目标值代表该步期望消耗的样本数,实际接受数取决于采样期间有多少样本通过判定。
面板上还有一整套曲线指标值得逐条认识:
| 指标 | 含义 | 为什么要看 |
|---|---|---|
dynsam/avg@n | 多次采样的平均通过率 | 主能力指标 |
critic/rewards/mean | 奖励均值 | 信号强度 |
actor/entropy_loss | 策略熵 | 过早收敛的信号灯 |
actor/pg_loss | 策略梯度损失 | 更新幅度 |
actor/grad_norm | 梯度范数 | 稳定性 |
train_infer_diff/new_infer/kl | 训练与推理引擎的分布差 | 分离架构的健康度 |
ctx_total_length/mean | 上下文长度均值 | 任务复杂度漂移 |
dynsam/agg_turn/mean | 平均轮次 | 智能体是否是「多步」的 |
其中两个指标特别值得留意。
训练推理 KL 差。 分离式架构里,采样跑在推理引擎上、梯度更新跑在训练框架里,两者对同一批权重的输出会有细微差异。这个差值持续放大,意味着你训练的分布和实际生成的分布在漂移,这是所有异步 RL 架构必须先压住的工程前提。pro 线当前 0.0053、flash 线 0.00827,都是可接受的量级。
平均轮次。 pro 线 46.9 轮、flash 线 52.6 轮,同时上下文长度均值是 86.6k 与 104k。这两个数字说明训练任务不是单轮问答,而是几十步的长程智能体任务。这解释了为什么单步 token 会到 2B 量级。
二、最有价值的部分:数据源配比是公开的
面板的低处有一块「batch composition」,展示每一步的样本由哪些数据源构成。当前分布是:
类别 数据源数 prompts 占比 变化
code 11 1,023 65.3% ▼2.4 pt
general 4 208 13.2% ▲1.1 pt
visual 6 231 14.7% ▲1.6 pt
chat 3 64 4.1% ▲1.1 pt
cyber 1 43 2.7% ▼1.4 pt
──────────────────────────────────────────────────
合计 25 1,568 100%
数据源被拆到「类别 / 数据源数 / prompt 数 / 占比 / 相对上一步的变化」这一级,而且标注了每个源是被训练过的 harness 还是临时 run。
💡 这块信息在别处几乎拿不到。 通常你只知道「用了多少数据」,不知道数据配比在训练过程中怎么漂移。而配比漂移直接决定了模型最终能力的形状:code 占 65% 意味着它被反复打磨的是代码能力,cyber 只占 2.7% 说明安全类能力不在这一轮的主攻方向。
面板还留了一句脚注,说明重启后的若干步报告的是消费前的池子状态,此时配比是「结转量加一份按比例分配的新接受量」。这种边角说明恰恰是真实面板的标志——刻意宣传的图表不会保留这种让人困惑的中间态。
三、采样器的实时视图
面板底部是一个一直在滚动的采样器日志,格式大致是:
step 12 · accepted 1,784/1,568
judged 1,675 · pass 0.596 (n=5,499)
remaining 611 + 1,065 partial + 425 rewarding
prewarm 512
这几个量构成一条采样流水线:judged 是已判定样本数,pass 是通过率与样本总量,remaining 是等待中的,partial 是部分完成的,rewarding 是正在计算奖励的,prewarm 是预热保留量。
pro 线通过率 0.596(n=5499),flash 线 0.647(n=10322)。flash 的通过率反而更高,这符合直觉:更小的模型训的是相对更容易达成的要求,通过率自然更高。
此外还有一张按数据源列出的明细表,显示每个源当前「接受 / 目标」以及剩余、已判定、在途的数量。比如某个 code 源是 156/154 而另一个是 211/153,差异说明不同数据源的采样难度和产出率并不均匀。
四、该有的怀疑
第一,面板展示的是训练中的中间态。 奖励均值 0.614 是「相对第一步」的变化量,不是绝对能力值。把 ▲0.049 读成「能力提升 4.9%」是错的——它是采样器内部指标相对起点的位移。
第二,DeepSWE 只有两条线的数字,没有更多基准。 62.24 与 60.77 是 mini-swe-agent 跑出来的 avg@3,样本量不大。单基准单配置的数字,只能当作同一家族内的相对比较。
第三,成本数字包含什么口径不清楚。 76.9 万美元是算力、还是算力加数据加人工,面板没有细分。跨厂商对比时要小心口径差异。
第四,实时面板天然偏向展示过程指标。 熵损失、KL 差、接受率都很专业,但它们不等于最终模型好用。面板解决的是「训练可观测」,没有解决「能力可验证」。
结语
这个面板真正的意义在行业层面,而不在技术层面。
训练成本长期是各家最不愿意公开的信息之一,因为它直接暴露竞争位置。把它打开,加上数据源配比、采样流水线状态和中间态的异常读数,等于把「花多少钱、用多少 token、按什么配比,能换来多少能力」这个问题变成了可横向对照的公开问题。
对于正在做自己后训练的团队,这里能拿到的实际收益是预算校准:看到 22.8B 训练 token 和几十万美元对应的是什么样的奖励曲线位移,比任何估算公式都直观。
值得盯的是它后续的更新频率和是否会给出更多基准——如果这个面板能持续开着,它会比任何一次发布通稿都有信息量。