Итеративный подход: тестируй и улучшай
Итеративный подход: тестируй и улучшай
В уроке 10.1 мы научились измерять качество. Теперь — сам процесс. Итеративный подход — это не «написал и забыл», а цикл непрерывного улучшения, основанный на метриках.
Цикл улучшения промпта
Измерь текущее качество (baseline)
↓
Найди самую частую ошибку
↓
Сформулируй гипотезу: «Если изменить X, ошибка уйдёт»
↓
Внеси ОДНО изменение в промпт
↓
Измерь качество снова
↓
Стало лучше? → Оставь изменение, повтори цикл
Стало хуже? → Откати, попробуй другую гипотезу
Реальный пример цикла
Задача: промпт классифицирует обращения клиентов. Eval set из 20 примеров. Базовая точность: 65% (13/20).
Итерация 1
Анализ ошибок: 4 из 7 ошибок — модель путает «жалобу» и «вопрос с претензией».
Пример ошибки:
- Текст: «Когда уже починят сайт? Неделю не могу зайти!»
- Модель: «жалоба»
- Ожидалось: «вопрос»
Гипотеза: модель не различает «вопрос» и «жалобу». Нужны примеры.
Изменение: добавил few-shot с 3 примерами.
Результат: точность 75% (15/20). Улучшилось! Ошибок «жалоба vs вопрос» стало 1 вместо 4.
Итерация 2
Анализ оставшихся ошибок: 3 из 5 — модель не отличает «предложение» от «вопроса».
Пример ошибки:
- Текст: «Было бы удобно, если бы добавили чат с оператором»
- Модель: «вопрос»
- Ожидалось: «предложение»
Гипотеза: в инструкции плохо описана категория «предложение».
Изменение: уточнил описание категории «предложение» — добавил примеры фраз-маркеров («было бы удобно», «предлагаю», «сделайте пожалуйста»).
Результат: точность 85% (17/20). Снова улучшение.
Итерация 3
Анализ: 3 ошибки остались. Все три — на сверхкоротких обращениях («Спасибо!», «Ок», «???»).
Гипотеза: на коротких текстах модели не хватает контекста.
Изменение: добавил правило «Если обращение короче 5 слов и нет явных маркеров — классифицируй как "другое"».
Результат: точность 90% (18/20). Две оставшиеся ошибки — действительно спорные случаи, где даже человек не уверен.
Правило одного изменения
На каждой итерации меняй ТОЛЬКО ОДНО. Если изменить три вещи за раз и качество выросло — ты не знаешь, какое из трёх изменений сработало. Если качество упало — не знаешь, какое откатывать.
Плохо (всё сразу): «Добавлю примеры, поменяю формат ответа, уточню категории и перепишу введение.»
Хорошо (одно за раз): Итерация 1: добавляю примеры → измеряю. Итерация 2: уточняю категории → измеряю. Итерация 3: меняю формат → измеряю.
Когда остановиться
- Точность достигла приемлемого уровня (какого? — зависит от задачи: для классификации спама 99%, для анализа тональности 85% может быть нормой).
- Оставшиеся ошибки — действительно спорные случаи, где и человек ошибается.
- Последние 2 итерации не дали улучшения > 2%.
- Затраты на улучшение превышают выгоду.
Проверь себя
Твой промпт имеет точность 70%. Ты хочешь улучшить его. Опиши первую итерацию: какую гипотезу проверишь, какое изменение внесёшь, как измеришь результат.
Итог
- Итеративный подход — это цикл: измерил → нашёл главную ошибку → гипотеза → одно изменение → измерил снова.
- Каждая итерация — ОДНО изменение. Не смешивай.
- Не угадывай, что улучшить — анализируй ошибки. Самая частая ошибка — первый кандидат на исправление.
- Остановись, когда точность приемлема или дальнейшие улучшения не окупаются.
- Итеративный подход превращает промпт-инжиниринг из магии в инженерию.
Что дальше
Ты освоил процесс улучшения. Но на результат влияет не только текст промпта. В следующем уроке — параметры модели: temperature, top_p, max_tokens. Как эти «ручки настройки» меняют поведение модели и когда их крутить.