
Forschungsimplementierung zur Abschwächung adaptiver Prompt-Injektionen mittels On-Policy-Distillation, mit Trainingsrezepten und Evaluatoren für die SEP-, PISmith- und AgentDojo-Benchmarks.
Yibo Peng · Long Lian · David Wagner† · Sizhe Chen†
† Gemeinsame Betreuung.
[Paper] [Projektseite] [Modell]
Diese Veröffentlichung implementiert die finale Full-Response-KL-Formulierung des Papers, die auch als No-Parsing-Variante beschrieben wird. Das Schülermodell führt unter einem angegriffenen Kontext einen Rollout durch. Ein Lehrermodell mit sauberem Kontext, das aus demselben Basismodell initialisiert wird, bewertet die vom Schülermodell gesampelten Token unter dem gepaarten sauberen Kontext. Das Reverse-KL-Signal wird auf jedes gesampelte Antwort-Token angewendet, einschließlich Reasoning-Token; es wird keine </think>-Grenze verwendet, um einen Supervisionsbereich auszuwählen.
training/tinker/: das Full-Response-KL-Trainingsrezept und die exakte Konfiguration des Papers.scripts/: Datenvorbereitung und Dienstprogramme zum Export von Tinker-Checkpoints.evaluation/sep/: Statische und adaptive SEP-Evaluatoren.evaluation/pismith/: PISmith-Trainings-/Evaluations-Overlay und Launcher.evaluation/agentdojo/: AgentDojo-Dienstprogramm und Angriffs-Runner.evaluation/lm_eval/: MMLU-Pro-, GPQA-Diamond-, GSM8K- und Minerva-MATH-Runner.docs/REPRODUCIBILITY.md: End-to-End-Befehle und experimentelle Einstellungen.cp .env.example .env
python scripts/prepare_data.py
bash training/tinker/setup.sh
bash training/tinker/train_full_kl_qwen36.sh
Das Setup-Skript checkt den festgelegten Upstream-Commit des Tinker Cookbook aus und wendet das Quell-Overlay aus diesem Repository an. Es verändert keinen anderen Tinker-Checkout auf der Maschine.
Tinker-Checkpoints müssen mit dem Gewichts-Mapper des Tinker Cookbook konvertiert werden:
python scripts/export_tinker_adapter.py \
--tinker-path 'tinker://RUN_ID:train:0/weights/final' \
--output-dir adapters/secopd-full-kl
Führen Sie keinen rohen Tinker-Adapter mit Standard-PEFT zusammen. Die Linear-Attention- und lm_head-Schlüsselnamen von Qwen3.6 erfordern das Tinker-Mapping, das von tinker_cookbook.weights implementiert wird.
Siehe docs/REPRODUCIBILITY.md für Evaluationsbefehle, Hardware-Hinweise und die exakte eingefrorene Konfiguration.
Es werden keine API-Schlüssel, Modellgewichte, generierten Ausgaben, privaten Pfade oder Experimentprotokolle versioniert. Zugangsdaten werden aus Umgebungsvariablen gelesen, und die Laufzeit-Judge-Konfiguration wird nur in das ignorierte Verzeichnis runtime/ geschrieben.
Das Trainings-Overlay zielt auf den Tinker Cookbook von Thinking Machines Lab ab. Die SEP-Evaluation ist von Meta-SecAlign abgeleitet, die PISmith-Evaluation zielt auf PISmith und die AgentDojo-Evaluation auf AgentDojo. Die genauen Upstream-Revisionen und Lizenzen sind in docs/THIRD_PARTY.md aufgeführt.
@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}
}