这个项目能做什么

LightZero 是 OpenDILab 推出的开源算法工具包,在基于 PyTorch 的单一框架中结合了蒙特卡洛树搜索(MCTS)与深度强化学习。它作为 Spotlight 论文在 NeurIPS 2023 Datasets and Benchmarks Track 上展示,定位为通用序列决策场景中 MCTS 的统一基准。 该项目强调三个特性:轻量、高效、易于理解。它集成了多个 MCTS 算法家族,使具有不同属性的决策问题可以在一个框架内处理。为提升计算效率,它对 MCTS 中最耗时的部分采用混合异构计算,树实现同时提供 Python(ptree)和 C++(ctree)版本。文档包含算法框架图、函数调用图和网络结构图,帮助用户定位关键代码并在统一范式下比较算法。 已实现的算法包括 AlphaZero、MuZero、Sampled MuZero、Stochastic MuZero、EfficientZero、Sampled EfficientZero、Gumbel MuZero、ReZero 和 UniZero。支持的环境涵盖棋类游戏(TicTacToe、Gomoku、Connect4)、2048、经典控制任务(CartPole、Pendulum、LunarLander、BipedalWalker)、Atari、DeepMind Control、MuJoCo、MiniGrid、Bsuite、Memory、SumToThree 和 MetaDrive。README 中的兼容性表格标明了哪些算法-环境组合已完成并测试、哪些正在进行中、哪些不受支持。 该框架围绕三个核心模块组织:Model(网络结构与前向传播)、Policy(学习、收集和评估过程)以及 MCTS(搜索树结构及其与策略的交互)。安装方式为克隆仓库并运行 pip install -e .,目前支持仅限 Linux 和 macOS;还提供了基于 Ubuntu 20.04 和 Python 3.8 的 Dockerfile。快速入门示例在 CartPole、Pong 和 TicTacToe 上训练 MuZero,并在 Pong 上训练 UniZero。文档还介绍了基于 Ray 的 Atari 异步分段训练实验流水线,README 报告了与同步基线在同一时间窗口内的对比。 已发布的基准测试包括:AlphaZero 和 MuZero 在棋类游戏上的表现,MuZero 变体在 Pong、Qbert 和 MsPacman 等 Atari 游戏上的表现,采用因子化和高斯策略表示的 Sampled EfficientZero 在连续控制任务上的表现,不同模拟预算下的 Gumbel MuZero,以及在不同随机机会水平下 2048 上的 Stochastic MuZero。仓库还维护了一个 Awesome-MCTS 部分,收集关于 AlphaGo、MuZero、MCTS 分析及应用的基础和近期论文,并提供关于自定义环境和算法、配置文件、日志记录以及损失景观可视化的教程。