Overcooked-AI 项目使用教程
1. 项目介绍
Overcooked-AI 是一个用于完全合作的人类-AI 任务性能的基准环境,基于广受欢迎的视频游戏 Overcooked。游戏的目标是以最快的速度交付汤,每份汤需要将最多 3 种食材放入锅中,等待汤煮熟,然后由一个代理拿起汤并交付。代理应动态分配任务并有效协调以获得高奖励。
项目的主要特点包括:
- 支持多种布局,新布局易于硬编码或通过编程生成。
- 包含人类-人类和人类-AI 游戏数据的收集和使用。
- 提供与环境兼容的深度强化学习(DRL)实现。
- 支持通过环境包装器简化环境的使用。
2. 项目快速启动
安装
从 PyPI 安装
你可以使用 pip 安装预编译的 wheel 文件:
pip install overcooked-ai
从源代码安装
建议使用 conda 环境进行安装:
conda create -n overcooked_ai python=3.7
conda activate overcooked_ai
git clone https://github.com/HumanCompatibleAI/overcooked_ai.git
cd overcooked_ai
pip install -e .
如果需要 DRL 实现,可以添加 [harl]
选项:
pip install -e .[harl]
验证安装
安装完成后,可以通过运行单元测试来验证安装:
python testing/overcooked_test.py
3. 应用案例和最佳实践
案例 1:使用预训练模型进行游戏
你可以使用预训练模型来测试 Overcooked-AI 环境:
from overcooked_ai.agents import Agent
from overcooked_ai.env import OvercookedEnv
# 加载预训练模型
agent = Agent.load_from_checkpoint("path/to/checkpoint")
# 创建环境
env = OvercookedEnv()
# 运行游戏
state = env.reset()
done = False
while not done:
action = agent.act(state)
state, reward, done, info = env.step(action)
案例 2:自定义布局和代理
你可以通过编程生成自定义布局,并训练自定义代理:
from overcooked_ai.mdp.layout_generator import generate_random_layout
from overcooked_ai.agents import RandomAgent
# 生成随机布局
layout = generate_random_layout()
# 创建随机代理
agent1 = RandomAgent()
agent2 = RandomAgent()
# 创建环境并设置布局
env = OvercookedEnv(layout=layout)
# 运行游戏
state = env.reset()
done = False
while not done:
action1 = agent1.act(state)
action2 = agent2.act(state)
state, reward, done, info = env.step([action1, action2])
4. 典型生态项目
1. Human-AI Coordination Research
Overcooked-AI 被广泛用于研究人类-AI 协作,特别是在 NeurIPS、AAMAS 和 CogSci 等顶级会议上发表的研究论文中。
2. Multi-Agent Reinforcement Learning
项目中的 human_aware_rl
模块提供了多代理强化学习的实现,支持 PPO 等算法,适用于研究多代理协作和训练。
3. Human Data Collection
Overcooked-AI 支持收集和处理人类-人类和人类-AI 游戏数据,用于训练和评估 AI 代理的协作能力。
通过这些模块和工具,Overcooked-AI 为研究者和开发者提供了一个全面的平台,用于探索和优化人类-AI 协作和多代理系统。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考