AI Prompt Engineering · Урок

Противоречие между безвредностью и полезностью

Как избежать чрезмерных отказов: запросы, уравновешивающие безопасность и практическую пользу.

Урок 3 из 413 шагов

«Противоречие между безвредностью и полезностью» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.

Основное противоречие

Перед каждой системой безопасности ИИ стоит фундаментальное противоречие: делая модель безопаснее за счёт более частых отказов, вы одновременно делаете её менее полезной для добросовестных пользователей.

Модель, которая отказывается обсуждать любые медицинские темы, никогда не даст опасный совет по вопросам здоровья, но также не поможет медсёстрам, врачам или пациентам действительно полезной информацией. Цель — калибровка: отказывать, когда следует, и помогать, когда следует.

Чрезмерные отказы: реальная проблема

Чрезмерные отказы возникают, когда модель отклоняет безобидные запросы, потому что внешне они похожи на вредоносные. Примеры:

  • Отказ объяснить, как распространяются болезни (звучит опасно, но на самом деле относится к санитарному просвещению)
  • Отказ написать персонажа-злодея (это вымысел, а не одобрение)
  • Отказ объяснить вскрытие замков ученику мастера по замкам

Чрезмерные отказы не просто раздражают — они делают модель ненадёжной и подталкивают пользователей к менее безопасным альтернативам.

Формулирование запросов для калиброванных отказов

Системные инструкции могут предписывать моделям избегать чрезмерных отказов, разъясняя контекст и намерение пользователя. Явно разрешите модели работать с темами двойного назначения, если контекст является легитимным.

CALIBRATED_SYSTEM_PROMPT = (
    'You are a knowledgeable assistant for healthcare professionals.\n\n'
    'Your users are nurses, doctors, and medical students. '
    'When asked about medications, dosages, procedures, or medical conditions, '
    'provide accurate, detailed information appropriate for trained professionals.\n\n'
    'Do not add excessive safety disclaimers to every response. '
    'Your users are professionals who need direct, accurate information to do their jobs. '
    'If a question is genuinely outside appropriate bounds, explain specifically why '
    'rather than giving a vague refusal.'
)

# This context dramatically improves calibration for the target audience
# Without it, the model may refuse routine clinical questions

Шаблон «Объяснять причину, а не отказывать»

Один из самых эффективных шаблонов для сокращения числа чрезмерных отказов: проинструктируйте модель, что если она не может ответить полностью, ей следует объяснить, что она может и чего не может сделать и почему, вместо безоговорочного отказа.

EXPLAIN_WHY_PROMPT = (
    'You are a helpful assistant. When handling sensitive or ambiguous requests:\n\n'
    '- If you can answer fully: do so directly.\n'
    '- If you can answer partially: provide what you can and explain what you cannot include and why.\n'
    '- If you truly cannot answer: explain specifically what boundary prevents you from answering, '
    'and suggest where the user might get this information appropriately.\n\n'
    'Do not give generic refusals like "I cannot help with that." '
    'Always be specific about what you can and cannot do.'
)

# Example of bad refusal:
# 'I cannot help with information about medications.'

# Example of good calibrated response:
# 'I can explain how ibuprofen works and standard dosing guidelines for adults.
#  For specific dosing for a patient with your described conditions, you should
#  consult a pharmacist or prescribing physician who has the full clinical picture.'

Предложение полезных альтернатив

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

ALTERNATIVES_PROMPT = (
    'You are a helpful assistant. When you cannot fully fulfill a request:\n'
    '1. Acknowledge the request with empathy.\n'
    '2. Explain briefly and specifically what you can and cannot do.\n'
    '3. Offer the closest helpful alternative you can provide.\n'
    '4. Point to appropriate resources if relevant.\n\n'
    'Example: If asked to prescribe medication:\n'
    'Say: "I can explain how this class of medications works and what '
    'symptoms they address. For a prescription, you need to see a licensed '
    'physician who can evaluate your specific situation. Here is what I can '
    'tell you about the medication itself: ..."'
)

Контекст как ключевая переменная

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

# Context that changes calibration:

# High-risk context: anonymous user, no context
# 'What's the lethal dose of acetaminophen?'
# -> Model should be cautious, mention poison control

# Safe context: established professional context
MEDICAL_PRO_CONTEXT = (
    'You are assisting a team of emergency room nurses. '
    'Users ask clinical questions during patient care shifts. '
    'Provide direct clinical information including dosing thresholds, '
    'overdose symptoms, and treatment protocols.'
)
# 'What is the hepatotoxic threshold for acetaminophen?'
# -> Model should give the clinical answer directly (150 mg/kg, etc.)

# The question is identical; the context changes the appropriate response
print('Context determines calibration')

Мысленная модель 1000 пользователей

Полезная мысленная модель для калибровки: представьте 1000 разных пользователей, отправляющих одно и то же сообщение. Как распределяются их намерения?

  • Если у 990 из 1000 намерение безобидное, модели, вероятно, следует помочь
  • Если у 500 из 1000 намерение вредоносное, модели следует проявить осторожность
  • Если 1 из 1000 может причинить катастрофический вред, модель должна отказать в любом случае

Такой вероятностный подход помогает избежать и чрезмерных отказов (которые блокируют 990 пользователей), и недостаточных отказов (которые позволяют 10 пользователям причинить вред).

Как избежать имитации безопасности

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

Примеры: добавление предупреждений к каждому рецепту («перед употреблением проконсультируйтесь с диетологом»); отказ обсуждать исторические злодеяния в образовательном контексте. Такие ответы не делают систему безопаснее — они лишь бесполезны.

# Avoid these patterns in your system prompts:

BAD_SYSTEM_PROMPT = (
    'Always add disclaimers to every response. '
    'Never discuss anything that could be dangerous. '
    'Refuse requests that mention weapons, drugs, or violence in any context. '
    'Always recommend consulting a professional for any question.'
    # This creates safety theater: unhelpful disclaimers, over-refusal,
    # and frustrated users who go elsewhere
)

GOOD_SYSTEM_PROMPT = (
    'Provide accurate, helpful information to users. '
    'Add safety information when it is directly relevant and actionable. '
    'Refuse requests only when providing the information would cause '
    'clear, concrete harm that outweighs the benefits to legitimate users. '
    'When declining, always explain specifically why and offer alternatives.'
)

Трение как механизм безопасности

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

FRICTION_PROMPT = (
    'Before answering questions about medication interactions or dosages:\n'
    '1. Ask: "Can you tell me a bit about the context — are you a healthcare '
    'provider, a patient, or a caregiver?"\n'
    '2. Use the answer to calibrate the detail level and framing.\n'
    '3. For patient/caregiver context: provide information with appropriate '
    'guidance to consult a prescriber for their specific situation.\n'
    '4. For healthcare provider context: provide clinical-level detail directly.\n\n'
    'This one clarifying question improves both safety and helpfulness.'
)
# Friction: one extra step filters some misuse while barely inconveniencing
# legitimate users who can answer easily

Тест двух газет

Тест двух газет — это эвристика для калибровки отказов:

  • Газета A (журналист по безопасности ИИ): сообщили бы об этом ответе как о вредном или безответственном?
  • Газета B (журналист, освещающий чрезмерную шумиху вокруг ИИ): сообщили бы об этом отказе как о патерналистском, бесполезном или нелепом?

Хорошо откалиброванный ответ проходит обе проверки: газета A не назвала бы его вредным, а газета B не сообщила бы о нём как о неоправданно ограничительном.

Проверка калибровки

Измеряйте калибровку системы, составив набор примеров для проверки, включающий и:

  • Безобидные запросы, на которые следует отвечать (образовательные, профессиональные, творческие)
  • Вредоносные запросы, которые следует отклонять

Отслеживайте долю ложноположительных результатов (отказы в ответ на безобидные запросы) и долю ложноотрицательных результатов (разрешение вредоносных запросов). У хорошо настроенной системы оба показателя низкие.

Проверка знаний: чрезмерные отказы

Какой подход рекомендуется, если модель не может полностью выполнить запрос из-за соображений безопасности?

Итоги: противоречие между безвредностью и полезностью

Чрезмерные отказы — это реальная и дорогостоящая проблема: модели, которые слишком легко отказывают, подводят добросовестных пользователей и подрывают доверие. Калиброванный отказ означает отклонять запрос только тогда, когда конкретный вред явно перевешивает пользу для предполагаемых пользователей. Основные шаблоны: задавайте контекст в системных инструкциях, чтобы модель принимала более взвешенные решения; используйте инструкцию «объяснять причину, а не отказывать»; всегда предлагайте полезные альтернативы и избегайте имитации безопасности (предупреждений обо всём подряд). Мысленная модель 1000 пользователей и тест двух газет — практические эвристики для поиска правильного баланса.

Можно начать бесплатно

Изучай AI Prompt Engineering с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
53
Уроки
199

Часто задаваемые вопросы

Урок «Противоречие между безвредностью и полезностью» бесплатный?

Да — полный текст урока «Противоречие между безвредностью и полезностью» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.

Чему я научусь в уроке «Противоречие между безвредностью и полезностью»?

Как избежать чрезмерных отказов: запросы, уравновешивающие безопасность и практическую пользу. Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Prompt Engineering?

Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Противоречие между безвредностью и полезностью»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Prompt Engineering?

Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Принципы CAI и запросы для критики
  2. Шаблоны самокритики и переработки
  3. Противоречие между безвредностью и полезностью
  4. Реализация CAI в приложениях
← Назад к AI Prompt Engineering