Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Rubrics-as-an-Attack-Surface — Code de recherche pour le Rubric-Induced Preference Drift (RIPD) : recherche évolutionnaire de rubriques, sélection préservant les benchmarks et évaluation du désalignement des politiques DPO dans les juges LLM. | Kitploit
Outils/GitHubGitHub/zdcslab/rubrics-as-an-attack-surface
Apprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IAAttaque Adversariale
GitHubzdcslab/rubrics-as-an-attack-surface

Rubrics-as-an-Attack-Surface

Code de recherche pour le Rubric-Induced Preference Drift (RIPD) : recherche évolutionnaire de rubriques, sélection préservant les benchmarks et évaluation du désalignement des politiques DPO dans les juges LLM.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
618il y a 6 moisPas encore vérifié

Les rubriques comme surface d'attaque : dérive de préférence furtive chez les juges LLM

📊 Jeu de données  •  🤖 Modèles entraînés  •  📝 Article  •  💻 Dépôt

Teaser

Ce dépôt contient le code de l'article Rubrics as an Attack Surface: Stealthy Preference Drift in LLM Judges de Ruomeng Ding*, Yifei Pang*, He Sun, Yizhong Wang, Steven Wu et Zhun Deng.

Nous étudions la dérive de préférence induite par les rubriques (RIPD) dans les pipelines d'évaluation et d'alignement basés sur les LLM, en montrant que des modifications de rubriques qui passent la validation sur un benchmark peuvent néanmoins induire une dérive de préférence systématique et directionnelle sur des domaines cibles difficiles à détecter avec les métriques standard. Nous démontrons en outre des attaques de préférence basées sur les rubriques et montrons comment le biais résultant se propage à travers le post-entraînement en aval, conduisant à un désalignement persistant de la politique.

Configuration

  1. Cloner le dépôt Rubrics-as-an-Attack-Surface.
root@kitploit:~
    git clone https://github.com/ruomengd/Rubrics-as-an-Attack-Surface.git
    cd Rubrics-as-an-Attack-Surface
  1. Créer l'environnement.
root@kitploit:~
    conda create -n rubrics python=3.9
    conda activate rubrics
    pip install -r requirements.txt

Jeu de données

Nous utilisons cinq jeux de données de préférences humaines (UltraFeedback, ChatbotArena, RMB, Anthropic hh-rlhf, PKU-SafeRLHF) pour construire quatre configurations benchmark–cible : Ultra-Real et Ultra-Creative pour l'utilité (UltraFeedback → ChatbotArena), et SafeRLHF–RMB et Anthropic–SafeRLHF pour l'innocuité. Toutes les données sont converties dans un format uniforme de préférences par paires ; les benchmarks imposent la préservation des rubriques, tandis que les cibles mesurent la dérive de préférence pertinente pour le déploiement, avec des expériences de politique en aval sur Ultra-Real et Anthropic–SafeRLHF.

Scripts

Le pipeline complet de données (téléchargement, prétraitement, filtrage et découpage par domaine) s'exécute avec :

root@kitploit:~
sh ./scripts/dataset.sh

Alternativement, vous pouvez télécharger les données directement depuis Hugging Face.

Structure des répertoires

Une fois le pipeline terminé, l'arborescence des répertoires est la suivante :

root@kitploit:~
data/
├── helpfulness/
│   ├── Ultra-Real/
│   │   ├── Ultra-Real-Bench/
│   │   │   ├── train.jsonl
│   │   │   ├── val.jsonl
│   │   │   └── test.jsonl
│   │   └── Ultra-Real-Target/
│   │       ├── train.jsonl
│   │       ├── val.jsonl
│   │       └── test.jsonl
│   └── ...
├── harmlessness/
│   ├── Anthropic-SafeRLHF/
│   │   ├── Anthropic-SafeRLHF-Bench/
│   │   │   ├── train.jsonl
│   │   │   ├── val.jsonl
│   │   │   └── test.jsonl
│   │   └── Anthropic-SafeRLHF-Target/
│   │       ├── train.jsonl
│   │       ├── val.jsonl
│   │       └── test.jsonl
│   └── ...

Bench vs. Target.
Pour chaque configuration de jeu de données, Bench désigne le domaine de benchmark utilisé lors du développement des rubriques, tandis que Target désigne un domaine de déploiement mis de côté utilisé pour évaluer la généralisation et la dérive de préférence. Les modifications de rubriques sont validées exclusivement sur le domaine Bench et ne sont jamais optimisées à l'aide des données Target.

Découpages des données et utilisation.

  • train.jsonl : utilisé pour la recherche et le raffinement des rubriques.
  • val.jsonl : utilisé pour la sélection des rubriques, garantissant la conformité au benchmark.
  • test.jsonl : utilisé exclusivement pour l'évaluation de la dérive de préférence induite par les rubriques (RIPD) et n'est jamais consulté lors de l'édition des rubriques.

Recherche de rubriques biaisées

Le code de recherche de rubriques se trouve sous rubrics_search/search/ et implémente une procédure évolutive basée sur une population pour trouver des variantes de rubriques préservant le benchmark mais biaisées vers la cible.

  1. Exécuter la recherche évolutive pour générer des rubriques candidates avec main.py.
  2. Sélectionner le top-k par génération avec select_rubrics.py.
  3. Évaluer les rubriques sélectionnées sur target-val (mesurer la dérive induite) pour la sélection ultérieure.
  4. Évaluer les rubriques sélectionnées à partir de target-val avec select_final.py pour la sélection ultérieure.

Pour exécuter le pipeline complet de recherche de rubriques :

root@kitploit:~
sh ./scripts/rubrics_search_helpfulness.sh
sh ./scripts/rubrics_search_harmlessness.sh

Sélection des rubriques

Les rubriques sont sélectionnées sous une contrainte de préservation du benchmark : les candidates doivent égaler ou dépasser l'accord de la rubrique initiale sur un découpage de validation de benchmark mis de côté. Parmi les candidates admissibles, nous choisissons la rubrique qui dégrade au maximum l'accord sur le découpage de validation cible.

root@kitploit:~
sh ./scripts/rubrics_selection.sh

Pour évaluer la transférabilité des rubriques optimisées, nous fournissons des scripts pour l'évaluation inter-modèles. Pour prendre des rubriques optimisées sur un modèle source (Modèle A) et tester leurs performances sur un modèle cible (Modèle B) :

root@kitploit:~
sh ./scripts/rubrics_cross_model_eval.sh

Évaluation du désalignement de la politique en aval

Pour les expériences de désalignement de la politique en aval, nous nous concentrons sur Ultra-Real (utilité) et Anthropic–SafeRLHF (innocuité), en entraînant les modèles de politique directement sur les étiquettes de préférence générées par les rubriques sélectionnées.

Entraînement DPO

  1. Générer les étiquettes de préférence à l'aide des rubriques sélectionnées :
root@kitploit:~
sh scripts/dpo_labelling.sh
  1. Entraîner la politique avec les données d'entraînement étiquetées :
root@kitploit:~
sh scripts/dpo_train.sh

Évaluation de la politique

Exécuter le pipeline d'évaluation (vous pouvez exécuter n'importe quel sous-ensemble d'étapes) via :

root@kitploit:~
sh scripts/dpo_eval.sh

Le script d'évaluation prend en charge les étapes suivantes :

  • Générer les réponses du modèle
  • Noter les réponses (à l'aide d'évaluateurs/modèles de récompense)
  • Analyser les taux de victoire
  • Sélectionner les réponses Best-of-N (BoN)
  • Évaluer les sorties finales avec un juge tiers

Citer notre travail

root@kitploit:~
@misc{ding2026rubricsattacksurfacestealthy,
      title={Rubrics as an Attack Surface: Stealthy Preference Drift in LLM Judges}, 
      author={Ruomeng Ding and Yifei Pang and He Sun and Yizhong Wang and Zhiwei Steven Wu and Zhun Deng},
      year={2026},
      eprint={2602.13576},
      archivePrefix={arXiv},
      primaryClass={cs.CR},
      url={https://arxiv.org/abs/2602.13576}, 
}
Télécharger l’outil