/ Модель

Характеристики

Лицензия
MIT
Опубликована
6 июл 2026

openfront-tile-autoencoder

Обучение с подкреплением

Замороженный пространственный автоэнкодер djmango сжимает состояние клеточной карты OpenFront.io в латентную сетку для агентов обучения с подкреплением.

0скачиваний за 30 дней0лайковвеса обновлены23 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

OpenFront spatial autoencoder — замороженный пространственный энкодер наблюдений для агентов обучения с подкреплением в игре OpenFront.io. Он сжимает данные о владельцах клеток, рельефе, радиоактивных выпадениях и статических сооружениях в латентную сетку, рассчитанную на карты разных размеров. Разработчик — djmango; лучшая описанная версия ae_v31_d8.pt использует архитектуру v3.1 с латентом размером 64 канала при разрешении 1/8 от исходного, обучена за 40 тысяч шагов на смешанных данных самоигры ботов и архивных партий людей.

Модель предназначена для кодирования пространственных наблюдений перед их подачей агенту, который принимает игровые решения. В README сообщается о точности обнаружения сооружений с precision и recall 1,0 для каждого класса; точность классификации клеток на тестировании составляет 99,6% для человеческих партий и 99,8% для партий ботов, а метрика точности клеток на границах — 89,3% и 96,1% соответственно. В репозитории также сохранена устаревшая версия ae.pt.

Веса распространяются по лицензии MIT. Энкодер выдаёт латентное пространственное представление, поэтому для его применения нужны совместимые игровые данные и код модели из связанного проекта; README приводит пример загрузки чекпойнта с PyTorch.

Сценарии применения

  • кодирование карты OpenFront.io для агента обучения с подкреплением
  • сжатие данных о владельцах клеток и рельефе в игровую латентную сетку
  • извлечение пространственных признаков статических сооружений и радиоактивных выпадений
  • подготовка наблюдений игровых партий для принятия решений агентом

Ограничения

Энкодер выдаёт сжатое латентное представление, а не готовые игровые действия; точность на клетках границ заметно ниже общей точности клеток. Для использования нужны совместимые входные плоскости и код модели из связанного проекта.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

OpenFront spatial autoencoder

Frozen spatial observation encoder for OpenFront.io RL agents: compresses tile ownership + terrain + fallout + static structures into a latent grid (any map size). Structure detection is at precision/recall 1.0 per class for every model below.

Current best: ae_v31_d8.pt — v3.1 architecture (terrain-conditioned nearest-upsample decoder, focal loss, border-dense sampling, cosine LR) with the latent at 1/8 resolution instead of 1/16. Trained 40k steps on a mixed corpus of bot self-play and real archived human games.

Border-tile accuracy (the hard metric — overall tile accuracy saturates at ~99% for all models), uniform 256-crop eval:

checkpointlatenthuman borderbot borderhuman tilesbot tiles
ae_v31_d8.pt64ch @ 1/889.3%96.1%99.6%99.8%
ae_v31.pt64ch @ 1/1678.5%90.7%99.1%99.6%
ae_v3.pt (bot-only)64ch @ 1/1671.8%87.5%99.2%99.4%

The ablation story: mixing human games into training fixes the human-domain gap, the v3.1 decoder/loss fixes add a few points, and latent resolution (not channel count) is what finally cracks border geometry — borders are high-frequency spatial detail that can't be bought back with more channels.

Full details, training code, results, and roadmap: github.com/djmango/openfront-ai

reconstruction

Trained on djmango/openfront-snapshots (bot) and djmango/openfront-human-games (human).

import torch
from ae.model_v3 import SpatialAE

ckpt = torch.load("ae_v31_d8.pt", map_location="cpu", weights_only=False)
a = ckpt["args"]
model = SpatialAE(
    latent_c=a["latent_c"],
    terrain_cond=a.get("terrain_cond", False),
    upsample_decoder=a.get("upsample_decoder", False),
    latent_down=a.get("latent_down", 16),
)
model.load_state_dict(ckpt["model_state_dict"])
model.eval()
z = model.encode(owner_slots, terrain, static_planes)  # (B, 64, H/8, W/8)

ae.pt (v1 tile-only TileAutoencoder in model.py) is kept for history.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

RL-агенты не запускаются как сервис инференса.

Ревизия весов
e4e4d95

0 моделей