为了防止大型语言模型(LLMs)产生有毒输出,开发者结合使用输入过滤、输出过滤和模型微调来实现护栏。输入过滤涉及在用户提示到达模型之前对其进行有害内容的筛选,而输出过滤则在将生成的文本返回给用户之前检查其毒性。微调在训练期间调整模型的行为,以减少有害响应。这些方法通常与第三方内容审核工具或自定义规则相结合,以创建分层保障措施。
对于输入过滤,开发者可以使用关键词黑名单或正则表达式模式来标记或阻止包含有害语言的提示。例如,像 /\b(hate|violence|racism)\b/i
这样的正则表达式模式可以检测用户输入中的常见有毒词汇。输出过滤可能涉及将模型的响应通过毒性分类器进行检查,例如 Google 的 Perspective API,该分类器会分配一个毒性分数(例如 0.85/1.0)来标记或修订不安全的文本。在像 Anthropic 的“无害”(Harmless)子集这样的数据集上微调模型,可以通过在训练期间加强安全响应来训练模型避免生成有毒内容。例如,在一个无毒对话数据上微调的模型将学会用诸如“我无法协助处理此类请求”之类的短语来拒绝明确内容的请求。
其他策略包括设置明确的系统提示(例如,“你是一个乐于助人且避免有害内容的助手”)来引导模型的行为。记录和监控输出中的违规行为有助于随着时间的推移改进过滤器。挑战在于平衡安全性和可用性——过于严格的过滤器可能会阻止合法查询,而弱过滤器则可能导致有害输出。结合实时内容审核 API(如 OpenAI 的 Moderation 端点)和自定义逻辑的分层方法可确保稳健性。例如,开发者可能首先对照黑名单检查输入,然后使用 Perspective API 验证输出,最后记录被标记的案例进行人工审查。随着语言和滥用模式的发展,定期更新黑名单并使用新数据进行再训练至关重要。