Об этом проекте
Polyfish — это AI-проект, построенный вокруг отмеченной наградами стратегической игры Polytopia. Он воссоздаёт всю игру на Rust и TypeScript, а затем применяет гибридный подход, сочетающий поиск по дереву Монте-Карло (MCTS) и нейронную сеть, вдохновлённый Alpha-Zero. Система обучается через самоигру, а измерение Elo с замороженными якорями отслеживает силу с течением времени.
Основные компоненты включают игровой движок и AI-бэкенд на Rust (polyfish-rs), веб-фронтенд на Vite/React (polyfish-ui) и отдельный C++ модуль чтения памяти (polyfish-reader), который внедряется в версию Polytopia для Steam, чтобы извлекать живые игровые состояния в формате JSON. Альтернатива на C# BepInEx/PolyMod (polyfish-mod) автоматически воспроизводит повторы внутри реальной игры и отправляет захваченные состояния на локальный сервер.
Архитектура ИИ использует вариант поиска Gumbel Alpha-Zero для самоигры, MCTS на основе PUCT и сеть в стиле ResNet (PolyZeroNet) с кросс-вниманием и декомпозированными головами политики, отображающими ходы по типу действия, источнику, цели и опции. Кодирование GameState подаёт в сеть карты признаков 11x11.
Три бэкенда вывода читают один и тот же формат model.safetensors: Candle (по умолчанию, с поддержкой GPU), libtorch/MPS для macOS и вручную собранный бэкенд MPSGraph, оптимизированный для Apple silicon. Слои батчинга распределяют оценки листьев от нескольких акторов на выбранный бэкенд.
Веб-интерфейс предоставляет как интерактивный симулятор игры (доступен на localhost:3000), так и панель мониторинга обучения в реальном времени, показывающую графики потерь, распределение ходов и гистограммы значений. Для настройки требуются Rust, Node и Python 3; фронтенд собирается один раз, а сервер на Rust обслуживает и бэкенд, и статические ресурсы.
Открытые задачи отслеживают улучшения пайплайна обучения, зарегистрированные эксперименты с вердиктами и обзоры поиска/сигнала обучения. Основным узким местом остаются вычислительные требования для эффективного обучения сети.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.