Aller au contenu

Garak

Garak est un framework open-source de red teaming d’IA conçu pour tester et évaluer la sécurité et la robustesse des grands modèles de langage (LLMs) et des systèmes d’IA par des tests adversariaux.

Installation et Configuration

CommandeDescription
pip install garakInstaller Garak via pip
git clone https://github.com/leondz/garak.gitCloner depuis GitHub
cd garak && pip install -e .Installer en mode développement
garak --helpAfficher l’aide et les options disponibles
garak --list-probesLister toutes les sondes disponibles
garak --list-detectorsLister tous les détecteurs disponibles
garak --list-generatorsLister tous les générateurs disponibles

Utilisation de Base

CommandeDescription
garak --model-type openai --model-name gpt-3.5-turboTest OpenAI GPT-3.5-turbo
garak --model-type huggingface --model-name microsoft/DialoGPT-mediumTester le modèle HuggingFace
garak --model-type replicate --model-name replicate/llama-2-70b-chatTester le modèle Replicate
garak --probes encodingExécuter des sondes de vulnérabilité d’encodage
garak --probes malwaregenExécuter des sondes de génération de malwares
garak --probes promptinjectExécuter des sondes d’injection de prompt

Catégories de Sondes

Sondes de Sécurité

CommandeDescription
garak --probes encoding.InjectBase64Test d’injection d’encodage base64
garak --probes encoding.InjectHexTest d’injection d’encodage hexadécimal
garak --probes encoding.InjectMorseTest d’injection de codage Morse
garak --probes encoding.InjectROT13Test d’injection de codage ROT13
garak --probes malwaregen.EvasionTest de génération d’évasion de malware
garak --probes promptinject.AttackPromptTester des attaques par injection de prompt

Sondes de Biais et Toxicité

CommandeDescription
garak --probes bias.BiasProbeTest de biais dans les réponses du modèle
garak --probes toxicity.ToxicityProbeTest de génération de contenu toxique
garak --probes hate.HateSpeechProbeTest de génération de discours de haine
garak --probes discrimination.DiscriminationProbeTest pour contenu discriminatoire

Sondes de Fuite de Données

CommandeDescription
garak --probes leakage.PIILeakageTest de fuite de données PII
garak --probes leakage.TrainingDataLeakageTest pour l’exposition des données d’entraînement
garak --probes leakage.SystemPromptLeakageTest pour exposition du système de prompt

Configuration Avancée

CommandeDescription
garak --config config.yamlUtiliser un fichier de configuration personnalisé
garak --output-dir results/Spécifier le répertoire de sortie
garak --report-prefix test_run_Définir le préfixe du fichier de rapport
garak --parallel-requests 5Définir le nombre de requêtes parallèles
garak --temperature 0.7Définir la température du modèle
garak --max-tokens 150Définir le nombre maximum de tokens par réponse

Sondes Personnalisées

CommandeDescription
garak --probes myprobe.CustomProbeExécuter une sonde personnalisée
garak --probe-options '{"param": "value"}'Passer des paramètres à la sonde
garak --probe-tags security,injectionFiltrer les sondes par tags

Détecteurs et Évaluation

CommandeDescription
garak --detectors always.PassUtiliser le détecteur always-pass
garak --detectors mitigation.MitigationBypassUtiliser le détecteur de contournement d’atténuation
garak --detectors specialwords.SlursReclaimedSlursDétecter les insultes et les injures réappropriées
garak --detectors toxicity.ToxicityClassifierUtiliser le classificateur de toxicité

Sortie et Rapport

CommandeDescription
garak --report-format jsonGénérer un rapport JSON
garak --report-format htmlGénérer un rapport HTML
garak --report-format csvGénérer un rapport CSV
garak --verboseActiver la sortie verbeuse
garak --log-level DEBUGDéfinir le niveau de journalisation de débogage

Intégration de Modèle

Modèles OpenAI

CommandeDescription
garak --model-type openai --model-name gpt-4Test GPT-4
garak --model-type openai --model-name gpt-3.5-turbo-16kTester GPT-3.5-turbo avec un contexte de 16k
export OPENAI_API_KEY=your_keyDéfinir la clé API OpenAI

Modèles HuggingFace

CommandeDescription
garak --model-type huggingface --model-name facebook/opt-1.3bTester le modèle OPT
garak --model-type huggingface --model-name EleutherAI/gpt-j-6BTester le modèle GPT-J
export HF_TOKEN=your_tokenDéfinir le token HuggingFace

Modèles Locaux

CommandeDescription
garak --model-type ggml --model-name path/to/model.binTest du modèle GGML
garak --model-type llamacpp --model-name path/to/model.ggufTester le modèle llama.cpp

Tests par Lots

CommandeDescription
garak --model-list models.txtTester plusieurs modèles à partir du fichier
garak --probe-list probes.txtExécuter plusieurs sondes à partir d’un fichier
garak --generations 10Définir le nombre de générations par sonde
garak --seed 42Définir la graine aléatoire pour la reproductibilité

Workflows de Tests de Sécurité

Analyse de Sécurité Complète

CommandeDescription
garak --model-type openai --model-name gpt-4 --probes encoding,malwaregen,promptinject --generations 20Suite complète de sonde de sécurité

Tests de Biais et d’Équité

CommandeDescription
garak --model-type huggingface --model-name microsoft/DialoGPT-medium --probes bias,toxicity,hate --detectors specialwordsSuite de tests de biais

Tests de Confidentialité des Données

CommandeDescription
garak --model-type openai --model-name gpt-3.5-turbo --probes leakage --detectors piiSuite de tests de confidentialité

Fichiers de Configuration

Configuration de 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_

Configuration Avancée

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"]

Dépannage

Would you like me to continue with the remaining translations?

CommandeDescription
garak --check-modelsVérifier la connectivité du modèle
garak --dry-runConfiguration de test sans exécuter de sondes
garak --debugActiver le mode debug
garak --list-model-typesAfficher les types de modèles pris en charge
pip install garak[dev]Installer avec les dépendances de développement

Intégration avec CI/CD

CommandeDescription
garak --model-type openai --model-name gpt-3.5-turbo --probes security --exit-on-failFail CI sur les problèmes de sécurité
garak --config ci_config.yaml --report-format json > results.jsonGénérer une sortie compatible avec CI

Meilleures Pratiques

  • Toujours tester les modèles avant le déploiement en production
  • Utiliser plusieurs catégories de sondes pour un test exhaustif
  • Définir des nombres de générations appropriés pour une signification statistique
  • Configurer des limites de taux d’API appropriées pour éviter la limitation
  • Stocker les clés API sensibles en tant que variables d’environnement
  • Examiner et analyser attentivement les rapports générés
  • Implémenter des tests continus dans les pipelines de développement
  • Documenter et suivre les résultats des tests de sécurité au fil du temps