В этом руководстве описаны регулируемые настройки безопасности, доступные для Gemini API. На этапе прототипирования вы можете настроить параметры безопасности по 4 измерениям, чтобы быстро оценить, требует ли ваше приложение более или менее ограничительной конфигурации. По умолчанию настройки безопасности блокируют контент (включая подсказки) со средней или высокой вероятностью небезопасности в любом измерении. Этот базовый уровень безопасности предназначен для большинства случаев использования, поэтому вам следует настраивать параметры безопасности только в том случае, если это постоянно требуется для вашего приложения.
Защитные фильтры
В дополнение к настраиваемым фильтрам безопасности Gemini API имеет встроенную защиту от основных угроз, таких как контент, который ставит под угрозу безопасность детей. Эти виды вреда всегда блокируются и не могут быть скорректированы.
Регулируемые защитные фильтры охватывают следующие категории:
- Домогательство
- Разжигание ненависти
- Сексуально откровенно
- Опасный
Эти настройки позволяют вам, разработчику, определить, что подходит для вашего варианта использования. Например, если вы создаете диалог в видеоигре, вы можете счесть приемлемым разрешить больше контента, который оценивается как опасный из-за характера игры. Вот несколько других примеров использования, которые могут потребовать некоторой гибкости в этих настройках безопасности:
Вариант использования | Категория |
---|---|
Учебное приложение по борьбе с домогательствами | Разжигание ненависти, Откровенный сексуальный характер |
Сценарист | Сексуально откровенно, Опасно |
Классификатор токсичности | Преследование, Опасно |
Вероятность против серьезности
Gemini API блокирует контент на основе вероятности того, что контент небезопасен, а не его серьезности. Это важно учитывать, поскольку некоторый контент может оказаться небезопасным с низкой вероятностью, хотя тяжесть вреда все равно может быть высокой. Например, сравнивая предложения:
- Робот ударил меня.
- Робот меня порезал.
Предложение 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 .
- Эти настройки безопасности можно использовать для создания классификатора токсичности. Чтобы начать, посмотрите пример классификации .