创建输入和输出保护措施

生成式 AI 应用通常依赖于输入和输出数据过滤(有时称为保护措施)来帮助确保负责任的模型行为。safeguards输入和输出过滤技术检查进出模型的数据。

保护措施和现成的安全分类器

即使事先进行了调整以保障安全,并设计了精心设计的提示模板,模型仍然有可能输出会导致意外伤害的内容。为了进一步改善这种情况,内容分类可以额外添加一层保护。内容分类可以应用于输入和输出。

输入分类器通常用于过滤不适合在应用中使用并且可能导致模型违反安全政策的内容。输入过滤器通常针对那些试图规避您的内容政策的对抗性攻击。输出分类器可以进一步过滤模型输出,从而捕获可能违反安全政策的意外生成。建议您设置能够涵盖您的所有内容政策的分类。

Google 开发了用于内容安全的现成分类器,可用于过滤输入和输出:

  • Perspective API 是一款免费 API,使用机器学习模型对评论可能对对话可能产生的感知影响进行评分。它提供的分数捕获了评论是恶意、威胁、侮辱、偏离主题等的可能性。
  • 文本审核服务是一种 Google Cloud API,可在低于特定使用限额时使用,它使用机器学习技术对照安全属性列表(包括各种可能有害的类别和可能被视为敏感的主题)分析文档。

请务必评估现成的分类器在实现政策目标方面的效果,并对失败情况进行定性评估。另外还需要注意的是,过度过滤还可能会导致意外的危害,并降低应用的实用性,这意味着,还必须查看可能会发生过度过滤的情况。如需详细了解此类评估方法,请参阅评估模型和系统的安全性

创建自定义安全分类器

如果现成的 API 未涵盖您的政策,或者您想要创建自己的分类器,参数高效调优技术(如提示调优LoRA)可以提供有效的框架。在这些方法中,您可以使用有限数量的数据来训练模型的一小部分重要参数,而不是对整个模型进行微调。这样,模型就能以相对较少的训练数据和计算能力学习新行为,例如如何针对新的安全用例进行分类。通过这种方法,您可以为自己的用户和任务开发个性化安全工具。

为了说明其工作原理,此 Codelab 展示了设置“敏捷分类器”所需的代码。此 Codelab 介绍了提取数据、为 LLM 设置数据格式、训练 LoRA 权重以及评估结果的步骤。借助 Gemma,只需几行代码即可构建这些强大的分类器。如需了解更详细的概览,我们的研究论文 Towards Agile Text Classifiers for Everyone 展示了如何使用这些技术训练各种安全任务,从而仅利用几百个训练示例实现一流的性能。

在本教程中,您可以使用 ETHOS 数据集训练仇恨言论分类器,该数据集是一个公开提供的用于检测仇恨言论的数据集,基于 YouTube 和 Reddit 评论构建而成。在较小的 Gemma 模型上训练时,仅用 200 个样本(略少于数据集的 1⁄4)时的 F1 得分为 0.80,ROC-AUC 为 0.78。此结果与该排行榜排行榜中报告的最高水平结果相当。与排行榜中的其他分类器一样,基于这 800 个样本进行训练时,基于 Gemma 的敏捷分类器的 F1 得分为 83.74,ROC-AUC 得分为 88.17。您可以立即使用此分类器,也可以根据 Gemma Agile 分类器教程进行调整。

Gemma Agile 分类器教程

启动 Codelab 启动 Google Colab

设置保护措施的最佳实践

强烈建议使用安全分类器。但是,如果内容被屏蔽,则保护措施可能会导致生成模型无法为用户生成任何内容。应用需要经过精心设计,以应对这种情况。大多数常用的聊天机器人都通过提供预设的答案来应对这种情况(“抱歉,我是一个语言模型,无法帮助您处理此请求”)。

在实用性和无害性之间找到适当的平衡:在使用安全分类器时,请务必了解它们会犯错,包括误报(例如,声称某个输出不安全)和假负例(未能将某输出标记为不安全)。通过使用 F1、精确率、召回率和 AUC-ROC 等指标评估分类器,您可以确定如何权衡假正例与假负例错误。通过更改分类器的阈值,您可以帮助找到一种理想的平衡点,既能避免过度过滤输出,又能提供适当的安全性。

检查分类器是否存在意外偏差:与任何其他机器学习模型一样,安全分类器也可能会传播非预期偏见,例如社会文化成见。您需要对应用进行适当评估,以找出可能存在问题的行为。特别是,内容安全分类器可能会过度触发与身份相关的内容,而这些内容更常成为网上侮辱性语言的目标。例如,当 Perspective API 首次发布时,该模型在引用某些身份组(博客)的评论中返回了更高的恶意评分。之所以发生这种过度触发的行为,是因为在评论中提及身份字词代表更经常被攻击的群体(例如,“黑人”“穆斯林”“女权主义者”“女性”“同性恋”等字词)的恶意言论往往更具恶意。如果用于训练分类器的数据集对于包含特定字词的评论存在很大的失衡,分类器可能会过度泛化并认为包含这些字词的所有评论很可能不安全。了解 Jigsaw 团队如何缓解这种意外偏见。

开发者资源