概览
本指南介绍了适用于文本服务的 PaLM API 可调整安全设置。在原型设计阶段,您可以在六个维度上调整安全设置,以快速评估应用是否需要调整配置限制。默认情况下,安全设置会在全部六个维度上屏蔽概率中等和/或高可能属于不安全内容的内容。此基准安全性设计适用于大多数用例,因此您应仅在应用一直需要调整安全设置时,再调整安全设置。
安全过滤条件
除了可调节的安全过滤器之外,PaLM API 还内置了防范核心危害(例如危及儿童安全的内容)的保护措施。这些类型的危害始终会遭到阻止且无法调整。
可调节的安全过滤器涵盖以下类别:
- 诋毁性内容
- 有害内容
- 色情内容
- 暴力
- 医疗场所
- 危险内容
这些设置使您(开发者)能够确定哪些设置适合您的用例。例如,如果您正在制作视频游戏对话,那么您认为允许添加更多因游戏性质而被评为暴力或危险内容的内容是可以接受的。下面是可能需要在这些安全设置中灵活运用一些其他用例的示例:
用例 | 类别 |
---|---|
反骚扰培训应用 | 诋毁、色情、恶意 |
医学考试 Study Pal | 医疗 |
剧本作者 | 暴力、色情、医疗、危险 |
恶意分类器 | 恶意、诋毁 |
概率与严重程度
PaLM API 根据内容不安全的概率而不是严重程度来屏蔽内容。请务必考虑这一点,因为即使危害的严重程度仍为较高,某些内容不安全的可能性也很低。例如,比较句子:
- 机器人打了我一拳。
- 机器人把我砍伤了。
句子 1 可能会导致不安全概率,但您可能会将句子 2 视为暴力内容的严重程度较高。
因此,每位开发者都必须仔细测试并考虑需要多高的屏蔽级别来支持其关键用例,同时尽可能减少对最终用户造成的影响。
安全设置
您向短信服务发送的请求中包含安全设置。您可以针对您向 API 发出的每个请求进行调整。下表列出了您可以设置的类别,并说明了每个类别涵盖的伤害类型。
类别 | 说明 |
---|---|
诋毁内容 | 针对身份和/或受保护特征发表的负面或有害评论。 |
有恶意 | 粗俗、不雅或亵渎性的内容。 |
色情 | 提及性行为或其他淫秽内容。 |
暴力内容 | 描述针对个人或群体的暴力行为的场景,或对血腥内容的一般描述。 |
危险 | 宣扬、助长或鼓励有害行为。 |
医疗 | 与医疗主题相关的内容 |
您也可以在 API 参考文档中查看这些定义。
下表介绍了您可以针对每个类别调整的屏蔽设置。例如,如果您针对诋毁内容类别将屏蔽设置设为屏蔽少量内容,则所有很有可能成为诋毁内容的内容都会被屏蔽。但可以接受任何概率较低的模型。
如果未设置此政策,默认的屏蔽设置是屏蔽部分人或屏蔽大部分,具体取决于政策类别。
阈值 (Google AI Studio) | 阈值 (API) | 说明 |
---|---|---|
全部不屏蔽 | BLOCK_NONE | 始终显示(无论是否存在不安全内容的概率) |
屏蔽少部分 | BLOCK_ONLY_HIGH | 在存在高风险的不安全内容时屏蔽 |
屏蔽部分内容(默认为包含色情、暴力、危险和医疗内容) | BLOCK_MEDIUM_AND_ABOVE | 出现中等或高概率的不安全内容时屏蔽 |
屏蔽大部分内容(默认为“诋毁内容和恶意评论”) | BLOCK_LOW_AND_ABOVE | 在存在不安全内容的几率较低、中等或较高时屏蔽 |
HARM_BLOCK_THRESHOLD_UNSPECIFIED | 未指定阈值,使用默认阈值进行屏蔽 |
您可以为向文本服务发出的每个请求设定这些设置。如需了解详情,请参阅 HarmBlockThreshold
API 参考文档。
安全反馈
如果内容被屏蔽,来自该 API 的响应会在 ContentFilter.reason
字段中包含被屏蔽的原因。如果原因与安全相关,则响应中还会包含 SafetyFeedback
字段,其中包含用于该请求的安全设置以及安全评分。安全评分包括分类的类别和概率。系统不会返回被屏蔽的内容。
返回的概率对应于块置信度,如下表所示:
概率 | 说明 |
---|---|
忽略 | 内容不安全的可能性微乎其微 |
低 | 内容不安全的可能性很低 |
中等 | 内容不安全的可能性为中等 |
高 | 内容很有可能不安全 |
例如,如果内容因恶意类别的概率较高而被屏蔽,返回的安全评分的类别将设置为 TOXICITY
,伤害概率会设置为 HIGH
。
Google AI Studio 中的安全设置
您也可以在 Google AI Studio 中进行这些设置。在 Run settings 中,点击 Edit safety settings:
并使用旋钮调整每项设置:
如果内容被屏蔽,系统会显示
No Content 消息。如需查看更多详情,请将指针悬停在 No Content 上,然后点击 安全。代码示例
本部分介绍了如何通过 Python 客户端库在代码中使用安全设置。
请求示例
以下 Python 代码段展示了如何在 GenerateText
调用中设置安全设置。这会将伤害类别 Derogatory
和 Violence
设置为 BLOCK_LOW_AND_ABOVE
,从而屏蔽任何具有暴力或诋毁性的可能性较低或较高的内容。
completion = genai.generate_text(
model=model,
prompt=prompt,
safety_settings=[
{
"category": safety_types.HarmCategory.HARM_CATEGORY_DEROGATORY,
"threshold": safety_types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
{
"category": safety_types.HarmCategory.HARM_CATEGORY_VIOLENCE,
"threshold": safety_types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
]
)
响应示例
下面展示了一个代码段,用于解析响应中的安全反馈。请注意,除非屏蔽原因是某个安全维度,否则安全反馈将为空。
# First check the content filter reason
for filter in completion.filters:
print(filter["reason"])
# If any of the reason is "safety", then the safety_feedback field will be
# populated
for feedback in completion.safety_feedback:
print(feedback["rating"])
print(feedback["setting"])s
后续步骤
- 如需详细了解完整的 API,请参阅 API 参考文档。
- 查看安全指南,大致了解使用 LLM 进行开发时的安全注意事项。
- 访问 Jigsaw 团队,详细了解如何评估概率与严重程度
- 详细了解有助于安全解决方案(例如 Perspective API)的产品。
- 您可以使用这些安全设置来创建恶意评论分类器。如需开始操作,请参阅分类示例。