红队工具:Garak、Llama Guard、PyRIT 本节摘要:三个生产工具框定了 2026 红队栈。Llama Guard(Meta)——一个在 14 个 MLCommons 危害类别上微调的 Llama-3.1-8B 分类器;2025 年的 Llama Guard 4 是从 Llama 4 Scout 剪枝而来的 12B 原生多模态分类器。Garak(NVIDIA)——开源 LLM 漏洞扫描器,含针对幻觉、数据泄漏、提示注入、毒性、越狱的静态/动态/自适应探针。PyRIT(Microsoft)——多轮红队战役,含 Crescendo、TAP 与自定义转换链,用于深度利用。这些工具是 2026 红队研究(第 12-15 节)与部署(第 17 节起)之间的生产接口。
本节摘要:三个生产工具框定了 2026 红队栈。Llama Guard(Meta)——一个在 14 个 MLCommons 危害类别上微调的 Llama-3.1-8B 分类器;2025 年的 Llama Guard 4 是从 Llama 4 Scout 剪枝而来的 12B 原生多模态分类器。Garak(NVIDIA)——开源 LLM 漏洞扫描器,含针对幻觉、数据泄漏、提示注入、毒性、越狱的静态/动态/自适应探针。PyRIT(Microsoft)——多轮红队战役,含 Crescendo、TAP 与自定义转换链,用于深度利用。这些工具是 2026 红队研究(第 12-15 节)与部署(第 17 节起)之间的生产接口。
对应原课程:Phase 18 · Lesson 16 ·
red-team-tooling-garak-llamaguard-pyrit(原英文phases/18-ethics-safety-alignment/16-red-team-tooling-garak-llamaguard-pyrit/docs/en.md)。前置:Phase 18 · 12-15。
阅读完本节,你应当能够:
第 12-15 节呈现了攻击面。生产部署需要可重复、可规模化的评估。三个工具主导 2026:Llama Guard(防御分类器)、Garak(扫描器)、PyRIT(战役编排器)。每个瞄准红队生命周期的不同层。
Llama Guard 3 是一个 Llama-3.1-8B 模型,针对 MLCommons AILuminate 14 个类别的输入/输出分类做了微调:暴力犯罪、非暴力犯罪、性相关、CSAM、诽谤、专业建议、隐私、知识产权、无差别武器、仇恨、自杀/自残、性内容、选举、代码解释器滥用。支持 8 种语言。用法:放在 LLM 之前(输入审核)、之后(输出审核)或两者。两种用法产生不同训练分布——Llama Guard 3 作为单一模型同时处理两者。
Llama Guard 3-1B-INT4(arXiv:2411.17713,440MB,移动 CPU 上约 30 tokens/s)是量化的边缘变体。Llama Guard 4(2025 年 4 月)是 12B、原生多模态,从 Llama 4 Scout 剪枝而来,用一个吃文本 + 图像的分类器取代了 8B 文本和 11B 视觉两个前身。
开源漏洞扫描器。架构:
TrustyAI 把 Garak 与 Llama-Stack 护盾(Prompt-Guard-86M 输入分类器、Llama-Guard-3-8B 输出分类器)集成,做端到端的护盾目标评估。基于层级的评分(TBSA)取代二元 pass/fail——同一探针上,模型可在严重性层级 3 通过、在层级 5 失败。
Python Risk Identification Toolkit。多轮红队战役。围绕:
PyRIT 是 Garak 的「更重表亲」。Garak 跑数千个单轮探针;PyRIT 跑旨在击破特定失败模式的深度多轮战役。
把 Llama Guard 放在模型两侧。夜间跑 Garak 做回归。发布前跑 PyRIT 战役。这是 2026 大多数生产部署的默认配置。
⚠️ 评估陷阱:① 裁判身份——三种工具都能用 LLM 裁判,裁判标定驱动报告的 ASR(第 12 节),必须随工具一并标明;② 探针老化——模型被补丁后,Garak 探针就过时,自适应探针(PAIR 形)比静态探针老化慢;③ Llama Guard 对良性内容的假阳性——早期版本对政治和 LGBTQ+ 内容过度标记,3/4 版标定改善但未按部署校准。
code/main.py 构造玩具 Llama Guard 风格分类器(关键词 + 语义特征覆盖 14 类)、玩具 Garak 框架(探针-检测器循环)、PyRIT 风格多轮转换链。你可以对模拟目标跑三种工具,观察不同的覆盖签名。
def llama_guard_classify(text, side="output"): features = extract(text, semantic=True) # 14 类语义特征 return max(features, key=features.keys) > threshold def garak_harness(target, probes, detectors): for probe in probes: # 静态/动态/自适应 prompt = probe.generate() resp = target.respond(prompt) for det in detectors: if det.is_failure(resp): yield (probe, det, severity=det.severity(resp)) # TBSA def pyrit_campaign(target, seed, converters): p = seed for conv in converters: # 改写→编码→翻译→角色扮演 p = conv(p) r = target.respond(p) if judge(r) == JAILBREAK: return p return None
| 工具 | 层 | 强项 | 局限 |
|---|---|---|---|
| Llama Guard 3/4 | 输入/输出分类器 | 14 类覆盖、多模态(4)、8 语言 | 对良性内容假阳性;未按部署校准 |
| Garak | 漏洞扫描器 | 数千探针、TBSA 层级评分 | 探针随模型补丁老化 |
| PyRIT | 多轮战役编排 | 深度利用、转换链组合 | 算力重,适合发布前而非回归 |
| Prompt-Guard-86M | 输入分类器 | 轻、快,与 Llama Guard 配对 | 仅提示注入,窄 |
设计要点:三种工具互补而非替代——Llama Guard 是运行时防御层,Garak 是广度回归扫描,PyRIT 是深度发布前战役。2026 默认配置是三者叠加 + 标明裁判 + 定期刷新探针。单独任一工具都不构成完整红队。
本节产出 outputs/skill-red-team-stack.md:给它一份部署描述,它命名三种工具中哪些合适、各自配什么、跑什么回归节奏。
code/main.py 是独立玩具,分类器/扫描器/编排器可换成真实工具的 API,三层架构不变。
Easy:运行 code/main.py,对比 Llama Guard 风格分类器在单轮 vs 多轮攻击上的检测率。
Medium:实现一个新 Garak 探针——base64 编码的有害请求。测其被 Llama Guard 风格分类器的检测率。
Medium:给 PyRIT 风格转换链加一个「翻成法语再改写」的转换器,重测攻击成功率。
Hard:读 Llama Guard 3 的危害类别列表,识别两个在训练数据上会对合法开发者内容产生高假阳性的类别。
Hard:对比 Garak 与 PyRIT 的设计原则。论证一个各自是合适工具的部署场景。
下一节,我们看双用途能力评估——WMDP:4157 道生物/网络/化学题,以及它如何既是能力代理,又是遗忘基准。