Retour aux mises à jour
New releaseAug 5, 2026

garak v0.16.0

Scanneur de vulnérabilités LLM modulaire qui détecte les hallucinations, les fuites de données, les injections de prompts, les jailbreaks et la toxicité à l'aide de sondes statiques, dynamiques et adaptatives sur plusieurs fournisseurs de modèles.

Partager

garak, scanner de vulnérabilités pour LLM

Kit de red-teaming et d'évaluation pour l'IA générative

garak vérifie si un LLM peut être amené à échouer d'une manière que nous ne souhaitons pas. garak sonde les hallucinations, les fuites de données, l'injection de prompt, la désinformation, la génération de toxicité, les jailbreaks, et bien d'autres faiblesses. Si vous connaissez nmap ou msf / Metasploit Framework, garak fait des choses similaires, mais pour les LLMs.

garak se concentre sur les moyens de faire échouer un LLM ou un système de dialogue. Il combine des sondes statiques, dynamiques et adaptatives pour explorer cela.

garak est un outil gratuit. Nous adorons le développer et sommes toujours intéressés par l'ajout de fonctionnalités pour soutenir les applications.

License Tests/Linux Tests/Windows Tests/OSX Documentation Status arXiv discord-img Code style: black PyPI - Python Version PyPI Downloads Downloads

Pour commencer

> Consultez notre guide utilisateur ! docs.garak.ai

> Rejoignez notre Discord !

> Liens et accueil du projet : garak.ai

> Twitter : @garak_llm

> DEF CON diapositives !


Support LLM

prend actuellement en charge :

Installation :

garak est un outil en ligne de commande. Il est développé sous Linux et OSX.

Installation standard avec pip

Il suffit de le récupérer depuis PyPI et vous devriez être prêt :``` python -m pip install -U garak

### Install development version with `pip`

La version standard pip de `garak` est mise à jour périodiquement. Pour obtenir une version plus récente depuis GitHub, essayez :```
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main

Cloner depuis la source

garak a ses propres dépendances. Vous pouvez installer garak dans son propre environnement Conda :``` conda create --name garak "python>=3.10,<=3.12" conda activate garak gh repo clone NVIDIA/garak cd garak python -m pip install -e .

OK, si tout s'est bien passé, vous êtes probablement prêt !

**Remarque**: si vous avez cloné avant le déplacement vers l'organisation GitHub `NVIDIA`, mais que vous lisez ceci à l'URI `github.com/NVIDIA`, veuillez mettre à jour vos dépôts distants comme suit :```
git remote set-url origin https://github.com/NVIDIA/garak.git

Pour commencer

La syntaxe générale est :

garak <options>

garak a besoin de savoir quel modèle analyser, et par défaut, il essaiera toutes les sondes qu'il connaît sur ce modèle, en utilisant les détecteurs de vulnérabilité recommandés par chaque sonde.

Vous pouvez voir une liste des sondes en utilisant :

garak --list_probes

Pour spécifier un générateur, utilisez les options --target_type et, optionnellement, --target_name. Le type de modèle spécifie une famille/interface de modèle ; le nom du modèle spécifie le modèle exact à utiliser. La section « Intro to generators » ci-dessous décrit certains des générateurs pris en charge. Une famille de générateurs simple est celle des modèles Hugging Face ; pour en charger un, définissez --target_type sur huggingface et --target_name sur le nom du modèle sur Hub (par exemple "RWKV/rwkv-4-169m-pile"). Certains générateurs peuvent nécessiter qu'une clé API soit définie comme variable d'environnement, et ils vous informeront si c'est le cas.

garak exécute toutes les sondes par défaut, mais vous pouvez aussi être plus spécifique. --probes promptinject utilisera uniquement les méthodes du framework PromptInject, par exemple. Vous pouvez également spécifier un plugin spécifique au lieu d'une famille de plugins en ajoutant le nom du plugin après un . ; par exemple, --probes lmrc.SlurUsage utilisera une implémentation qui vérifie si les modèles génèrent des insultes basée sur le framework Language Model Risk Cards.

Pour de l'aide et de l'inspiration, retrouvez-nous sur Twitter ou discord !

Exemples

Sonder un modèle commercial pour l'injection de prompt basée sur l'encodage (OSX/*nix) (remplacez la valeur d'exemple par une vraie clé API OpenAI)``` export OPENAI_API_KEY="sk-123XXXXXXXXXXXX" python3 -m garak --target_type openai --target_name gpt-5-nano --probes encoding

Vérifiez si la version Hugging Face de GPT2 est vulnérable à DAN 11.0```
python3 -m garak --target_type huggingface --target_name gpt2 --probes dan.Dan_11_0

Lecture des résultats

Pour chaque sonde chargée, garak affichera une barre de progression lors de la génération. Une fois la génération terminée, une ligne évaluant les résultats de cette sonde sur chaque détecteur est affichée. Si l'une des tentatives de prompt a produit un comportement indésirable, la réponse sera marquée comme FAIL et le taux d'échec sera indiqué.

Voici les résultats avec le module encoding sur une variante de GPT-3 : alt text

Et les mêmes résultats pour ChatGPT : alt text

On constate que le modèle le plus récent est beaucoup plus sensible aux attaques par injection basées sur l'encodage, alors que text-babbage-001 n'était vulnérable qu'aux injections quoted-printable et MIME. Les chiffres à la fin de chaque ligne, par exemple 840/840, indiquent le nombre total de générations de texte, puis combien d'entre elles semblaient correctes. Ce nombre peut être élevé car plusieurs générations sont réalisées par prompt – par défaut, 10.

Les erreurs vont dans garak.log ; le déroulement est enregistré en détail dans un fichier .jsonl spécifié au début et à la fin de l'analyse. Un script d'analyse de base se trouve dans analyse/analyse_log.py qui affichera les sondes et les prompts ayant généré le plus de résultats.

Catégories