| from dataclasses import dataclass | |
| class NexusConfig: | |
| vocab_size: int = 50304 | |
| max_seq_len: int = 512 | |
| dim: int = 768 | |
| num_layers: int = 10 | |
| num_heads: int = 12 | |
| num_kv_heads: int = 4 | |
| multiple_of: int = 256 | |
| ff_dim: int = 2048 | |
| norm_eps: float = 1e-6 | |
| dropout: float = 0.0 | |
| batch_size: int = 4 | |
| gradient_accumulation_steps: int = 8 | |
| learning_rate: float = 3e-4 | |
| min_lr: float = 3e-5 | |
| weight_decay: float = 0.1 | |
| beta1: float = 0.9 | |
| beta2: float = 0.95 | |
| warmup_steps: int = 500 | |
| max_steps: int = 100000 | |
| rope_theta: float = 500000.0 | |
| use_flash_attention: bool = True | |
| data_path: str = "data" | |
| save_dir: str = "weights" | |
| seed: int = 42 | |
| nexus_config = NexusConfig() |