643. FIDE & Google Efficient Chess AI Challenge | fide-google-efficiency-chess-ai-challenge
我们最初采用了 Stockfish 4,然后是 Stockfish 16,最后由于内存限制选择了 Cfish。
我们的代码在此:https://github.com/chettub/Niboshi。
我们禁用了 HCE,完全依赖 NNUE 进行评估。
我们认为评估函数的准确性至关重要,因此寻找了一种对二进制大小高效的网络。
我们的最终网络灵感来自最新的 Stockfish 网络。为了节省大小,我们通过连接以下两个网络的输出来替换特征变换器。第一个是 CNN,输入通道为 12(=棋子数量),输出通道为 13,卷积核大小为 15x15,填充为 7,以便 CNN 可以为每个格子生成特征。第二个是密集网络,有 64 个输出,但它对相邻位置共享相同的权重。普通的密集网络将有 768 个输入,但我们的只有 96 个输入。
然而,我们忽略的一点是计算成本非常高;等效的 L1 大小为 896,太大以至于无法补偿 CNN 中共享权重造成的准确性损失。
至于训练数据集,我们混合使用了 Leela 生成的数据和 Stockfish 生成的数据,尽管我们在更改数据集时并未看到太大差异。
我们很高兴能参加这次比赛。
我个人在参加这次比赛之前对国际象棋编程知之甚少,但从比赛中学到了很多在其他地方无法学到的东西。
祝贺前三名的团队。你们这些国际象棋引擎开发者完全当之无愧。
非常感谢组织者和参与者。感谢 @bovard,在必要且仅在绝对必要时采取行动。特别感谢那些努力调试环境的人。