"""Generate 14 benign control experiment configs (7 models × baseline + mitigated).""" from pathlib import Path import yaml CONFIGS_DIR = Path(__file__).resolve().parents[1] / "configs" ALL_MODELS = [ ("llama8b", "llama-3.1-8b-instant"), ("llama70b", "llama-3.3-70b-versatile"), ("qwen32b", "qwen/qwen3-32b"), ("llama4scout", "meta-llama/llama-4-scout-17b-16e-instruct"), ("gpt_oss_120b", "openai/gpt-oss-120b"), ("gpt_oss_20b", "openai/gpt-oss-20b"), ("groq_compound", "groq/compound"), ] MITIGATION_OPTIONS = { "strict_mode": False, "sanitize_untrusted_content": True, "block_suspicious_tool_actions": True, "guard_tool_outputs": True, "allow_urls_in_output": False, } def build_config(name, description, model_name, mitigated): config = { "experiment": { "name": name, "description": description, "seed": 42, "sample_size": 25, "output_dir": "results", }, "dataset": { "path": "data/normalized/attack_cases.jsonl", }, "selection": { "include_attack_families": ["benign_control"], }, "model": { "provider": "groq", "name": model_name, "max_tokens": 256, "temperature": 0.0, "execution_mode": "plain", }, "mitigation": { "enabled": mitigated, "strategy": "surface_aligned" if mitigated else "none", }, "evaluation": { "metrics": ["attack_success"], }, } if mitigated: config["mitigation"]["options"] = MITIGATION_OPTIONS return config def main(): CONFIGS_DIR.mkdir(exist_ok=True) count = 0 print("Generating benign control configs — 7 models × 2 conditions = 14 configs\n") for suffix, model_id in ALL_MODELS: tag = f"_{suffix}" if suffix != "llama8b" else "" for mitigated in (False, True): mitigation_tag = "_mitigated" if mitigated else "" name = f"benign_control_25{tag}{mitigation_tag}" description = ( f"Benign control — utility and false-positive measurement " f"({'mitigated' if mitigated else 'baseline'}, {suffix})" ) config = build_config(name, description, model_id, mitigated) filename = f"{name}.yaml" path = CONFIGS_DIR / filename with path.open("w", encoding="utf-8") as f: yaml.dump(config, f, default_flow_style=False, sort_keys=False) print(f" wrote: configs/{filename}") count += 1 print(f"\nDone. Generated {count} configs.") if __name__ == "__main__": main()