Итерация и улучшение по метрикам
Итерация и улучшение по метрикам
В прошлом уроке ты получил baseline: точность 60% (4 из 10 описаний содержат выдуманные характеристики). Это главная проблема. Сейчас — методично улучшаем промпт через итерации.
Итерация 1: Явный список типичных галлюцинаций
Гипотеза: модель «дорисовывает» типичные для категории фичи. Нужно явно перечислить, что именно ЗАПРЕЩЕНО добавлять без наличия во входе.
Изменение: добавляем в <instructions> список типичных ошибок:
<instructions>
...
АНТИ-ПРИМЕРЫ — так делать НЕЛЬЗЯ:
- Если во входе «умная колонка» — НЕ добавляй «голосовой помощник»
(Алиса, Маруся, Siri), если он не указан.
- Если во входе «смартфон» — НЕ добавляй «защита Gorilla Glass»,
«NFC», «Wireless Charging», если они не указаны.
- Если во входе «телевизор» — НЕ добавляй «Smart TV», «Wi-Fi»,
«HDMI 2.1», если они не указаны.
- Если во входе «мышь» — НЕ добавляй «бесшумные кнопки», «DPI»,
«эргономичный дизайн», если они не указаны.
Общее правило: если характеристики нет во входных данных — её НЕТ
в описании. Никаких предположений о том, что «обычно бывает»
в этой категории.
</instructions>
Результат на eval set:
| ID | Товар | Выдумано? |
|---|---|---|
| 2 | Смартфон | Да — «NFC» (мы не перечислили эту фичу!) |
| 5 | Умная колонка | Нет |
| 7 | Телевизор | Да — «поддержка HDR» (не упомянули) |
| 9 | Мышь | Нет |
Точность выросла: 8/10 = 80% (+20%!). Но две ошибки остались — мы не угадали все возможные галлюцинации.
Итерация 2: Универсальное правило вместо списка
Гипотеза: невозможно перечислить все фичи для всех категорий. Нужно универсальное правило, которое работает без списка.
Изменение: заменяем список на общее правило с самопроверкой:
<instructions>
...
ВАЖНО — проверка на галлюцинации:
После того как ты написал описание, выполни САМОПРОВЕРКУ:
1. Прочитай каждое утверждение в описании.
2. Для каждого утверждения найди подтверждение во входных данных.
3. Если подтверждения нет — удали утверждение.
4. НЕ предполагай наличие фичи только потому, что она «обычно бывает»
в товарах этой категории.
Помни: отсутствие фичи во входе ≠ «забыли указать». Это значит «фичи нет».
</instructions>
Результат: точность 10/10 = 100% по критерию «не придумывать»!
Но появилась новая проблема: описания для товаров с бедным входом стали слишком короткими (ID 6 — USB-кабель: 1 предложение).
Итерация 3: Баланс точности и привлекательности
Гипотеза: правило самопроверки работает, но для бедных входов модель уходит в перестраховку и выдаёт слишком короткие описания.
Изменение: добавляем правило про минимальную привлекательность:
<instructions>
...
Если входных характеристик мало и описание получается коротким
(меньше 3 предложений) — сделай акцент на:
- Дизайн и внешний вид (если указан цвет/материал).
- Сценарий использования (для чего товар).
- Соотношение цены и качества (если цена указана и она низкая).
НО: эти предложения должны опираться ТОЛЬКО на факты из входа.
«Красный цвет» → можно написать «яркий акцент в вашем стиле».
НЕ пиши «премиум-материал», если материал — обычный пластик.
</instructions>
Результат на eval set (полный):
| Метрика | v1 | v2 | v3 | Цель |
|---|---|---|---|---|
| Точность (нет выдумок) | 60% | 80% | 100% | 100% |
| Полнота (фичи упомянуты) | 87% | 84% | 91% | ≥ 90% |
| Длина (3–5 предл.) | 90% | 70% | 90% | ≥ 90% |
| Средняя оценка тона | 3.8 | 3.5 | 4.2 | ≥ 4.0 |
Все метрики в целевых значениях! Промпт v3 готов к документированию.
Чему мы научились
График прогресса:
Точность (нет выдумок)
100% ┤ ●
90% ┤ ●
80% ┤
70% ┤
60% ┤●
└───┬───────┬───────┬───────
v1 v2 v3
Каждая итерация решала конкретную проблему:
- v1 → v2: список типичных галлюцинаций. Проблема: список неполный.
- v2 → v3: самопроверка как универсальное решение. Побочный эффект: короткие описания для бедных входов.
- v3: баланс точности и привлекательности.
Важные уроки:
- Список запретов не масштабируется — универсальные правила надёжнее.
- Каждое изменение может иметь побочный эффект. Смотри на ВСЕ метрики, не только на ту, что чинишь.
- Самопроверка — мощная техника для борьбы с галлюцинациями.
- Три итерации превратили 60% в 100% — без изменения модели, только промптом.
Типичная ошибка: менять больше одной вещи за раз
Если бы мы одновременно добавили и список запретов, и самопроверку, и правила для бедных входов — мы бы не знали, что именно сработало. Итерации дисциплинируют: одна гипотеза → одно изменение → один замер.
Проверь себя
Точность твоего промпта — 75%. Ты добавляешь few-shot примеры, и точность растёт до 85%. Но длина ответов тоже выросла с 3–5 до 5–8 предложений. Это улучшение? Что будешь делать?
Итог
- Итерации — это методичный процесс: гипотеза → изменение → замер.
- Каждая итерация — ОДНО изменение. Так ты знаешь, что именно повлияло.
- Смотри на ВСЕ метрики — улучшение одной может ухудшить другую.
- Универсальные правила работают лучше, чем перечисления частных случаев.
- Самопроверка («перечитай и проверь») — эффективный способ борьбы с галлюцинациями.
- После трёх итераций можно достичь целевых метрик, даже если baseline был низким.
Что дальше
Промпт достиг целевых метрик. Теперь его нужно правильно задокументировать — чтобы коллеги могли понять, использовать и дорабатывать. В следующем уроке — стандарты документирования промптов.