第一部分:客户端 AI 以对抗在线不良信息

发布时间:2024 年 11 月 13 日

仇恨言论、骚扰和在线辱骂已成为普遍存在的在线问题。有害评论让重要的声音沉默,并驱赶用户和客户。不良信息检测可以保护您的用户,并创建更安全的在线环境。

在这个分为两部分的系列文章中,我们将探讨如何使用 AI 在源头(用户的键盘)检测和缓解不良信息。

在第一部分中,我们将讨论这种方法的使用场景和优势。

在第二部分中,我们将分享实施方案,包括代码示例和用户体验技巧。

为什么要执行客户端不良信息检测

Demo of comment posting.
客户端不良信息检测的一个示例:当用户停止键入评论时,不良信息分析会在浏览器中运行,并实时显示警告。请参阅演示

优势

客户端不良信息检测是有效的首道防线,也是对服务器端检查的绝佳补充。客户端不良信息检测具有多重优势

  • 尽早检测不良信息。通过客户端检查,您可以在源头捕获不良信息,而无需接触服务器。
  • 启用实时检查。利用客户端速度构建低延迟应用程序,并向用户提供即时反馈。
  • 减少或优化服务器端工作负载。减少服务器端工作负载和不良信息检测成本:首先,因为您面向用户的提示可能有助于减少不良评论的数量,其次,因为在某些评论到达服务器之前将其标记为可能有害,有助于您在服务器端检查中优先处理这些评论。
  • 减轻人工负担。减轻人工审核员的负担。

使用场景

以下是构建客户端不良信息检测的几个可能原因

  • 评论系统中的即时检测。向起草不良评论的用户提供即时反馈,鼓励他们在发布前重新措辞。借助客户端 AI,您无需 API 密钥,无需运行时服务器端分类成本,且延迟低,即可实现此目的。这对于聊天应用来说可能非常理想。
  • 实时聊天中的实时审核。快速识别并标记用户的不良信息,以便审核员立即介入。

保留服务器端检查

虽然客户端不良信息检测速度很快,但精通前端的恶意用户可能会禁用它。此外,没有任何不良信息检测系统是 100% 准确的。

由于这些原因,我们强烈建议您仍然实施或保留使用服务器的额外审核,而不是仅依赖客户端不良信息检测。例如,使用 Perspective API,通过异步服务器端审核来补充您的实时客户端检查。对于全面的方法,您可以将这些方法与人工审核相结合。

注意事项

客户端不良信息检测需要将分类模型下载到您的网页中,通常还需要客户端 AI 库。

考虑其影响

  • 模型托管和投放成本。模型可能很大。
  • 性能和用户体验。库和模型会增加您的捆绑包大小。

在决定这是否适合您的使用场景之前,请考虑其优势。应用客户端 AI 的性能最佳实践缓存模型,以便下载只是一次性成本。

内容不良信息分类的工作原理

在我们查看完整实施方案之前,先了解一下不良信息检测的要点。

不良信息检测模型分析现有文本,而不是生成新内容(生成式 AI)。这是一项经典的 NLP(自然语言处理)任务。

自然语言处理任务。来源:HuggingFace

不良信息检测依赖于文本分类器,这些分类器将文本分类为可能有害或无害。不良信息分类器将文本作为输入,并为其分配各种不良信息标签以及分数。分数范围为 0 到 1。分数越高,表示输入更有可能是有害信息。

不良信息检测依赖于文本分类器,这些分类器将文本分类为可能有害或无害。

User input is classified and then scored.

Xenova/toxic-bert 模型为例,这是 unitary/toxic-bert 的 Web 兼容版本。它提供六个标签

  • toxic
  • severe_toxic
  • insult
  • obscene
  • identity_hate
  • threat

诸如 toxicsevere_toxic 等标签表示总体不良信息。

其他标签更细粒度。它们识别特定类型的不良信息,例如 identity_hate(关于个人身份的欺凌或威胁,例如种族、宗教、性别认同等)或 threat(表示意图造成损害的陈述)。

不同的不良信息模型有不同的分类方法。以下是一些具有代表性的示例。

在此示例中,以下输入包含单词“hate”并且是针对个人的,因此 toxicity 分数很高 (0.92)。未识别出特定的不良信息类型,因此其他分数较低。

Input: I hate you
Output of the toxicity classifier:
[
{ label: 'toxic', score: 0.9243140482902527 },
{ label: 'insult', score: 0.16187334060668945 },
{ label: 'obscene', score: 0.03452680632472038 },
{ label: 'identity_hate', score: 0.0223250575363636 },
{ label: 'threat', score: 0.16187334060668945 },
{ label: 'severe_toxic', score: 0.005651099607348442 }
]

在下一个示例中,输入具有总体仇恨语气,因此被赋予较高的 toxicity 分数 (0.92)。由于明确提到了损害,threat 分数也很高 (0.81)。

Input: I hate your garden, and I will kill your plants
Output of the toxicity classifier:
[
{ label: 'toxic', score: 0.9243140482902527 },
{ label: 'insult', score: 0.16187334060668945 },
{ label: 'obscene', score: 0.03452680632472038 },
{ label: 'identity_hate', score: 0.0223250575363636 },
{ label: 'threat', score: 0.819197041168808937 },
{ label: 'severe_toxic', score: 0.005651099607348442 }
]

下一步

现在您了解了背景信息,可以开始构建客户端 AI 不良信息检测系统

阅读第二部分