Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

简介

TinyBrains 是一场让小型神经网络玩策略游戏的竞赛。你的目标是构建一个尽可能小、又能打得好的大脑:决定它看到什么,训练它做出有用的决策,再看看它与其他参赛者的模型对战时表现如何。

你训练并测试自己的参赛模型,然后把它提交到竞技场。TinyBrains 负责进行对局并维护排名,你则通过结果和回放来决定下一个版本该改进什么。

第一款游戏:Ants

在 Ants 中,你的模型指挥一个蚁群,地图是一张在两个方向上都环绕的网格。你的蚂蚁要探索、采集食物以壮大蚁群、守卫自己的蚁丘并进攻敌方蚁丘。你只能看到存活蚂蚁周围的区域,而所有玩家同时选择各自的移动。

得分由蚁丘决定:摧毁一座敌方蚁丘可以得分,自己每失去一座蚁丘则扣一分。食物和战斗本身不计分,它们只是通往蚁丘的手段。强大的模型会在只能看到对手部分行动的情况下,兼顾探索、发展、协调和防御。

先从 Ants 了解游戏概览,再阅读世界、回合和结束与计分。

一场已结束的天梯对局,由裁判它的那个卡带根据记录下来的动作重新回放。天梯上的每一场对局,平台都会记录这样一份回放。

你要构建什么

一个版本由两部分组成,二者一起提交:

  • model.onnx:你训练好的神经网络,导出为 ONNX 格式。
  • manifest.json:你的计算图的输入和输出,以及每个输入对应的一个声明式适配器,它把游戏的观测转换成对应的张量。

游戏定义了你的模型能看到什么和它能采取哪些动作。张量表示和网络架构由你选择,而清单把这些选择和游戏连接起来。清单用带张量操作符的 JSONLogic 编写,这正是平台运行自身逻辑所用的表达式引擎。动作这一端归裁判负责:它直接读取你的策略头,所以通道顺序是游戏规则的一部分,你不需要为此编写任何程序。

大小同时计入两个文件。你的重量级由两个文件的字节数相加决定。平台不做任何压缩,所以无论怎样把权重打包进文件,都无法少报总量。此外还有算子预算和回合时限,参赛模型既要符合自己的重量级,也要在这两项限制内完成对局。模型格式、重量级和限制与预算给出了具体要求。

如何参赛

  1. 选择一个赛季。阅读该游戏赛季的规则、参赛资格要求和提交窗口。你提交的每个版本都属于一个赛季。
  2. 学习游戏,构建参赛模型。训练模型,导出为 ONNX,并编写清单来声明它的输入输出并为它提供数据。
  3. 提交前先测试。tinybrains CLI 链接的正是节点所链接的那两个库,所以它能在你的机器上做出与审核相同的测量:你的适配器构建出的张量、它们的开销、计算图是否接受这些张量,以及用真实引擎完整地打一场对局。参见提交前的测试。
  4. 提交并上传。先为参赛模型命名(只需一次),针对它提交两个文件的哈希,再把 model.onnx 和 manifest.json 用 PUT 上传到提交返回的一次性 URL。参见提交版本。
  5. 通过审核和试赛。平台会对你上传的文件重新计算哈希,读取计算图,对它进行探测,并在游戏的参考观测上运行你的清单。通过验证的版本随后会打一场不计评分的试赛,通过试赛的版本进入参赛中状态,开始参加排位对局。
  6. 复盘并改进。从对局结果、回放和排名中找出弱点,并在赛季的提交窗口开放期间提交新版本。

试赛检查你的参赛模型能否正常比赛,而且你不需要赢:只要你的版本的判罚次数没有达到判负上限,打完的试赛就算通过。如果审核或试赛拒绝了你的作品,请阅读报告的原因,解决问题后再重新提交。

竞赛如何进行

配对器会自动为参赛中的版本配对,无需你做任何操作。你的每个模型都有一个评分,位于无差别级天梯上,各种大小的模型都在那里同场竞技。你的重量级排名就是你在无差别级天梯上、在同等大小的模型中的名次,因此它反映的是你在给定的大小预算内打得有多好。评分来自对局结果,配对器会挑选对手和地图来衡量每个版本的强弱。

新版本通过试赛后,会替换该模型在同一赛季中原先参赛的版本;在平台检查候选版本期间,原版本可以继续参赛。版本的生命周期介绍晋级和撤回,排名介绍评分如何在版本之间延续。

对局可以在赛季的提交截止后继续进行。提交截止后,对局会一直进行到评分稳定为止,除非管理员结束赛季。最终排名会一直保留;要参加之后的赛季,可以向它提交新版本,或者让模型按原样再次参赛。一款游戏可以同时运行多个赛季,其中一些只对某个重量级或某个团体开放。赛季有完整的生命周期说明。

从这里开始

本指南面向构建并提交模型的参赛者。按照快速上手走一遍参赛流程,或者先从 Ants 了解你的模型需要做出哪些决策。在迭代过程中,对局和回放展示你的各个版本如何比赛,参考章节则给出精确的要求和拒绝原因。