Запрет работает хуже замены
«Не пиши вводных абзацев» модель выполняет через раз. «Начни с первого факта» — почти всегда. Разница в том, что во втором случае у неё есть что делать.
Список запретов в промпте — обычное дело: не пиши вводных абзацев, не используй маркированные списки, не добавляй заключение. Выполняется неровно, и особенно неровно — когда запретов много.
Причина, кажется, механическая. Модель порождает продолжение текста. Запрет говорит, чего в продолжении быть не должно, но не говорит, что там должно быть вместо. В точке, где по инерции обучающей выборки идёт вводный абзац, у модели остаётся дырка — и она заполняется тем же самым вводным абзацем, просто чуть иначе сформулированным.
Замена закрывает дырку: «начни с первого факта», «оформи как связный текст», «закончи на открытом вопросе». Формулировка длиннее, зато у каждой точки принятия решения есть заданное содержание.
Проверить это несложно на своём же шаблоне: возьмите список из пяти запретов и перепишите каждый в форме «делай вот так». Разница видна на десятке ответов.
Второе наблюдение из той же области: запрет упоминает то, что запрещает. Написав «не используй слово „ключевой“», вы кладёте это слово в контекст. Мой опыт — эффект слабый, но ненулевой, и на длинных списках запретов он накапливается.
Где запрет всё-таки уместен: когда замены не существует. «Не выдумывай
номера версий» нечем заменить, кроме как «ставь null», — и вот это
уже работает. То есть даже здесь выигрывает формулировка, дающая модели
конкретное действие.