Pular para o conteúdo

DeepTeam - Estrutura de Red Teaming para LLM

DeepTeam - Estrutura de Red Teaming para LLM

DeepTeam é uma estrutura open-source de red teaming para LLM construída pela equipe por trás de DeepEval. Ela simula ataques adversariais contra sua aplicação LLM — injeção de prompt, jailbreaks, vazamento de PII, agência excessiva, viés — usando uma biblioteca de vulnerabilidades e melhorias de ataque que reescrevem um ataque base para evitar defesas. Sua ideia orientadora é que red teaming deve ser repetível e automatizado, não um exercício manual único, então executa como um conjunto de testes em CI.

Faça red team apenas de sistemas que você possui ou tem autorização para testar. Ataques gerados são entradas adversariais reais.

Instalação

MétodoComando
pippip install deepteam
uvuv add deepteam
Chave de modeloexport OPENAI_API_KEY=... (simulador + juiz)
Verificarpython -c "import deepteam; print('ok')"

Conceitos Principais

TermoSignificado
VulnerabilityUma classe de fraqueza para investigar (ex. vazamento de PII)
AttackUma técnica usada para desencadeá-la (ex. injeção de prompt)
EnhancementUma transformação que torna um ataque mais difícil de detectar
Model callbackSua aplicação, encapsulada como uma função que DeepTeam pode chamar
Risk assessmentO relatório pontuado do que funcionou

Execução Mínima de Red Team

from deepteam import red_team
from deepteam.vulnerabilities import Bias, PIILeakage
from deepteam.attacks.single_turn import PromptInjection

async def model_callback(input: str) -> str:
    # call YOUR app/model here and return its output
    return await my_llm_app(input)

risk = red_team(
    model_callback=model_callback,
    vulnerabilities=[Bias(), PIILeakage()],
    attacks=[PromptInjection()],
)
print(risk)
ArgumentoPropósito
model_callbackAdaptador para seu sistema sob teste
vulnerabilitiesQuais fraquezas investigar
attacksQuais técnicas usar
attacks_per_vulnerability_typeVolume de casos de teste

Categorias de Vulnerabilidade

CategoriaInvestiga
PIILeakageVazamento de dados pessoais
BiasViés de gênero/raça/religião/político
ToxicitySaída prejudicial ou abusiva
PromptLeakageDivulgação do prompt do sistema
ExcessiveAgencyExecução de ações não autorizadas
MisinformationReivindicações factuais/insustentadas
IllegalActivityConformidade com instruções inseguras
RobustnessSequestro / dependência excessiva de entrada

Ataques e Melhorias

Ataque de turno únicoTécnica
PromptInjectionInstruções injetadas
RoleplayBypass baseado em persona
Base64 / ROT13 / LeetspeakEvasão por codificação
MultilingualBypass em não-inglês
MathProblemOfuscação via enquadramento
Ataque de múltiplos turnosTécnica
LinearJailbreakingEscalação de turnos
TreeJailbreakingBusca em ramificação por um bypass
CrescendoJailbreakingEscalação gradual

Executando em CI

# red_team.py — falhe na construção se problemas de alta severidade aparecerem
risk = red_team(model_callback=cb, vulnerabilities=[...], attacks=[...])
assert risk.overall_score >= THRESHOLD, "Red team failures detected"
PráticaPor quê
Fixe um conjunto de cenáriosResultados comparáveis entre execuções
Portão de severidadeBloqueie apenas regressões de alto risco
Armazene relatóriosRastreie postura ao longo do tempo
Re-execute em mudança de promptPrompts são a superfície de controle

DeepTeam vs Ferramentas Relacionadas

AspectoDeepTeamgarakPyRITpromptfoo
CamadaAplicaçãoModeloModelo + múltiplos turnosAplicação
EstiloSuite PythônicaScanner CLISDK de orquestraçãoConfig + CLI
Múltiplos turnosSimLimitadoForteSim
Melhor paraRed teaming automatizado em nível de appInvestigações amplas de modeloPesquisa de ataque complexaEval de CI + red team

Complementa garak (investigações de nível de modelo) e promptfoo (eval + CI); execute mais de um — eles capturam falhas diferentes.

Recursos