79 lines
2.4 KiB
YAML
79 lines
2.4 KiB
YAML
|
|
# Delentia SLM — The Router (slm-jitna-router) LoRA Configuration
|
|||
|
|
# Purpose: Intent Classification (Sequence Classification)
|
|||
|
|
# Priority: #2 in 4-Pillar Architecture
|
|||
|
|
#
|
|||
|
|
# The Router replaces the Language Modeling Head with a Classification Head.
|
|||
|
|
# It outputs ONLY a label: ROUTER_EXECUTOR, ROUTER_SCRIBE, ROUTER_GUARDIAN, ROUTER_BASE
|
|||
|
|
# Uses LoRA α = 2r to control intruder dimensions and reduce forgetting.
|
|||
|
|
|
|||
|
|
model:
|
|||
|
|
base_model: "Delentia/delentia-slm-jitna-v0.4"
|
|||
|
|
tokenizer: "Delentia/delentia-slm-jitna-v0.4"
|
|||
|
|
max_seq_length: 512 # Shorter — classification needs less context
|
|||
|
|
dtype: null
|
|||
|
|
load_in_4bit: true
|
|||
|
|
|
|||
|
|
lora:
|
|||
|
|
r: 16 # Lower rank for classification task
|
|||
|
|
lora_alpha: 32 # α = 2r (research-recommended for classification)
|
|||
|
|
lora_dropout: 0.05 # Light dropout for classification robustness
|
|||
|
|
bias: "none"
|
|||
|
|
use_rslora: true
|
|||
|
|
target_modules:
|
|||
|
|
- "q_proj"
|
|||
|
|
- "k_proj"
|
|||
|
|
- "v_proj"
|
|||
|
|
- "o_proj"
|
|||
|
|
task_type: "SEQ_CLS" # Sequence Classification (NOT CAUSAL_LM)
|
|||
|
|
|
|||
|
|
classification:
|
|||
|
|
num_labels: 4
|
|||
|
|
label_map:
|
|||
|
|
ROUTER_EXECUTOR: 0
|
|||
|
|
ROUTER_SCRIBE: 1
|
|||
|
|
ROUTER_GUARDIAN: 2
|
|||
|
|
ROUTER_BASE: 3
|
|||
|
|
|
|||
|
|
training:
|
|||
|
|
dataset_path: "datasets/processed/jitna_router_pairs.parquet"
|
|||
|
|
dataset_split: "train"
|
|||
|
|
validation_split: 0.1 # More validation for classification
|
|||
|
|
max_samples: null
|
|||
|
|
|
|||
|
|
per_device_train_batch_size: 4 # Larger batch for classification
|
|||
|
|
gradient_accumulation_steps: 4
|
|||
|
|
|
|||
|
|
learning_rate: 2.0e-4 # Higher LR for classification head
|
|||
|
|
lr_scheduler_type: "cosine"
|
|||
|
|
warmup_ratio: 0.1
|
|||
|
|
num_train_epochs: 8 # More epochs for classification convergence
|
|||
|
|
|
|||
|
|
bf16: true
|
|||
|
|
fp16: false
|
|||
|
|
optim: "adamw_8bit"
|
|||
|
|
weight_decay: 0.01
|
|||
|
|
max_grad_norm: 1.0
|
|||
|
|
|
|||
|
|
output_dir: "models/checkpoints/router_classifier"
|
|||
|
|
save_strategy: "epoch"
|
|||
|
|
save_total_limit: 3
|
|||
|
|
logging_steps: 10
|
|||
|
|
|
|||
|
|
evaluation_strategy: "epoch"
|
|||
|
|
load_best_model_at_end: true
|
|||
|
|
metric_for_best_model: "eval_accuracy"
|
|||
|
|
|
|||
|
|
pillar_type: "router"
|
|||
|
|
adapter_name: "jitna_router_v1"
|
|||
|
|
adapter_save_path: "models/adapters/jitna_router_v1"
|
|||
|
|
|
|||
|
|
mlflow:
|
|||
|
|
experiment_name: "delentia-slm-router-classifier"
|
|||
|
|
tracking_uri: "https://delentia-delentia-agent-monitor.hf.space"
|
|||
|
|
log_model: true
|
|||
|
|
|
|||
|
|
target_metrics:
|
|||
|
|
classification_accuracy: 0.96 # >= 96% correct routing
|
|||
|
|
latency_ms: 50 # < 50ms classification time
|
|||
|
|
f1_macro: 0.94 # >= 0.94 macro F1 across all labels
|