Babel Tribes: A Four-Faction Survival Experiment on a 9ร9 Map
This public training snapshot was released for demonstration. Training was paused on September 27, 2026, after 8 completed updates. This is an early experimental checkpoint; convergence has not been established.
Four factions interact on a shared 9ร9 map, starting with 20 units each. Each faction has its own LoRA adapters and Kev action heads. Units choose actions using local observations, private memory, and received symbols. The frozen base model is Qwen3.5-0.8B-Base, pinned to revision dc7cdfe2ee4154fa7e30f5b51ca41bfa40174e68.
Weights and files
| File | Contents |
|---|---|
adapters.safetensors |
LoRA adapters and action heads for all four factions: 1,504 tensors and 23,744,512 trainable parameters; approximately 95 MB |
update-0008.pt |
Full resumable training checkpoint, including all four adapter banks, four optimizer states, RNG states, configuration, and base-model provenance; approximately 287 MB |
latest.json / config.json |
Checkpoint metadata and experiment configuration |
evaluation-0000.json / evaluation-0008.json |
Baseline and update-8 evaluations using the same world seed |
metrics.jsonl |
Training records; any update left incomplete at the pause is not represented by committed weights |
code/ |
Experiment source code, dependency lockfile, and configurations for this snapshot |
export-verification.json / upload-manifest.json |
Tensor verification results, file sizes, and SHA-256 checksums |
Base-model weights and the tokenizer are loaded from the pinned upstream revision. These adapters use the project's custom format and must be loaded with the included code. This is an environment action policy with no chat interface. Direct loading through PEFT's PeftModel.from_pretrained is not supported.
Loading
The original runtime used Linux, Python 3.13, PyTorch 2.9.0 with CUDA 13, and four NVIDIA H100 80 GB GPUs. The checkpoint uses a four-GPU topology. Dependencies are pinned in code/uv.lock; code/README.md describes the CUDA kernel setup.
After downloading this repository, run the following from its root directory:
cd code
uv sync --extra hopper
export TRIBES_DISABLE_CUDNN_SDPA=1
uv run babel-tribes evaluate \
--checkpoint ../update-0008.pt \
--out ../evaluation-reproduced.json \
--episodes 1 --seed 1000000000
To load only the Safetensors weights, run this Python code from code/ in the environment above:
from pathlib import Path
from safetensors.torch import load_file
from demo.tribes.config import Config
from demo.tribes.policy import build_policy
root = Path("..").resolve()
config = Config.load(root / "config.json")
policy = build_policy(config.model)
policy.load_adapter_state_dict(load_file(str(root / "adapters.safetensors")))
policy.eval()
To resume training, explicitly run the following from code/:
uv run babel-tribes train \
--resume ../update-0008.pt \
--out ../resumed-run --updates 1000
Publishing this snapshot did not resume training.
Experiment scope and limitations
The 9ร9 experiment was initialized from the first update of an earlier 32ร32 experiment, with optimizer states and update counters reset. See warm-start.json for provenance. This snapshot contains eight completed updates in the new environment. The four factions assign weights of 0.1, 0.3, 0.7, and 0.9 to individual returns, respectively; the remaining weight is assigned to faction returns.
Evaluation covers only one world with a fixed seed. It does not establish generalization, stable cooperation, or the emergence of language. Raw evaluation files include survival metrics, action counts, and resource changes for inspection. Before publication, all adapter tensors were checked for finite values, and the Safetensors export was verified to match the original checkpoint tensor by tensor.
The upstream base model and bundled third-party code retain their respective licenses and attribution notices.
- Downloads last month
- 15
Model tree for QRTN/babel-tribes-9x9-memory-20260927
Base model
Qwen/Qwen3.5-0.8B-Base