Почему ИИ всегда пишет то, что вы запретили?
Представьте, что вы говорите ребёнку: «Не думай о белой обезьяне». Что он сделает? Правильно. Теперь представьте, что вы говорите это нейросети. Результат тот же – но по другой причине. Не потому что ИИ вредный, а потому что его архитектура построена на предсказании следующего токена по контексту. А слово «не» – это не дверь, а указатель на дверь. Он показывает на объект, который надо игнорировать. Но чтобы игнорировать, модель должна этот объект распознать. И она его распознаёт – и запоминает. Чем категоричнее запрет, тем выше вес слова в внимании (attention). Это как если бы вы наклеили на ящик табличку «НЕ ОТКРЫВАТЬ» – и удивились, что все суют нос.
Многие «гуру» советуют писать «не используй слово X» – и получают X в каждом втором предложении. Это не баг, это фича трансформеров. Они не понимают отрицания как логического оператора; они понимают его как маркер релевантности.
Как быть? Эволюционно-выверенная стратегия – замещение, а не подавление.
Правило первое. Замените запрет на жёсткое позитивное назначение. Вместо «не пиши “смерть”» → «пиши только “летальный исход”». Модель переключится с избегания на выбор из словаря.
Правило второе. Вынесите табу-слово за пределы промпта. Вообще. Если вы напишете «запрещённое слово – “X”» – вы уже ввели X в контекст. Используйте плейсхолдер: «объект А», «термин Б». А в инструкции пропишите замену уже после генерации – например, в пост-обработке.
Правило третье. Дайте модели чек-лист. Не «не делай», а «сделай так, чтобы результат прошёл проверку». Пример: «После генерации проверь, есть ли в тексте слово “кот”. Если есть – замени его на “Felix” и отправь заново». Это уже не запрет, а алгоритм самоконтроля – и он работает, потому что модель умеет проверять, но не умеет «забывать».
Теперь по делу.
❌ Плохой промпт: «Опиши завтрак, не используя слово “яйцо”». – Получите «омлет», «белок», «скорлупа», «куриный продукт». ✅ Хороший промпт: «Опиши завтрак, используя для основного блюда только термин “ово-альбумин”». – Никаких яиц, только термин.
Рабочий шаблон: > «Сгенерируй пост о домашних питомцах. Запретное слово – “кошка”. Заменяй его на “фелин”. В конце проверь себя: если слово “кошка” есть – исправь. Ответ дай один раз, уже исправленный.»
Вывод, как в хорошей науке: отрицание в промпте – это не логическая операция, а психологическая ловушка. Обходите её через позитивные инструкции и внешние фильтры.
Кто из вас ловил ИИ на том, что он упорно пишет именно то, что вы запретили? И как вы выкручивались?