You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ray RLlib中episode_reward_mean未显示的原因及替代指标咨询

关于Ray RLlib中episode_reward_mean指标缺失的问题

核心原因:API指标结构重构

Ray RLlib在2.44.1这类新版本中,对指标命名和层级结构做了重构,原episode_reward_mean指标已被替换。官方说明翻译如下:

类似episode_reward_mean的指标现在可通过ResultDict的result["env_runners"]["episode_return_mean"]获取;评估场景下则是result["evaluation"]["env_runners"]["episode_return_mean"];在Ray Tune中对应的指标键为"evaluation/env_runners/episode_return_mean"。

你看到的相关指标说明

你在results字典中发现的两个指标直接相关,但适用场景不同:

  • env_runners/episode_return_mean:全局回合回报均值,是原episode_reward_mean的直接替代键。
  • env_runners/agent_episode_returns_mean/default_agent:针对单个智能体的回合回报统计,default_agent是单智能体场景下默认的智能体ID。

单/多智能体场景下的等价性

  • 单智能体场景:episode_return_mean和原episode_reward_mean完全等价,统计的是同一个数值;此时agent_episode_returns_mean/default_agent的值也和它完全一致。
  • 多智能体场景:原episode_reward_mean的统计逻辑被拆分:
    • env_runners/episode_return_mean:统计整个环境中所有智能体的回合总回报均值(比如合作型多智能体环境中,会是所有智能体回报之和的均值)。
    • env_runners/agent_episode_returns_mean/[agent_id]:针对每个智能体单独统计回合回报均值,便于观察不同智能体的表现差异。

修正后的代码示例

1. Ray Tune训练场景

将stop条件中的指标键替换为新名称:

ray.init()

config = PPOConfig()
config.environment("CartPole-v1")
config.env_runners(num_env_runners=1)
config.training(gamma=0.9, lr=0.01, kl_coeff=0.3)

tune.run(
    "PPO",
    config=config.to_dict(),
    stop={"env_runners/episode_return_mean": 475,  "training_iteration": 100},  # 替换为新指标键
    checkpoint_freq=10, 
    checkpoint_at_end=True,
)

ray.shutdown()

2. 单轮训练场景

从result字典的新层级中获取指标:

algo = config.build_algo()
result = algo.train()
# 获取回合回报均值
reward_mean = result["env_runners"]["episode_return_mean"]
print(f"回合回报均值: {reward_mean}")

内容的提问来源于stack exchange,提问作者aaden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:42:08