Hanabi_SPARTA 项目使用教程
1、项目介绍
Hanabi_SPARTA 是一个由 Facebook Research 开发的开源项目,旨在实现 Hanabi 游戏中的协作搜索 AI 代理。该项目基于 2020 年 AAAI 会议上发表的论文,能够在 Hanabi 这种高度合作且观察受限的游戏环境中,提升基于启发式或强化学习(RL)策略的 AI 性能。Hanabi_SPARTA 不仅提供了评估不同代理的代码,还包含一个 Web 服务器,允许用户通过 Web 界面与各种 Hanabi 代理进行实时对战。
2、项目快速启动
安装要求
- Python 3
- PyTorch 1.2+
- Boost 1.69+
- (可选)CUDA 和 libtorch(用于 SAD 蓝图)
安装步骤
1. 克隆仓库
git clone https://github.com/facebookresearch/Hanabi_SPARTA.git
cd Hanabi_SPARTA
2. 安装依赖
使用 CPU(仅支持启发式代理)
python setup.py install
使用 GPU(支持启发式和 SAD 代理)
INSTALL_TORCHBOT=1 python setup.py install
./download_models.sh # 下载 SAD 模型
3. 启动 Web 服务器
前端服务器
cd webapp
yarn # 安装依赖
yarn start # 启动开发服务器
后端服务器(本地运行)
BOT=SmartBot python webapp/server.py
后端服务器(通过 Docker 运行)
docker build -t hanabi .
nvidia-docker run -it --rm --runtime=nvidia hanabi
3、应用案例和最佳实践
案例 1:评估代理
评估 SmartBot 代理(2 名玩家,1000 局游戏)
python eval_bot.py SmartBot --games 1000
评估 SAD 代理(2 名玩家,1000 局游戏)
GREEDY_ACTION=1 TORCHBOT_MODEL=models/sad_player2.pth python eval_bot.py TorchBot --games 1000
案例 2:通过 Web 界面与 SPARTA 代理对战
- 启动前端服务器(如上所述)。
- 启动后端服务器(如上所述)。
- 打开浏览器,访问前端服务器地址,开始与 Hanabi 代理对战。
4、典型生态项目
Hanabi SAD 项目
Hanabi SAD 项目提供了用于训练 Simplified Action Decoder (SAD) 的代码,这是 Hanabi_SPARTA 中使用的最先进的 RL 策略。SAD 模型作为蓝图策略用于 SPARTA 代理的搜索过程中。
The Hanabi Project
Hanabi_SPARTA 中的 Hanabi 服务器和启发式代理是从 The Hanabi Project 项目中 fork 出来的。The Hanabi Project 提供了 Hanabi 游戏的基本实现和一些启发式代理。
通过这些生态项目,Hanabi_SPARTA 构建了一个完整的 Hanabi AI 研究平台,涵盖了从基础游戏实现到高级 AI 策略的各个方面。