TL;DR
EvalLoop — методология, которая превращает оценку ответов LLM из финального вердикта ("плохо/хорошо") в диагностический инструмент: что именно сломалось и почему. Вместо одного aggregate-балла она разбивает качество на 5–8 измерений с независимыми метриками — и каждый слабый балл сразу указывает на конкретный тип проблемы, а значит, и на конкретное исправление.
Главная боль: когда промпт даёт неровные результаты, обычно делают что попало — меняют модель, добавляют слов, переформулируют. Один из авторов изменил конфигурацию Gemini-моделей (отключил reasoning tokens) — и не получил вообще ничего. Ноль эффекта. Потому что итерация без диагноза — это стрельба в темноте. Промпт может одновременно иметь 96% структурного соответствия и 66% синтеза — но aggregate-оценка 82% скрывает эту разницу и не говорит, что именно чинить.
Метод решает проблему так: сначала разбей качество на измерения, потом для слабых измерений классифицируй почему провалы происходят, потом меняй ровно одну переменную и перепроверяй. В кейсе авторов 69% ошибок галлюцинации оказались одного типа (модель строила выводы за пределами данных) — после одного точечного исправления промпта общий балл вырос с 82.6% до 94.6%.
Схема метода
Один цикл = 5 шагов (несколько запросов к LLM)
ШАГ 1: ОПРЕДЕЛИ ИЗМЕРЕНИЯ
— 5–8 измерений, каждое = отдельный тип качества
— Критерий: разные проблемы требуют разных исправлений
→ Список: [Структура | Точность содержания | Галлюцинации | Формат | Синтез]
ШАГ 2: ОЦЕНИ ВЫВОД ПО ИЗМЕРЕНИЯМ
— LLM оценивает каждое измерение отдельно по рубрике
→ Профиль: Структура 96% / Точность 79% / Галлюцинации 85% / Синтез 66%
ШАГ 3: ОПРЕДЕЛИ СЛАБОЕ ИЗМЕРЕНИЕ
— Ищи самый низкий балл — это твоя точка вмешательства
→ "Синтез 66% — наша мишень"
ШАГ 4: КЛАССИФИЦИРУЙ ПОЧЕМУ ПРОВАЛЫ
— LLM анализирует конкретные ошибки и называет тип
→ "69% галлюцинаций — модель строит выводы за пределами фактов"
ШАГ 5: ИСПРАВЬ ОДНУ ПЕРЕМЕННУЮ И ПОВТОРИ
— Меняешь только то, что указал диагноз
— Остальное не трогаешь
→ Проверяешь: целевое измерение выросло? Другие не упали?
Пример применения
Задача: Ты — аутсорс-маркетолог. Генерируешь коммерческие предложения для B2B-клиентов. Результаты нестабильны: одни КП сильные, другие клиенты молчат. Хочешь понять что именно ломается и как это починить.
Промпт:
У меня есть задача: генерировать коммерческие предложения для B2B-клиентов
на основе брифа.
Я хочу провести диагностическую оценку. Для этого мне нужно твоя помощь.
Вот бриф клиента:
[Бриф: компания "АвтоЛогист", ищет систему учёта топлива, 50 машин в парке,
бюджет до 300 тыс. в год, главная боль — перерасход топлива водителями]
Вот сгенерированное КП:
[текст КП]
Оцени КП по следующим ИЗМЕРЕНИЯМ. Для каждого дай балл от 0 до 100
и 1-2 предложения объяснения:
Насколько КП точно попадает в названную боль клиента?
Критерий: боль упомянута конкретно, решение привязано к ней напрямую
Насколько чётко описано что именно получит клиент?
Критерий: есть конкретные функции, процессы, результаты — без воды
Есть ли подтверждения заявлений (кейсы, цифры, механизмы)?
Критерий: каждый значимый тезис подкреплён фактом или примером
Легко ли клиенту найти ключевую информацию?
Критерий: логичный порядок, понятные заголовки, нет лишнего
Понятно ли что делать дальше и зачем сделать это сейчас?
Критерий: конкретный следующий шаг, без размытых формулировок
После оценки: назови СЛАБЕЙШЕЕ измерение и классифицируй —
почему именно там провалы? Выдели 2-3 типа ошибок из текста.
Результат: Модель выдаст таблицу по пяти измерениям с баллами и объяснениями. Слабейшее измерение получит отдельный разбор: модель перечислит типы ошибок ("тезис без доказательства", "абстрактное обещание вместо конкретного результата"). Ты видишь не просто "КП слабое" — ты видишь конкретный диагноз, с которым можно идти чинить промпт.
Почему это работает
LLM выдаёт aggregate-оценку как один сжатый сигнал — потому что без явной структуры ей не указано раскладывать качество по полочкам. Это как спросить врача "как я?" и получить "средне" — вместо "давление в норме, но пульс высокий, потому что кофеин".
Измерения работают потому что разные типы ошибок имеют разные причины и требуют разных исправлений. Структурный провал чинится форматными инструкциями. Галлюцинационный провал чинится ограничением на вывод за пределами данных. Если ты не знаешь какое измерение сломано, ты с одинаковой вероятностью починишь правильную вещь или сломаешь то, что работало.
Рычаги управления промптом:
- Число измерений → 5 измерений для стандартных задач, 3 для быстрой диагностики. Меньше = грубее, больше = точнее, но дольше
- Формулировки критериев → чем конкретнее описан критерий внутри
, тем точнее оценка. "Есть конкретные цифры" работает лучше чем "точно" - Шаг классификации → если добавить "выдели 3 типа ошибок" — получаешь не просто балл, а категорию проблемы → направление исправления
- Итерация → меняй в промпте одно, переоценивай по тем же измерениям. Если целевое измерение выросло, а остальные не упали — попал точно
Шаблон промпта
Оцени [тип контента] по следующим ИЗМЕРЕНИЯМ качества.
Задача генерации: {описание задачи}
Входные данные: {бриф / контекст / исходник}
Оцениваемый текст: {текст}
Для каждого измерения: балл 0–100 + 1-2 предложения объяснения.
{что измеряем}
Критерий: {конкретный признак хорошего результата}
{что измеряем}
Критерий: {конкретный признак хорошего результата}
{что измеряем}
Критерий: {конкретный признак хорошего результата}
{что измеряем}
Критерий: {конкретный признак хорошего результата}
{что измеряем}
Критерий: {конкретный признак хорошего результата}
После оценки:
1. Назови СЛАБЕЙШЕЕ измерение (минимальный балл)
2. Классифицируй причины провала: выдели 2-3 конкретных типа ошибок из текста
3. Предложи одно точечное исправление промпта, которое устранит главный тип ошибок
Плейсхолдеры:
- {описание задачи} — что ты просишь LLM генерировать ("КП для B2B-клиента", "пост для Telegram", "резюме переговоров")
- {бриф / контекст / исходник} — данные, с которыми работает LLM при генерации
- {текст} — конкретный вывод, который оцениваешь
- {измерение_N} — аспект качества, важный для твоей задачи (структура, точность, тон, аргументация, призыв к действию)
Как придумать свои измерения: Спроси себя — если этот контент плохой, то что именно в нём плохого? Структура? Аргументы? Попадание в аудиторию? Каждый тип "плохого" — отдельное измерение.
🚀 Быстрый старт — вставь в чат:
Вот шаблон EvalLoop для диагностической оценки контента.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какой тип контента ты генерируешь, что считаешь хорошим результатом, и какие измерения важны именно для тебя — потому что без этого она не может правильно сформулировать критерии внутри . Она возьмёт структуру шаблона и адаптирует под твою задачу.
Ограничения
⚠️ Измерения нужно придумать заранее: Метод не работает без осмысленных измерений. Если измерения слабо разделены ("качество" + "хорошесть" + "понятность") — диагноз смажется. Требует 10–15 минут на определение измерений при первом применении.
⚠️ Не для разовых задач: Ценность раскрывается только при итерации. Если генерируешь текст один раз и не повторяешь — инструмент избыточен. Метод работает там, где ты делаешь один тип контента регулярно.
⚠️ Оценка LLM — не истина: LLM-оценщик субъективен и может давать непоследовательные баллы по семантическим измерениям. Авторы рекомендуют добавить человека на финальном этапе для высокоставочных решений — не в каждую итерацию, а один раз перед финальным выбором.
⚠️ Одно изменение за раз: Если менять промпт сразу в нескольких местах, невозможно понять что помогло. Дисциплина одной переменной — обязательное условие метода, не опция.
Как исследовали
Команда из Robert Half (кадровый гигант) решила не просто написать методологию, а проверить её на реальной задаче: генерации sales-брифов по аккаунтам потенциальных клиентов. Идея была простой — взять 10 моделей, 3 итерации, посмотреть что даёт результат, а что нет.
Взяли 100 синтетических аккаунтов (реальные данные не раскрываешь — взяли искусственные, но с реалистичной структурой), прогнали через GPT, Claude, Gemini. 18 метрик, разбитых на 5 измерений. Для оценки — тройка LLM-судей от разных провайдеров (чтобы не было систематического самопредпочтения).
Самый острый результат: во второй итерации отключили reasoning tokens у Gemini — и не получили вообще ничего. Ноль изменений ни в одном измерении. Это был "undirected change" — изменение без диагноза. Зато в третьей итерации классификация ошибок галлюцинаций показала, что 69% — один тип (инференс за пределами фактов). Один точечный промпт-фикс → +12 процентных пунктов к общему баллу.
Неожиданный инсайт: статистический анализ показал, что метрики внутри одного измерения почти не коррелируют между собой (близко к нулю). Авторы ожидали обратного. Вывод: измерения полезны не потому что их метрики хорошо кластеризуются — а потому что разные ошибки требуют разных исправлений. Это диагностическая структура, не статистическая.
Финальный аккорд: после автоматических итераций 4 финалиста прошли слепой отбор у эксперта по продажам на 16 кейсах. Человеческая оценка совпала с dimensional-рейтингом — самый слабый по метрикам оказался и слабым у эксперта. Это подтвердило, что метрики действительно измеряют то, что важно.
Адаптации и экстраполяции
🔧 Упрощённый диагноз без измерений заранее — когда не знаешь с чего начать
Если нет готовых измерений, попроси LLM их придумать на основе задачи, а потом оценить:
Я генерирую {тип контента} для {аудитория}.
Посмотри на этот пример вывода и предложи 5 измерений качества
для такого типа контента. Для каждого — название и критерий.
Потом оцени этот же текст по этим измерениям.
Текст: {текст}
Это немного снижает точность (измерения могут быть менее интервенционно-валидными), но запускает цикл без предварительной подготовки.
🔧 EvalLoop как финальный ревью перед отправкой
Используй не для итерации промпта, а как чеклист перед отправкой важного текста:
Оцени этот текст по 5 измерениям [список].
Если любое измерение ниже 75 — предложи конкретное исправление
именно в этой части текста.
Это превращает инструмент в автоматический редактор с диагностикой — без итерации, просто разовая проверка.
Ресурсы
Название работы: EvalLoop: A Methodology for Evaluation-Driven Iterative Improvement of Business AI Systems
Авторы: Kenneth Benavides, Josh Fleischer, Danti Chen (Robert Half)
Связанные методы из статьи: G-Eval [Liu et al., 2023], FActScore [Min et al., 2023], DSPy [Khattab et al., 2023], APE [Zhou et al., 2023], HELM [Liang et al., 2023]
