Saltar a contenido

Garak

Garak es un framework de red teaming de IA de código abierto diseñado para probar y evaluar la seguridad y robustez de modelos de lenguaje grandes (LLMs) y sistemas de IA mediante pruebas adversariales.

Instalación y Configuración

Comando Descripción
pip install garak Instalar Garak mediante pip
git clone https://github.com/leondz/garak.git Clonar desde GitHub
cd garak && pip install -e . Instalar en modo de desarrollo
garak --help Mostrar ayuda y opciones disponibles
garak --list-probes Enumerar todas las sondas disponibles
garak --list-detectors Enumerar todos los detectores disponibles
garak --list-generators Enumerar todos los generadores disponibles
## Uso Básico
Comando Descripción
garak --model-type openai --model-name gpt-3.5-turbo Probar OpenAI GPT-3.5-turbo
garak --model-type huggingface --model-name microsoft/DialoGPT-medium Probar modelo HuggingFace
garak --model-type replicate --model-name replicate/llama-2-70b-chat Modelo de Replicación de Prueba
garak --probes encoding Ejecutar sondas de vulnerabilidad de codificación
garak --probes malwaregen Ejecutar sondas de generación de malware
garak --probes promptinject Ejecutar sondas de inyección de prompt
## Categorías de Sondas

Sondas de Seguridad

Comando Descripción
garak --probes encoding.InjectBase64 Prueba de inyección de codificación base64
garak --probes encoding.InjectHex Prueba de inyección de codificación hexadecimal
garak --probes encoding.InjectMorse Prueba de inyección de codificación de Morse code
garak --probes encoding.InjectROT13 Prueba de inyección de codificación ROT13
garak --probes malwaregen.Evasion Generación de prueba de evasión de malware
garak --probes promptinject.AttackPrompt Probar ataques de inyección de prompt
### Sondas de Sesgo y Toxicidad
Comando Descripción
--------- -------------
garak --probes bias.BiasProbe Prueba de sesgo en respuestas de modelo
garak --probes toxicity.ToxicityProbe Prueba para generación de contenido tóxico
garak --probes hate.HateSpeechProbe Prueba para generación de hate speech
garak --probes discrimination.DiscriminationProbe Prueba de contenido discriminatorio
### Sondas de Fuga de Datos
Comando Descripción
--------- -------------
garak --probes leakage.PIILeakage Prueba de fuga de datos PII
garak --probes leakage.TrainingDataLeakage Prueba para exposición de datos de entrenamiento
garak --probes leakage.SystemPromptLeakage Prueba de exposición del sistema prompt
## Configuración Avanzada
Comando Descripción
garak --config config.yaml Usar archivo de configuración personalizado
garak --output-dir results/ Especificar directorio de salida
garak --report-prefix test_run_ Establecer prefijo de archivo de informe
garak --parallel-requests 5 Establecer número de solicitudes paralelas
garak --temperature 0.7 Establecer temperatura del modelo
garak --max-tokens 150 Establecer tokens máximos por respuesta
## Sondas Personalizadas
Comando Descripción
garak --probes myprobe.CustomProbe Ejecutar sonda personalizada
garak --probe-options '{"param": "value"}' Pasar parámetros al probe
garak --probe-tags security,injection Filtrar sondas por etiquetas
## Detectores y Evaluación
Comando Descripción
garak --detectors always.Pass Usar detector de paso siempre
garak --detectors mitigation.MitigationBypass Usar detector de bypass de mitigación
garak --detectors specialwords.SlursReclaimedSlurs Detectar insultos y términos ofensivos reclamados
garak --detectors toxicity.ToxicityClassifier Usar clasificador de toxicidad
## Salida e Informes
Comando Descripción
garak --report-format json Generar informe JSON
garak --report-format html Generar informe HTML
garak --report-format csv Generar informe CSV
garak --verbose Habilitar salida detallada
garak --log-level DEBUG Establecer nivel de registro de depuración
## Integración de Modelos

Modelos de OpenAI

Comando Descripción
garak --model-type openai --model-name gpt-4 Probar GPT-4
garak --model-type openai --model-name gpt-3.5-turbo-16k Probar GPT-3.5-turbo con contexto de 16k
export OPENAI_API_KEY=your_key Establecer clave de API de OpenAI
### Modelos de HuggingFace
Comando Descripción
--------- -------------
garak --model-type huggingface --model-name facebook/opt-1.3b Probar modelo OPT
garak --model-type huggingface --model-name EleutherAI/gpt-j-6B Probar modelo GPT-J
export HF_TOKEN=your_token Establecer token de HuggingFace
### Modelos Locales
Comando Descripción
--------- -------------
garak --model-type ggml --model-name path/to/model.bin Probar modelo GGML
garak --model-type llamacpp --model-name path/to/model.gguf Probar modelo llama.cpp
## Pruebas por Lotes
Comando Descripción
garak --model-list models.txt Probar múltiples modelos desde archivo
garak --probe-list probes.txt Ejecutar múltiples sondas desde archivo
garak --generations 10 Establecer número de generaciones por sonda
garak --seed 42 Establecer semilla aleatoria para reproducibilidad
## Flujos de Trabajo de Pruebas de Seguridad

Escaneo de Seguridad Integral

Comando Descripción
garak --model-type openai --model-name gpt-4 --probes encoding,malwaregen,promptinject --generations 20 Suite completa de sondeo de seguridad
### Pruebas de Sesgo y Equidad
Comando Descripción
--------- -------------
garak --model-type huggingface --model-name microsoft/DialoGPT-medium --probes bias,toxicity,hate --detectors specialwords Suite de pruebas de sesgo
### Pruebas de Privacidad de Datos
Comando Descripción
--------- -------------
garak --model-type openai --model-name gpt-3.5-turbo --probes leakage --detectors pii Suite de pruebas de privacidad
## Archivos de Configuración

Configuración Básica (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_

Configuración Avanzada

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

Resolución de Problemas

Would you like me to continue with the remaining sections or placeholders? | Comando | Descripción | |---------|-------------| | garak --check-models | Verificar conectividad del modelo | | garak --dry-run | Configuración de prueba sin ejecutar sondas | | garak --debug | Habilitar modo debug | | garak --list-model-types | Mostrar tipos de modelo compatibles | | pip install garak[dev] | Instalar con dependencias de desarrollo |

Integración con CI/CD

Comando Descripción
garak --model-type openai --model-name gpt-3.5-turbo --probes security --exit-on-fail Fail CI en problemas de seguridad
garak --config ci_config.yaml --report-format json > results.json Generar salida compatible con CI
## Mejores Prácticas
  • Siempre pruebe los modelos antes del despliegue en producción
  • Use múltiples categorías de pruebas para un testeo integral
  • Establezca recuentos de generación apropiados para significancia estadística
  • Configure límites de tasa de API adecuados para evitar throttling
  • Almacene claves de API sensibles como variables de entorno
  • Revise y analice los informes generados a fondo
  • Implemente pruebas continuas en pipelines de desarrollo
  • Documente y rastree los resultados de pruebas de seguridad a lo largo del tiempo