
Implémentation de recherche pour l'atténuation des injections de prompt adaptatives via la distillation on-policy, avec des recettes d'entraînement et des évaluateurs pour les benchmarks SEP, PISmith et AgentDojo.
Yibo Peng · Long Lian · David Wagner† · Sizhe Chen†
† Supervision conjointe.
[Article] [Page du projet] [Modèle]
Cette version implémente la formulation finale de KL sur réponse complète de l'article, également désignée comme la variante sans parsing. L'étudiant effectue un rollout dans un contexte attaqué. Un enseignant en contexte propre, initialisé à partir du même modèle de base, attribue un score aux jetons échantillonnés de l'étudiant sous le contexte propre apparié. Le signal de KL inverse est appliqué à chaque jeton de réponse échantillonné, y compris les jetons de raisonnement; aucune frontière </think> n'est utilisée pour sélectionner un segment de supervision.
training/tinker/: la recette d'entraînement KL sur réponse complète et la configuration exacte de l'article.scripts/: utilitaires de préparation des données et d'export des checkpoints Tinker.evaluation/sep/: évaluateurs SEP statiques et adaptatifs.evaluation/pismith/: surcouche d'entraînement/évaluation PISmith et lanceurs.evaluation/agentdojo/: utilitaire AgentDojo et exécuteur d'attaques.evaluation/lm_eval/: exécuteur pour MMLU-Pro, GPQA Diamond, GSM8K et Minerva MATH.docs/REPRODUCIBILITY.md: commandes de bout en bout et réglages expérimentaux.cp .env.example .env
python scripts/prepare_data.py
bash training/tinker/setup.sh
bash training/tinker/train_full_kl_qwen36.sh
Le script d'installation effectue le checkout du commit amont épinglé du Tinker Cookbook et applique la surcouche source de ce dépôt. Il ne modifie aucun autre checkout de Tinker sur la machine.
Les checkpoints Tinker doivent être convertis avec le mappeur de poids du Tinker Cookbook:
python scripts/export_tinker_adapter.py \
--tinker-path 'tinker://RUN_ID:train:0/weights/final' \
--output-dir adapters/secopd-full-kl
Ne fusionnez pas un adaptateur Tinker brut avec du PEFT standard. Les noms de clés de l'attention linéaire de Qwen3.6 et de lm_head nécessitent le mappage Tinker implémenté par tinker_cookbook.weights.
Consultez docs/REPRODUCIBILITY.md pour les commandes d'évaluation, les notes matérielles et la configuration figée exacte.
Aucune clé API, aucun poids de modèle, aucune sortie générée, aucun chemin privé ni journal d'expérimentation n'est suivi. Les identifiants sont lus à partir des variables d'environnement et la configuration du juge à l'exécution n'est écrite que sous le répertoire ignoré runtime/.
La surcouche d'entraînement cible le Tinker Cookbook de Thinking Machines Lab. L'évaluation SEP est dérivée de Meta-SecAlign, l'évaluation PISmith cible PISmith et l'évaluation AgentDojo cible AgentDojo. Les révisions amont exactes et les licences sont listées dans 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}
}