Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Rubrics-as-an-Attack-Surface — Codice di ricerca per Rubric-Induced Preference Drift (RIPD): ricerca evolutiva di rubriche, selezione che preserva il benchmark e valutazione del disallineamento delle policy DPO nei giudici LLM. | Kitploit
Strumenti/GitHubGitHub/zdcslab/rubrics-as-an-attack-surface
Machine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IAAttacco Avversario
GitHubzdcslab/rubrics-as-an-attack-surface

Rubrics-as-an-Attack-Surface

Codice di ricerca per Rubric-Induced Preference Drift (RIPD): ricerca evolutiva di rubriche, selezione che preserva il benchmark e valutazione del disallineamento delle policy DPO nei giudici LLM.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
6186 mesi faNon ancora revisionato

Rubriche come superficie di attacco: deriva stealth delle preferenze nei giudici LLM

📊 Dataset  •  🤖 Modelli addestrati  •  📝 Paper  •  💻 Repo

Teaser

Questo repository contiene il codice per il paper Rubrics as an Attack Surface: Stealthy Preference Drift in LLM Judges di Ruomeng Ding*, Yifei Pang*, He Sun, Yizhong Wang, Steven Wu e Zhun Deng.

Studiamo la Rubric-Induced Preference Drift (RIPD) nelle pipeline di valutazione e allineamento basate su LLM, mostrando che modifiche alle rubriche che superano la validazione del benchmark possono comunque indurre una deriva sistematica e direzionale delle preferenze su domini target difficili da rilevare con metriche standard. Dimostriamo inoltre attacchi alle preferenze basati su rubriche e mostriamo come il bias risultante si propaghi attraverso il post-training a valle, portando a un disallineamento persistente della policy.

Configurazione

  1. Clona il repository 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. Crea l'ambiente.
root@kitploit:~
    conda create -n rubrics python=3.9
    conda activate rubrics
    pip install -r requirements.txt

Dataset

Utilizziamo cinque dataset di preferenze umane (UltraFeedback, ChatbotArena, RMB, Anthropic hh-rlhf, PKU-SafeRLHF) per costruire quattro configurazioni benchmark–target: Ultra-Real e Ultra-Creative per l'utilità (UltraFeedback → ChatbotArena), e SafeRLHF–RMB e Anthropic–SafeRLHF per l'innocuità. Tutti i dati sono convertiti in un formato uniforme di preferenze a coppie; i benchmark impongono la preservazione delle rubriche, mentre i target misurano la deriva delle preferenze rilevante per il deployment, con esperimenti sulla policy a valle su Ultra-Real e Anthropic–SafeRLHF.

Script

L'intera pipeline dei dati (download, preprocessing, filtering e suddivisione dei domini) viene eseguita con:

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

In alternativa, puoi scaricare i dati direttamente da Hugging Face.

Struttura delle directory

Una volta completata la pipeline, la struttura delle directory è:

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.
Per ogni configurazione di dataset, Bench indica il dominio di benchmark utilizzato durante lo sviluppo delle rubriche, mentre Target indica un dominio di deployment tenuto fuori utilizzato per valutare la generalizzazione e la deriva delle preferenze. Le modifiche alle rubriche sono validate esclusivamente sul dominio Bench e non sono mai ottimizzate utilizzando i dati Target.

Split dei dati e utilizzo.

  • train.jsonl: utilizzato per la ricerca e il raffinamento delle rubriche.
  • val.jsonl: utilizzato per la selezione delle rubriche, garantendo la conformità al benchmark.
  • test.jsonl: utilizzato esclusivamente per la valutazione della Rubric-Induced Preference Drift (RIPD) e non viene mai consultato durante la modifica delle rubriche.

Ricerca di rubriche distorte

Il codice di ricerca delle rubriche si trova in rubrics_search/search/ e implementa una procedura evolutiva basata su popolazione per trovare varianti di rubriche che preservano il benchmark ma distorte verso il target.

  1. Esegui la ricerca evolutiva per generare rubriche candidate con main.py.
  2. Seleziona le top-k per generazione con select_rubrics.py.
  3. Valuta le rubriche selezionate su target-val (misura la deriva indotta) per la selezione successiva.
  4. Valuta le rubriche selezionate da target-val con select_final.py per la selezione successiva.

Per eseguire l'intera pipeline di ricerca delle rubriche:

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

Selezione delle rubriche

Le rubriche sono selezionate sotto un vincolo di preservazione del benchmark: i candidati devono eguagliare o superare l'accordo della rubrica seed su uno split di validazione del benchmark tenuto fuori. Tra i candidati ammissibili, scegliamo la rubrica che degrada al massimo l'accordo sullo split di validazione del target.

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

Per valutare la trasferibilità delle rubriche ottimizzate, forniamo script per la valutazione cross-model. Per prendere rubriche ottimizzate su un modello sorgente (Modello A) e testarne le prestazioni su un modello target (Modello B):

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

Valutazione del disallineamento della policy a valle

Per gli esperimenti di disallineamento della policy a valle, ci concentriamo su Ultra-Real (utilità) e Anthropic–SafeRLHF (innocuità), addestrando modelli di policy direttamente sulle etichette di preferenza generate dalle rubriche selezionate.

Addestramento DPO

  1. Genera le etichette di preferenza utilizzando le rubriche selezionate:
root@kitploit:~
sh scripts/dpo_labelling.sh
  1. Addestra la policy con i dati di addestramento etichettati:
root@kitploit:~
sh scripts/dpo_train.sh

Valutazione della policy

Esegui la pipeline di valutazione (puoi eseguire qualsiasi sottoinsieme di passaggi) tramite:

root@kitploit:~
sh scripts/dpo_eval.sh

Lo script di valutazione supporta le seguenti fasi:

  • Genera le risposte del modello
  • Assegna un punteggio alle risposte (utilizzando evaluator/reward model)
  • Analizza i win-rate
  • Seleziona le risposte Best-of-N (BoN)
  • Valuta gli output finali con un giudice di terze parti

Cita il nostro lavoro

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}, 
}
Scarica lo strumento