Vai al contenuto

Garak

Garak è un framework open-source di red teaming per l'intelligenza artificiale, progettato per testare e valutare la sicurezza e la robustezza dei modelli di linguaggio di grandi dimensioni (LLM) e dei sistemi di intelligenza artificiale attraverso test avversariali.

Installazione e Configurazione

Comando Descrizione
pip install garak Installa Garak tramite pip
git clone https://github.com/leondz/garak.git Clona da GitHub
cd garak && pip install -e . Installare in modalità di sviluppo
garak --help Mostra help e opzioni disponibili
garak --list-probes Elenca tutte le probe disponibili
garak --list-detectors Elenca tutti i rilevatori disponibili
garak --list-generators Elenca tutti i generatori disponibili
## Utilizzo Base
Comando Descrizione
garak --model-type openai --model-name gpt-3.5-turbo Test OpenAI GPT-3.5-turbo
garak --model-type huggingface --model-name microsoft/DialoGPT-medium Testare modello HuggingFace
garak --model-type replicate --model-name replicate/llama-2-70b-chat Modello Replicate di test
garak --probes encoding Esegui probe di vulnerabilità di encoding
garak --probes malwaregen Esegui sonde di generazione di malware
garak --probes promptinject Esegui probe di prompt injection
## Categorie di Probe

Probe di Sicurezza

Comando Descrizione
garak --probes encoding.InjectBase64 Test dell'iniezione di codifica base64
garak --probes encoding.InjectHex Test di iniezione di codifica esadecimale
garak --probes encoding.InjectMorse Test dell'iniezione di codifica Morse code
garak --probes encoding.InjectROT13 Test dell'iniezione di codifica ROT13
garak --probes malwaregen.Evasion Test generazione evasione malware
garak --probes promptinject.AttackPrompt Testare attacchi di prompt injection
### Probe di Bias e Tossicità
Comando Descrizione
--------- -------------
garak --probes bias.BiasProbe Test per bias nelle risposte del modello
garak --probes toxicity.ToxicityProbe Test per la generazione di contenuti tossici
garak --probes hate.HateSpeechProbe Test per la generazione di discorsi d'odio
garak --probes discrimination.DiscriminationProbe Test per contenuti discriminatori
### Probe di Perdita di Dati
Comando Descrizione
--------- -------------
garak --probes leakage.PIILeakage Test per la perdita di dati PII
garak --probes leakage.TrainingDataLeakage Test per l'esposizione dei dati di training
garak --probes leakage.SystemPromptLeakage Test per l'esposizione del sistema prompt
## Configurazione Avanzata
Comando Descrizione
garak --config config.yaml Utilizzare file di configurazione personalizzato
garak --output-dir results/ Specificare la directory di output
garak --report-prefix test_run_ Imposta prefisso file report
garak --parallel-requests 5 Imposta numero di richieste parallele
garak --temperature 0.7 Imposta temperatura del modello
garak --max-tokens 150 Imposta il numero massimo di token per risposta
## Probe Personalizzate
Comando Descrizione
garak --probes myprobe.CustomProbe Esegui probe personalizzata
garak --probe-options '{"param": "value"}' Passa parametri a probe
garak --probe-tags security,injection Filtra probe per tag
## Rilevatori e Valutazione
Comando Descrizione
garak --detectors always.Pass Utilizzare il rilevatore sempre-passa
garak --detectors mitigation.MitigationBypass Utilizzare il rilevatore di bypass di mitigazione
garak --detectors specialwords.SlursReclaimedSlurs Rileva insulti e ingiurie riscattate
garak --detectors toxicity.ToxicityClassifier Usa classificatore di tossicità
## Output e Reporting
Comando Descrizione
garak --report-format json Genera report JSON
garak --report-format html Genera report HTML
garak --report-format csv Genera report CSV
garak --verbose Attiva output dettagliato
garak --log-level DEBUG Imposta livello di registrazione debug
## Integrazione dei Modelli

Modelli OpenAI

Comando Descrizione
garak --model-type openai --model-name gpt-4 Test GPT-4
garak --model-type openai --model-name gpt-3.5-turbo-16k Testa GPT-3.5-turbo con contesto da 16k
export OPENAI_API_KEY=your_key Imposta chiave API OpenAI
### Modelli HuggingFace
Comando Descrizione
--------- -------------
garak --model-type huggingface --model-name facebook/opt-1.3b Test modello OPT
garak --model-type huggingface --model-name EleutherAI/gpt-j-6B Test del modello GPT-J
export HF_TOKEN=your_token Imposta token HuggingFace
### Modelli Locali
Comando Descrizione
--------- -------------
garak --model-type ggml --model-name path/to/model.bin Test modello GGML
garak --model-type llamacpp --model-name path/to/model.gguf Test del modello llama.cpp
## Test in Batch
Comando Descrizione
garak --model-list models.txt Testa più modelli da file
garak --probe-list probes.txt Esegui più probe da file
garak --generations 10 Imposta numero di generazioni per probe
garak --seed 42 Imposta il seed casuale per la riproducibilità
## Workflow di Test di Sicurezza

Scansione Completa di Sicurezza

Comando Descrizione
garak --model-type openai --model-name gpt-4 --probes encoding,malwaregen,promptinject --generations 20 Suite completa di indagine di sicurezza
### Test di Bias e Fairness
Comando Descrizione
--------- -------------
garak --model-type huggingface --model-name microsoft/DialoGPT-medium --probes bias,toxicity,hate --detectors specialwords Suite di test per bias
### Test di Privacy dei Dati
Comando Descrizione
--------- -------------
garak --model-type openai --model-name gpt-3.5-turbo --probes leakage --detectors pii Suite di test per la privacy
## File di Configurazione

Configurazione Base (config.yaml)

model:
  type: openai
  name: gpt-3.5-turbo
  temperature: 0.7
  max_tokens: 150

probes:
  - encoding
  - promptinject
  - malwaregen

detectors:
  - always.Pass
  - mitigation.MitigationBypass

output:
  directory: results/
  format: json
  prefix: garak_test_

Configurazione Avanzata

parallel_requests: 5
generations: 10
seed: 42
log_level: INFO

model:
  type: huggingface
  name: microsoft/DialoGPT-medium
  device: cuda
  batch_size: 4

probe_options:
  encoding.InjectBase64:
    payload_count: 50
  promptinject.AttackPrompt:
    attack_types: ["jailbreak", "roleplay"]

Risoluzione dei Problemi

Would you like me to continue with the remaining sections? | Comando | Descrizione | |---------|-------------| | garak --check-models | Verificare la connettività del modello | | garak --dry-run | Configurazione di test senza eseguire probe | | garak --debug | Abilita modalità debug | | garak --list-model-types | Mostra i tipi di modelli supportati | | pip install garak[dev] | Installa con dipendenze di sviluppo |

Integrazione con CI/CD

Comando Descrizione
garak --model-type openai --model-name gpt-3.5-turbo --probes security --exit-on-fail Fail CI su problemi di sicurezza
garak --config ci_config.yaml --report-format json > results.json Genera output compatibile con CI
## Migliori Pratiche
  • Testare sempre i modelli prima del deployment in produzione
  • Utilizzare più categorie di probe per un test completo
  • Impostare conteggi di generazione appropriati per la significatività statistica
  • Configurare limiti di rate API adeguati per evitare il throttling
  • Archiviare chiavi API sensibili come variabili di ambiente
  • Rivedere e analizzare accuratamente i report generati
  • Implementare test continui nelle pipeline di sviluppo
  • Documentare e tracciare i risultati dei test di sicurezza nel tempo