
Implementazione di ricerca per mitigare le iniezioni di prompt adattive tramite distillazione on-policy, con ricette di addestramento e valutatori per i benchmark SEP, PISmith e AgentDojo.
Yibo Peng · Long Lian · David Wagner† · Sizhe Chen†
† Supervisione congiunta.
[Articolo] [Pagina del progetto] [Modello]
Questa versione implementa la formulazione full-response KL finale
dell'articolo, descritta anche come variante no-parsing. Lo studente
esegue il rollout in un contesto sotto attacco. Un teacher con contesto pulito,
inizializzato dallo stesso modello base, valuta i token campionati dallo
studente nel contesto pulito associato. Il segnale di reverse-KL viene
applicato a ogni token di risposta campionato, inclusi i token di ragionamento;
non viene utilizzato alcun confine </think> per selezionare uno span di
supervisione.
training/tinker/: la ricetta di training full-response KL e la
configurazione esatta dell'articolo.scripts/: utilità per la preparazione dei dati e l'esportazione dei
checkpoint Tinker.evaluation/sep/: valutatori SEP statici e adattivi.evaluation/pismith/: overlay di training/valutazione PISmith e launcher.evaluation/agentdojo/: utilità AgentDojo e runner degli attacchi.evaluation/lm_eval/: runner per MMLU-Pro, GPQA Diamond, GSM8K e Minerva
MATH.docs/REPRODUCIBILITY.md: comandi end-to-end e impostazioni sperimentali.cp .env.example .env
python scripts/prepare_data.py
bash training/tinker/setup.sh
bash training/tinker/train_full_kl_qwen36.sh
Lo script di setup effettua il checkout del commit upstream bloccato del Tinker Cookbook e applica l'overlay del sorgente presente in questo repository. Non modifica altri checkout di Tinker sulla macchina.
I checkpoint Tinker devono essere convertiti con il mapper dei pesi del Tinker Cookbook:
python scripts/export_tinker_adapter.py \
--tinker-path 'tinker://RUN_ID:train:0/weights/final' \
--output-dir adapters/secopd-full-kl
Non fare il merge di un adapter Tinker grezzo con PEFT vanilla. I nomi delle
chiavi linear-attention e lm_head di Qwen3.6 richiedono la mappatura Tinker
implementata da tinker_cookbook.weights.
Consulta docs/REPRODUCIBILITY.md per i comandi di valutazione, le note sull'hardware e la configurazione congelata esatta.
Non vengono tracciati né chiavi API, né pesi del modello, né output generati,
né percorsi privati, né log di esperimenti. Le credenziali vengono lette dalle
variabili d'ambiente e la configurazione runtime del judge viene scritta solo
nella directory ignorata runtime/.
L'overlay di training è destinato al Tinker Cookbook di Thinking Machines Lab. La valutazione SEP deriva da Meta-SecAlign, la valutazione PISmith è destinata a PISmith e la valutazione AgentDojo è destinata ad AgentDojo. Le revisioni upstream esatte e le licenze sono elencate in docs/THIRD_PARTY.md.
@article{peng2026secopd,
title = {{SecOPD}: Mitigating Adaptive Prompt Injections by On-Policy Distillation},
author = {Peng, Yibo and Lian, Long and Wagner, David and Chen, Sizhe},
journal = {arXiv preprint arXiv:2608.21500},
year = {2026}
}