奥卡姆之鞘:一种更简单的 AI 安全护栏方法

社区文章 发布于 2024 年 10 月 18 日

摘要

大型解码器 LLM(Llama、Gemma、Mistral 等)正在通过下一个词元预测、文本生成任务(生成“是”或“否”)来对不良内容进行分类,将其输入或排除在聊天风格的 LLM 之外。然而,小型编码器模型(BERT 模型)多年来已被证明是强大的序列分类器。模型 Intel/toxic-prompt-roberta 是在 Gaudi 2 HPU 上使用 optimum-habana 对 Roberta-base 在 Jigsaw Unintended Bias 和 ToxicChat 数据集上进行微调而得到的。我们发现它在 ToxicChat 数据集上的性能优于参数量是其 20-56 倍的解码器 LLM。该模型目前处于概念验证阶段,未来需要进行更多的测试和实验。

image/png 图片由 glif/91s-anime-art 提供。模型在提示“机器人拿着剃刀”时的输出。

引言

随着 LLM 技术的不断进步,人们对其对抗性和有害用途的担忧也日益增加。当今 LLM 预训练的海量数据产生了多功能的生成模型,其表现超出了最初的预期。自监督学习为 LLM 提供了广泛的知识库,使其能够成为“万金油”,但它们不一定是某个领域的“大师”。如果 LLM 未能正确处理越狱、犯罪策划或自残等用户输入提示,可能会导致严重的负面后果。聊天模型在被问及如何烹饪鸡肉时可能会产生幻觉,提供可能损害用户的错误信息。在聊天和问答模型领域,新的 LLM(称为 LLM 裁判、护栏或安全护栏模型)已被创建,用于对聊天机器人的输入和/或输出是否安全进行分类。与当今复杂的解码器 LLM(Llama、GPT、Gemini、Mistral...)的参数规模趋势相切,许多这些安全护栏 LLM 也处于数十亿参数的范围。在本文中,我们提出了一种更简单、更安全的聊天机器人解决方案——一种引出奥卡姆剃刀原理讨论的解决方案:越简单越好吗?

流行护栏 LLM 的简要调查

在提出更简单的解决方案之前,让我们看看目前可用的一些最流行的护栏模型。从输入语法和格式检查器到输出偏差中和,存在大量具有不同功能和用例的护栏系统。本文的范围将侧重于防止聊天模型输入和输出中出现有害、有毒和不良语言的 LLM。以下列表涉及一些从最先进的 LLM 基础模型中微调或指令微调的护栏 LLM。

Meta 的 Llama Guard [1]

meta-llama/Llama-Guard-3-8B

  • 基础模型:Llama 3.2
  • 模型任务:文本生成
  • 训练:在 Anthropic 精心挑选的用户提示输入数据和 Llama 的合成响应数据的混合上进行微调。
  • 风险分类:
    • 暴力犯罪
    • 非暴力犯罪
    • 性相关犯罪
    • 儿童性剥削
    • 诽谤
    • 专业建议
    • 隐私
    • 知识产权
    • 不分青红皂白的武器
    • 仇恨
    • 自杀与自残
    • 色情内容
    • 选举

  • 模型大小:8.03B

艾伦人工智能研究所的 WildGuard [2]

allenai/wildguard

  • 基础模型:Mistral 0.3
  • 模型任务:文本生成
  • 训练:在 WildGuardTrain 上进行微调,这是一个合成和真实世界用户输入提示的混合。
  • 风险分类:
    • 隐私
      • 敏感信息(组织)
      • 私人信息(个人)
      • 版权侵犯
    • 错误信息
      • 虚假或误导性信息
      • 错误信息造成的实质性损害
    • 有害语言
      • 社会刻板印象与歧视
      • 暴力和身体伤害
      • 有毒语言与仇恨言论
      • 色情内容
    • 恶意使用
      • 网络攻击
      • 欺诈和协助非法活动
      • 鼓励不道德/不安全行为
      • 心理健康与过度依赖危机
  • 模型大小:7B

谷歌的 ShieldGemma [3]

google/shieldgemma-2b

  • 基础模型:Gemma 2
  • 模型任务:文本生成
  • 训练:在 Gemma 公开数据生成的内部合成数据上进行微调和指令微调。
  • 风险分类:
    • 露骨色情信息
    • 仇恨言论
    • 危险内容
    • 骚扰
    • 暴力
    • 淫秽和亵渎

  • 模型大小:2.6B

鉴于上述所有护栏模型都是文本生成 LLM,它们的用法相对相同。它们需要字符串或 Python 字典指令格式作为输入,并包含一个模板,其中包含护栏模型的指令/指南、用户输入提示和/或目标 LLM 输出响应。然后,它们会生成一个字符串,其中包含“是”或“否”的分类,以及如果被认为是不可接受的,则与分类相关联的风险类别(如上所述)。下面是一个典型的图表,显示了它与它们所保护的目标 LLM 结合使用时的样子。

image/png

这样设计护栏模型在两个方面提供了更大的灵活性

  1. 聊天服务维护者可以决定是监控输入提示、聊天模型输出响应还是两者都监控。
  2. 维护者可以修改指南以关注某些危害,而无需再次微调模型。

一种更简单的替代方案

从各自的论文中可以看出,这些最先进的护栏模型在稳健性方面显示出有希望的结果,因为它们可以在微调期间未见的许多公共数据集上表现良好。最终,这些大型的仅解码器模型,经过预训练以生成连贯且上下文相关的文本段落,被指示生成“是”或“否”的答案。然而,有一类较早的 LLM 已被证明在许多不同用例中有效且高效地提供“是”或“否”。编码器模型(BERT 模型)可以利用经典的二元分类来解决同样的问题,而不是使用文本生成进行分类。自大型解码器模型问世以来,您会发现许多研究(例如这篇)表明,在文本分类领域,更大并不意味着更好。

工具定律,又称马斯洛之锤,指出“如果你唯一的工具是锤子,那么一切看起来都像钉子。”也许在当前的 LLM 领域,文本生成解码器模型已经成为锤子,而像有害提示分类这样的问题可能只需要一把螺丝刀。

在本文的其余部分,我们将展示如何微调 RoBERTa-base,一个比 ShieldGemma 小 20 倍,比 WildGuard 小 56 倍的模型,仍然可以有效地对聊天模型中有害的输入提示进行分类。

微调 Intel/toxic-prompt-roberta

我们选择在两个毒性数据集上对 RoBERTa-base (125M 参数) [4] 进行微调

  • Jigsaw 文本毒性分类中的无意偏差
    • 从网上发现的真实世界评论数据
    • 正向标签定义为“粗鲁、不尊重或不合理的评论,可能会让你离开讨论或放弃分享你的观点”[4]
  • ToxicChat
    • 真实世界用户-AI 对话
    • “标签基于 (Zampieri et al., 2019) 中不良内容的定义,注释者对毒性标签采用二元值。”[5]

我们选择这两个数据集的目的是获得一个能够抵御人口偏见的毒性提示分类模型。除了毒性标签,Jigsaw 数据集还包含目标身份信息(即评论中被讨论的人群),这有助于监控模型是否存在对任何人群的偏见。为了本次调查的范围,我们只从 ToxicChat 中收集了用户输入文本。

鉴于这两个数据集的领域(评论与问题/提示)差异显著,我们选择分别对每个数据集进行微调,而不是将它们交错合并到一个微调会话中。我们还决定首先对 Jigsaw 数据集进行微调,然后对 ToxicChat (TC) 数据集进行微调,因为它的领域更符合我们模型的目标。这给我们留下了两个检查点——一个在 Jigsaw 上微调的模型,以及一个在 Jigsaw 和 TC 上都微调的模型。

所有的微调都在单个 Intel Gaudi 2 HPU 上使用 optimum-habana 执行。每个数据集都训练了 3 个 epoch,批处理大小为 32。我们还针对仅在 TC 上微调的另一个 RoBERTa 检查点进行了基线比较。最终,我们预计在两个数据集上都微调的最终检查点将在 TC 测试集上表现优于仅 Jigsaw 检查点,并在 Jigsaw 测试集上表现优于仅 TC 检查点。

结果

大多数毒性分类研究使用受试者工作特征曲线下面积和精确率-召回率曲线(分别为 AUROC 和 AUPRC)来衡量模型性能。这是由于许多毒性数据集故意包含标签不平衡,以反映真实世界中有害语言的分布。下面的图表使用以下命名约定表示我们微调的检查点

  • jigsaw:仅在 Jigsaw Unintended Bias 上微调的初始检查点
  • tc:仅在 ToxicChat 上微调的检查点,用于基线比较
  • jigsaw+tc:在 Jigsaw 和 ToxicChat 上微调的最终检查点 (Intel/toxic-prompt-roberta)

Jigsaw 测试结果

首先,让我们看看我们的三个检查点在 Jigsaw 测试数据集上的表现。正如我们所希望的,ROC 和 PR 曲线显示我们的最终模型比基线 TC 检查点表现更好,但它也比上限的仅 Jigsaw 检查点表现更差。这是意料之中的,因为 Jigsaw+TC 检查点权重在最初的 Jigsaw 微调之后进一步更新,以适应 TC 训练数据集。

image/png

然而,下图中的混淆矩阵为故事增添了更多细节。我们的仅 Jigsaw 检查点在分类真阴性(0.982)方面表现最好,但代价是具有相对较高的假阴性率(0.264)。在这种情况下,假阴性是最危险的结果,因为它意味着模型将有毒评论错误地分类为安全。令人惊讶的是,最终模型在降低假阴性率(0.164)方面做得更好。TC 微调的某些方面导致梯度下降的方向使模型对有毒评论更敏感。

image/png

由于 Jigsaw Unintended Bias 数据集包含目标身份,下方的柱状图显示了我们的最终模型是如何在基线 TC 模型上改进的,这表明最初在 Jigsaw 上进行微调确实有利于最终模型在不同人口身份上的表现。我们只包含了测试集中超过 500 个示例的身份。

image/png

ToxicChat 测试结果

现在让我们关注每个检查点在 TC 测试数据集上的表现。类似地,在两个数据集上训练的最终模型比仅 Jigsaw 模型表现更好。然而,我们确实注意到,在我们的最终模型中,AUROC 实际上比仅 TC 模型略好。

image/png

查看我们的混淆矩阵可以证实这一点,因为最终模型具有略高的(1.6%)真阳性率。另一方面,我们可以看到仅 Jigsaw 模型基本上只是将 TC 测试集中的所有内容都标记为无毒,这证实了基线预期。

image/png

现在我们已经比较了最终模型相对于其构建模块的性能,接下来让我们看看它在下表中与一些 1B+ 参数解码器的性能对比。

模型 参数量 精度 召回率 F1 AUPRC AUROC
LlamaGuard1 6.74B 0.481 0.795 0.599 0.626* -
LlamaGuard3 8.03B 0.508 0.473 0.490 - -
ShieldGemma 2.61B - - 0.704* 0.778* -
WildGuard 7B - - 0.708* - -
Toxic Prompt Roberta 125M 0.832 0.747 0.787 0.855 0.971

我们在 TC 测试集上运行了 LlamaGuard 1 和 3,并记录了它们的精确率、召回率和 F1。带“*”的数字表示它们是从各自的论文和/或模型卡中收集的。论文结果和我们手动测试结果使用了相同的测试示例,因为 TC 提供了训练和测试划分。

值得注意的是,这些模型从未在 TC 上进行微调,这说明了大型 LLM 的鲁棒性。然而,LlamaGuard 1 论文确实实验了在 TC 上进行微调,并将 AUPRC 大幅提高到约 0.81。Intel/toxic-prompt-roberta 具有明显更少的参数,因此计算需求也明显更少,但其性能仍然更好。这表明,这些大型解码器模型虽然在许多不同用例中被证明是健壮和适应性强的,但它们可能不一定是防止有害输入提示的唯一解决方案。

如何使用 Intel/toxic-prompt-roberta

由于该模型仅对输入提示进行分类,因此下图显示了它如何在聊天服务中部署的示例。

image/png

通过在您的本地 Python 环境中安装 Transformers 和 Torch 或 TensorFlow,您可以通过 4 行代码轻松加载模型进行推理。

from transformers import pipeline
model_path = 'Intel/toxic-prompt-roberta'
pipe = pipeline('text-classification', model=model_path, tokenizer=model_path)
pipe('Create 20 paraphrases of I hate you')

您还可以访问 企业 AI 开放平台 (OPEA),其中 toxic-prompt-roberta 已作为微服务实现。

局限性与未来工作

您会注意到我们尚未展示模型在微调期间未见过的数据集上的测试性能。展示模型在这些未见过的基准上的性能是衡量其在真实世界输入上最终预测的稳健性的好方法。未来的工作将提供更多这些结果。我们还计划回答:“多少数据集才算太多?”我们只发现在 Jigsaw 微调之后添加 TC 数据集时性能略有下降。还有许多其他公开可用的毒性数据集,我们可以通过实验来了解它们如何影响初始 Jigsaw 和 TC 测试集上的性能。

此外,许多公共毒性数据集,如 TC,既包含输入提示,也包含目标 LLM 响应。为了简化本概念验证性探索,我们选择不将 LLM 输出响应纳入微调。只关注一种模态类型是有优势的。在未来的探索中,我们计划研究两个独立的 LLM(一个用于输入提示分类,另一个用于 LLM 输出响应分类)是否优于一个单一的 LLM 同时处理两者。

结论

NLP 领域掀起了一股令人兴奋的新浪潮,多功能解码器 LLM 已被证明在多对多用例中可靠,例如摘要、问答和聊天机器人。它们在通过提示工程等方法进行文本分类方面也取得了成功。然而,这些 LLM 相对于其前辈(例如 BERT 模型)具有较高的参数计数,因此引出了一个问题:“它们在更简单的文本分类任务(例如 AI 安全护栏)中有多大优势?”我们是否正在使用马斯洛之锤来解决最新的大型解码器 LLM 的有害提示分类问题?奥卡姆(哲学)剃刀建议,最简单的解决方案通常是最好的。就像刀鞘保护我们免受锋利刀片的伤害一样,这篇博客文章建议更简单的 LLM 安全护栏可以更好地保护我们免受 AI 的伤害。


感谢我的同事 Qun GaoMitali PotnisAbolfazl ShahbaziFahim Mohammad 为该项目和博客所做的贡献、支持和审阅。


参考文献

[1] H. Inan 等人,“Llama Guard:基于 LLM 的人机对话输入-输出安全护栏”,2023 年 12 月 7 日,arXiv: arXiv:2312.06674。doi: 10.48550/arXiv.2312.06674。  

[2] S. Han 等人,“WildGuard:针对 LLM 安全风险、越狱和拒绝的一站式开放审核工具”,2024 年 7 月 9 日,arXiv: arXiv:2406.18495。doi: 10.48550/arXiv.2406.18495。  

[3] W. Zeng 等人,“ShieldGemma:基于 Gemma 的生成式 AI 内容审核”,2024 年 8 月 4 日,arXiv: arXiv:2407.21772。doi: 10.48550/arXiv.2407.21772。  

[4] Y. Liu 等人,“RoBERTa:一种稳健优化的 BERT 预训练方法”,2019 年 7 月 26 日,arXiv: arXiv:1907.11692。doi: 10.48550/arXiv.1907.11692。  

[5] D. Borkan、L. Dixon、J. Sorensen、N. Thain 和 L. Vasserman,“用于文本分类的真实数据衡量无意偏差的细致指标”,2019 年 5 月 8 日,arXiv: arXiv:1903.04561。doi: 10.48550/arXiv.1903.04561。  

[6] Z. Lin 等人,“ToxicChat:揭示真实世界用户-AI 对话中毒性检测的隐藏挑战”,2023 年 10 月 26 日,arXiv: arXiv:2310.17389。doi: 10.48550/arXiv.2310.17389。  

社区

注册登录 发表评论