TL;DR
LLM систематически проваливаются в двух сценариях. Первый: когда контент нарушает несколько правил одновременно — модель флажит очевидное нарушение, но пропускает редкое. Второй: когда твои правила расходятся с тем, чему модель обучена — она следует своей «встроенной морали», а не твоим инструкциям.
Исследователи проверили 20+ LLM на задачах модерации с несколькими одновременными нарушениями и правилами, которые конфликтуют с обучением модели. Вскрылось две системные слабости. Первая — дефицит охвата: модели уверенно ловят частые, очевидные нарушения (оскорбления), но регулярно пропускают редкие сопутствующие (дискриминацию по инвалидности, призывы к употреблению наркотиков). Вторая — инерция обучения (alignment inertia): когда правило разрешает что-то, что модель считает «плохим» по умолчанию, она замещает твоё правило своим, особенно если видит «токсично звучащие» слова.
Дополнительная находка: Chain-of-Thought («подумай шаг за шагом») в задачах строгого следования правилам — не помогает, а мешает. Без режима «обдумывания» модели соблюдают правила точнее и работают быстрее. Это контринтуитивно — но подтверждено на нескольких моделях.
Схема метода
Это не техника, а набор выводов. Превращаются в три принципа работы с промптами:
ПРИНЦИП 1: Явное перечисление критериев
→ Не "проверь контент", а список каждого критерия отдельно
→ Для каждого: "есть / нет / почему"
ПРИНЦИП 2: Декларация приоритета правил
→ Добавь явную инструкцию: "руководствуйся ТОЛЬКО этими правилами,
не своими дефолтными суждениями"
→ Формат: "РАЗРЕШЕНО: ..., ЗАПРЕЩЕНО: ..."
ПРИНЦИП 3: Без режима "обдумывания" для задач строгого следования
→ Если задача — точно применить правила, не рассуждать
→ Укажи: "Отвечай напрямую, без размышлений вслух"
Все три принципа применяются в одном промпте.
Пример применения
Задача: Ты управляешь комьюнити ВКонтакте для инвестиционного клуба. Нужно проверять посты перед публикацией по конкретным правилам площадки — не по общим нормам, а именно по вашим.
Промпт:
Ты — модератор инвестиционного комьюнити. Твоя задача — применять
ТОЛЬКО правила ниже. Не используй собственные суждения о том,
что "кажется" вредным или безопасным.
ПРАВИЛА ПЛОЩАДКИ:
ЗАПРЕЩЕНО: конкретные инвестиционные советы ("купи X"),
обещания доходности, личные оскорбления участников
РАЗРЕШЕНО: критика стратегий, обсуждение рисков,
скептицизм по отношению к конкретным активам
Проверь пост по КАЖДОМУ правилу отдельно:
[ ] Конкретный инвестиционный совет — есть / нет
[ ] Обещание доходности — есть / нет
[ ] Личное оскорбление — есть / нет
Для каждого пункта: результат + одна цитата из текста как обоснование.
Отвечай напрямую по чеклисту, без вводных рассуждений.
ПОСТ:
{текст поста}
Результат: Модель пройдёт по каждому критерию отдельно с явным «есть/нет» и цитатой. Благодаря явному перечислению критериев — не пропустит редкое нарушение. Благодаря «руководствуйся ТОЛЬКО этими правилами» — не заблокирует резкую критику, которую по умолчанию могла бы счесть «токсичной». Благодаря «без вводных рассуждений» — ответ придёт быстро и по делу.
Почему это работает
Слабость LLM — модель не работает с чистым листом. У неё есть «встроенные» суждения из обучения: что безопасно, что токсично, что нормально. Когда твои правила расходятся с этими суждениями — встроенные побеждают. Это не баг, это особенность: модель обучена «отфильтровывать плохое», и эта установка очень сильная.
Вторая слабость — при оценке чего-либо модель, как правило, фокусируется на самом ярком нарушении. Остальное уходит на второй план. Если контент расистский И содержит призыв к насилию — модель поставит флаг за расизм и может не заметить второе. Чем реже тип нарушения встречается в обучающих данных, тем выше шанс что его пропустят.
Как принципы это обходят: Явный чеклист заставляет модель «смотреть» на каждый критерий отдельно — нет возможности проскочить мимо редкого. Декларация «ТОЛЬКО эти правила» создаёт явный приоритет и снижает вес встроенных суждений. Запрет на «обдумывание вслух» убирает шаг, в котором модель начинает «рассуждать» и возвращается к дефолтным паттернам.
Рычаги управления: - Уровень детализации чеклиста → чем конкретнее формулировка критерия («обещание доходности выше 30%» вместо «обещание доходности»), тем точнее оценка - Фраза «ТОЛЬКО эти правила» → усилить через «даже если тебе кажется, что контент нормальный/вредный» под конкретный кейс - «Без рассуждений вслух» → убери, если хочешь видеть логику — полезно при отладке промпта - Формат вывода → замени чеклист на JSON, если нужна машинная обработка
Шаблон промпта
Ты — эксперт по оценке {тип контента}.
Применяй ТОЛЬКО правила ниже. Не используй собственные суждения.
ПРАВИЛА:
ЗАПРЕЩЕНО: {запрещённое действие 1}, {запрещённое действие 2}
РАЗРЕШЕНО: {разрешённое действие 1}, {разрешённое действие 2}
Проверь {тип контента} по каждому критерию отдельно:
[ ] {Критерий 1} — есть / нет + цитата-обоснование
[ ] {Критерий 2} — есть / нет + цитата-обоснование
[ ] {Критерий 3} — есть / нет + цитата-обоснование
Итог: разрешить / отклонить + одна строка почему.
Отвечай напрямую по чеклисту, без вводных рассуждений.
{тип контента}:
{сам контент}
Плейсхолдеры:
- {тип контента} — отзыв, пост, комментарий, резюме, текст письма
- {запрещённое/разрешённое действие} — конкретные формулировки твоих правил
- {Критерий} — каждое правило выносится в отдельную строку чеклиста
- {сам контент} — текст для проверки
🚀 Быстрый старт — вставь в чат:
Вот шаблон для строгой проверки контента по правилам.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какой контент проверять, какие правила применять и какие критерии важны — потому что без этого не сможет правильно расставить «ЗАПРЕЩЕНО/РАЗРЕШЕНО» и составить чеклист под твою задачу.
Ограничения
⚠️ Инерция обучения сохраняется: Даже с явными инструкциями «ТОЛЬКО эти правила» — модели всё равно частично следуют своим обученным суждениям. Особенно когда контент содержит «токсично звучащие» слова. Полностью отключить встроенную мораль промптом нельзя.
⚠️ Редкие нарушения всё равно хуже: Чеклист помогает, но модели объективно слабее на редких категориях (дискриминация по инвалидности, специфичные сленговые оскорбления). Для критически важных задач — добавляй примеры таких нарушений в промпт.
⚠️ Chain-of-Thought в модерации: Если используешь модели с режимом «обдумывания» (o3, DeepSeek-R1) для строгого следования правилам — попробуй без него. В задачах чёткого применения правил расширенное мышление может снижать точность, а не повышать. Для сложного анализа с нюансами — CoT по-прежнему полезен.
⚠️ Контекстная зависимость слова: Если правило разрешает что-то, что «звучит плохо» (например, резкая критика или ненормативная лексика в определённом контексте) — модель может проигнорировать разрешение. Тогда добавь пример: «РАЗРЕШЕНО: [пример фразы]».
Ресурсы
GMP: A Benchmark for Content Moderation under Co-occurring Violations and Dynamic Rules
GitHub: https://github.com/howarddong711/GMP-Benchmark
HuggingFace: https://huggingface.co/datasets/HowardDong/GMP-Benchmark
Авторы: Houde Dong, Yifei She, Kai Ye, Liangcai Su, Chenxiong Qian, Jie Hao — Beijing University of Posts and Telecommunications, The University of Hong Kong
