Volver a actualizaciones
Nuevo releaseSep 10, 2026

garak v0.17.0

Escáner modular de vulnerabilidades de LLM que analiza alucinaciones, fuga de datos, inyección de prompts, jailbreaks y toxicidad utilizando sondas estáticas, dinámicas y adaptativas a través de múltiples proveedores de modelos.

Compartir

garak, escáner de vulnerabilidades de LLM

Generative AI Red-teaming & Assessment Kit

garak comprueba si se puede hacer que una aplicación basada en LLM falle de una forma que no deseamos. garak sondea en busca de alucinaciones, fuga de datos, inyección de prompts, desinformación, generación de toxicidad, jailbreaks y muchas otras debilidades. Si conoces nmap o msf / Metasploit Framework, garak hace cosas en cierto modo similares a ellos, pero para LLMs.

garak se centra en las formas de hacer fallar un LLM o un sistema de diálogo. Combina sondas estáticas, dinámicas y adaptativas para explorar esto.

garak es una herramienta gratuita. Nos encanta desarrollarla y siempre estamos interesados en añadir funcionalidad para apoyar aplicaciones.

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

Primeros pasos

> ¡Consulta nuestra guía de usuario! docs.garak.ai

> ¡Únete a nuestro Discord!

> Enlaces del proyecto y página principal: garak.ai

> Twitter: @garak_llm

> ¡Diapositivas de DEF CON!


Soporte de LLM

actualmente compatible con:

Instalación:

garak es una herramienta de línea de comandos. Se desarrolla en Linux y OSX.

Instalación estándar con pip

Simplemente descárgala de PyPI y deberías estar listo para empezar:

python -m pip install -U garak

Instalar la versión de desarrollo con pip

La versión estándar de garak en pip se actualiza periódicamente. Para obtener una versión más reciente desde GitHub, prueba:

python -m pip install -U git+https://github.com/NVIDIA/garak.git@main

Clonar desde el código fuente

garak tiene sus propias dependencias. Puedes instalar garak en su propio entorno Conda:

conda create --name garak "python>=3.11,<=3.14"
conda activate garak
gh repo clone NVIDIA/garak
cd garak
python -m pip install -e .

Bien, si eso salió bien, ¡probablemente estés listo para continuar!

Nota: si clonaste antes del traslado a la organización de GitHub NVIDIA, pero estás leyendo esto en el URI github.com/NVIDIA, actualiza tus remotos de la siguiente manera:

git remote set-url origin https://github.com/NVIDIA/garak.git

Primeros pasos

La sintaxis general es:

garak <options>

garak necesita saber qué modelo escanear y, por defecto, intentará todas las sondas que conoce sobre ese modelo, utilizando los detectores de vulnerabilidades recomendados por cada sonda. Puedes ver una lista de sondas usando:

garak --list_probes

Para especificar un generador, usa las opciones --target_type y, opcionalmente, --target_name. El tipo de modelo especifica una familia/interfaz de modelo; el nombre del modelo especifica el modelo exacto que se va a utilizar. La sección "Intro to generators" a continuación describe algunos de los generadores compatibles. Una familia de generadores sencilla son los modelos de Hugging Face; para cargar uno de estos, establece --target_type en huggingface y --target_name en el nombre del modelo en Hub (p. ej., "RWKV/rwkv-4-169m-pile"). Algunos generadores pueden necesitar una clave de API configurada como variable de entorno, y te avisarán si la necesitan.

garak ejecuta todas las sondas por defecto, pero también puedes ser específico al respecto. --spec probes.promptinject usará solo los métodos del framework PromptInject, por ejemplo. También puedes especificar un plugin concreto en lugar de una familia de plugins añadiendo el nombre del plugin después de un .; por ejemplo, --spec probes.lmrc.SlurUsage usará una implementación de comprobación de modelos que generan insultos basada en el framework Language Model Risk Cards.

Para obtener ayuda e inspiración, encuéntranos en Twitter o discord.

Ejemplos

Sondear un modelo comercial para inyección de prompts basada en codificación (OSX/*nix) (reemplaza el valor de ejemplo con una clave de API de OpenAI real)

export OPENAI_API_KEY="sk-123XXXXXXXXXXXX"
python3 -m garak --target_type openai --target_name gpt-5-nano --spec probes.encoding

Comprueba si la versión de GPT2 de Hugging Face es vulnerable a DAN 11.0

python3 -m garak --target_type huggingface --target_name gpt2 --spec probes.dan.Dan_11_0

Lectura de los resultados

Para cada sonda cargada, garak imprimirá una barra de progreso mientras genera. Una vez completada la generación, se muestra una fila que evalúa los resultados de esa sonda en cada detector. Si alguno de los intentos de prompt produjo un comportamiento indeseable, la respuesta se marcará como FAIL y se indicará la tasa de fallos.

Estos son los resultados con el módulo encoding en una variante de GPT-3: alt text

Y los mismos resultados para ChatGPT: alt text

Podemos ver que el modelo más reciente es mucho más susceptible a los ataques de inyección basados en codificación, mientras que text-babbage-001 solo se encontró vulnerable a inyecciones de codificación quoted-printable y MIME. Las cifras al final de cada fila, por ejemplo 840/840, indican el número total de generaciones de texto y luego cuántas de ellas parecieron comportarse correctamente. La cifra puede ser bastante alta porque se realiza más de una generación por prompt; por defecto, 10.

Los errores se registran en garak.log; la ejecución se registra en detalle en un archivo .jsonl especificado al inicio y al final del análisis. Hay un script de análisis básico en analyse/analyse_log.py que mostrará las sondas y los prompts que provocaron más aciertos.

Envía PRs y abre issues. ¡Feliz caza!

Categorías