Text Generation
English
gpt
micro-gpt
micro-gpt / code /config.py
Akshat-Dwivedi's picture
Upload Micro-GPT model checkpoint 61000 and codebase
4c29028 verified
Raw
History Blame Contribute Delete
1.23 kB
"""Single source of truth for the compact 50M dense GPT training run."""
from dataclasses import asdict, dataclass
from pathlib import Path
@dataclass(frozen=True)
class ModelConfig:
# 32k BPE + tied embeddings. Total model size is ~50.0M parameters.
vocab_size: int = 32_000
block_size: int = 512
n_layers: int = 12
n_heads: int = 8
d_model: int = 480
mlp_hidden: int = 1_352
dropout: float = 0.0
@dataclass(frozen=True)
class TrainConfig:
# Optimized profile targeting ~4.5GB VRAM on an RTX 3050 6GB GPU.
micro_batch_size: int = 4
gradient_accumulation: int = 8
learning_rate: float = 3e-4
weight_decay: float = 0.1
max_steps: int = 61_000
warmup_ratio: float = 0.02
log_every: int = 100
save_every: int = 1_000
seed: int = 42
ROOT = Path(__file__).resolve().parent
DATA_DIR = ROOT / ".data"
RAW_DATASET = ROOT / "dataset.jsonl"
CLEAN_DATASET = DATA_DIR / "clean.jsonl"
TOKENIZER_PATH = DATA_DIR / "tokenizer.json"
TOKENS_PATH = DATA_DIR / "tokens.bin"
DATA_METADATA_PATH = DATA_DIR / "metadata.json"
CHECKPOINT_DIR = ROOT / "checkpoints"
MODEL = ModelConfig()
TRAIN = TrainConfig()
def model_config_dict() -> dict:
return asdict(MODEL)