Настройки безопасности

В этом руководстве описаны регулируемые настройки безопасности, доступные для Gemini API. На этапе прототипирования вы можете настроить параметры безопасности по 4 измерениям, чтобы быстро оценить, требует ли ваше приложение более или менее ограничительной конфигурации. По умолчанию настройки безопасности блокируют контент (включая подсказки) со средней или высокой вероятностью небезопасности в любом измерении. Этот базовый уровень безопасности предназначен для большинства случаев использования, поэтому вам следует настраивать параметры безопасности только в том случае, если это постоянно требуется для вашего приложения.

Защитные фильтры

В дополнение к настраиваемым фильтрам безопасности Gemini API имеет встроенную защиту от основных угроз, таких как контент, который ставит под угрозу безопасность детей. Эти виды вреда всегда блокируются и не могут быть скорректированы.

Регулируемые защитные фильтры охватывают следующие категории:

  • Домогательство
  • Разжигание ненависти
  • Сексуально откровенно
  • Опасный

Эти настройки позволяют вам, разработчику, определить, что подходит для вашего варианта использования. Например, если вы создаете диалог в видеоигре, вы можете счесть приемлемым разрешить больше контента, который оценивается как опасный из-за характера игры. Вот несколько других примеров использования, которые могут потребовать некоторой гибкости в этих настройках безопасности:

Вариант использования Категория
Учебное приложение по борьбе с домогательствами Разжигание ненависти, Откровенный сексуальный характер
Сценарист Сексуально откровенно, Опасно
Классификатор токсичности Преследование, Опасно

Вероятность против серьезности

Gemini API блокирует контент на основе вероятности того, что контент небезопасен, а не его серьезности. Это важно учитывать, поскольку некоторый контент может оказаться небезопасным с низкой вероятностью, хотя тяжесть вреда все равно может быть высокой. Например, сравнивая предложения:

  1. Робот ударил меня.
  2. Робот меня порезал.

Предложение 1 может привести к более высокой вероятности опасности, но вы можете считать предложение 2 более строгим с точки зрения насилия.

Учитывая это, каждому разработчику важно тщательно протестировать и рассмотреть, какой соответствующий уровень блокировки необходим для поддержки ключевых вариантов использования при минимизации вреда для конечных пользователей.

Настройки безопасности

Настройки безопасности являются частью запроса, который вы отправляете в генеративную службу. Настройки можно настроить для каждого запроса к API. В следующей таблице перечислены категории, которые вы можете установить, и описан тип вреда, охватываемый каждой категорией.

Категории Описания
Домогательство Негативные или вредные комментарии, направленные против личности и/или защищенных атрибутов.
Разжигание ненависти Грубый, неуважительный или оскорбительный контент.
Сексуально откровенно Содержит ссылки на сексуальные действия или другой непристойный контент.
Опасный Поощряет, облегчает или поощряет вредные действия.

Эти определения также находятся в справочнике API . Модели Gemini поддерживают только HARM_CATEGORY_HARASSMENT , HARM_CATEGORY_HATE_SPEECH , HARM_CATEGORY_SEXUALLY_EXPLICIT и HARM_CATEGORY_DANGEROUS_CONTENT . Остальные категории используются моделями PaLM 2 (Legacy).

В следующей таблице описаны настройки блока, которые вы можете настроить для каждой категории. Например, если вы установите настройку блокировки на «Блокировать несколько» для категории «Высказывания, разжигающие ненависть» , все, что с высокой вероятностью является содержанием разжигания ненависти, будет заблокировано. Но разрешено все, что имеет меньшую вероятность.

Если параметр не установлен, настройка блокировки по умолчанию — Блокировать некоторые для всех категорий.

Порог (Google AI Studio) Порог (API) Описание
Ничего не блокировать БЛОК_НОН Всегда показывать независимо от вероятности небезопасного контента
Заблокировать несколько BLOCK_ONLY_HIGH Блокировать при высокой вероятности небезопасного контента
Заблокировать некоторые BLOCK_MEDIUM_AND_ABOVE Блокировать при средней или высокой вероятности небезопасного контента.
Блокировать большинство BLOCK_LOW_AND_ABOVE Блокировать при низкой, средней или высокой вероятности небезопасного контента.
HARM_BLOCK_THRESHOLD_UNSPECIFIED Порог не указан, блокировка с использованием порога по умолчанию.

Вы можете установить эти настройки для каждого запроса, который вы отправляете в генеративную службу. Подробности см. в справочнике по API HarmBlockThreshold .

Обратная связь по безопасности

generateContent возвращает GenerateContentResponse , который включает обратную связь по безопасности.

Оперативная обратная связь включена в promptFeedback . Если установлен promptFeedback.blockReason , содержимое приглашения было заблокировано.

Отзывы кандидатов на ответ включены в finishReason и safetyRatings . Если содержимое ответа было заблокировано, а finishReason был SAFETY , вы можете проверить safetyRatings для получения более подробной информации. Рейтинг безопасности включает категорию и вероятность классификации вреда. Контент, который был заблокирован, не возвращается.

Возвращаемая вероятность соответствует уровням достоверности блоков, как показано в следующей таблице:

Вероятность Описание
НЕЗНАЧИТЕЛЬНО Контент имеет незначительную вероятность быть небезопасным
НИЗКИЙ Контент имеет низкую вероятность оказаться небезопасным.
СЕРЕДИНА Содержимое имеет среднюю вероятность быть небезопасным.
ВЫСОКИЙ Контент с высокой вероятностью может оказаться небезопасным.

Например, если контент был заблокирован из-за высокой вероятности категории домогательств, возвращаемый рейтинг безопасности будет иметь категорию, равную HARASSMENT , а вероятность причинения вреда будет установлена ​​как HIGH .

Настройки безопасности в Google AI Studio

Вы также можете настроить параметры безопасности в Google AI Studio, но не можете их отключить. Для этого в настройках «Выполнить» нажмите «Изменить настройки безопасности» :

Кнопка настроек безопасности

И используйте ручки для регулировки каждой настройки:

Кнопка настроек безопасности

Если контент заблокирован, появится сообщение «Нет контента» . Чтобы просмотреть более подробную информацию, наведите указатель на надпись «Нет содержимого» и нажмите Безопасность» .

Примеры кода

В этом разделе показано, как использовать настройки безопасности в коде с помощью клиентской библиотеки Python.

Пример запроса

Ниже приведен фрагмент кода Python, показывающий, как установить параметры безопасности в вызове GenerateContent . При этом для категорий вреда Harassment и Hate speech устанавливается значение BLOCK_LOW_AND_ABOVE , которое блокирует любой контент, который с низкой или высокой вероятностью является оскорбительным или разжигающим ненависть языком.

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-pro-vision')
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 .
  • Эти настройки безопасности можно использовать для создания классификатора токсичности. Чтобы начать, посмотрите пример классификации .