В репозитории движка (~/Repositories/dicechess-engine-scala, сейчас на свежем main со всеми раннерами) есть четыре консольных сценария. Все запускаются через sbt "rootJVM/runMain ...".
Встроенный бот против встроенного
cd ~/Repositories/dicechess-engine-scala
sbt 'rootJVM/runMain dicechess.engine.bench.BotMatchRunner aggressive 100'
Первый аргумент — baseline, второй — партий на цвет (×2 итого). Без второго опонента baseline играет против всех ботов сразу. Доступные id: random, checkmate-aware, greedy, greedy-v2, aggressive, monte-carlo.
Модель (1-ply) против встроенного
sbt 'rootJVM/runMain dicechess.engine.bench.OnnxArenaRunner \ ~/Repositories/dicechess-ev/models/baseline_nodice.onnx aggressive 200'
Аргументы: <путь-к-модели> [opponentId] [партий-на-цвет]. Это тот прогон, что дал 41.5%.
Модель (2-ply expectimax) против встроенного — наш новый бот
sbt 'rootJVM/runMain dicechess.engine.bench.OnnxExpectimaxArenaRunner \ ~/Repositories/dicechess-ev/models/baseline_nodice.onnx aggressive 200 8'
Аргументы: <путь-к-модели> [opponentId] [партий-на-цвет] [candidateLimit]. Это прогон, давший 55.5% (гейт взят). candidateLimit (по умолчанию 8) — сколько своих ходов разворачивать вглубь.
С шахматными часами
sbt 'rootJVM/runMain dicechess.engine.bench.TimedArenaRunner monte-carlo aggressive 20 1+0,3+2,10+10'
Аргументы: <botId> <baselineId> [партий-на-цвет] [контроли минуты+инкремент]. Печатает win-rate, flag-rate и распределение задержек. Учтите: принимает только id из реестра ботов (модельный expectimax туда не заведён — для него используйте OnnxExpectimaxArenaRunner).
Общее: путь к модели — оригинал в dicechess-ev/models/baseline_nodice.onnx или копия в dicechess-house-bots/models/oracle-1.onnx (один файл). Сид фиксирован (42) — прогоны воспроизводимы. Таблица в конце печатается с перспективы опонента относительно baseline (в ONNX-раннерах baseline = встроенный бот, поэтому строка — это статистика модели).
Хотите — запущу любой из них прямо сейчас (скажите противника и число партий).
Что до пайплайна oracle-2: движок прибран, эпик #186 закрыт (2-ply, гейт 55.5%). На очереди — релиз движка с OnnxExpectimaxSearch, чтобы house|oracle-2 мог его подхватить, и BOT_OPEN_SEEKS=1 для oracle-1. Продолжать по этой цепочке?