Об этом проекте

LightZero — это открытый инструментарий алгоритмов от OpenDILab, который объединяет поиск по дереву Монте-Карло (MCTS) с глубоким обучением с подкреплением в едином фреймворке на основе PyTorch. Он был представлен в качестве статьи Spotlight на треке Datasets and Benchmarks конференции NeurIPS 2023 и позиционируется как унифицированный бенчмарк для 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; также предоставляется Dockerfile на основе Ubuntu 20.04 с Python 3.8. Быстрые примеры обучают MuZero на CartPole, Pong и TicTacToe, а UniZero — на Pong. Документирован экспериментальный конвейер асинхронного обучения сегментами на основе Ray для Atari, при этом в README сообщается о сравнении в одном окне с синхронным базовым вариантом. Бенчмарки опубликованы для AlphaZero и MuZero на настольных играх, для вариантов MuZero на играх Atari, таких как Pong, Qbert и MsPacman, для Sampled EfficientZero с факторизованными и гауссовыми представлениями политики в задачах непрерывного управления, для Gumbel MuZero при различных бюджетах симуляций, а также для Stochastic MuZero на 2048 с различными уровнями случайности. Репозиторий также поддерживает раздел Awesome-MCTS, собирающий фундаментальные и недавние статьи по AlphaGo, MuZero, анализу MCTS и приложениям, а также учебные пособия по настройке сред и алгоритмов, файлам конфигурации, логированию и визуализации ландшафта функции потерь.