这个项目能做什么

Polyfish是基于获奖策略游戏Polytopia构建的AI项目。它在Rust和TypeScript中重现了整个游戏,然后应用了受Alpha-Zero启发的混合蒙特卡洛树搜索(MCTS)和神经网络方法。系统通过自对弈进行训练,并使用冻结锚点Elo测量来跟踪强度变化。 核心组件包括Rust游戏引擎和AI后端(polyfish-rs)、Vite/React Web前端(polyfish-ui),以及一个独立的C++内存读取器(polyfish-reader),它注入到Polytopia的Steam版本中以JSON格式提取实时游戏状态。C# BepInEx/PolyMod替代方案(polyfish-mod)可在真实游戏中自动回放,并将捕获的状态发布到本地服务器。 AI架构使用用于自对弈的Gumbel Alpha-Zero搜索变体、基于PUCT的MCTS,以及带有交叉注意力机制和分解策略头的ResNet风格网络(PolyZeroNet),策略头将动作映射到动作类型、来源、目标和选项四个维度。GameState编码将11x11特征图输入网络。 三种推理后端读取相同的model.safetensors格式:Candle(默认,支持GPU)、libtorch/MPS(用于macOS),以及针对Apple Silicon优化的手构成MPSGraph后端。批处理层将多个actor的叶子评估分配到所选后端。 Web界面提供交互式游戏模拟器(运行于localhost:3000)和实时训练仪表板,显示损失图表、动作分布和价值直方图。设置需要Rust、Node和Python 3;前端构建一次后,Rust服务器同时提供后端和静态资源。 待完成的工作包括训练流水线改进、注册实验及结果裁定,以及搜索和学习信号审查。主要瓶颈仍是有效网络训练的计算需求。