Files
2026-09-21 22:20:24 +02:00

123 lines
2.7 KiB
Python

"""
config.py
Global configuration for the Minecraft AI Builder.
"""
from pathlib import Path
import torch
# ==========================================================
# Project Paths
# ==========================================================
ROOT_DIR = Path(__file__).parent
DATASET_PATH = ROOT_DIR / "data" / "dataset.json"
CHECKPOINT_DIR = ROOT_DIR / "checkpoints"
CHECKPOINT_DIR.mkdir(exist_ok=True)
# ==========================================================
# Model
# ==========================================================
EMBED_DIM = 512
NUM_HEADS = 8
NUM_ENCODER_LAYERS = 6
NUM_DECODER_LAYERS = 6
FEED_FORWARD_DIM = 2048
DROPOUT = 0.1
# Maximum lengths
MAX_PROMPT_LENGTH = 64
MAX_OUTPUT_LENGTH = 4096
# ==========================================================
# Vocabulary
# ==========================================================
# Filled automatically after building vocab
TEXT_VOCAB_SIZE = None
OUTPUT_VOCAB_SIZE = None
# Special Tokens
PAD_TOKEN = "<PAD>"
START_TOKEN = "<START>"
END_TOKEN = "<END>"
UNK_TOKEN = "<UNK>"
SPECIAL_TOKENS = [
PAD_TOKEN,
START_TOKEN,
END_TOKEN,
UNK_TOKEN
]
# ==========================================================
# Training
# ==========================================================
BATCH_SIZE = 8
LEARNING_RATE = 1e-4
EPOCHS = 100
WEIGHT_DECAY = 1e-5
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
# ==========================================================
# Generation
# ==========================================================
TEMPERATURE = 1.0
TOP_K = 40
TOP_P = 0.95
# ==========================================================
# Random Seed
# ==========================================================
RANDOM_SEED = 42
# ==========================================================
# Coordinate Limits
# ==========================================================
MIN_COORD = 0
MAX_COORD = 128
# ==========================================================
# Supported Minecraft Blocks
# ==========================================================
SUPPORTED_BLOCKS = [
"minecraft:stone",
"minecraft:oak_planks",
"minecraft:spruce_planks",
"minecraft:birch_planks",
"minecraft:jungle_planks",
"minecraft:acacia_planks",
"minecraft:dark_oak_planks",
"minecraft:mangrove_planks",
"minecraft:cherry_planks",
"minecraft:bamboo_planks",
"minecraft:crimson_planks",
"minecraft:warped_planks",
"minecraft:oak_log",
"minecraft:spruce_log",
"minecraft:birch_log",
"minecraft:jungle_log",
"minecraft:acacia_log",
"minecraft:dark_oak_log",
"minecraft:mangrove_log",
"minecraft:cherry_log",
"minecraft:crimson_stem",
"minecraft:warped_stem",
]