{ "model_type": "BaseShield", "architecture": "HateBERT + Rationale BERT with CLS Concatenation", "version": "1.0.0", "model_config": { "hatebert_model": "GroNLP/hateBERT", "rationale_model": "bert-base-uncased", "hidden_size": 768, "freeze_additional_model": true, "num_labels": 2, "projection_config": { "input_size": 1536, "hidden_size": 256, "output_size": 2, "dropout": 0.3 } }, "training_config": { "batch_size": 8, "learning_rate": 1e-5, "weight_decay": 0.0, "epochs": 3, "max_length": 128, "optimizer": "AdamW", "warmup_steps": 100, "early_stopping": { "enabled": true, "patience": 3, "metric": "loss" } } }