跳转到内容

评估与选择模型 ​

训练损失反映优化过程,验证指标帮助您选择实际要使用的模型。温控预测任务可关注未来一段时间的温度误差;控制任务则需要同时检查温度跟踪、能耗和动作限制。先确定业务上希望改善什么,再把相应指标用于选模。

确定评估目标 ​

任务目标优先查看还需要检查
预测下一个采样点单步 MAE、MSE 或 NMAE原始单位误差、关键工况
连续预测温度、液位或运动状态多步推演误差及误差随步数的变化关键状态是否漂移、转折与滞后是否正确
优化控制动作平均奖励或累计回报跟踪误差、动作代价、约束违反与比较基线
模仿历史操作监督损失、确定性动作误差动作饱和率、闭环运行表现

例如温度误差降低 0.1 ℃与力矩误差降低 0.1 的业务意义不同。多变量任务可以用 NMAE 比较相对误差,同时保留关键变量原始单位的结果。用于选模的主指标只是一项筛选依据,完整业务判断见分析训练结果。

设置单步与多步验证 ​

下面的 validation 放在对应的 training.stages 阶段下,示例用 50 步闭环 MAE 选择世界模型:

yaml
validation:
  one_step:
    enabled: true
    interval: 1
    force_final: true
  rollout:
    enabled: true
    horizon: 50
    interval: 10
    num_trajectories: 16
    metrics: [mae, mse]
    force_final: true
  selection:
    metric: val/rollout/mae
    mode: min
    require_primary: true

interval 指每隔多少轮验证一次;多步验证更耗时,可低于单步验证的频率。horizon 按采样周期换算为业务时间,并确保验证轨迹足够长。num_trajectories 决定评估的轨迹数量,应覆盖主要工况。force_final 保证训练结束时再评估一次,最终一轮是否被选中仍由指标决定。

理解单步与闭环的区别 ​

单步验证从真实当前状态、外生输入和显式条件节点开始,图内中间量由模型计算;多步验证将预测状态继续送入下一步,检查误差是否累积。sequence_train.observed_keys、forced_nodes 中声明的条件仍按配置提供,历史与时序网络也保留预热及状态推进。

比较模型时,固定验证输入、节点、维度、聚合方式与推演长度。BC 和 REVIVE-P 的单步批次按实际样本数加权;ADM2 使用其算法规定的批次与步长聚合方式。跨算法比较时应核对同名指标的计算定义。

策略回报统计保留首次 done 的终止转移,排除后续步骤;没有 done 时按固定长度评估。reward_mean 先对每条轨迹的有效步数求均值,再对轨迹平均,return_mean 则统计未折扣累计回报。比较不同终止长度的任务时应同时查看轨迹长度。

平衡验证耗时与重复性 ​

yaml
# 对应阶段的 validation 片段
validation:
  execution:
    backend: auto
    cache: auto
    cache_budget_mb: 256
    deduplicate: auto
    prepare_workers: auto
    prefetch_batches: 2

先使用默认执行设置。验证占用显存过多时,可比较 cache: cpu 或 off;缓存支持 auto/cpu/device/off,用于改变数据读取开销,不改变指标定义。prepare_workers 控制 CPU 准备线程,data.num_workers 则控制 DataLoader 进程。已缓存的内置数组路径下,prepare_workers: auto 为 0;deduplicate: auto 保持不去重。

固定 training.seed、data.split_seed,并保持代码、依赖、设备、数据、配置与训练更新预算一致,才能检验同一条件下的重复性。默认 training.deterministic: true 使用严格确定性;不支持的算子会报错。按时间截止的运行可能完成不同更新次数,跨设备比较应使用数值容差。精确续训还需保持验证执行配置一致,见管理训练任务。

指定选模指标 ​

世界模型可使用以下指标,方向均为 min:

指标用于衡量
val/one_step/mae、mse、nmae单步预测误差
val/one_step/nll概率分布对标签的拟合;ADM2 不产出该指标
val/one_step/wasserstein单步预测与真实分布的距离
val/rollout/mae、mse、nmae闭环多步预测误差
val/rollout/primary_nmae、primary_composite_nmae重点状态或重点状态组合的误差
val/rollout/integrated_displacement_nmae对具有相应物理意义的速度量衡量累积位移误差
val/rollout/expert_action_mae推演动作与历史动作的偏差
val/rollout/wasserstein推演分布与真实分布的距离

表中省略前缀的指标使用同一完整前缀,例如 val/rollout/mse。重点状态和位移类指标还需配置相应目标节点与评价定义,见训练字段参考。

策略与控制器按目标选择:

指标方向适用算法
val/rollout/reward_mean、val/rollout/return_meanmaxPPO、SAC、三类控制器
val/rollout/success_ratemaxPPO、SAC
val/rollout/action_constraint_violationminPPO、SAC
val/supervised/lossminPolicy BC
val/rollout/return_stdminPPO、SAC、三类控制器;用于辅助观察回报离散程度

selection.metric 必须是该算法支持的完整指标名。mode 可省略并使用指标的规范方向,显式填写相反方向会报错。require_primary: true 要求选模时收到主指标,避免用缺失的评估结果选择模型。

return_std 小不代表控制效果好;策略始终表现较差也可能波动很小。单轨迹时该值为描述值 0,不能用于推断统计置信度。通常同时查看平均回报、轨迹数与业务限制。

检查选中模型 ​

训练完成后查看报告、阶段的 record_info.json 和选中模型的指标,确认选择的是预期阶段及轮次。force_final 不会强制提升最后一轮,多阶段流程也不保证最后一个阶段的模型一定成为运行级默认模型。

现象检查与调整
主指标缺失核对指标名称、验证开关、目标节点和轨迹长度是否覆盖 horizon
不同运行选中模型差异较大检查数据划分、评估工况与轨迹数,并比较同一组随机种子
总体误差下降但关键量变差分别查看关键节点,考虑重点节点指标
最后一轮效果与报告不同核对报告对应的 best 模型,避免用 final 代替选中模型

改变评价节点、权重或长度会改变指标含义。使用相同指标与选模定义比较候选,必要时将候选模型在同一条件下重新评估。报告读法见分析训练结果,保存位置见设置训练流程。

安排独立测试 ​

bash
revive validate --config config.yaml --train-data train.npz --val-data val.npz

独立验证文件便于固定评估轨迹,但仍参与本次归一化统计和选模。最终测试数据应在方案确定后使用,保持未参与归一化、训练及参数选择;--val-data 不会自动创建这份数据。完整数据角色见设置训练数据。

温控任务可以按环境温度、设备负荷和开门扰动分别检验;车辆跟随可以按车速变化、前车制动和间距条件检验。世界模型误差与控制收益分别判断,并与相同工况下的现有方案比较。

进一步评估预测可靠性 ​

需要发现输入偏离、较大误差风险或检查预测区间时,使用不确定性评估。校准与验收需要各自的数据角色,它们补充对模型可靠性的认识,主训练和选模仍按本页配置执行。