快速上手,轻松制胜
- 准备好你自己的环境
- 让我们开始大规模分布式强化学习
- 获得你的强大AI智能体!
HandyRL是一个基于Python和PyTorch的便捷简单框架,用于分布式强化学习,适用于你自己的环境。HandyRL专注于实用的算法和实现,旨在创建强大且能够在竞争性游戏中获胜的AI。对于大规模训练,HandyRL根据你的环境提供可控的高并行能力。
HandyRL除重要更新外,每月初更新一次。我们感谢所有的贡献。如果你发现bug或有建议,请通过创建issue和PR告诉我们。
更多关于HandyRL
HandyRL主要提供带有离线策略修正的策略梯度算法。
从稳定性和性能的角度来看,离线版本的策略梯度在实践中表现良好。因此,它是创建基线AI模型的良好首选。
你可以使用一些离线策略更新方法的变体(策略和价值的目标),从传统方法(蒙特卡洛、TD(λ))到新颖方法(V-Trace、UPGO)。
这些项目可以在config.yaml
中更改。
作为训练架构,HandyRL采用类似IMPALA的学习器-工作器风格架构。 学习器是训练的大脑,负责更新模型和控制工作器。 工作器有两个角色。它们异步生成回合(轨迹)并评估已训练的模型。 在回合生成中,默认进行自我对弈。
安装
安装依赖
HandyRL支持Python3.7+。首先,将HandyRL仓库复制或fork到你的环境中。如果你想在私人项目中使用这个脚本,只需将文件复制到你的项目目录并在那里修改即可。
git clone https://github.com/DeNA/HandyRL.git
cd HandyRL
然后,安装额外的库(如numpy、pytorch)。或者在虚拟环境或容器(如Docker)中运行。
pip3 install -r requirements.txt
要使用Kaggle环境的游戏(如Hungry Geese),你还可以安装额外的依赖。
pip3 install -r handyrl/envs/kaggle/requirements.txt
入门指南
为井字游戏训练AI模型
本节展示如何为井字游戏训练模型。井字游戏是一个非常简单的游戏。你可以通过谷歌搜索"井字游戏"来玩。
步骤1:设置配置
在config.yaml
中设置你的训练配置。当你使用井字游戏和批量大小64进行训练时,设置如下:
env_args:
env: 'TicTacToe'
train_args:
...
batch_size: 64
...
注意:这里是HandyRL中实现的游戏列表。所有参数都在配置参数中显示。
步骤2:开始训练!
创建配置后,你可以通过运行以下命令开始训练。训练的模型每隔config.yaml
中描述的update_episodes
次数保存在models
文件夹中。
python main.py --train
步骤3:评估
训练后,你可以对任何模型进行评估。下面的代码使用4个进程对第1个epoch的模型进行100场游戏的评估。
python main.py --eval models/1.pth 100 4
注意:默认对手AI是在evaluation.py
中实现的随机智能体。你可以将智能体更改为你的任何智能体。
文档
- 配置参数显示了
config.yaml
的参数列表。 - 大规模训练是远程大规模训练的程序。
- 使用自定义环境进行训练解释了创建你自己的游戏的环境接口。
- API显示了
main.py
的入口点API。