TL;DR
FLARE — это способ улучшать промпт, показывая модели её собственные конкретные провалы: вот вход, вот неверный ответ, вот правильный. Модель сначала ставит диагноз каждой ошибке, потом точечно переписывает промпт под эту причину — вместо общего "сделай лучше".
Обычный способ улучшить промпт — попросить модель "сделай его лучше" или "проанализируй, что не так". Модель выдаёт общие советы ("будь внимательнее", "думай по шагам"), которые не бьют по реальной причине провала. Разница между "работает" и "не работает" часто прячется в мелких деталях исполнения, а общие правила эти детали не ловят.
FLARE решает это так: прогоняет промпт на наборе примеров → помечает каждый ответ как ВЕРНО или НЕВЕРНО (с указанием правильного ответа) → отдаёт модели весь список ошибок с диагнозом → модель переписывает промпт хирургически под эти конкретные провалы. Цикл повторяется до 40 раз, оставляют версию с лучшим результатом на проверочном наборе.
Схема метода
ШАГ 0: Прогони текущий промпт на наборе примеров → получи ответы модели
ШАГ 1: Сравни каждый ответ с правильным → пометь ВЕРНО или НЕВЕРНО (+ правильный ответ)
ШАГ 2: Передай в отдельном запросе: текущий промпт + все примеры (верные и неверные) + история последних 3 попыток
ШАГ 3: Модель диагностирует причину каждой ошибки → переписывает промпт точечными правками
ШАГ 4: Проверь новый промпт на том же наборе → если лучше — сохрани как лучший, если хуже — откати
Повтори шаги 1–4 несколько раундов
В оригинале это автоматизированный цикл (код, API, 40 итераций). Но саму логику — "диагноз по конкретной ошибке → точечная правка" — можно провернуть руками в чате, просто с меньшим числом раундов.
Пример применения
Задача: Вы сделали промпт для сортировки отзывов на Wildberries по тональности (позитив/негатив/нейтрально + эмоция: разочарование, восторг, злость). Промпт работает, но иногда путает "нейтрально раздражённые" отзывы с "негативными".
Промпт:
Вот промпт, которым я классифицирую отзывы покупателей:
ТЕКУЩИЙ ПРОМПТ:
{вставить свой промпт}
Я проверил его на реальных отзывах. Вот случаи, где он ошибся:
Пример 1:
Отзыв: "Доставили быстро, но упаковка была помята. В целом норм."
Ответ модели: Негатив
Правильный ответ: Нейтрально
Пример 2:
Отзыв: "Товар супер, но менеджер грубил в чате."
Ответ модели: Позитив
Правильный ответ: Смешанная эмоция (восторг + раздражение)
[добавь ещё 3-5 таких примеров]
Для каждой ошибки: определи, ПОЧЕМУ промпт привёл модель к неверному выводу.
Потом перепиши промпт так, чтобы устранить именно эти причины — конкретными правками, а не общими фразами вроде "будь точнее".
Не трогай части промпта, которые работают правильно.
Результат: Модель разберёт каждый пример отдельно (например: "модель путает упоминание мелкого неудобства с общим негативом — нужно явное правило про вес разных сигналов"), а затем выдаст обновлённую версию промпта с конкретными добавленными правилами под каждый найденный паттерн ошибки.
Почему это работает
Модель плохо реагирует на просьбу "улучши промпт" в общем виде — она не знает, что именно ломается, и выдаёт расплывчатые советы, которые ничего не меняют на практике.
Зато модель хорошо умеет сравнивать два конкретных объекта — неверный ответ и правильный — и находить разницу между ними. Это задача на сопоставление, а не на абстрактное рассуждение.
FLARE использует именно эту сильную сторону: заставляет модель не гадать "что вообще не так", а разбирать конкретные пары "ошибся здесь → вот что должно было быть" — и чинить промпт под каждый найденный паттерн.
Рычаги управления: - Число примеров-ошибок → больше примеров = шире диагноз, но больше текста в запросе. Для быстрой проверки хватает 5-8 показательных провалов. - История последних попыток → если храните, что уже пробовали менять, модель не повторяет одни и те же правки по кругу. - Полный набор верных примеров рядом с ошибками → показывает модели, что не надо ломать при правке.
Шаблон промпта
Вот промпт для задачи: {описание задачи}
ТЕКУЩИЙ ПРОМПТ:
{текущий_промпт}
Я протестировал промпт на реальных примерах. Вот случаи, где он ошибся:
Пример 1:
Вход: {вход_1}
Ответ модели: {ответ_1} — НЕВЕРНО
Правильный ответ: {правильный_ответ_1}
Пример 2:
Вход: {вход_2}
Ответ модели: {ответ_2} — НЕВЕРНО
Правильный ответ: {правильный_ответ_2}
[добавь остальные ошибочные примеры, 5-8 штук]
Для каждой ошибки:
1. Определи конкретную причину — почему промпт привёл к неверному ответу.
2. Перепиши промпт точечно под эту причину — без общих фраз типа "будь внимательнее".
3. Сохрани части промпта, которые уже работают правильно.
Плейсхолдеры: {описание задачи} — что классифицируете/извлекаете/делаете, {текущий_промпт} — ваш рабочий промпт, {вход/ответ/правильный_ответ} — конкретные провальные случаи из тестов.
🚀 Быстрый старт — вставь в чат:
Вот метод улучшения промпта через диагностику конкретных ошибок (FLARE).
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какие именно ошибки вы видели на практике — потому что без конкретных пар "неверный/верный ответ" метод не работает, диагноз строится именно на сравнении.
Ограничения
⚠️ Нужен правильный ответ: метод требует знать, что было "верно" в каждом случае. Для субъективных задач без чёткого эталона (креативный текст, стиль) метод не применим.
⚠️ Слабо помогает на сложных цепочках рассуждений: на задачах, где ответ зависит от многошагового поиска и вывода (а не от одной точки исполнения), правки промпта дают гораздо меньший эффект — проблема не в формулировке, а в самой сложности задачи.
⚠️ Ручная версия требует нескольких раундов: в статье цикл автоматический и идёт до 40 итераций. Руками в чате реалистично сделать 2-4 раунда — этого может не хватить для сложных промптов.
Ресурсы
FLARE (Few-shot Learning-based Adaptive Reflective Engine), Microsoft — Dhanasekar Sundararaman, Bharat Gandhi, Aashna Garg, Minjie Li. Сравнение с GEPA (Genetic-Pareto). Код: github.com/microsoft/FLARE
