
Scaffold di ricerca sull'allineamento (in stile autoresearch) per i guardrail degli LLM: ricerca su un'unica superficie policy.md
Open source di Santander AI Lab. Una libreria di ricerca / harness di valutazione per i guardrail LLM / AI-safety (in stile autoresearch): cerca su un'unica superficie mutabile
policy.mdper minimizzare il tasso di successo degli attacchi (ASR) rispetto a una suite di valutazione fissa, con una soglia minima di superamento dei casi benigni.
Parte di Santander AI Open Source — progetti AI open source di Banco Santander (santander.com).
autoguardrails è un piccolo scaffold di ricerca sull'allineamento ispirato ad autoresearch di Karpathy.
Invece di cercare su train.py, questo repo cerca su policy.md.
L'idea è la stessa:
In questo repo, la metrica principale è il tasso di successo degli attacchi (ASR, più basso è meglio), con una soglia minima di superamento dei casi benigni, così il sistema non può vincere rifiutando tutto.
Per la sperimentazione quotidiana, tre file contano più di tutti:
program.md: le istruzioni del ciclo di proprietà umanapolicy.md: l'unico file che dovresti modificare tra un'esecuzione e l'altraresults.tsv: il registro delle esecuzioni in sola appendTutto il resto è codice fisso dell'harness o dati di valutazione fissi.
policy.mdeval_suite.jsonljudge_prompt.mdautoguardrails/ASR migliora e il superamento benigno non scende di più di 2 punti percentualiSe vuoi un modello mentale più vicino all'autoresearch originale, pensa a autoguardrails/ come al layer di supporto fisso e a policy.md come all'unico file sotto ricerca.
Esegui dalla radice del repository.
python -m autoguardrails baseline --reset --repeat 2 --notes "initial baseline"
Modifica solo policy.md.
Valuta il nuovo candidato.
python -m autoguardrails candidate --repeat 2 --notes "cover jailbreak and obfuscation"
python -m autoguardrails status
cat results.tsv
Se un candidato viene rifiutato, l'harness ripristina automaticamente policy.md all'ultima versione accettata.
Se preferisci un unico punto di ingresso, usa run_autoguardrails.sh:
sh run_autoguardrails.sh status
sh run_autoguardrails.sh evaluate
sh run_autoguardrails.sh baseline "initial baseline" 2
sh run_autoguardrails.sh candidate "cover jailbreak and obfuscation" 2
Su Windows, esegui il wrapper da Git Bash o da un'altra shell compatibile con POSIX.
La configurazione predefinita usa uno stub locale deterministico così il repo funziona offline. Per eseguire esperimenti reali, punta il modello target e il modello giudice verso endpoint compatibili con OpenAI.
Variabili del modello target:
AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatibleAUTOGUARDRAILS_TARGET_MODELAUTOGUARDRAILS_TARGET_API_BASEAUTOGUARDRAILS_TARGET_API_KEYVariabili del modello giudice:
AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatibleAUTOGUARDRAILS_JUDGE_MODELAUTOGUARDRAILS_JUDGE_API_BASEAUTOGUARDRAILS_JUDGE_API_KEYEsempio:
export AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatible
export AUTOGUARDRAILS_TARGET_MODEL=gpt-4.1-mini
export AUTOGUARDRAILS_TARGET_API_BASE=https://your-endpoint.example/v1
export AUTOGUARDRAILS_TARGET_API_KEY=your-target-key
export AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatible
export AUTOGUARDRAILS_JUDGE_MODEL=gpt-4.1-mini
export AUTOGUARDRAILS_JUDGE_API_BASE=https://your-endpoint.example/v1
export AUTOGUARDRAILS_JUDGE_API_KEY=your-judge-key
python -m autoguardrails baseline --reset --repeat 2 --notes "real-model baseline"
Usa una configurazione del giudice congelata durante una serie di esecuzioni. Non cambiare i prompt del giudice o i modelli giudice a metà esperimento.
Un semplice ciclo di emulazione offline si presenta così:
policy.md.candidate.Un esempio di modifica candidata che migliora lo stub incluso è aggiungere una gestione esplicita per:
Questo ti dà una prima curva di miglioramento realistica senza modificare il valutatore.
program.md: istruzioni e vincoli dell'esperimentopolicy.md: policy dei guardrail mutabile sotto ricercajudge_prompt.md: prompt del giudice congelatoeval_suite.jsonl: casi di valutazione fissi, di attacco e benigniresults.tsv: registro delle esecuzionirun_autoguardrails.sh: wrapper di comodo attorno alla CLIautoguardrails/: harness Python fissatests/: controlli di regressione e sicurezza per l'harnessVedi autoguardrails/README.md per l'architettura del codice e tests/README.md per la strategia di test.