Overcooked-AI:开启人机协作新篇章 🧑🍳🤖
5种可用的布局示例。新布局可以轻松硬编码或通过程序生成。
引言:烹饪乐趣中的AI挑战 🥘
Overcooked-AI是一个基于广受欢迎的视频游戏Overcooked开发的基准环境,旨在评估人机协作任务的性能。这个项目为研究人员和开发者提供了一个独特的平台,用于探索和改进人工智能代理与人类在复杂协作场景中的互动。
游戏的目标是尽可能快地制作和递送汤品。每份汤需要将最多3种配料放入锅中,等待汤煮熟,然后由代理取出汤并递送。代理需要即时分工并有效协调,以获得高分。这种设置模拟了现实世界中需要多方协作的复杂任务,为研究人机协作提供了理想的测试平台。
项目特色:多元化的研究工具 🛠️
-
互动演示: 您可以在线试玩Overcooked-AI(与预先训练的深度强化学习代理一起游戏)。这为研究人员和开发者提供了直观了解系统的机会。
-
自定义代理: 项目允许用户使用自己训练的代理进行游戏,或收集更多人机或人人互动数据。相关代码可在此处找到。
-
现有数据集: 项目已收集了一些人人和人机游戏数据,为研究提供了宝贵的起点。
-
兼容DRL实现: 仓库中包含了与环境兼容的深度强化学习实现,作为src/human_aware_rl下的子模块。
-
历史版本: 旧版human_aware_rl正在被弃用,主要用于重现2019年论文《论学习人类对人机协调的效用》中的结果。
-
环境包装器: 对于简单使用,推荐考虑使用这个环境包装器。
学术影响:推动人机协作研究前沿 📚
Overcooked-AI已在多项研究中得到应用,涵盖了人机协调、多智能体强化学习、鲁棒性评估等多个方面。一些代表性的研究包括:
-
Carroll等人的"On the utility of learning about humans for human-ai coordination" (NeurIPS 2019)探讨了学习人类行为对人机协调的影响。
-
Charakorn等人的"Investigating Partner Diversification Methods in Cooperative Multi-Agent Deep Reinforcement Learning" (ICONIP 2020)研究了合作多智能体深度强化学习中的伙伴多样化方法。
-
Knott等人的"Evaluating the Robustness of Collaborative Agents" (AAMAS 2021)评估了协作代理的鲁棒性。
-
Nalepka等人的"Interaction Flexibility in Artificial Agents Teaming with Humans" (Cogsci 2021)探讨了人机团队中人工代理的交互灵活性。
-
Fontaine等人的"On the Importance of Environments in Human-Robot Coordination" (RSS 2021)强调了环境在人机协调中的重要性。
这些研究不仅推动了Overcooked-AI的发展,也为整个人机协作领域提供了宝贵的见解。
安装指南:开始您的Overcooked-AI之旅 ☑️
从PyPI安装 🗜
最简单的方法是使用pip安装预编译的wheel文件:
pip install overcooked-ai
注意,PyPI发布版本稳定但不频繁。如需最新开发特性,请从源代码构建。
从源代码构建 🔧
- 设置Python 3.7环境(推荐使用conda):
conda create -n overcooked_ai python=3.7
conda activate overcooked_ai
- 克隆仓库:
git clone https://github.com/HumanCompatibleAI/overcooked_ai.git
- 使用Python setup-tools本地安装:
-
如果只需要环境:
pip install -e .
-
如果还需要DRL实现:
pip install -e '.[harl]'
验证安装 📈
运行Overcooked单元测试套件来验证安装:
python testing/overcooked_test.py
如需验证human_aware_rl
的安装,请在src/human_aware_rl
目录下运行:
python testing/rllib_test.py
⚠️注意: 请确保在运行脚本前将当前工作目录更改为human_aware_rl目录,因为测试脚本使用CWD动态生成路径来保存临时训练运行/检查点。
代码结构概览:深入了解Overcooked-AI 🗺
Overcooked-AI的代码结构清晰,便于研究者和开发者理解和扩展:
-
overcooked_ai_py
目录:mdp/
: 包含主要的Overcooked游戏逻辑、环境类和布局生成器。agents/
: 包含代理类和基准测试工具。planning/
: 包含近似最优代理规划逻辑和A*搜索算法。
-
human_aware_rl
目录:ppo/
: 包含PPO代理训练相关代码。rllib/
: 包含利用Overcooked API的rllib代理和训练工具。imitation/
: 包含行为克隆模型的训练、保存和加载模块。human/
: 包含处理人类数据的脚本。
-
overcooked_demo
目录:server/
: 包含Flask应用和游戏主逻辑。up.sh
: 用于启动Docker服务器的Shell脚本。
可视化工具:直观展示学习成果 🌠
-
Python轨迹可视化: Google Colab笔记本提供了在Python中可视化轨迹的示例代码。
-
交互式教程: 项目包含一个Jupyter笔记本,指导用户训练、加载和评估代理。由于Colab默认内核为Python 3.10,而该仓库针对Python 3.7优化,部分功能可能与Colab不兼容。为提供无缝体验,笔记本中的所有单元格已预执行。
-
浏览器游戏: Overcooked_demo可以在浏览器中启动交互式游戏进行可视化。详情请参阅其README。
原始数据:深入研究的基础 📒
训练中使用的原始数据超过100 MB,通过git分发不便。代码使用pickle化的数据框进行训练和测试,但如果需要原始数据,可以在这里找到。
结语:开启人机协作新时代 🚀
Overcooked-AI为人机协作研究提供了一个强大而灵活的平台。通过模拟复杂的烹饪场景,它为研究人员和开发者提供了探索AI代理与人类互动的独特机会。无论您是对多智能体系统、强化学习还是人机交互感兴趣,Overcooked-AI都为您的研究提供了丰富的资源和可能性。
随着人工智能技术的不断进步,像Overcooked-AI这样的项目将在推动人机协作研究方面发挥越来越重要的作用。我们期待看到更多创新性的研究和应用从这个平台中涌现,为未来的人机协作开辟新的道路。
如果您在使用过程中遇到任何问题或有任何疑问,欢迎联系Micah Carroll(mdc@berkeley.edu)。让我们一起在Overcooked-AI的世界中探索人机协作的无限可能!