gaia.training.config module

Production Training Configuration System

class gaia.training.config.OptimizationType(value)[source]

Bases: Enum

ADAM = 'adam'
ADAMW = 'adamw'
SGD = 'sgd'
RMSPROP = 'rmsprop'
LION = 'lion'
CATEGORICAL_ADAM = 'categorical_adam'
classmethod __contains__(member)

Return True if member is a member of this enum raises TypeError if member is not an enum member

note: in 3.12 TypeError will no longer be raised, and True will also be returned if member is the value of a member in this enum

classmethod __getitem__(name)

Return the member matching name.

classmethod __iter__()

Return members in definition order.

classmethod __len__()

Return the number of members (no aliases)

class gaia.training.config.SchedulerType(value)[source]

Bases: Enum

COSINE = 'cosine'
LINEAR = 'linear'
EXPONENTIAL = 'exponential'
PLATEAU = 'plateau'
CATEGORICAL_ANNEALING = 'categorical_annealing'
classmethod __contains__(member)

Return True if member is a member of this enum raises TypeError if member is not an enum member

note: in 3.12 TypeError will no longer be raised, and True will also be returned if member is the value of a member in this enum

classmethod __getitem__(name)

Return the member matching name.

classmethod __iter__()

Return members in definition order.

classmethod __len__()

Return the number of members (no aliases)

class gaia.training.config.OptimizationConfig(optimizer=OptimizationType.ADAMW, learning_rate=0.001, weight_decay=0.0001, momentum=0.9, betas=(0.9, 0.999), eps=1e-08, categorical_coherence_weight=1.0, simplicial_regularization=0.1, horn_solving_weight=0.5, scheduler=SchedulerType.COSINE, scheduler_params=<factory>, warmup_steps=1000, gradient_clip_norm=1.0, gradient_accumulation_steps=1)[source]

Bases: object

Optimization configuration with GAIA categorical extensions

optimizer: OptimizationType = 'adamw'
learning_rate: float = 0.001
weight_decay: float = 0.0001
momentum: float = 0.9
betas: tuple = (0.9, 0.999)
eps: float = 1e-08
categorical_coherence_weight: float = 1.0
simplicial_regularization: float = 0.1
horn_solving_weight: float = 0.5
scheduler: SchedulerType = 'cosine'
scheduler_params: Dict[str, Any]
warmup_steps: int = 1000
gradient_clip_norm: float | None = 1.0
gradient_accumulation_steps: int = 1
__init__(optimizer=OptimizationType.ADAMW, learning_rate=0.001, weight_decay=0.0001, momentum=0.9, betas=(0.9, 0.999), eps=1e-08, categorical_coherence_weight=1.0, simplicial_regularization=0.1, horn_solving_weight=0.5, scheduler=SchedulerType.COSINE, scheduler_params=<factory>, warmup_steps=1000, gradient_clip_norm=1.0, gradient_accumulation_steps=1)
class gaia.training.config.ModelConfig(name='gaia_model', architecture='categorical_mlp', hidden_dims=<factory>, activation='relu', dropout=0.1, batch_norm=True, simplicial_depth=3, categorical_embedding_dim=64, horn_solver_config=<factory>, init_method='xavier_uniform', init_gain=1.0)[source]

Bases: object

Model architecture configuration

name: str = 'gaia_model'
architecture: str = 'categorical_mlp'
hidden_dims: List[int]
activation: str = 'relu'
dropout: float = 0.1
batch_norm: bool = True
simplicial_depth: int = 3
categorical_embedding_dim: int = 64
horn_solver_config: Dict[str, Any]
init_method: str = 'xavier_uniform'
init_gain: float = 1.0
__init__(name='gaia_model', architecture='categorical_mlp', hidden_dims=<factory>, activation='relu', dropout=0.1, batch_norm=True, simplicial_depth=3, categorical_embedding_dim=64, horn_solver_config=<factory>, init_method='xavier_uniform', init_gain=1.0)
class gaia.training.config.DataConfig(dataset_path='', batch_size=32, num_workers=0, pin_memory=False, persistent_workers=False, normalize=True, augmentation=False, augmentation_config=<factory>, validation_split=0.2, test_split=0.1, random_seed=42, categorical_features=<factory>, simplicial_structure=None)[source]

Bases: object

Data loading and processing configuration

dataset_path: str | Path = ''
batch_size: int = 32
num_workers: int = 0
pin_memory: bool = False
persistent_workers: bool = False
normalize: bool = True
augmentation: bool = False
augmentation_config: Dict[str, Any]
validation_split: float = 0.2
test_split: float = 0.1
random_seed: int = 42
categorical_features: List[str]
simplicial_structure: Dict[str, Any] | None = None
__init__(dataset_path='', batch_size=32, num_workers=0, pin_memory=False, persistent_workers=False, normalize=True, augmentation=False, augmentation_config=<factory>, validation_split=0.2, test_split=0.1, random_seed=42, categorical_features=<factory>, simplicial_structure=None)
class gaia.training.config.TrainingConfig(epochs=100, max_steps=None, eval_frequency=1000, save_frequency=5000, log_level='INFO', log_frequency=100, use_tensorboard=True, use_wandb=False, wandb_project='gaia-training', checkpoint_dir='checkpoints', save_top_k=3, monitor_metric='val_loss', monitor_mode='min', early_stopping=True, patience=10, min_delta=0.0001, device='auto', mixed_precision=True, compile_model=True, distributed=False, world_size=1, rank=0, categorical_training=True, hierarchical_learning=True, horn_solving_frequency=1000, coherence_check_frequency=500, model=<factory>, data=<factory>, optimization=<factory>)[source]

Bases: object

Complete training configuration

epochs: int = 100
max_steps: int | None = None
eval_frequency: int = 1000
save_frequency: int = 5000
log_level: str = 'INFO'
log_frequency: int = 100
use_tensorboard: bool = True
use_wandb: bool = False
wandb_project: str = 'gaia-training'
checkpoint_dir: str | Path = 'checkpoints'
save_top_k: int = 3
monitor_metric: str = 'val_loss'
monitor_mode: str = 'min'
early_stopping: bool = True
patience: int = 10
min_delta: float = 0.0001
device: str = 'auto'
mixed_precision: bool = True
compile_model: bool = True
distributed: bool = False
world_size: int = 1
rank: int = 0
categorical_training: bool = True
hierarchical_learning: bool = True
horn_solving_frequency: int = 1000
coherence_check_frequency: int = 500
model: ModelConfig
data: DataConfig
optimization: OptimizationConfig
classmethod from_file(config_path)[source]

Load configuration from YAML or JSON file

save(config_path)[source]

Save configuration to file

__init__(epochs=100, max_steps=None, eval_frequency=1000, save_frequency=5000, log_level='INFO', log_frequency=100, use_tensorboard=True, use_wandb=False, wandb_project='gaia-training', checkpoint_dir='checkpoints', save_top_k=3, monitor_metric='val_loss', monitor_mode='min', early_stopping=True, patience=10, min_delta=0.0001, device='auto', mixed_precision=True, compile_model=True, distributed=False, world_size=1, rank=0, categorical_training=True, hierarchical_learning=True, horn_solving_frequency=1000, coherence_check_frequency=500, model=<factory>, data=<factory>, optimization=<factory>)