护栏
护栏(guardrails)是围绕 LLM 构建的一组规则、过滤器和校验层,用以让模型的输入和输出保持安全、切题并符合政策。它们位于用户与模型之间,以及模型与下游系统之间,拦截模型自身可能产生的问题。
护栏(guardrails)是围绕 LLM 构建的一组规则、过滤器和校验层,用以让模型的输入和输出保持安全、切题并符合政策。它们位于用户与模型之间,以及模型与下游系统之间,拦截模型自身可能产生的问题。
为什么重要
基础 LLM 会乐于回答跑题的问题、在对抗性提示下生成有害内容、泄露提示词指令,还会返回格式错误的数据。在没有护栏的情况下上线 LLM 功能,就等于把这些失败模式直接推给用户。每一个规模化的生产级 LLM 系统,无论是 ChatGPT、Claude、Gemini 还是企业部署,都运行着分层的护栏;而 NVIDIA NeMo Guardrails、Guardrails AI 和 LangChain 的 constitutional AI 等框架也已成为标准基础设施。
护栏的类型
输入护栏:在用户输入到达模型之前进行校验。
- 拒绝提示注入尝试
- 拦截个人身份信息(PII)
- 过滤有害或跑题的问题
- 对每个用户进行限流
输出护栏:在返回模型输出之前进行校验。
- 对照来源核查捏造的事实
- 拦截不被允许的内容(暴力、自残、违法建议)
- 强制格式(JSON 结构、最大长度)
- 扫描是否泄露了系统提示词或内部指令
主题护栏:让助手保持在职责范围内。
- 客服机器人拒绝讨论政治
- 编程助手拒绝编写恶意软件
- 通常实现为“如果跑题,就用预设话术引导回正题”
行为护栏:风格与语气规则。
- 维持品牌语调
- 绝不做出产品无法兑现的承诺
- 用用户的语言作答
实现方式
基于规则的过滤器:正则表达式、黑名单和分类器,速度快且具有确定性。
基于 LLM 的分类器:用一个小而快的模型(Claude Haiku、GPT-4o-mini)判断给定的输入/输出是否违反政策。召回率高于正则,但会增加延迟。
结构化输出 + 结构校验:从设计上让某些失败模式不可能发生。参见结构化输出词条。
Constitutional AI / 自我批判:模型在回答前,对照一套书面原则审查并修订自己的输出。
混合方式:大多数生产系统会叠加多种方法,先用廉价的正则,再对模糊情况使用 LLM 分类器。
权衡取舍
延迟:每一道护栏都会增加时间。输入护栏 + 输出护栏可能让往返时间翻倍。
误报(False positives):调得过严的护栏会拒绝合法请求,令用户沮丧。
漏报(False negatives):调得过松的护栏会放过真正的政策违规。
成本:基于 LLM 的护栏会让受保护接口的推理账单翻倍甚至增至三倍。
维护:护栏会随着攻击者的适应而失效。要预期持续的调优。
常见错误
只依赖系统提示词:系统提示词可以被越狱。真正的护栏位于模型之外。
只防护输出:输入护栏能在提示注入污染对话之前将其拦截。
二元式拒绝:“我无法帮你处理这个”会毁掉用户体验。一次好的拒绝会引导用户转向有用的方向。
不记录日志:看不到的东西无法调优。请记录每一次护栏触发以供复查。
一次性调优:威胁模型每月都在变化。护栏需要有固定的复查节奏。
Sources: