
적응형 프롬프트 인젝션을 on-policy distillation을 통해 완화하는 연구 구현물로, SEP, PISmith, AgentDojo 벤치마크를 위한 학습 레시피와 평가기를 포함합니다.
Yibo Peng · Long Lian · David Wagner† · Sizhe Chen†
† 공동 지도.
이 릴리스는 논문의 최종 full-response KL 정식화를 구현하며, no-parsing 변형이라고도 합니다. 학생 모델은 공격받은 컨텍스트에서 롤아웃을 수행합니다. 동일한 기본 모델에서 초기화된 clean 컨텍스트 교사는 짝을 이루는 clean 컨텍스트에서 학생이 샘플링한 토큰에 점수를 매깁니다. reverse-KL 신호는 추론 토큰을 포함한 모든 샘플링된 응답 토큰에 적용되며, 감독 범위를 선택하는 데 </think> 경계는 사용되지 않습니다.
training/tinker/: full-response KL 훈련 레시피와 논문의 정확한 구성.scripts/: 데이터 준비 및 Tinker 체크포인트 내보내기 유틸리티.evaluation/sep/: SEP 정적 및 적응형 평가기.evaluation/pismith/: PISmith 훈련/평가 오버레이 및 런처.evaluation/agentdojo/: AgentDojo 유틸리티 및 공격 러너.evaluation/lm_eval/: MMLU-Pro, GPQA Diamond, GSM8K, Minerva MATH 러너.docs/REPRODUCIBILITY.md: 엔드투엔드 명령어 및 실험 설정.cp .env.example .env
python scripts/prepare_data.py
bash training/tinker/setup.sh
bash training/tinker/train_full_kl_qwen36.sh
이 설정 스크립트는 고정된 업스트림 Tinker Cookbook 커밋을 체크아웃하고 이 저장소의 소스 오버레이를 적용합니다. 이 스크립트는 머신에 있는 다른 Tinker 체크아웃을 수정하지 않습니다.
Tinker 체크포인트는 Tinker Cookbook 가중치 매퍼로 변환해야 합니다:
python scripts/export_tinker_adapter.py \
--tinker-path 'tinker://RUN_ID:train:0/weights/final' \
--output-dir adapters/secopd-full-kl
원시 Tinker 어댑터를 vanilla PEFT와 병합하지 마십시오. Qwen3.6 linear-attention 및 lm_head 키 이름은 tinker_cookbook.weights가 구현한 Tinker 매핑이 필요합니다.
평가 명령, 하드웨어 참고 사항, 정확한 고정 구성은 docs/REPRODUCIBILITY.md를 참조하세요.
API 키, 모델 가중치, 생성된 출력, 개인 경로 또는 실험 로그는 추적되지 않습니다. 자격 증명은 환경 변수에서 읽히며, 런타임 judge 구성은 무시되는 runtime/ 디렉토리 아래에만 기록됩니다.
훈련 오버레이는 Thinking Machines Lab의 Tinker Cookbook을 대상으로 합니다. SEP 평가는 Meta-SecAlign에서 파생되었고, PISmith 평가는 PISmith를 대상으로 하며, AgentDojo 평가는 AgentDojo를 대상으로 합니다. 정확한 업스트림 리비전과 라이선스는 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}
}