
Implementación de investigación para mitigar inyecciones de prompts adaptativas mediante destilación on-policy, con recetas de entrenamiento y evaluadores para los benchmarks SEP, PISmith y AgentDojo.
Yibo Peng · Long Lian · David Wagner† · Sizhe Chen†
† Supervisión conjunta.
[Artículo] [Página del proyecto] [Modelo]
Esta versión implementa la formulación final de KL de respuesta completa del artículo, también descrita como la variante sin parseo. El estudiante realiza el rollout bajo un contexto atacado. Un profesor con contexto limpio, inicializado a partir del mismo modelo base, puntúa los tokens muestreados del estudiante bajo el contexto limpio emparejado. La señal de KL inversa se aplica a cada token de respuesta muestreado, incluidos los tokens de razonamiento; no se utiliza ningún límite </think> para seleccionar un tramo de supervisión.
training/tinker/: la receta de entrenamiento de KL de respuesta completa y la configuración exacta del artículo.scripts/: utilidades de preparación de datos y exportación de checkpoints de Tinker.evaluation/sep/: evaluadores SEP estáticos y adaptativos.evaluation/pismith/: overlay de entrenamiento/evaluación de PISmith y lanzadores.evaluation/agentdojo/: utilidad de AgentDojo y ejecutor de ataques.evaluation/lm_eval/: ejecutor de MMLU-Pro, GPQA Diamond, GSM8K y Minerva MATH.docs/REPRODUCIBILITY.md: comandos de extremo a extremo y ajustes experimentales.cp .env.example .env
python scripts/prepare_data.py
bash training/tinker/setup.sh
bash training/tinker/train_full_kl_qwen36.sh
El script de configuración realiza el checkout del commit fijado del Tinker Cookbook upstream y aplica el overlay de código fuente de este repositorio. No modifica ningún otro checkout de Tinker en la máquina.
Los checkpoints de Tinker deben convertirse con el mapeador de pesos del Tinker Cookbook:
python scripts/export_tinker_adapter.py \
--tinker-path 'tinker://RUN_ID:train:0/weights/final' \
--output-dir adapters/secopd-full-kl
No combine un adaptador Tinker sin procesar con PEFT estándar (vanilla). Los nombres de clave lm_head y de atención lineal de Qwen3.6 requieren el mapeo de Tinker implementado por tinker_cookbook.weights.
Consulta docs/REPRODUCIBILITY.md para los comandos de evaluación, las notas de hardware y la configuración congelada exacta.
No se rastrean claves API, pesos de modelos, salidas generadas, rutas privadas ni registros de experimentos. Las credenciales se leen de variables de entorno y la configuración del juez en tiempo de ejecución se escribe únicamente en el directorio ignorado runtime/.
El overlay de entrenamiento se dirige al Tinker Cookbook de Thinking Machines Lab. La evaluación de SEP se deriva de Meta-SecAlign, la evaluación de PISmith se dirige a PISmith y la evaluación de AgentDojo se dirige a AgentDojo. Las revisiones upstream exactas y las licencias se enumeran en 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}
}