ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

MiMo-v2.6强化学习训练看板:指标物理意义与实时归因指南

MiMo-v2.6强化学习训练看板:指标物理意义与实时归因指南 1. 这不是一张“好看”的仪表盘而是一份RL训练的诊断报告你打开浏览器输入地址看到一个布满曲线、数字和颜色块的网页——它叫“MiMo-v2.6 RL 训练看板”。你下意识点开想看看模型是不是在“好好学”结果被一连串缩写卡住ep_rew_mean是什么entropy_coef下降太快正常吗kl_div_target和kl_div_current差0.03该停不该停更别提那个灰底白字的grad_norm_clip: 0.5它到底在剪谁的梯度剪多少为什么是0.5而不是0.49或0.51这不是UI设计问题这是RL训练现场的“生命体征监护仪”。MiMo-v2.6不是玩具模型它是一个面向真实决策闭环的强化学习框架其v2.6版本在策略稳定性、稀疏奖励适应性和多目标权衡上做了关键重构。而这张看板就是唯一能让你在不打断训练、不重跑实验、不翻源码的前提下实时判断“模型此刻是否健康”的窗口。它不负责告诉你“怎么调参”但它会用数据告诉你“现在调得对不对”它不承诺收敛但它会暴露收敛路径上的每一个抖动、塌陷与假性平稳。我带过的几个团队有三次重大线上策略回滚根源都不是算法逻辑错误而是看板上value_loss持续低于policy_loss超过12小时却被当成“训练顺利”忽略——直到策略在真实环境中开始反复执行低效动作。所以这篇内容不是教你“如何部署一个前端页面”而是带你把看板上的每一行字、每一个坐标轴、每一种颜色都还原成训练现场的真实物理量。你会明白ep_len_mean不只是“平均回合长度”它是环境反馈延迟的镜像是探索效率的温度计lr_schedule的曲线斜率直接对应着当前策略更新步长的保守程度而那个总在跳变的exploration_ratio其实是模型在“相信历史经验”和“赌一把新动作”之间摇摆的量化心跳。它适合三类人刚接手MiMo-v2.6训练任务的工程师需要快速建立直觉正在调试策略不稳定问题的研究者需要精准定位异常源头以及负责模型上线评审的技术负责人需要一份可审计、可复现、可归因的训练质量凭证。接下来我们不讲概念定义只讲这些指标在MiMo-v2.6 v2.6版本中为什么这样定义、在什么位置计算、数值异常时意味着什么物理过程、以及你该先看哪个再看哪个。2. 看板背后的设计逻辑从“监控”到“归因”的三层穿透2.1 为什么不是所有指标都上屏——MiMo-v2.6的指标筛选铁律MiMo-v2.6训练看板没有堆砌上百个变量它的核心面板只展示17个主指标含6个衍生指标其余全部折叠进“诊断详情”二级页。这个数量不是拍脑袋定的而是基于v2.6版本的架构变更倒推出来的。v2.6最大的底层改动是将原先耦合在PPO主循环里的价值网络更新、策略熵正则、KL散度约束全部拆解为独立可插拔的“训练钩子Training Hook”。每个钩子在执行前后都会向全局指标管理器MetricsRegistry注入一组强语义标签的观测值。看板的数据源正是从这个注册中心按需拉取的。提示指标是否上主屏取决于它是否满足“三可”原则——可干预、可归因、可预测。ep_rew_mean可干预改reward shaping、可归因直接关联环境反馈、可预测随训练轮次呈单调上升趋势→ 主屏第一行forward_dynamics_loss虽然重要但它是世界模型子模块的内部损失无法通过主训练参数直接干预且异常时往往由state_repr_dim配置错误引发属于前置配置问题 → 折叠进二级页batch_size是超参不是观测指标绝不出现于看板 → 避免混淆“控制量”与“状态量”。这个设计直接决定了你看板的顺序永远先看策略输出层指标reward/length/entropy再看策略更新层指标loss/kl/grad最后看环境交互层指标obs_norm/std。因为v2.6的故障树是单向传导的环境观测异常 → 策略输入失真 → 策略更新震荡 → 最终reward崩塌。如果你一上来就盯着grad_norm看等于医生先查心电图再量体温——顺序错了归因就偏了。2.2 术语解释的本质不是翻译而是映射到训练物理过程MiMo-v2.6的术语表Glossary不是词典而是一张“训练事件-指标-代码位置”三维映射表。比如kl_div_current这个词在v2.6里它特指当前策略与上一轮策略在采样批次上的KL散度均值计算发生在PPOUpdater._compute_kl_penalty()函数第87行使用的是torch.distributions.kl.kl_divergence()的batch版本而非标量版本。这个细节至关重要如果某次训练中kl_div_current突然飙升你立刻要检查_compute_kl_penalty()的输入old_log_probs和new_log_probs是否来自同一环境状态——v2.6默认开启state_sync_on_update但如果环境重置逻辑有bug就会导致旧策略log prob和新策略log prob错位计算KL值虚高。这种问题光看术语定义“KL散度衡量策略分布差异”是完全无法定位的。再比如entropy_coef它在v2.6中已不再是固定超参而是一个随训练轮次动态衰减的调度器输出值其衰减公式为entropy_coef(t) entropy_coef_init * (1 - t / total_timesteps) ^ entropy_decay_power其中entropy_decay_power默认为0.7这个指数不是随便选的。我们做过对照实验当设为0.5时早期熵衰减过慢策略探索不足ep_rew_mean爬升缓慢设为0.9时熵衰减过快后期策略过早固化exploration_ratio在50%处骤降至5%导致稀疏奖励环境下无法发现新高回报路径。0.7是我们在12个不同稀疏度环境上跑出的帕累托最优解——它让熵在训练中期约35%-65%轮次维持在15%-25%区间恰好覆盖策略从“广撒网”到“精耕作”的过渡期。所以你看术语解释必须同步看到它背后的物理约束和实证依据。2.3 看板布局的潜在线索空间位置即因果权重MiMo-v2.6看板的布局是精心设计的因果图。顶部横栏是策略输出结果reward/length/entropy这是你最终要优化的目标中间双纵列是策略更新质量policy/value loss, kl, grad norm这是训练引擎的“工作状态”底部是环境交互基础obs norm, action std, reward scale这是所有计算的输入前提。三者形成自上而下的数据流底部异常必然导致中部震荡中部异常必然反映在顶部结果。更关键的是左右分区左区全是均值类指标mean/std/min/max右区全是分布类指标histogram/quantile。比如ep_rew_mean在左ep_rew_quantile_90在右。这意味着当你发现ep_rew_mean停滞第一反应不是调学习率而是立刻切到右区看ep_rew_quantile_90——如果它同步停滞说明整体策略提升遇到瓶颈如果它持续上升而ep_rew_mean不动那90%的高回报episode被10%的极低回报episode拖垮了均值问题出在策略鲁棒性或环境异常状态处理上。我们曾在一个物流调度项目中靠这个左右对比在2小时内定位到reward_scale配置错误ep_rew_quantile_90显示单次最高奖励达1200但ep_rew_mean只有8排查发现reward scaling因子被误设为0.01导致1200奖励被压缩成12而-1000惩罚被压缩成-10正负奖励量级失衡策略学会“宁可少赚也不冒险”。3. 核心指标逐项深挖定义、计算、异常模式与实操响应3.1 策略输出层reward、length、entropy——你的“成绩单”ep_rew_mean回合平均奖励定义当前训练轮次内所有完成回合episode的累积奖励均值。注意v2.6中“完成回合”指自然终止如到达目标或超时不包括被max_episode_steps强制截断的回合。计算位置EpisodeBuffer._compute_episode_stats()对每个完整episode的reward_sum求均值不剔除离群值。这是故意为之——离群值本身就是信号。异常模式与响应长期平台期5000 steps无增长先检查ep_rew_quantile_10是否同步停滞。若quantile_10也停滞大概率是reward shaping设计缺陷需重审稀疏奖励点是否覆盖关键决策节点若quantile_10持续下降而mean不动说明策略在回避高风险高回报路径应检查entropy_coef衰减是否过快或clip_epsilon是否过大导致策略更新过于保守。剧烈震荡标准差 均值30%立即查看ep_len_mean。若ep_len_mean同步剧烈波动问题在环境本身如随机种子未固定、外部API延迟抖动若ep_len_mean稳定而ep_rew_mean抖问题在策略对特定状态的过拟合需增强state_dropout_rate或启用advantage_normalization。实操心得我习惯在训练启动后前100步把ep_rew_mean设为报警阈值。v2.6默认初始化策略是随机策略前100步ep_rew_mean应在[reward_min*0.8, reward_max*0.2]区间。如果首步就接近reward_max99%是reward计算逻辑有bug比如把doneTrue时的bonus reward重复加了两次。ep_len_mean回合平均长度定义所有完成回合的步数均值。v2.6特别强调“完成回合”因为强制截断回合的长度是人为设定的不能反映策略真实能力。计算位置同ep_rew_mean在EpisodeBuffer中计算但仅统计doneTrue的episode。异常模式与响应持续增长2000 steps无拐点这通常不是好事。它意味着策略学会了“拖延战术”——在非终止状态下无限循环以规避惩罚。典型场景是机器人导航中策略发现原地转圈比走向障碍物更安全。此时ep_rew_mean往往同步缓慢上升靠时间耗尽获得微小存活奖励。解决方案在reward中加入-0.01 * step的时间惩罚项并确保该惩罚项不参与reward scaling否则会被压缩失效。骤降单步下跌40%立即检查obs_norm_mean和obs_norm_std。v2.6的观测归一化是在线进行的obs_norm_std骤降意味着观测方差坍塌模型输入失去区分度策略退化为简单反射。常见原因是obs_norm_momentum0.99设置过高在环境突变时归一化参数来不及适应。临时方案手动重置obs_norm_std为初始值长期方案改用obs_norm_momentum0.95并启用obs_norm_adaptive。关键洞察ep_len_mean和ep_rew_mean的比值是策略“效率”的黄金指标。理想情况下该比值应随训练缓慢下降单位步数获取更多奖励。如果比值上升说明策略在用更多步数换更少奖励本质是探索方向错误。entropy策略熵定义v2.6中特指当前策略网络在采样批次上的动作分布熵均值计算使用-sum(p * log(p))p为softmax输出概率。注意它不是策略网络输出的原始logits熵而是经过temperature缩放后的实际策略熵。计算位置PPOUpdater._compute_policy_entropy()在每次update前对当前batch的action logits计算。异常模式与响应过早归零1000 steps即0.01这是v2.6最危险的早期预警。它表明策略在极短时间内就放弃了探索通常源于init_log_std设置过小如-5.0或entropy_coef_init过大如0.1。紧急措施暂停训练修改entropy_coef_init0.01重启长期方案启用entropy_coef_scheduleadaptive让系统根据exploration_ratio自动调节。长期高位5000 steps仍1.5策略始终无法收敛可能原因有二一是clip_epsilon过小0.1策略更新步长太碎无法跳出局部最优二是value_loss_coef过大1.0价值网络过度主导训练策略网络沦为价值网络的附庸。此时value_loss会显著低于policy_loss。避坑技巧不要只看entropy绝对值。我总在看板右侧同时打开entropy_coef曲线。如果entropy下降而entropy_coef也在下降这是健康衰减如果entropy下降但entropy_coef恒定说明策略在“被迫”收敛后续容易过拟合。3.2 策略更新层loss、kl、grad——你的“发动机仪表盘”policy_loss与value_loss定义policy_loss是PPO裁剪目标函数的均值value_loss是TD误差的MSE。v2.6的关键改进是将二者解耦为独立优化目标不再用单一loss_coef加权。计算位置PPOUpdater._compute_policy_loss()和_compute_value_loss()分别在不同计算图中执行。异常模式与响应policy_lossvalue_loss且持续扩大这是v2.6的“红灯”信号。它表明价值网络拟合过于精准而策略网络更新滞后导致优势估计advantage偏差增大。典型表现是ep_rew_mean增长缓慢但ep_len_mean暴涨。解决方案降低value_lr建议设为policy_lr * 0.5或启用value_delay_update_steps5让价值网络更新慢于策略网络。policy_loss骤升单步2.0立即检查kl_div_current。如果kl_div_current同步飙升说明策略更新步长过大触发了KL散度硬约束如果kl_div_current正常则检查advantage计算——v2.6默认使用GAEgae_lambda0.95若环境奖励方差大应调低至0.8。实操细节v2.6的value_loss计算中不使用done标志截断TD目标而是统一用n_step5的bootstrap。这是为了缓解稀疏奖励下的信用分配问题。因此value_loss在训练初期会高于传统PPO属正常现象。kl_div_current与kl_div_target定义kl_div_current是当前策略与上一轮策略的KL散度均值kl_div_target是预设的KL散度目标值默认0.015用于动态调整clip_epsilon。计算位置PPOUpdater._compute_kl_penalty()使用torch.distributions.kl.kl_divergence(old_dist, new_dist)。异常模式与响应kl_div_currentkl_div_target* 2 且持续策略更新过猛需立即降低clip_epsilon。v2.6提供clip_epsilon_schedulekl_adaptive它会自动执行clip_epsilon clip_epsilon * 0.8。但要注意连续3次触发后系统会锁定clip_epsilon并报警此时必须人工介入检查entropy是否过低。kl_div_currentkl_div_target* 0.3 且policy_loss 0.5策略更新过弱clip_epsilon可能被过度衰减。此时应检查clip_epsilon_schedule是否误配为linear_decay应改为kl_adaptive。关键原理v2.6的KL机制不是硬约束而是软引导。kl_div_target不是阈值而是期望值。系统通过调节clip_epsilon让kl_div_current围绕kl_div_target小幅震荡±30%这才是健康状态。死守kl_div_current kl_div_target是误区。grad_norm梯度范数定义策略网络和价值网络参数梯度的L2范数均值。v2.6中梯度裁剪gradient clipping发生在裁剪前看板显示的是裁剪前的原始梯度范数。计算位置Trainer._compute_grad_norm()在optimizer.step()前调用torch.nn.utils.clip_grad_norm_()之前。异常模式与响应grad_norm 10.0 且波动剧烈模型存在梯度爆炸首要检查value_loss是否异常高5.0若是则价值网络目标值TD target计算错误其次检查obs_norm_std是否过小0.01导致输入梯度放大。grad_norm 0.001 且policy_loss 0.1梯度消失几乎总是init_log_std设置过小如-10.0导致策略网络输出logits方差坍塌。解决方案重置init_log_std-2.0重启训练。深度技巧v2.6的梯度裁剪阈值grad_norm_clip0.5是经验值。我们测试过设为0.3时训练更稳定但收敛慢设为1.0时收敛快但ep_rew_mean峰值降低5%。0.5是速度与稳定的平衡点。但注意这个值只对策略网络有效价值网络梯度不裁剪因其更新更平滑。3.3 环境交互层obs、action、reward——你的“燃料质量检测仪”obs_norm_mean与obs_norm_std定义v2.6采用在线运行均值/标准差归一化。obs_norm_mean是观测向量各维度的运行均值obs_norm_std是运行标准差加eps1e-5防零。计算位置ObservationNormalizer.update()在每次env.step()后调用。异常模式与响应obs_norm_std 0.01 且持续观测信息贫乏模型输入趋近常数。常见于图像输入未启用frame_stack或传感器数据未做差分处理。解决方案检查obs_preprocess配置启用diff_obsTrue。obs_norm_mean单维突变某维度跳跃3σ环境发生未预期变化如摄像头突然失焦、GPS信号丢失。v2.6会自动标记该step为abnormal_obsTrue并在EpisodeBuffer中隔离。此时ep_rew_mean会短暂下跌属正常防御机制。实操要点obs_norm_momentum0.99是默认值它让归一化参数缓慢适应环境。但在仿真到实机迁移时应提前在实机数据上预热归一化参数方法是加载实机采集的1000步obs用ObservationNormalizer.update_batch(obs_batch)批量更新。action_std动作标准差定义策略网络输出的动作分布标准差均值。v2.6中动作分布为Normal(mu, sigma)action_std是sigma的均值。计算位置PolicyNetwork.forward()在输出层log_std经exp()后计算。异常模式与响应action_std 0.05 且entropy 0.01策略已完全确定性丧失探索能力。检查log_std是否被意外clip如log_std_clip(-10, 2)中下限过严。action_std 2.0 且ep_rew_mean 0策略在胡乱试探可能reward_scale过小导致策略认为“任何动作都无所谓”。应增大reward_scale使reward量级在[-1, 1]区间。关键认知action_std和entropy是互补指标。前者反映动作空间的“物理尺度”后者反映策略分布的“信息尺度”。两者应同向变化。若反向必有配置冲突。4. 实操流程从启动训练到看板解读的完整闭环4.1 启动前的三项必检清单在敲下python train.py --config mimo_v26_config.yaml之前必须完成以下检查否则看板数据从第一秒起就是误导性的Reward Scaling 校准运行python tools/calibrate_reward.py --env YourEnv --n_episodes 100获取该环境在随机策略下的reward_min和reward_max。将reward_scale设为2.0 / (reward_max - reward_min)。例如若随机策略reward_min-500,reward_max200则reward_scale 2.0 / 700 ≈ 0.00286。这是为了让reward落在[-1, 1]区间避免梯度爆炸。Observation Normalization 预热若环境有实机数据用tools/preheat_obs_norm.py加载实机obs序列运行update_batch()。若无实机数据至少用--n_preheat_steps 1000让训练自动预热。预热不足会导致obs_norm_std初始值过大前1000步ep_rew_mean虚假偏高因归一化放大了reward信号。KL Target 与 Clip Epsilon 匹配验证手动计算kl_div_target与clip_epsilon的理论关系kl_div_target ≈ 0.5 * clip_epsilon^2PPO理论近似。v2.6默认clip_epsilon0.2kl_div_target0.015代入得0.5*0.040.02与0.015接近属合理范围。若你将clip_epsilon改为0.1必须同步将kl_div_target改为0.5*0.010.005否则KL自适应机制失效。注意这三项检查缺一不可。我见过最典型的事故是某团队跳过reward校准直接用reward_scale1.0结果训练3天后ep_rew_mean卡在0.002排查发现reward被压缩了500倍策略根本感知不到奖励差异。4.2 训练中的四阶段看板巡检法不要等训练结束再看结果。v2.6看板的价值在于实时干预。我按训练步数划分四个阶段每个阶段有专属巡检重点训练阶段步数范围核心巡检指标健康信号危险信号及响应启动期0-500ep_rew_mean,entropy,obs_norm_stdep_rew_mean在[reward_min*0.8, reward_max*0.2]entropy 1.0obs_norm_std 0.5ep_rew_meanreward_max*0.5→ 检查reward计算逻辑entropy 0.5 → 检查init_log_std探索期500-5000ep_len_mean,exploration_ratio,kl_div_currentep_len_mean缓慢上升exploration_ratio在0.6-0.8kl_div_current在kl_div_target±30%ep_len_mean骤升 → 加入时间惩罚exploration_ratio 0.3 → 增大entropy_coef_init收敛期5000-20000ep_rew_mean,policy_loss,value_lossep_rew_mean单调上升policy_lossvalue_loss二者比值稳定在0.7-1.2ep_rew_mean平台期 1000步 → 检查ep_rew_quantile_90policy_lossvalue_loss→ 降低value_lr稳定期20000grad_norm,action_std,ep_rew_stdgrad_norm在0.1-5.0action_std 0.1ep_rew_stdep_rew_mean*0.3grad_norm 0.001 → 重置init_log_stdep_rew_stdep_rew_mean*0.5 → 检查环境随机性实操心得我用浏览器书签为每个阶段创建快捷入口例如“探索期巡检”书签直接跳转到?stageexplorationmetricsep_len_mean,exploration_ratio,kl_div_current。v2.6看板支持URL参数过滤极大提升效率。4.3 异常定位的五步归因法当看板出现异常如ep_rew_mean骤降50%按以下五步机械式排查90%的问题可在10分钟内定位锁定时间点记下异常发生的精确step如step12480。检查上游查看该step前100步的obs_norm_std和action_std。若二者同步骤降问题在输入层若稳定则问题在策略或价值网络。分离策略/价值对比policy_loss和value_loss在该step的值。若value_loss飙升而policy_loss正常问题在价值网络目标计算若policy_loss飙升问题在策略更新。验证KL约束查看kl_div_current在该step的值。若远超kl_div_target说明clip_epsilon过大或策略更新过猛。回溯环境用tools/debug_env.py --step 12480重放该step的环境状态人工检查reward计算、done判定、obs输入是否符合预期。这个流程的核心是拒绝猜测只信数据链。v2.6的设计哲学是所有异常必然在数据流的某个环节留下可观测痕迹。你的任务不是“猜哪里坏了”而是“顺着数据流找到第一个异常节点”。5. 常见问题与独家避坑指南5.1 “看板数据和tensorboard不一致”——不是Bug是设计差异问题现象在tensorboard中看到policy_loss0.42而看板显示policy_loss0.38差值稳定在0.04。根本原因v2.6看板中的policy_loss是裁剪后目标函数的均值而tensorboard默认记录的是裁剪前的原始loss。v2.6在PPOUpdater._compute_policy_loss()中先计算原始PPO loss再应用torch.clamp()裁剪最后求均值。tensorboard记录的是裁剪前的值。这是有意为之看板要反映“实际生效的loss”tensorboard保留原始值供深度调试。解决方案无需修复。若需严格对比修改tensorboard记录逻辑在logger.log(policy_loss_clipped, clipped_loss)。但日常监控请以看板数据为准因为它代表模型实际优化的目标。5.2 “ep_rew_mean一直为0”——九成是done逻辑陷阱问题现象训练跑了一万步ep_rew_mean始终为0.0ep_len_mean却在增长。深度排查这不是reward没给而是episode从未“完成”。v2.6的ep_rew_mean只统计doneTrue的episode。检查你的环境step()函数是否在达到目标时返回doneFalse是否在超时时返回doneFalsev2.6要求doneTrue必须由环境主动声明不会自动截断。实操验证运行python tools/check_done.py --env YourEnv它会模拟100次随机动作统计doneTrue的比率。健康环境该比率应在5%-30%。若为0%立即修正done生成逻辑。5.3 “grad_norm显示0.0但训练在继续”——梯度被静默丢弃问题现象grad_norm长期为0.0policy_loss却不为0训练看似正常。致命原因optimizer未正确绑定到策略网络参数。v2.6使用torch.optim.Adam若初始化时传入model.parameters()但实际策略网络是model.policy则optimizer在step()时更新的是空参数列表梯度被丢弃。一键诊断在训练脚本中插入print(Optimizer param groups:, len(optimizer.param_groups)) print(Params in group 0:, len(optimizer.param_groups[0][params]))若输出Params in group 0: 0即确诊。避坑口诀v2.6中永远用optimizer torch.optim.Adam(policy_net.parameters(), ...)而非model.parameters()。模型封装层级必须精确匹配。5.4 “看板刷新卡顿数据延迟”——不是网络问题是指标推送瓶颈问题现象看板每10秒才更新一次且数据滞后训练实际步数200步。根因分析v2.6看板使用WebSocket实时推送但指标推送频率受MetricsRegistry.push_interval控制默认1秒。卡顿是因为push_interval被误设为10秒或MetricsRegistry实例被多次创建导致推送队列堵塞。解决步骤检查配置文件中metrics.push_interval是否为1在train.py中确认MetricsRegistry是单例registry MetricsRegistry.get_instance()若使用多进程训练确保MetricsRegistry在主进程中初始化子进程通过queue上报指标而非各自创建实例。5.5 “entropy_coef衰减过快策略早熟”——自适应调度的隐藏开关问题现象entropy_coef在2000步内从0.01降到0.001ep_rew_mean随后停滞。真相揭露v2.6的entropy_coef_scheduleadaptive有一个隐藏条件当exploration_ratio 0.2持续100步它会加速衰减。而exploration_ratio的计算依赖于action_std若action_std因obs_norm问题被压缩exploration_ratio会被低估。终极方案禁用自适应改用entropy_coef_schedulelinear并手动设置entropy_coef_end0.005。线性衰减更可控。自适应虽智能但v2.6的判断阈值在复杂环境中不够鲁棒。我的血泪教训在无人机编队项目中因信任自适应调度导致策略在第3200步就固化错过关键的协同避障模式。重训时改用线性entropy_coef在15000步才降至0.005最终ep_rew_mean峰值提升27%。6. 看板之外如何用指标定义反哺算法设计看板的价值不止于监控它更是算法迭代的“需求说明书”。v2.6的指标定义方式直接催生了三个关键算法改进6.1ep_rew_quantile_90催生了“鲁棒性奖励塑形”传统ep_rew_mean易被异常episode拖累。v2.6强制要求所有环境实现get_episode_rewards()接口从而计算分位数。这直接推动我们设计“分位数奖励”reward quantile_90(rewards) - quantile_10(rewards)。该reward让策略专注提升高回报路径的稳定性而非平均表现。在金融交易环境中该设计使最大回撤降低40%。6.2kl_div_current的在线计算催生了“KL感知的探索噪声”v2.6的kl_div_current计算开
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进