安全性設定

このガイドでは、Gemini API で利用可能な調整可能な安全性設定について説明します。プロトタイピングの段階では、4 つの次元で安全性設定を調整して、アプリケーションで制限の厳しい構成が必要かどうかを判断できます。デフォルトでは、安全性設定により、あらゆる次元で安全でない確率が中程度以上のコンテンツ(プロンプトを含む)がブロックされます。このベースライン安全性は、ほとんどのユースケースで機能するように設計されているため、アプリケーションで一貫して必要な場合にのみ、安全性設定を調整してください。

安全フィルタ

Gemini API には、調整可能な安全フィルタに加えて、子どもの安全を危険にさらすコンテンツなど、中核的な危害に対する保護機能も組み込まれています。この種の被害は常にブロックされ、調整することはできません。

調整可能な安全フィルタは、次のカテゴリをカバーします。

  • ハラスメント
  • ヘイトスピーチ
  • 露骨な性表現
  • 危険

これらの設定により、デベロッパーはユースケースに適した設定を判断できます。たとえば、ビデオゲームの会話を作成する場合、ゲームの性質上危険と評価されるコンテンツの追加を許容できると考えることができます。安全性設定の柔軟性が必要な他のユースケースの例を以下に示します。

ユースケース カテゴリ
ハラスメント対策トレーニング アプリ ヘイトスピーチ、露骨な性的表現
脚本家 露骨な性表現、危険
有害性分類器 ハラスメント、危険

確率と重大度

Gemini API は、コンテンツが安全ではなく、重大度ではない可能性に基づいて、コンテンツをブロックします。コンテンツによっては、危害の重大度が高くても、安全でない確率が低くなるものもあるため、この点を考慮することが重要です。たとえば、次の文を比較します。

  1. ロボットが私をパンチした。
  2. ロボットが私を切り付けた。

文 1 は安全でない確率が高い可能性がありますが、文 2 は暴力の観点から重大度が高いと考えることもできます。

したがって、エンドユーザーへの悪影響を最小限に抑えながら主要なユースケースをサポートするには、適切なレベルのブロックを慎重にテストし、検討することが重要です。

安全性設定

安全性設定は、生成サービスに送信するリクエストの一部です。この設定は、API に対するリクエストごとに調整できます。次の表に、設定できるカテゴリと、各カテゴリに含まれる有害性のタイプを示します。

カテゴリ 説明
ハラスメント ID や保護されている属性をターゲットとする否定的なコメントや有害なコメント。
ヘイトスピーチ 粗暴、無礼、または冒とく的なコンテンツ。
露骨な性表現 性行為やわいせつな内容に関する情報が含まれるコンテンツ。
危険 有害な行為を助長、促進、奨励するもの。

これらの定義は API リファレンスにも記載されています。Gemini モデルは、HARM_CATEGORY_HARASSMENTHARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_SEXUALLY_EXPLICITHARM_CATEGORY_DANGEROUS_CONTENT のみをサポートします。他のカテゴリは PaLM 2(レガシー)モデルで使用されます。

次の表に、カテゴリごとに調整できるブロック設定を示します。たとえば、ヘイトスピーチ カテゴリのブロック設定を [少量をブロック] に設定すると、ヘイトスピーチのコンテンツである可能性が高いものがすべてブロックされます。ただし、それより低い確率であればすべて許可されます。

設定しない場合、すべてのカテゴリでデフォルトのブロック設定が [一部をブロック] になります。

しきい値(Google AI Studio) しきい値(API) 説明
ブロックなし BLOCK_NONE 危険なコンテンツが表示される可能性にかかわらず常に表示する
少量をブロック BLOCK_ONLY_HIGH 危険なコンテンツである可能性が高い場合にブロックする
一部をブロック BLOCK_MEDIUM_AND_ABOVE 安全でないコンテンツが発生する可能性が中程度または高い場合にブロックする
ほとんどをブロック BLOCK_LOW_AND_ABOVE 安全でないコンテンツが発生する可能性が低、中、高の場合はブロックする
HARM_BLOCK_THRESHOLD_UNSPECIFIED しきい値が指定されていません。デフォルトのしきい値を使用してブロックします。

これらの設定は、生成サービスに対するリクエストごとに設定できます。詳しくは、HarmBlockThreshold API リファレンスをご覧ください。

安全に関するフィードバック

generateContent は、安全に関するフィードバックを含む GenerateContentResponse を返します。

プロンプト フィードバックは、promptFeedback に含まれています。promptFeedback.blockReason が設定されている場合、プロンプトのコンテンツはブロックされています。

レスポンス候補のフィードバックは、finishReasonsafetyRatings に含まれています。レスポンス コンテンツがブロックされ、finishReasonSAFETY だった場合は、safetyRatings で詳細を確認できます。安全性評価には、危害の分類のカテゴリと確率が含まれます。ブロックされたコンテンツは返されません。

返される確率は、次の表に示すようにブロックの信頼レベルに対応しています。

確率 説明
NEGLIGIBLE(不可) コンテンツが安全でない可能性がほとんどない
コンテンツが安全でない可能性が低い
コンテンツが安全でない確率が中程度である
コンテンツが安全でない可能性が高い

たとえば、ハラスメント カテゴリの可能性が高いためにコンテンツがブロックされた場合、返される安全性評価のカテゴリは HARASSMENT、危害の可能性は HIGH に設定されます。

Google AI Studio の安全性設定

Google AI Studio で安全性設定を調整することもできますが、オフにすることはできません。これを行うには、[実行設定] で [安全性設定を編集] をクリックします。

安全性設定ボタン

ノブを使用して、各設定を調整します。

安全性設定ボタン

コンテンツがブロックされると、コンテンツはありません」というメッセージが表示されます。詳細を表示するには、[コンテンツなし] の上にポインタを置いて、 [セーフティ] をクリックします。

コードの例

このセクションでは、Python クライアント ライブラリを使用して、コード内で安全性設定を使用する方法について説明します。

リクエストの例

以下は、GenerateContent 呼び出しで安全性設定を設定する方法を示す Python コード スニペットです。これにより、危害のカテゴリ HarassmentHate speechBLOCK_LOW_AND_ABOVE に設定され、ハラスメントやヘイトスピーチである可能性が低いか高い確率のコンテンツをブロックします。

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-1.5-flash')
response = model.generate_content(
    ['Do these look store-bought or homemade?', img],
    safety_settings={
        HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    }
)

レスポンスの例

レスポンスからの安全性フィードバックを解析するためのコード スニペットを以下に示します。

try:
  print(response.text)
except ValueError:
  # If the response doesn't contain text, check if the prompt was blocked.
  print(response.prompt_feedback)
  # Also check the finish reason to see if the response was blocked.
  print(response.candidates[0].finish_reason)
  # If the finish reason was SAFETY, the safety ratings have more details.
  print(response.candidates[0].safety_ratings)

次のステップ

  • 完全な API について詳しくは、API リファレンスをご覧ください。
  • LLM を使用して開発する際の安全上の考慮事項の概要については、安全に関するガイダンスをご覧ください。
  • 確率と重大度の評価について詳しくは、Jigsaw チームをご覧ください。
  • Perspective API など、安全性ソリューションに寄与しているプロダクトの詳細をご覧ください。
  • これらの安全性設定を使用して、有害性分類器を作成できます。開始するには、分類の例をご覧ください。