總覽
本指南說明適用於文字服務的 PaLM API 可調整安全設定。在原型設計階段,您可以調整六個維度的安全設定,快速評估應用程式是否需要調整設定。根據預設,安全設定會針對六大維度封鎖中等和/或極高可能不安全內容的內容。這項基準安全功能適用於大多數用途,因此建議您只調整應用程式一致需要的安全設定。
安全性篩選器
除了可調整的安全篩選器外,PaLM API 內建防護機制,可防範核心危害,例如危害兒童安全的內容。這類危害一律會遭到封鎖,且無法調整。
可調整的安全篩選器涵蓋下列類別:
- 詆毀
- 有毒
- 含有色情內容
- 暴力內容
- 醫療
- 危險事物
透過這些設定,開發人員可以判斷適合您的用途。舉例來說,如果您要建立電玩遊戲對話,您可以認定允許更多因遊戲性質而歸類為暴力或危險的內容。以下列舉其他在這類安全設定中,可能需要保留一些彈性的用途:
用途 | 類別 |
---|---|
反騷擾訓練應用程式 | 貶抑他人、色情、有毒 |
醫學考試研究 Pal | 醫療 |
編劇 | 暴力、色情、醫療、危險內容 |
惡意分類器 | 有毒、詆毀 |
機率與嚴重性
PaLM API 會根據內容不安全的「機率」,以及「不是」嚴重性來封鎖內容。這一點非常重要,因為即使損害的嚴重性可能還是很高,某些內容仍然可能不太有安全。例如,比較語句:
- 機器人把我打鬧給我。
- 機器人把我倒在地上。
語句 1 可能提高不安全機率,但我們建議將第 2 句話視為暴力方面的嚴重性較高。
因此,每個開發人員都必須仔細測試,並考慮需要適當的封鎖層級來支援主要用途,同時盡量減少對使用者的傷害。
安全性設定
您傳送給文字服務的要求中會包含安全性設定,您向 API 發出的每個要求都能調整設定。下表列出您可以設定的類別,並說明每個類別涵蓋的危害類型。
類別 | 說明 |
---|---|
貶抑他人 | 涉及身分和/或受保護屬性的負面或有害留言。 |
有毒 | 粗俗、無禮或不雅內容。 |
色情 | 含有性行為或其他猥褻內容。 |
暴力 | 說明對個人或群體施暴的情境,或對血腥的概略描述。 |
危險 | 宣傳、鼓吹或助長有害舉動。 |
醫療 | 與醫療主題相關的內容 |
您也可以在 API 參考資料中查看這些定義。
下表說明您可以為每個類別調整的封鎖設定。舉例來說,如果您將「Derogatory」類別的封鎖設定設為「Block 幾個」,系統就會封鎖極可能為貶抑他人的內容。但任何機率較低的任何資料都適用。
如果未設定,系統會根據政策類別,將預設封鎖設定設為「封鎖部分項目」或「封鎖大部分項目」。
門檻 (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」(無內容) 上,然後按一下 「Safety」(安全)。程式碼範例
本節說明如何使用 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。
- 您可以利用這些安全設定建立惡意內容分類器。如要開始使用,請參閱分類範例。