# DDP config template (default, use with predict2_anomaly_gen_ddp_{2b,14b}).
# Placeholders in <angle-brackets> are filled by scripts/generate_config.py.
# Keep sections minimal — the experiment provides defaults for everything else.
job:
  project: anomaly_gen
  group: UC3_full
  name: UC3_full_training_FP32_lr0.02_bs=2_2B_512x512
optimizer:
  lr: 0.02
checkpoint:
  save_iter: 3000
trainer:
  max_iter: 10000
  logging_iter: 10
  validation_iter: 3000
  run_validation: True
  early_stop:
    enabled: false
    metric: nn
    patience: 5
    min_delta: 0
    min_delta_mode: rel
dataloader_train:
  batch_size: 2
  dataset:
    dataset_dir: /workspace/paidf-anomalygen/datasets/UC3_data
    image_size:
      - 512
      - 512
    anomaly_types: [[Phone, oil], [Phone, scratch], [Phone, stain]]
    seed: 1
    data_augprob: 0.5
    aug_type: random_ratio_crop
    ratio_range: [1.5, 8.0]
dataloader_val:
  batch_size: 32
  dataset:
    input_data_path: ag_inference/validation_UC3_full/testcase.jsonl
model:
  config:
    ag_config:
      ad_precision: float32
      t5_model_name: checkpoints/google-t5/t5-large
      anomaly_embedding:
        anomaly_types: [[Phone, oil], [Phone, scratch], [Phone, stain]]
        freeze: False
      mask_encoder:
        encoder_config:
          init_cfg:
            checkpoint: checkpoints/NVDINOV2/nv_dinov2_classification_model.ckpt
