资讯动态

强化学习训练看板指标全解:从定义到排障的实战手册

发布时间:2026/10/15 9:16:17 来源:尧图企业网站定制
深夜两点半训练看板上的 reward 那个橙色线条又走出一个诡异的波浪群里已经有同事开始连环问是不是 reward model 挂了。我盯着面板上那二十来个数字脑子里闪过的是过去半年踩过的所有坑同一个指标三个同事给了三种口径explained_variance 突然变负有人慌慌张张把学习率降了十倍结果训练直接原地踏步还有一次 critic loss 从 0.5 一路飙到 4.2排查了一整天才发现是 GAE 里 lambda 参数被某个分支代码改成了 0.9。做 MiMo-v2.6 这轮 RL 训练之前我把团队喊到一起立了一条规矩先把看板上所有指标写成人话每个人对着这份定义表过一遍谁再拿“我觉得这个 loss 应该降”来说事就罚谁请奶茶。后来这份文档就变成了组里的 wiki 第一页。现在把它整理出来共享给正在做 RL 训练的朋友一份可直接抄作业的指标手册每个数字到底怎么算的、它异常时大概率哪里出了问题、哪些指标看一眼就知道训练还能不能救。内容不分基础只要是接触过训练日志、想搞明白那把曲线到底在说什么的人都能对着查。1. 为什么需要一套明确定义的训练看板1.1 指标口径混乱才是训练事故的源头做过一段时间 RL 微调的人基本都经历过这样的场景同一个 step 的日志里躺着七八个 loss不同脚本打印的 key 还不一样跑 A100 集群的同事说“loss 已经降到 0.3 了”跑单卡调试的同事说“我这边 loss 还在 2.0”一对照代码才发现两边根本没在算同一个量——一个算的是 actor 的 policy loss另一个算的是把 critic loss 和 KL 项揉在一起的混合量。这类事故在 MiMo-v2.6 早期版本里出现过不止一次而且每次都要浪费大半天去对齐口径。看板最核心的功能不是“展示数字”而是让团队对“数字代表什么”达成一致。所以我坚持先花时间整理这份指标定义文档再写任何监控代码。文档里每个指标必须包含四要素它的符号表示、它的数学计算式、它在看板上的配色和图例、它异常时对应的排查方向。缺一个都不算合格。1.2 监控指标的分层设计训练看板不能是一张平铺的大杂烩否则满屏曲线飞线关键时刻根本不知道该看什么。我习惯把 MiMo-v2.6 的看板拆成四个层级集群层GPU 利用率、显存占用、CPU 负载、网络吞吐、数据加载耗时。这一层回答的是“机器有没有在好好干活”解决的问题是算力浪费和数据瓶颈。训练进程层tokens/s 吞吐、每秒训练步数、经验池大小、rollout 与 learn 阶段耗时比。这一层回答的是“数据流有没有顺畅跑起来”。策略学习层actor loss、critic loss、KL 散度、clip fraction、advantage 分布、explained variance、reward 均值。这一层是看板的主角回答的是“模型到底在学什么、学的效果如何”。实验维度层同一次训练下不同 checkpoint 的评估分数、不同 seed 的方差、奖励模型的得分漂移。这一层用于判断实验结论是否可靠。四层并不是平行关系而是自下而上支撑底层不健康上层的任何指标都不可信。MiMo-v2.6 的监控体系就是把这四层都落到 Grafana 的面板里每个层用一个独立 Row 分割颜色体系也做了统一——reward 系用暖色橙、红loss 系用冷色蓝、青KL 和比值类用绿色吞吐和资源类用灰色。这样扫一眼就能靠颜色定位问题不用每次都眯着眼睛去对图例。2. 核心指标的精确定义与计算口径2.1 reward 系列最容易被“过分关注”的指标reward 是 RL 训练里最直观、也最容易被误读的指标。MiMo-v2.6 的看板上 reward 相关的展示分了三个量而不是简单放一条 mean reward 曲线raw_reward环境端返回的原始奖励值代表当前这条 rollout 轨迹trajectory从头到尾获得的累计奖励总和。注意这里没有做归一化它的绝对值大小依赖于任务设计不同任务之间横向对比没有任何意义。reward_ema指数移动平均用来抹平单条轨迹带来的噪声看趋势用的。我通常把衰减系数设成 0.98这样大约每 50 条轨迹才会让曲线真正转向一次不容易被极端轨迹带偏。看板上这条线条才应该用来做“reward 在涨还是在跌”的判断依据。reward_var / reward_std单次 batch 内各轨迹 reward 的方差。这个量很关键它反映的是当前策略输出的稳定性。如果 mean 在涨但 std 也在同步放大说明模型在个别样本上进步明显、在另一些样本上却在退化这种情况要警惕奖励黑客行为。画图的时候我还会把每 N 步的 reward 原始散点用 10% 透明度打在图里这样能看出极端值长什么样。有个经验如果 reward_ema 在涨但原始 reward 的 P99 和 P1 差距超过训练早期 3 倍以上优先怀疑策略在边缘场景上头了而不是真的整体变好。2.2 actor loss 与 critic loss看“学得动”而不是“降得低”很多新人上来就问“loss 降到多少算收敛”我对这个问题的回答永远是RL 里的 loss 绝对值没有意义你要看的是它有没有在合理范围内波动。MiMo-v2.6 用的优化算法是 PPO 的变体钳位clip机制会让 actor loss 在一个很窄的区间里来回震荡。具体定义上actor loss也叫 policy loss在 PPO 里由三部分构成策略梯度主项-E[ advantage * ratio ]其中 ratio 是新旧策略在同一个 token 上的概率比值。clip 修正项把 ratio 限制在1-ε到1ε之间ε 默认取 0.2让策略每一步不要迈太大。熵正则项给策略的随机性一个正向奖励避免过早坍缩成确定性策略。这个权重一般很小大约 0.001 到 0.01。看板上展示的 actor_loss 就是这三项加权求和后的结果。因为 clip 的引入这个值不会像监督学习的 loss 那样一路走低而是会在 0.01 到 0.05 附近波动。什么时候需要警惕如果 actor_loss 持续小于 0.005 且多步保持大概率是策略更新幅度被 clip 卡死训练进入停滞态如果 actor_loss 突然跳高一个量级大概率是 advantage 或者 ratio 数值爆了去查 GAE 参数和网络输出层的 scale。critic loss 则更接近监督学习它是 critic 网络对状态价值 V(s) 的预测与 GAE 算出的目标之间的误差一般用 MSE。MiMo-v2.6 里这个值正常在 0.1 到 0.5 区间波动如果它快速下降并稳定在一个很低的值反而要看是不是 critic 欠拟合了。打开 GradNorm 一起看是最好的组合拳critic loss 很低、同时 grad norm 也在变小说明价值网络真的拟合住了后面 advantage 的计算才有参考价值。2.3 ratio、clip fraction 与 entropy衡量“步子迈多大”这三个指标是我在看板上最常驻的三个辅助量因为他们直接决定训练稳定性。ratio新旧策略概率比对每个 token计算新策略输出概率除以旧策略输出概率。理想情况下整个 batch 的 ratio 均值应该在 1.0 附近标准差在 0.1 到 0.2 之间。如果 ratio 的均值明显偏离 1.0说明 logging 里的旧策略参数与 rollout 时用的不是同一份权重属于工程 bug不是模型问题。clip fraction被截断的比例统计 ratio 超出[1-ε, 1ε]区间的 token 占比。这个指标在 PPO 论文里叫 clip fraction是一个非常重要的健康度信号——它代表有多少更新实际上没生效被截断了。经验范围clip fraction 常年超过 30% 说明学习率偏高、策略振荡严重常年低于 2% 说明策略可能压根没在动LR 太低或者是 advantage 信号太弱。entropy策略熵看板里我展示的是平均策略熵单位是 nats 或 bits。它反映策略的随机性。训练早期熵较大随着策略逐渐明晰会慢慢下降。如果 entropy 断崖式下跌大概率是某种正反馈让策略快速玻尔兹曼锐化了要检查是否出现奖励黑客。如果 entropy 一直不降说明模型没从环境中学到任何偏好。三者的关系值得用一段话说清楚clip fraction 就是 policy 更新幅度的“安全阀开启率”ratio 分布是它的细粒度体现entropy 则是总体的随机性储备。看板上把这三个图摆成上下排列能很快定位“学习率该调了”还是“奖励信号本身有问题”。2.4 advantage 与 GAE 相关指标内部细节也不容忽视GAEGeneralized Advantage Estimation是 PPO 系列方法里计算 advantage 的标准方案它有两个关键参数γ折扣因子和λGAE 的 bias-variance 权衡参数。MiMo-v2.6 默认取γ0.99、λ0.95这是多数任务里不容易翻车的组合。但看板上真正值得盯的是 advantage 的分布形态advantage_mean理想情况下应该接近 0。如果长期为正说明 critic 对当前策略的评估整体偏悲观如果长期为负则偏乐观。这两种情况都会干扰策略更新方向。advantage_std代表优势信号的能量。如果它太小比如小于 0.01说明模型已经很难区分哪些动作更好训练接近瓶颈如果它剧烈波动说明 reward 信号的噪声在滚雪球放大。explained_variance解释方差这个指标很多人第一次见会懵。它衡量 critic 的预测值对真实回报的拟合程度公式是1 - Var(returns - values) / Var(returns)。取值可以小于 0等于说 critic 的预测比直接用均值还差。看板上我建议给 explained_variance 单独设一条阈值线低于 -0.5 就触发告警因为这说明价值函数已经崩了后面的 advantage 全是垃圾信号继续更新策略无异于在烂地基上盖楼。我实际跑 MiMo-v2.6 的一个案例某个任务在 1200 step 时 explained_variance 从 0.3 掉到 -0.8当时没有告警结果后续 300 步里 policy loss 一路飙升生成的文本明显开始刷字数搞奖励黑客。当时回查才发现是 reward 归一化逻辑被新提交的代码改掉了导致真实回报分布突变。如果早点在 explained_variance 上挂告警至少能提前半个小时止损。3. 关键术语解释速查扫清看板上的黑话3.1 训练过程类术语Step、Rollout、Learn、Epoch看板左上方通常有一排只显示数字和单位的小卡片比如Step 3400 (Rollout 1700 / Learn 1700)。这些术语来自 RL 训练框架的经典循环没有人解释的话新人很容易迷失。Step步在大多数 RL 框架里一个 step 指“一次完整的 采样更新 循环”。一个循环里包含两个阶段Rollout 阶段用当前策略跑环境采样轨迹Learn 阶段用这批轨迹做若干次梯度更新。Rollout采样/推出指让模型与环境交互、生成一批完整轨迹的过程。MiMo-v2.6 里对这种文本生成类任务每条轨迹就是一个完整生成序列长度上限要设好否则遇到奖励黑客模式会狂生成长文本烧 token。Learn学习/更新拿采样好的数据更新 actor 和 critic 的阶段。注意 learn 阶段内部的更新次数一般是 1 到 4 个 epoch会直接影响训练吞吐因为每个 epoch 都要重新算一次前向和反向。Buffer / Experience Pool经验池rollout 产出的轨迹存放处。PPO 是 on-policy 算法经验池用一次就丢容量等于一个 batch 的规模。如果你在看板上发现 buffer 一直处于半满状态、训练步进很慢多半是生成任务本身太耗时考虑调小 batch 或者引入更快的采样服务。还有一个容易混淆的量是Tokens/s它表征模型每秒能生成的 token 数直接决定整个训练通量。MiMo-v2.6 每个 batch 大约消耗 120 万 token如果吞吐从 20k tokens/s 掉到 12k整个训练节奏就会拉慢 40%。所以看板上 Tokens/s 一旦破位下跌优先查 GPU 利用率、上下文长度分布和 offload 机制。3.2 算法类术语PPO、GAE、On-policy、价值函数这一节写给从监督学习转过来做 RL 的朋友。看板上这些算法名和概念不清楚它们的定位指标解读就是空中楼阁。On-policy同策略训练用的数据必须来自当前策略本身不能复用旧策略生成的数据。这是 PPO 和传统 DQNoff-policy最本质的区别。因此看板上的 old policy 相关缓存必须严格按 step 隔离任何代码复用都会让指标曲线变得“好得可疑”但实际能力完全没有提升。PPOProximal Policy Optimization近端策略优化一种通过在每次更新时不大于给定阈值的策略变化来稳定训练的方法。它用 clip 机制把每次更新的步长钳制在安全范围是 MiMo-v2.6 默认的基础算法特别适合处理文本生成这类高维动作空间。Critic / V(s) 价值函数一个用于估计“当前状态出发未来期望收益之和”的神经网络。它不直接输出动作而是给政策打分。advantage 实际收益 - 价值估计这个差才是策略更新的方向盘。价值函数训练不好策略方向就是乱的。Advantage优势值衡量“这一步动作比平均情况好多少”的量。正优势意味着动作好、要增加概率负优势则反之。看板术语最常见的坑是把“价值函数”和“奖励模型”混为一谈。奖励模型是外部给分、通常冻结不动价值函数是训练中的内部模块、每一步都在更新。MiMo-v2.6 的看板把两层分开画在两个 Row 里就是为了杜绝这种混淆。3.3 微调类术语SFT、RLHF、RM、KL 散度因为在 MiMo-v2.6 的实际部署中经常要跟其他团队对齐“这个模型是 SFT 底座还是 RL 底座的”这句话每天都要问好几遍干脆在这里一并解释清楚。SFT监督微调用人工标注的“好回答”做指令跟随训练。它是 RL 训练之前的底座特点是输出自然、但不是最大化用户真实满意度。RLHF基于人类反馈的强化学习用奖励模型RM打分作为反馈信号来继续优化策略。MiMo-v2.6 属于这一范畴——先训一个打分模型然后通过 PPO 让生成策略学着迎合打分标准。注意这里天然存在的风险策略会钻 RM 的空子写出一堆 RM 觉得好但人看着不对劲的文风。RM奖励模型给一段生成结果输出一个分数的模型它是 RL 信号的源头。RM 的任何小变化都会在 advantage 上被放大所以看板上要专门放一个 RM 平均分曲线和 reward_ema 对照着看。KL 散度Kullback-Leibler Divergence衡量新策略和初始参考策略通常是 SFT 模型的分布差异。RLHF 训练通常会在奖励里减去一个β * KL(policy || ref_policy)惩罚项防止模型输出离人类语言太远。KL 是一直稳步增长还是出现台阶式突变对应的是模型“自然演化”还是“突然漂移”。后者的排查优先级很高多半是某个版本更新改变了参考策略的加载路径。用生活化类比总结这几个概念SFT 是把一个素人训练成合格职员RL 是把职员放到真实业绩考核RM环境下进化成功员工而 KL 惩罚是 HR 盯着你不能把话说得太离谱、不能为了业绩目空一切。看板上 RM 分数、KL、策略熵三者的time series放在一起看基本就能判断这个“员工”是在健康成长还是在剑走偏锋。4. 实操配置与看板搭建从日志到 Grafana 面板4.1 关键超参对照表及其调参依据我在 MiMo-v2.6 实验开始前都会打印一张超参表一方面发给团队对齐一方面挂到看板顶部作为固定注释。这里给出一份可直接套用的默认配置以及调节方向超参默认值看板关联指标调节方向折扣因子 γ0.99advantage_std、reward_ema任务越长程越接近 1.0GAE 参数 λ0.95explained_variance、critic_loss方差大就降 λ如 0.9偏差大就升 λPPO clip ε0.2clip_fraction、actor_loss 波动clip fraction 过高时降 ε 到 0.1熵系数0.005entropy 曲线斜率熵降太快时调到 0.01停滞时降量级critic 学习率同 actor5e-6critic_loss、explained_variancecritic 欠拟合时单独调大 2-3 倍KL 惩罚系数 β0.02KL 曲线斜率KL 爆涨时提高惩罚过猛时降低mini-batch epoch2tokens/s、policy_loss 波动幅度吞吐过低时减为 1波动太大时增到 3这些参数不是拍脑袋给的而是很多次实验跑出来的相对稳定的区间。比如λ0.95它让 advantage 估计保留了一定长时信息、又不至于方差爆炸γ0.99适合大多数回合长度不超过 2048 的文本生成任务。如果你跑的是超长文档任务比如一次要生成上万 tokenγ 建议改为 0.999 甚至 0.9999否则远期收益几乎被折扣磨没策略会变得只看眼前一步。4.2 从训练日志到看板的管线实现说完了“看什么”再简单说说“怎么看”。MiMo-v2.6 的看板数据链路在工程上也踩过几个坑这里给一条稳妥的路线训练脚本在每 N 步我一般设到 10 步调用一次 metrics collector把当步指标以 JSON 格式带时间戳刷到本地文件。用一个轻量 agent 把增量 JSON 转发到 Prometheus或者 VictoriaMetrics按 metric name 建立标签索引。Grafana 里每个面板指定 PromQL 查询展示对应曲线。注意几个细节第一所有 RL 内部指标必须带policy_version标签否则 rollout 和 learn 阶段指标没区分开曲线会奇怪地跳变第二尽量在训练端把数值直接做平均或分桶再上报而不是让监控系统做聚合因为 RL 的指标往往是非平稳的监控端的固定窗口聚合会抹掉关键跳变第三reward 这种横跨多个数量级的量一定要在图里做 log scale 切换默认线性模式会把小信号全部压平。还有一个很少有人提但实测非常有用的技巧在 Grafana 里给关键指标加“注释”例如在 explained_variance 面板上标注“当此值低于 -0.5请立即停止训练并检查 reward normalization”。这相当于把团队排查 SOP 直接内嵌到看板里面避免半夜有人看着异常数值心态爆炸、直接乱调参数。4.3 看板告警阈值设置建议告警不是越灵敏越好不然一个 P99 的瞬时抖动就能把人从睡梦中震醒。我调了一轮之后最终给 MiMo-v2.6 设的是这些规则供参考explained_variance 连续 50 步低于 -0.5触发 warning这是最容易酿成大祸的指标。clip_fraction 连续 30 步超过 0.4触发 warning代表策略被截断太狠需要降低学习率。entropy 单 step 下降超过前一量的 30%触发 warning可能出现了奖励黑客式的迅速锐化。reward_ema 连续 100 步不涨也不跌且 std 持续缩小触发 info说明训练可能瓶颈了需要换数据或调奖励。tokens/s 低于前 100 步平均值的 70%触发 warning代表生成环节效率下降了。告警通道接到飞书或者钉钉机器人warning 级别只推给当值人error 级别才推全组。实践中我发现多数半夜告警都是 tokens/s 破位因为共享集群里总有人跑大任务抢带宽。这种告警不需要立刻处理但要知道它发生了。5. 训练异常模式与排查实录5.1 现象一KL 散度阶跃式上升但 reward 也在涨这是 RLHF 训练里最让人纠结的场景模型输出质量看起来在变好KL 却突然加速上涨说明新策略和 SFT 参考模型的距离越来越远模型在往 RM 偏好的极端风格走。肉眼看着 reward 涨其实是奖励黑客的前奏。我踩过一次某个对话任务跑了 3000 步reward_ema 从 0.4 升到 0.7同时 KL 从 3 窜到 18。当时判断是策略在“利用” RM 对某些模板句式的高分偏好生成了大量结构雷同但多样性极差的回答。处理方式是把 KL 惩罚系数从 0.02 调到 0.05之后 KL 增速放缓reward 继续爬升到 0.8但生成文本的多样性肉眼可见恢复正常。所以看到“reward 涨得漂亮 KL 狂奔”优先级不是庆祝而是检查是否配了足够强的 KL 刹车。排查步骤看 KL 的上升形态线性上升是正常演化台阶式上升大概率是策略发生了质变。配合策略熵一起看如果熵也在同步下降基本能确认方向。抽样看实际生成文本对照 RM 分数最高的几条确认是否存在“程式化”模板。调大 KL 系数后观察接下来 100 步内 KL 是否趋于稳定。5.2 现象二actor loss 几乎不动clip fraction 低得异常我遇到过 actor loss 连续 200 步都在 0.006 附近抖动看板一片死寂。当时直觉是学习率太小或策略已经停滞于是把学习率往上拉了 3 倍结果没变化。最后追到根因是 rollout 阶段使用了旧版本生成器而 learn 阶段拿到的数据其实全来自一个已经不再更新的老旧策略——相当于在拿十个版本之前的经验在训练当前模型。这类问题看板的体现就是actor loss 纹丝不动、clip fraction 极低接近 0、entropy 保持不变、但 tokens/s 一切正常。排查路径要沿着“数据到底是不是当前策略产生的”去走检查 rollout worker 的模型权重版本号和 learner 的版本号是否一致。看板上 policy_version 标签是否出现了多个不同值。检查经验池的缓存逻辑是否存在跨 step 复用。如果一切正常尝试把学习率调大 5 倍观察 50 步内的 actor_loss 响应如果仍然不动则更倾向是工程链路问题。5.3 现象三explained_variance 崩塌、critic loss 一路起飞价值函数崩了是 RL 训练中最凶险的故障之一。我见过的一次典型场景critic loss 从 0.2 慢慢涨到 2.8explained_variance 从 0.3 一路滑到 -1.2但 reward 曲线反而在涨。当时团队里有人说是“过拟合了”有人建议“减少 critic 网络层数”实际上根因出在 reward 信号的分布发生了改变——某个上游“最终答案正确性”校验逻辑把惩罚值从 -1 改成了 -5导致真实回报方差翻了好几倍critic 的容量跟不上这种突变。处理办法不是硬调网络结构而是先稳定 reward 分布看 reward_raw 的直方图分布是否出现极端离群值。如果在文本任务里具体查看是否出现了长度为 0 的生成序列其 reward 极低。给 reward 做 normalize减去当前滑动均值、除以滑动标准差把分布拉回单位分散再进 GAE。如果再崩就在 GAE 计算时降低 λ增强方差抑制。一个重要的实测结论explained_variance 长期为负时即使 reward 在涨也不要信。它涨的只是噪声拟合的虚假胜利。你还不如停下来花十分钟把 reward 分布修正一下收益远大于继续烧卡。6. 看板使用心得与团队协作建议6.1 看板指标的分级使用哪些每天盯、哪些每周看不是所有指标都需要实时监控。我在组里定了一个“红黄绿”轮岗制度红色指标天天盯reward_ema、explained_variance、clip_fraction、tokens/s、显存占用。这些直接反映训练是否活着、是否在往对的方向走。黄色指标每天收日志每周复查critic_loss、policy_loss 的分布形态、entropy 变化趋势、advantage_std。这些反映健康情况但不必实时告警。绿色指标只在实验总结时看最终评估集分数、不同 checkpoint 的对比、seed 间标准差、KL 的整体累积值。这些是用来下结论、发周报的。这种分级最大的好处是防止整个团队被十几条实时曲线耗尽精力。人一天的高频注意力就那么多把它留给真正会翻车的指标。6.2 跨团队协作时的指标语言对齐MiMo-v2.6 训练通常会牵涉算法组、数据组、推理优化组、甚至产品侧的人。各组语言体系不同最容易出问题的是“质量”这个词——算法说“reward 高就是质量好”产品说“用户留存高才是质量好”数据组说“标注一致性高才是质量好”。看板文档里每个指标旁边必须附上一句话“这个指标能回答什么问题、不能回答什么问题”并要求所有相关团队通读。比如 reward_ema 能回答“策略在 RM 视角下有没有变好”但不能回答“最终用户喜不喜欢”。这样的边界声明能避免很多跨组扯皮。另外团队里必须有一个“指标解释人”角色——每当有人提出新增指标就必须同步更新文档否则新指标只能活三天然后被遗忘。6.3 几个从实践中沉淀下来的通用技巧最后分享几个非共识但好用的小技巧都是我拿 MiMo-v2.6 的实际训练迭代换来的经验。第一在做大版本改动前给看板打一个 version tag 拍快照。我每次改动 reward 函数、GAE 参数或网络结构先记录当前所有指标曲线的快照再动手。之后无论改出来的是好是坏都能直接对比版本差异而不至于“感觉上好像好了点但具体好了多少说不清”。第二把日志中的 NaN 和 Inf 显式记录成数字而非直接跳过。很多框架对 NaN 的默认处理就是丢弃该步的指标导致看板上出现空洞。建议改成把异常值单独打卡到 hadoop / s3 上存起来至少要知道异常发生在哪一步、当时哪些特征走到了极端。第三训练看板文档本身就是项目里最值得维护的单品它应该放在代码仓库 wiki 第一页而不是某个同事的聊天收藏里。我见过太多团队把关键口径存在个人聊天记录里一出事故就拿着别人的截图对来对去。把这份文档当成代码来维护每一次指标口径的变更都走 review 流程看起来形式化了实际省下的排查时间远超那点流程成本。文本生成类任务的 RL 训练本来就是一个“盲人摸象”的过程看板是我们唯一能信的事实来源。把每个数字的含义钉死把每条曲线的正常区间钉死把每个异常模式对应的排查方案钉死训练这件事就从“玄学”变成了“科学”。至少 MiMo-v2.6 这轮跑下来我最大的感触是花一下午时间把这份说明写清楚后面两周都不用再回复“这个指标是啥意思”之类的消息了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑