内容审核
内容审核是在数字应用程序中维护安全、尊重和富有成效的环境的关键方面。在本指南中,我们将讨论如何使用 Claude 在您的数字应用程序中进行内容审核。
访问我们的内容审核指南,查看使用 Claude 实现内容审核的示例。
使用 Claude 构建之前
决定是否使用 Claude 进行内容审核
以下是一些关键指标,表明您应该使用像 Claude 这样的 LLM,而不是传统的机器学习或基于规则的方法进行内容审核:
生成需要审核的内容示例
在开发内容审核解决方案之前,首先创建应该被标记和不应该被标记的内容示例。确保包括边缘案例和具有挑战性的场景,这些场景可能难以被内容审核系统有效处理。之后,审查您的示例以创建一个明确定义的审核类别列表。 例如,社交媒体平台生成的示例可能包括以下内容:
有效审核这些示例需要对语言有细微的理解。在评论”This movie was great, I really enjoyed it. The main actor really killed it!”中,内容审核系统需要认识到”killed it”是一个比喻,而不是表示实际的暴力。相反,尽管没有明确提到暴力,评论”Delete this post now or you better hide. I am coming after you and your family.”应该被内容审核系统标记。
unsafe_categories
列表可以根据您的具体需求进行定制。例如,如果您希望防止未成年人在您的网站上创建内容,您可以将”Underage Posting”添加到列表中。
如何使用 Claude 审核内容
选择合适的 Claude 模型
在选择模型时,考虑数据的大小很重要。如果成本是一个考虑因素,像 Claude 3 Haiku 这样的较小模型是一个很好的选择,因为它具有成本效益。以下是对一个每月接收十亿帖子的社交媒体平台进行文本审核的成本估算:
-
内容大小
- 每月帖子数:10亿
- 每个帖子的字符数:100
- 总字符数:1000亿
-
估计的令牌数
- 输入令牌:286亿(假设每3.5个字符1个令牌)
- 被标记的消息百分比:3%
- 每个被标记消息的输出令牌:50
- 总输出令牌:15亿
-
Claude 3 Haiku 估计成本
- 输入令牌成本:2,860 MTok * 715
- 输出令牌成本:1,500 MTok * 1,875
- 月度成本:1,875 = $2,590
-
Claude 3.5 Sonnet 估计成本
- 输入令牌成本:2,860 MTok * 8,580
- 输出令牌成本:1,500 MTok * 22,500
- 月度成本:22,500 = $31,080
explanation
字段,可以进一步减少输出令牌。构建强大的提示
为了使用 Claude 进行内容审核,Claude 必须理解您的应用程序的审核要求。让我们从编写一个允许您定义审核需求的提示开始:
在这个示例中,moderate_message
函数包含一个评估提示,其中包括不安全内容类别和我们希望评估的消息。提示要求 Claude 根据我们定义的不安全类别评估消息是否应该被审核。
然后解析模型的评估以确定是否存在违规。如果存在违规,Claude 还会返回被违反的类别列表,以及解释为什么该消息不安全的原因。
评估您的提示
内容审核是一个分类问题。因此,您可以使用我们的分类指南中概述的相同技术来确定内容审核系统的准确性。
一个额外的考虑是,您可以不将内容审核视为二元分类问题,而是创建多个类别来表示各种风险级别。创建多个风险级别允许您调整审核的严格程度。例如,您可能想要自动阻止被认为是高风险的用户查询,而具有多个中等风险查询的用户则被标记为需要人工审核。
这段代码实现了一个assess_risk_level
函数,使用 Claude 来评估消息的风险级别。该函数接受消息和不安全类别列表作为输入。
在函数内部,为 Claude 生成了一个提示,包括要评估的消息、不安全类别和评估风险级别的具体说明。提示指示 Claude 以 JSON 对象的形式响应,包括风险级别、违反的类别和可选的解释。
这种方法通过分配风险级别来实现灵活的内容审核。它可以无缝集成到更大的系统中,根据评估的风险级别自动过滤内容或标记评论以进行人工审核。例如,在执行此代码时,评论”Delete this post now or you better hide. I am coming after you and your family.”由于其危险威胁被识别为高风险。相反,评论”Stay away from the 5G cellphones!! They are using 5G to control you.”被归类为中等风险。
部署您的提示
一旦您对解决方案的质量有信心,就该将其部署到生产环境中了。以下是在生产中使用内容审核时需要遵循的一些最佳实践:
-
**向用户提供清晰的反馈:**当用户输入被阻止或响应由于内容审核而被标记时,提供信息丰富和建设性的反馈,帮助用户理解为什么他们的消息被标记以及如何适当地重新表述。在上面的编码示例中,这是通过 Claude 响应中的
explanation
标签来完成的。 -
**分析被审核的内容:**跟踪被审核系统标记的内容类型,以识别趋势和潜在的改进领域。
-
**持续评估和改进:**使用精确度和召回率跟踪等指标定期评估内容审核系统的性能。使用这些数据来迭代改进您的审核提示、关键词和评估标准。
提高性能
在复杂的场景中,除了标准的提示工程技术之外,考虑其他策略来提高性能可能会有帮助。以下是一些高级策略:
定义主题并提供示例
除了在提示中列出不安全类别外,还可以通过提供与每个类别相关的定义和短语来进一步改进。
moderate_message_with_definitions
函数通过允许每个不安全类别与详细定义配对来扩展早期的moderate_message
函数。这在代码中通过将原始函数中的unsafe_categories
列表替换为unsafe_category_definitions
字典来实现。这个字典将每个不安全类别映射到其相应的定义。类别名称和它们的定义都包含在提示中。
值得注意的是,Specialized Advice
类别的定义现在指定了应该禁止的财务建议类型。因此,评论”It’s a great time to invest in gold!”,之前通过了moderate_message
评估,现在触发了违规。
考虑批处理
在不需要实时审核的情况下,考虑批量审核消息以降低成本。在提示的上下文中包含多个消息,并要求 Claude 评估哪些消息应该被审核。
在这个示例中,batch_moderate_messages
函数通过单个 Claude API 调用处理整批消息的审核。
在函数内部,创建了一个包含要评估的消息列表、定义的不安全内容类别及其描述的提示。提示指示 Claude 返回一个 JSON 对象,列出所有包含违规的消息。响应中的每条消息都由其 id 标识,该 id 对应于消息在输入列表中的位置。
请记住,为您的特定需求找到最佳批处理大小可能需要一些实验。虽然更大的批处理大小可以降低成本,但也可能导致质量略有下降。此外,您可能需要增加 Claude API 调用中的max_tokens
参数以适应更长的响应。有关您选择的模型可以输出的最大令牌数的详细信息,请参考模型比较页面。