DeepTeam - Framework de Red Teaming pour LLM
DeepTeam est un framework open-source de red teaming pour LLM construit par l’équipe derrière DeepEval. Il simule des attaques adversaires contre votre application LLM — injection de prompts, jailbreaks, fuite de PII, agentivité excessive, biais — en utilisant une bibliothèque de vulnérabilités et d’améliorations d’attaque qui réécrivent une attaque de base pour contourner les défenses. L’idée directrice est que le red teaming devrait être reproductible et automatisé, et non un exercice manuel ponctuel, il s’exécute donc comme une suite de tests en CI.
Testez en red team uniquement les systèmes que vous possédez ou êtes autorisé à tester. Les attaques générées sont des entrées adversaires réelles.
Installation
| Méthode | Commande |
|---|
| pip | pip install deepteam |
| uv | uv add deepteam |
| Clé de modèle | export OPENAI_API_KEY=... (simulateur + juge) |
| Vérifier | python -c "import deepteam; print('ok')" |
Concepts clés
| Terme | Signification |
|---|
| Vulnerability | Une classe de faiblesse à sonder (p. ex. fuite de PII) |
| Attack | Une technique utilisée pour la déclencher (p. ex. injection de prompt) |
| Enhancement | Une transformation qui rend une attaque plus difficile à détecter |
| Model callback | Votre application, enrobée comme fonction que DeepTeam peut appeler |
| Risk assessment | Le rapport noté de ce qui a réussi |
Exécution minimale du 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:
# appelez votre application/modèle ici et retournez sa sortie
return await my_llm_app(input)
risk = red_team(
model_callback=model_callback,
vulnerabilities=[Bias(), PIILeakage()],
attacks=[PromptInjection()],
)
print(risk)
| Argument | Objectif |
|---|
model_callback | Adaptateur à votre système testé |
vulnerabilities | Quelles faiblesses sonder |
attacks | Quelles techniques utiliser |
attacks_per_vulnerability_type | Volume de cas de test |
Catégories de vulnérabilités
| Catégorie | Sonde pour |
|---|
PIILeakage | Fuite de données personnelles |
Bias | Biais sexiste/racial/religieux/politique |
Toxicity | Sortie nuisible ou abusive |
PromptLeakage | Divulgation du prompt système |
ExcessiveAgency | Effectuer des actions non autorisées |
Misinformation | Affirmations factuelles/non soutenues |
IllegalActivity | Conformité aux instructions dangereuses |
Robustness | Détournement / surreliance d’entrée |
Attaques et améliorations
| Attaque single-turn | Technique |
|---|
PromptInjection | Instructions injectées |
Roleplay | Contournement basé sur le rôle |
Base64 / ROT13 / Leetspeak | Evasion par codage |
Multilingual | Contournement non-anglais |
MathProblem | Obfuscation via cadrage |
| Attaque multi-turn | Technique |
|---|
LinearJailbreaking | Tours d’escalade |
TreeJailbreaking | Recherche de branche pour un contournement |
CrescendoJailbreaking | Escalade progressive |
Exécution en CI
# red_team.py — échouez la construction si des problèmes de gravité élevée apparaissent
risk = red_team(model_callback=cb, vulnerabilities=[...], attacks=[...])
assert risk.overall_score >= THRESHOLD, "Red team failures detected"
| Pratique | Pourquoi |
|---|
| Épingler un ensemble de scénarios | Résultats comparables entre les exécutions |
| Contrôler la gravité | Bloquer uniquement sur les régressions à haut risque |
| Stocker les rapports | Suivre la posture au fil du temps |
| Réexécuter au changement de prompt | Les prompts sont la surface de contrôle |
DeepTeam vs outils connexes
| Aspect | DeepTeam | garak | PyRIT | promptfoo |
|---|
| Couche | Application | Modèle | Modèle + multi-turn | Application |
| Style | Suite pythonique | Scanner CLI | SDK d’orchestration | Config + CLI |
| Multi-turn | Oui | Limité | Fort | Oui |
| Meilleur pour | Red teaming automatisé au niveau de l’application | Larges sondes de modèle | Recherche d’attaque complexe | Éval CI + red team |
Complète garak (sondes au niveau du modèle) et promptfoo (éval + CI) ; exécutez plus d’un — ils capturent différentes défaillances.
Ressources