
Pipeline de recherche qui construit des expériences réussies vérifiées et les organise en enregistrements de formation afin d'empoisonner progressivement les compétences du modèle via les étapes HTS, LEGSA et GCTIR.
SkillPoison étudie comment des expériences réussies et vérifiées peuvent empoisonner les compétences persistantes apprises par des agents LLM auto-améliorants. Il combine la Sélection Hiérarchique des Tâches, l'Attribution Locale Fondée sur les Preuves et le Renforcement Inductif Inter-Expériences afin de renforcer des comportements localement valides au-delà de leurs conditions d'applicabilité d'origine. Les exécutions originales des tâches et les résultats de vérification restent inchangés ; les preuves d'attribution sont jointes en tant que métadonnées pour la formation native des compétences. Sur trois benchmarks, l'article rapporte des taux de réussite d'attaque allant jusqu'à 95,71 %.
skillpoison/
├── assets/
│ └── framework.png
├── configs/
│ └── main.yaml
├── core/
│ ├── ceir/
│ ├── evaluation/
│ ├── hts/
│ ├── lega/
│ ├── utils/
│ ├── config.py
│ └── pipeline.py
├── prompts/
│ ├── lega/
│ ├── counterfactual_audit.txt
│ ├── counterfactual_generation.txt
│ └── target_audit.txt
├── scripts/
│ ├── run_attack_audit.py
│ ├── run_evaluation.py
│ └── run_skillpoison.py
├── .env.example
├── .gitignore
├── LICENSE
├── README.md
└── requirements.txt
| Jeu de données | Tâches de formation | Tâches d'évaluation |
|---|---|---|
| HANS | 15 | 100 |
| PAWS | 15 | 210 |
| DS1000 | 15 | 100 |
HANS utilise un sous-ensemble d'évaluation par heuristique de sous-séquence ; PAWS utilise un pool d'évaluation principal fixe. L'évaluation DS1000 sélectionne 100 tâches Pandas retournant un DataFrame parmi 191 tâches éligibles après exclusion des identifiants des tâches de formation. L'échantillonnage est stratifié par type de perturbation avec la graine 42 : Origin 32, Semantic 32, Difficult-Rewrite 27 et Surface 9. Les identifiants des tâches de formation et d'évaluation ne se chevauchent pas au sein de chaque jeu de données. Conservez les instances d'évaluation fixes entre les conditions comparées.
La configuration par défaut utilise deepseek-v4-flash, une température de 0.3 et un budget de formation de 15 enregistrements par condition.
cd skillpoison
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export MODEL_API_KEY="..."
export MODEL_BASE_URL="..."
export MODEL_NAME="..."
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input candidate_experiences.jsonl \
--out outputs/run
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input recorded_experiences.json \
--out outputs/replay \
--replay
python scripts/run_evaluation.py \
--attack attack_records.jsonl \
--out outputs/run/metrics.json
python scripts/run_attack_audit.py \
--input attack_records.jsonl \
--out outputs/run/attack_audit.jsonl