Introdução geral
O NVIDIA Garak é uma ferramenta de código aberto projetada especificamente para detectar vulnerabilidades em modelos de linguagem grande (LLMs). Ela verifica o modelo em busca de vários pontos fracos, como ilusões, vazamento de dados, injeção de dicas, geração de mensagens de erro, geração de conteúdo nocivo etc., por meio de sondagem estática, dinâmica e adaptável. O Garak é semelhante ao nmap na segurança cibernética, mas se concentra na avaliação da segurança dos LLMs.
Ferramentas relacionadas: https://github.com/msoedov/agentic_security
Lista de funções
- verificação de vulnerabilidadesDetecta uma variedade de possíveis vulnerabilidades no LLM, incluindo phantom, vazamento de dados, injeção de dicas, etc.
- Avaliação de IA generativaAvaliação do desempenho de modelos de IA generativa em diferentes contextos.
- Teste do sistema de diálogoTeste a resposta do sistema de diálogo com diferentes entradas para identificar possíveis problemas de segurança.
- Suporte a vários modelosSuporte a Hugging Face, OpenAI, Replicate e outros modelos generativos.
- ferramenta de linha de comandoOperado a partir da linha de comando e disponível para sistemas Linux e OSX.
- Registro em logRegistros detalhados do processo de digitalização e dos resultados para análise e aprimoramento posteriores.
Usando a Ajuda
Processo de instalação
- Instalação padrão::
- Instale a partir do PyPI usando o pip:
python -m pip install -U garak
- Instale a partir do PyPI usando o pip:
- Instalação da versão de desenvolvimento::
- Obtenha a versão mais recente no GitHub:
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main
- Obtenha a versão mais recente no GitHub:
- Clonagem a partir da fonte::
- Crie um ambiente Conda e instale as dependências:
conda create --name garak "python>=3.10,<3.12" conda activate garak gh repo clone NVIDIA/garak cd garak python -m pip install -e .
- Crie um ambiente Conda e instale as dependências:
Uso
- uso básico::
- O Garak precisa saber qual modelo deve ser examinado e o padrão é usar todas as sondas conhecidas para esse modelo. Use o seguinte comando para exibir a lista de sondas:
garak --list_probes
- Especifica o tipo de gerador e o nome do modelo:
garak --model_type huggingface --model_name RWKV/rwkv-4-169m-pile
- Executar uma sonda específica:
garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
- O Garak precisa saber qual modelo deve ser examinado e o padrão é usar todas as sondas conhecidas para esse modelo. Use o seguinte comando para exibir a lista de sondas:
- Leia os resultados::
- Após a conclusão de cada sonda, o Garak gera uma barra de progresso e exibe os resultados da avaliação após a conclusão. Se alguma tentativa de sondagem resultar em mau comportamento, a resposta será marcada como FAIL e uma taxa de falha será fornecida.
- Registros e relatórios::
- Os erros são registrados no arquivo garak.log e os detalhes do tempo de execução são registrados no arquivo .jsonl. Isso pode ser analisado usando o script analyse/analyse_log.py.
- exemplo típico::
- detecção ChatGPT Vulnerabilidade a ataques de injeção de código:
export OPENAI_API_KEY="sk-123XXXXXXXXXXXXXXXX" python3 -m garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
- detecção ChatGPT Vulnerabilidade a ataques de injeção de código:
- Desenvolvimento de plug-ins::
- Herdar a classe base e substituir os métodos necessários para testar o novo código:
importar garak.probes.mymodule p = garak.probes.mymodule.MyProbe() python3 -m garak -m test.Blank -p mymodule -d always.Pass
- Herdar a classe base e substituir os métodos necessários para testar o novo código: