DeepTeam - LLM レッドティーミングフレームワーク チートシート
DeepTeam は DeepEval チームが開発したオープンソースの LLM レッドティーミングフレームワーク です。LLM アプリケーションに対する敵対的攻撃をシミュレートします。プロンプトインジェクション、ジェイルブレイク、個人情報漏洩、過度な能力委譲、バイアスなど、脆弱性とそれを回避防御を重ねる攻撃拡張のライブラリを使用します。その基本的な思想は、レッドティーミングは繰り返し可能で自動化されたべきで、一度限りの手動演習ではなく、CI のテストスイートのように実行されるべきということです。
自分が所有または許可を得たシステムのみでレッドティームを実行してください。生成された攻撃は実在する敵対的入力です。
インストール
| 方法 | コマンド |
|---|
| pip | pip install deepteam |
| uv | uv add deepteam |
| モデルキー | export OPENAI_API_KEY=... (シミュレーターと判定用) |
| 確認 | python -c "import deepteam; print('ok')" |
コア概念
| 用語 | 意味 |
|---|
| Vulnerability | 調査する弱点クラス (例: 個人情報漏洩) |
| Attack | それをトリガーするために使用される技術 (例: プロンプトインジェクション) |
| Enhancement | 攻撃をより検出しにくくする変換 |
| Model callback | あなたのアプリで、DeepTeam が呼び出せる関数としてラップされたもの |
| Risk assessment | 何が成功したかのスコア付きレポート |
最小限のレッドティーム実行
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:
# あなたのアプリ/モデルをここで呼び出して出力を返す
return await my_llm_app(input)
risk = red_team(
model_callback=model_callback,
vulnerabilities=[Bias(), PIILeakage()],
attacks=[PromptInjection()],
)
print(risk)
| 引数 | 目的 |
|---|
model_callback | テスト対象システムへのアダプタ |
vulnerabilities | 調査する弱点 |
attacks | 使用する技術 |
attacks_per_vulnerability_type | テストケースのボリューム |
脆弱性カテゴリ
| カテゴリ | 調査対象 |
|---|
PIILeakage | 個人データの漏洩 |
Bias | 性別/人種/宗教/政治的バイアス |
Toxicity | 有害または虐待的な出力 |
PromptLeakage | システムプロンプト開示 |
ExcessiveAgency | 無許可のアクション実行 |
Misinformation | 事実的/根拠のない主張 |
IllegalActivity | 安全でない命令コンプライアンス |
Robustness | ハイジャック/入力への過度な依存 |
攻撃と拡張
| シングルターン攻撃 | 技術 |
|---|
PromptInjection | 注入された命令 |
Roleplay | ペルソナベースのバイパス |
Base64 / ROT13 / Leetspeak | エンコーディング回避 |
Multilingual | 非英語バイパス |
MathProblem | フレーミングによる難読化 |
| マルチターン攻撃 | 技術 |
|---|
LinearJailbreaking | ターン数の段階的増加 |
TreeJailbreaking | バイパスを探すブランチ検索 |
CrescendoJailbreaking | 段階的なエスカレーション |
CI での実行
# red_team.py — 重度の問題が出現した場合、ビルドを失敗させる
risk = red_team(model_callback=cb, vulnerabilities=[...], attacks=[...])
assert risk.overall_score >= THRESHOLD, "Red team failures detected"
| 実践 | 理由 |
|---|
| シナリオセットをピン留め | 実行間で比較可能な結果 |
| 重大度でゲート | 高リスク回帰のみでブロック |
| レポートを保存 | 時間経過に伴う態勢を追跡 |
| プロンプト変更時に再実行 | プロンプトは制御面 |
DeepTeam 対 関連ツール
| 側面 | DeepTeam | garak | PyRIT | promptfoo |
|---|
| レイヤー | アプリケーション | モデル | モデル + マルチターン | アプリケーション |
| スタイル | Pythonic スイート | CLI スキャナー | オーケストレーション SDK | Config + CLI |
| マルチターン | はい | 限定的 | 強力 | はい |
| 最適用途 | アプリレベルの自動レッドティーミング | 広範なモデルプローブ | 複雑な攻撃研究 | CI 評価 + レッドティーム |
garak (モデル層プローブ) と promptfoo (評価 + CI) を補完します。複数実行してください。異なる障害をキャッチします。
リソース