强化学习用的开放世界生存游戏。
项目描述
状态: 稳定版本
Crafter
开放世界生存游戏,用于在单个环境中评估广泛的智能体能力。
概述
Crafter具有随机生成的2D世界,玩家需要在其中寻找食物和水,找到地方睡觉,防御怪物,收集材料,并制作工具。Crafter旨在通过以下设计目标成为强化学习的有益基准:
-
研究挑战: Crafter对当前方法提出了重大挑战,评估了强大的泛化能力,广泛的深度探索,表示学习,以及长期推理和信用分配。
-
有意义的评估: 智能体通过在每个场景中可以解锁的语义上有意义的成就进行评估,这可以揭示奖励智能体和无监督智能体的能力范围。
-
迭代速度: Crafter在一个环境中评估了许多智能体能力,大大减少了与需要在多个独立环境中从头开始训练的基准套件相比的计算需求。
查看研究论文了解更多信息: 基准测试智能体能力范围
@article{hafner2021crafter,
title={Benchmarking the Spectrum of Agent Capabilities},
author={Danijar Hafner},
year={2021},
journal={arXiv preprint arXiv:2109.06780},
}
自己玩
python3 -m pip install crafter # Install Crafter
python3 -m pip install pygame # Needed for human interface
python3 -m crafter.run_gui # Start the game
键盘映射(点击展开)
键 | 动作 |
---|---|
WASD | 移动 |
SPACE | 收集材料,从湖中喝水,打击生物 |
TAB | 睡觉 |
T | 放置一张桌子 |
R | 放置一块石头 |
F | 放置一个熔炉 |
P | 放置一棵植物 |
1 | 制作一把木制镐头 |
2 | 制作一块石头镐头 |
3 | 制作一把铁镐头 |
4 | 制作一把木剑 |
5 | 制作一块石头剑 |
6 | 制作一把铁剑 |
界面
要安装Crafter,请运行pip3 install crafter
。环境遵循OpenAI Gym接口。观测值为大小为(64, 64, 3)的图像,输出为17个分类动作之一。
import gym
import crafter
env = gym.make('CrafterReward-v1') # Or CrafterNoReward-v1
env = crafter.Recorder(
env, './path/to/logdir',
save_stats=True,
save_video=False,
save_episode=False,
)
obs = env.reset()
done = False
while not done:
action = env.action_space.sample()
obs, reward, done, info = env.step(action)
评估
智能体允许的预算为1M环境步数,并按其22项成就的成功率和几何平均分进行评估。计算这些指标的示例脚本包含在存储库的analysis
目录中。
-
奖励:在游戏过程中解锁成就时,稀疏奖励为
+1
,失去或恢复健康点数为-0.1
或+0.1
。结果应报告为成功率和得分,而不是奖励。 -
成功率:22项成就的成功率是计算所有训练周期中解锁成就的百分比,从而可以了解智能体的能力范围。
-
工匠得分:得分为成功率的几何平均数,因此对困难成就的改进比已具有高成功率成就的改进贡献更大。
排行榜
如果您想添加您或另一个算法到排行榜,请创建一个拉取请求。对于强化学习和无监督智能体类别,交互预算为1M。外部知识类别定义得更广泛。
强化学习
算法 | 得分(%) | 奖励 | 开源 |
---|---|---|---|
好奇的回放 | 19.4±1.6 | - | AutonomousAgentsLab/cr-dv3 |
PPO (ResNet) | 15.6±1.6 | 10.3±0.5 | snu-mllab/Achievement-Distillation |
DreamerV3 | 14.5±1.6 | 11.7±1.9 | danijar/dreamerv3 |
LSTM-SPCNN | 12.1±0.8 | — | astanic/crafter-ood |
EDE | 11.7±1.0 | — | yidingjiang/ede |
OC-SA | 11.1±0.7 | — | astanic/crafter-ood |
DreamerV2 | 10.0±1.2 | 9.0±1.7 | danijar/dreamerv2 |
PPO | 4.6±0.3 | 4.2±1.2 | DLR-RM/stable-baselines3 |
Rainbow | 4.3±0.2 | 6.0±1.3 | Kaixhin/Rainbow |
无监督智能体
算法 | 得分(%) | 奖励 | 开源 |
---|---|---|---|
Plan2Explore | 2.1±0.1 | 2.1±1.5 | danijar/dreamerv2 |
RND | 2.0±0.1 | 0.7±1.3 | alirezakazemipour/PPO-RND |
随机 | 1.6±0.0 | 2.1±1.3 | — |
外部知识
算法 | 得分(%) | 奖励 | 使用 | 交互 | 开源 |
---|---|---|---|---|---|
人类 | 50.5±6.8 | 14.3±2.3 | 生活经验 | 0 | crafter_human_dataset |
SPRING | 27.3±1.2 | 12.3±0.7 | LLM,场景描述,工匠论文 | 0 | ❌ |
成就蒸馏 | 21.8±1.4 | 12.6±0.3 | 奖励结构 | 1M | snu-mllab/Achievement-Distillation |
ELLM | — | 6.0±0.4 | LLM,场景描述 | 5M | ❌ |
基线
工匠中各种智能体的基线得分都可用,包括有和没有奖励的。这些得分以JSON格式存储在存储库的scores
目录中。为了比较,人类专家玩家的得分为50.5%。基线实现作为单独的存储库提供。
问题
请在Github上创建一个问题。
项目详情
crafter-1.8.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | efd72a7e0b8945cfd00eca6c8caf99f746be5f69072853a2f173fa1f85b4088d |
|
MD5 | e2571ca239d91cd0cdfb4e0a1c7d5c76 |
|
BLAKE2b-256 | 3250dad93d72f9cb97320d9817c34181d3f76e41a934c3c7b91ef4adc7a5ef36 |