«Сделай кнопку синей и больше ничего не трогай»: почему ИИ правит лишнее
За сутки на Hacker News собрал 1090 очков сайт-шутка: пользователю дают одно задание — сделать кнопку «Добавить в корзину» синей, ничего больше не меняя. Дальше начинается комедия, знакомая каждому, кто правил код через ИИ: цвет поменялся, но заодно переехала вёрстка, пропал отступ и почему-то обновилась библиотека.
Шутка попала в нерв, потому что описывает реальное поведение. Разберём, откуда оно берётся.
Причина первая: модель переписывает, а не правит
Языковая модель не умеет «менять символы с 412 по 418». Она порождает текст. Когда вы просите поправить страницу, модель по-честному выдаёт страницу целиком — и всё, что она напишет по дороге, окажется в файле.
Пока она пишет заново, срабатывают привычки, набранные на миллионах примеров: где-то выравнивание покажется неаккуратным, где-то захочется добавить обработку случая, который вы не просили. В сумме получается правка, которую никто не заказывал.
Причина вторая: вежливость обучена
Модели учат быть полезными. «Полезность» в обучении почти всегда означает «сделай чуть больше, чем спросили»: дополни, улучши, предупреди. На вопросы это работает прекрасно, на правках — разрушительно. Вам нужен ровно один синий цвет, а модель искренне считает, что помогает.
Причина третья: она не видит результат
Человек после правки смотрит на экран. Модель — нет. Она отдаёт текст и не знает, что вёрстка поехала. Отсюда бодрое «Готово!» при сломанной странице.
Как просить, чтобы получить именно правку
Несколько приёмов, которые реально снижают ущерб.
- Одна правка за раз. «Покрась кнопку» и «поправь отступы» — два разных сообщения. В одном запросе модель смешает их и добавит третье от себя.
- Назовите объект точно. Не «кнопка», а «кнопка Добавить в корзину в карточке товара». Чем меньше догадок, тем меньше самодеятельности.
- Запретите явно. Фраза «остальной код оставь без единого изменения» работает — не всегда, но заметно чаще, чем её отсутствие.
- Просите показать разницу. «Покажи, что именно поменял» — модель начинает считать себя ответственной за объём правки.
- Правьте на актуальной версии. Если правок было много подряд, приложите текущий файл заново: иначе модель продолжит цепочку от той версии, которую помнит.
Чем это лечится по-настоящему
Инструментом, а не уговорами. Когда правка выполняется не генерацией текста, а прямым действием над конкретным элементом, лишнему просто неоткуда взяться.
Так сделан визуальный редактор страниц в tenzor: вы открываете собранный сайт, кликаете по элементу и меняете текст, ссылку или картинку. Меняется ровно выбранное — остальная страница физически не участвует в правке, поэтому «заодно переделал вёрстку» здесь невозможно по устройству, а не по вежливой просьбе.
То же и с картинками: точечная замена области работает по маске, а не перерисовкой кадра, — поэтому таблица в документе остаётся таблицей, а не превращается в похожую.
Итог
Шутка про синюю кнопку смешная ровно потому, что правдивая. Пока модель правит текст пересозданием, лишние изменения будут появляться всегда — вопрос только в их количестве. Формулировки помогают, инструменты решают.
Почему ИИ меняет то, о чём его не просили?+
Он не редактирует файл точечно, а пишет его заново. Всё, что модель напишет по дороге, попадает в результат — плюс обучение поощряет делать чуть больше, чем спросили.
Помогает ли фраза «ничего больше не меняй»?+
Да, заметно, но не гарантированно. Это подсказка, а не запрет: модель по-прежнему порождает текст целиком.
Как правильно просить одну правку?+
Одно изменение за сообщение, точное название объекта, явный запрет на остальное и просьба показать, что именно изменилось.
Есть ли способ исключить лишние правки совсем?+
Да, если правка выполняется действием над конкретным элементом, а не перегенерацией страницы. В визуальном редакторе меняется только выбранный элемент.
Что дальше почитать
- Токены и кредиты: как устроена оплата — почему лишние перегенерации стоят денег.
- Модели для чата — какие модели лучше держат правки.
Соберите страницу и поправьте её кликом
Сайт собирается в чате, а мелкие правки делаются прямо по элементу — без переделки всего остального.
Открыть чат