概要
このガイドでは、テキスト サービスで利用可能な PaLM API の調整可能な安全性設定について説明します。プロトタイピングの段階では、6 つのディメンションで安全性設定を調整して、アプリケーションで構成の柔軟性を増すか減らすかをすばやく評価できます。デフォルトでは、安全性設定により 6 つのディメンション全体で安全でないコンテンツになる確率が「中」または「高」のコンテンツがブロックされます。このベースラインの安全性は、ほとんどのユースケースで機能するように設計されているため、安全性の設定は、アプリケーションで一貫して必要な場合にのみ調整してください。
安全フィルタ
調整可能な安全フィルタに加えて、PaLM API には、子どもの安全を危険にさらすコンテンツなど、中核的な危害に対する保護機能が組み込まれています。この種の危害は常にブロックされ、調整はできません。
調整可能な安全フィルタは、次のカテゴリに対応しています。
- 中傷
- 有害
- 性的
- 暴力的である
- 医療
- 危険
これらの設定により、デベロッパーはユースケースに適した内容を決定できます。たとえば、ビデオゲームの会話を作成している場合、ゲームの性質上、暴力的または危険と評価されるコンテンツを増やしても問題ないと考えることができます。こうした安全性設定の柔軟性が必要となる可能性がある他のユースケースの例を次に示します。
ユースケース | カテゴリ |
---|---|
ハラスメント防止トレーニング アプリ | 中傷的、性的、有害 |
健康診断の学習パル | 医療 |
脚本家 | 暴力的、性的、医療、危険 |
有害性分類器 | 有害、中傷 |
確率と重大度
PaLM API は、重大度ではなく、コンテンツが安全でない確率に基づいてコンテンツをブロックします。コンテンツによっては、危害の重大度が高くても、安全でない確率が低くなるものもあるため、この点を考慮することが重要です。たとえば、次の文を比較します。
- ロボットが私をパンチした。
- ロボットが私を切り付けた。
文 1 は安全でない確率が高くなる可能性がありますが、文 2 は暴力の観点から重大度が高いと考えることができます。
したがって、各デベロッパーは、エンドユーザーへの悪影響を最小限に抑えながら、主要なユースケースをサポートするために必要となる適切なレベルのブロックを慎重にテストし、検討することが重要です。
安全性設定
緊急情報の設定は、テキスト サービスに送信するリクエストの一部です。これは、API に対するリクエストごとに調整できます。次の表に、設定できるカテゴリと、各カテゴリに含まれる有害性の種類を示します。
カテゴリ | 説明 |
---|---|
中傷 | ID や保護されている属性をターゲットとする否定的なコメントや有害なコメント。 |
有害 | 粗暴、無礼、または冒とく的なコンテンツ。 |
性的 | 性行為やわいせつな内容に関する情報が含まれるコンテンツ。 |
暴力的 | 個人やグループに対する暴力を描写したシナリオ、または残虐行為の一般的な説明についての記述。 |
危険 | 有害な行為を助長、促進、奨励するコンテンツ。 |
医療 | 医療トピックに関連するコンテンツ |
これらの定義は、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 でも行えます。[実行設定] で、[安全性設定を編集] をクリックします。
ノブを使用して、各設定を調整します。
コンテンツがブロックされる場合は、
[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 など、安全性ソリューションに寄与するプロダクトの詳細を確認する。
- こうした安全性設定を使って有害性分類器を作成できます。開始するには、分類の例をご覧ください。