123 lines
2.7 KiB
Python
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",
|
|
] |