Aller au contenu

DeepTeam - Framework de Red Teaming pour LLM

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éthodeCommande
pippip install deepteam
uvuv add deepteam
Clé de modèleexport OPENAI_API_KEY=... (simulateur + juge)
Vérifierpython -c "import deepteam; print('ok')"

Concepts clés

TermeSignification
VulnerabilityUne classe de faiblesse à sonder (p. ex. fuite de PII)
AttackUne technique utilisée pour la déclencher (p. ex. injection de prompt)
EnhancementUne transformation qui rend une attaque plus difficile à détecter
Model callbackVotre application, enrobée comme fonction que DeepTeam peut appeler
Risk assessmentLe 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)
ArgumentObjectif
model_callbackAdaptateur à votre système testé
vulnerabilitiesQuelles faiblesses sonder
attacksQuelles techniques utiliser
attacks_per_vulnerability_typeVolume de cas de test

Catégories de vulnérabilités

CatégorieSonde pour
PIILeakageFuite de données personnelles
BiasBiais sexiste/racial/religieux/politique
ToxicitySortie nuisible ou abusive
PromptLeakageDivulgation du prompt système
ExcessiveAgencyEffectuer des actions non autorisées
MisinformationAffirmations factuelles/non soutenues
IllegalActivityConformité aux instructions dangereuses
RobustnessDétournement / surreliance d’entrée

Attaques et améliorations

Attaque single-turnTechnique
PromptInjectionInstructions injectées
RoleplayContournement basé sur le rôle
Base64 / ROT13 / LeetspeakEvasion par codage
MultilingualContournement non-anglais
MathProblemObfuscation via cadrage
Attaque multi-turnTechnique
LinearJailbreakingTours d’escalade
TreeJailbreakingRecherche de branche pour un contournement
CrescendoJailbreakingEscalade 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"
PratiquePourquoi
Épingler un ensemble de scénariosRésultats comparables entre les exécutions
Contrôler la gravitéBloquer uniquement sur les régressions à haut risque
Stocker les rapportsSuivre la posture au fil du temps
Réexécuter au changement de promptLes prompts sont la surface de contrôle

DeepTeam vs outils connexes

AspectDeepTeamgarakPyRITpromptfoo
CoucheApplicationModèleModèle + multi-turnApplication
StyleSuite pythoniqueScanner CLISDK d’orchestrationConfig + CLI
Multi-turnOuiLimitéFortOui
Meilleur pourRed teaming automatisé au niveau de l’applicationLarges sondes de modèleRecherche 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