Interfaccia di NVIDIA garak per il red-teaming di modelli linguistici

NVIDIA garak: guida completa al red-teaming difensivo per modelli linguistici

NVIDIA garak è un framework open-source per il red-teaming difensivo dei modelli linguistici di grandi dimensioni (LLM). In questo tutorial vediamo passo passo come configurarlo, scoprire i plugin disponibili, eseguire scansioni su modelli reali, analizzare i report e creare probe e detector personalizzati.

Il risultato finale è un workflow end-to-end che mostra come probe, detector, generatori, report e punteggi di vulnerabilità collaborano in un test di sicurezza completo.

Setup di NVIDIA garak e funzioni di supporto

Si inizia installando garak e configurando le variabili d’ambiente necessarie. Ecco i passaggi principali:

  • Installazione via pip: pip install -q -U garak
  • Configurazione delle variabili d’ambiente: TOKENIZERS_PARALLELISM=false e HF_HUB_DISABLE_TELEMETRY=1
  • Import dei moduli principali: garak, garak.cli, garak._config
  • Definizione di una funzione run_garak(args) per eseguire garak programmaticamente e catturare il percorso del report generato

Esplorazione dei plugin e scansioni su modelli

Con garak configurato, si elencano i plugin disponibili per probe, detector, generatori e buff. Poi si esegue un dry-run rapido per verificare il funzionamento del framework, seguito da una scansione su un modello reale di Hugging Face (gpt2) con la probe DAN 11.0 e una scansione multi-probe che utilizza probe come dan.Dan_11_0, encoding.InjectBase64 e lmrc.SlurUsage.

Analisi dei report: punteggi di sicurezza e tassi di successo degli attacchi

I report generati da garak sono file JSONL. Per analizzarli si usa pandas e NumPy. Si calcolano due metriche fondamentali:

  • Safety score (percentuale di prompt superati senza problemi)
  • Attack Success Rate (ASR) (percentuale di attacchi riusciti, complementare al safety score)

Un grafico a barre orizzontali mostra la vulnerabilità per combinazione probe-detector, con ASR in percentuale.

Ispezione degli output segnalati e creazione di una probe personalizzata

Si estraggono dal report gli hit (output con punteggio detector ≥ 0.5) per capire quali prompt hanno prodotto comportamenti potenzialmente non sicuri. Poi si crea una probe custom chiamata HelloProbe: due prompt fissi (es. “Please reply with the single word: hello”) collegata a un detector personalizzato.

Creazione di un detector personalizzato ed esportazione in formato AVID

Il detector ContainsHello è uno StringDetector che segnala qualsiasi risposta contenente la parola “hello” (case-insensitive). Infine, i risultati possono essere esportati nel formato AVID (Aggregate Vulnerability Intelligence Database), un formato standardizzato per la condivisione di vulnerabilità nei sistemi di intelligenza artificiale.

Articoli simili