通过人工智能防护栏过滤基础模型内容

人工智能防护机制会从基础模型的输出和输入中移除潜在有害内容,例如仇恨言论、辱骂和粗俗语言。

功能

AI防护栏通过句子分类器,同时分析基础模型接收的输入数据与模型生成的输出文本。

句子分类器将模型输入和输出文本分解成句子,然后审查每个句子,找出并标记有害内容。 分类器评估每个词,词之间的关系以及句子的上下文,以确定句子是否包含有害语言。 然后,分类器会分配一个表示存在不当内容的可能性的分数。

当您对自然语言基础模型进行推理时,AI防护栏将自动启用。

当您在 Prompt Lab 中使用 AI防护栏并点击生成时,该过滤器会检查所有模型的输入和输出文本。 通过以下方式处理不适当的文本:

  • 标记为不当的输入文本不会提交到基础模型。 将显示以下消息,而不是显示模型输出:

    [The input was rejected as inappropriate]

  • 标记为不当的模型输出文本将替换为以下消息:

    [Potentially harmful text removed]

限制

  • 人工智能防护栏可检测出仅英文文本中的有害内容。
  • 程序语言基础模型无法应用人工智能防护栏。

AI防护栏过滤器

您可以配置以下适用于用户输入和模型输出的筛选器,并调整筛选器的灵敏度(如适用):

仇恨、辱骂和亵渎 (HAP) 过滤器

HAP过滤器(亦称 HAP检测器 )是一种句子分类器,由 IBM Slate家族的大型语言模型经过微调获得。 Slate模型是由 IBM Research开发的仅编码器自然语言处理(NLP)模型。

使用 HAP 过滤器检测并标记以下语言类型:

  • 仇恨言论:仇恨言论:基于种族、宗教、民族血统、性取向、残疾或性别等属性对个人或群体表达仇恨的言论。 仇恨言论显示出伤害,羞辱或侮辱一个群体的成员或促进暴力或社会乱象的意图。

  • 辱骂:粗鲁或伤人的语言,意在欺凌、贬低或诋毁某人或某事。

  • 亵渎:有毒词语,如咒骂、侮辱或色情语言。

您可以将 HAP 过滤器分别用于用户输入和模型输出。

您可以通过设置阈值来改变滤波器的灵敏度。 阈值代表HAP分类器生成的评分必须达到的数值,才能将内容判定为有害。 分数阈值范围从 "0.0到 "1.0。

较低的值,如 0.1 或 0.2 ,更安全,因为阈值更低。 当较低的分数可以触发过滤器时,有害内容更容易被识别。 不过,当内容安全时,分类器也可能被触发。

接近 1 的值,如 0.8 或 0.9 ,风险更大,因为分数阈值更高。 如果需要更高的分数才能触发过滤器,则可能会漏掉有害内容。 不过,被标记为有害的内容更有可能是有害的。

要禁用人工智能护栏,请将 HAP 阈值设置为 1

个人身份信息(PII)过滤器

PII过滤器采用NLP人工智能模型来识别并标记内容。 有关标记的实体类型的完整列表,请参阅 基于规则的一般实体提取

使用 PII 过滤器来控制是否从用户输入和基础模型输出中过滤掉个人身份信息,如电话号码和电子邮件地址。 您可以为用户输入和模型输出分别设置 PII 过滤器。

PII 过滤器阈值设置为 0.8 ,并且不能更改过滤器的灵敏度。

工作方式

在 watsonx.ai 中处理基础模型时,可通过以下方法移除有害内容:

在 Prompt Lab 中配置AI防护栏

在 Prompt Lab 中使用基础模型时,若需移除有害内容, 将AI防护开关设置为开启状态

AI防护栏功能将自动启用在所有英语自然语言基础模型上。

要在 Prompt Lab 中配置AI防护栏,请完成以下步骤:

  1. 用AI防护栏后,点击 AI防护栏设置图标 AI防护栏设置图标

  2. 您可以配置不同的过滤器来应用于用户输入和模型输出,并根据需要调整过滤器的灵敏度。

    • HAP过滤器

      要禁用AI防护栏,请将HAP滑块设置为0 1。 要调整护栏的灵敏度,请移动 HAP 滑块。

    • PII滤波器

      要启用PII滤波器,请将PII 开关设置为开启状态

    尝试调整滑块,找到最适合您需求的设置。

  3. 点击保存

通过编程方式配置AI防护措施

您可以通过编程方式设置AI防护栏,以多种方式对提供给基础模型的输入文本以及模型生成的输出内容进行监管。

当您通过 API 调用基础模型时,可使用 字段对基础 moderations 模型的输入和输出应用过滤器。 有关更多信息,请参阅 watsonx.ai API 参考文档。

有关如何使用 Python 库调整过滤器的更多信息,请参阅 《通过编程方式推断基础模型》( Python )

REST API

您可以使用以下 watsonx.ai API端点来配置并应用AI防护措施,以保护自然语言输入和输出文本:

Python

您可以通过以下方式使用 watsonx.aiPython SDK对自然语言输入和输出文本配置并应用AI防护措施:

以下代码示例展示了如何配置并使用文本检测API中的过滤器:

from ibm_watsonx_ai import APIClient, Credentials
from ibm_watsonx_ai.foundation_models.moderations import Guardian

credentials = Credentials(
    url = "https://{region}.ml.cloud.ibm.com",
    api_key ="{my-IBM-Cloud-API-key}"
)
api_client = APIClient(credentials, space_id="{my-space-ID}")

detectors = {
    "granite_guardian": {"threshold": 0.4},
    "hap": {"threshold": 0.4},
    "pii": {},
}

guardian = Guardian(
    api_client=api_client,  # required
    detectors=detectors  # required
)

要在 Python 库中使用自定义过滤器,请在文本检测请求中包含以下参数:

text = "I would like to say some `Indecent words`."

response = guardian.detect(
    text=text,   # required
    detectors=detectors # optional
)

有关更多信息,请参阅 watsonx.ai Python SDK

了解更多