3,583 papers
arXiv:2607.05638 76 6 июля 2026 г. FREE

EvalLoop: диагностическая итерация промпта через многомерную оценку

КЛЮЧЕВАЯ СУТЬ
Один из авторов метода поменял конфигурацию модели — ноль эффекта. Потому что итерация промпта без диагноза — стрельба в темноте: не знаешь что сломалось, не знаешь что менять. EvalLoop позволяет за один цикл найти конкретное слабое место в ответе LLM — и починить ровно его. Вместо одного сводного балла — разбитые независимые измерения: структура отдельно, галлюцинации отдельно, синтез отдельно. Слабейшее сразу показывает куда идти. С 82.6% до 94.6% — одним точечным исправлением после диагноза.
Адаптировать под запрос

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]


📋 Дайджест исследования

Ключевая суть

Один из авторов метода поменял конфигурацию модели — ноль эффекта. Потому что итерация промпта без диагноза — стрельба в темноте: не знаешь что сломалось, не знаешь что менять. EvalLoop позволяет за один цикл найти конкретное слабое место в ответе LLM — и починить ровно его. Вместо одного сводного балла — разбитые независимые измерения: структура отдельно, галлюцинации отдельно, синтез отдельно. Слабейшее сразу показывает куда идти. С 82.6% до 94.6% — одним точечным исправлением после диагноза.

Принцип работы

Сводный балл — это врач, который говорит «средне». Измерения — врач, который говорит «давление в норме, но пульс высокий из-за кофеина». Разные типы ошибок требуют разных исправлений — структурный провал чинится форматными инструкциями, галлюцинационный — ограничением на вывод за пределами данных. Сводный балл 82% прячет всё это. Профиль «Структура 96% / Синтез 66%» — уже готовый диагноз. Процесс такой: оцени вывод по 5–8 измерениям → найди слабейшее → попроси LLM классифицировать почему именно там провалы → исправь одну переменную → перепроверь. Всё. Никаких изменений наугад.

Почему работает

LLM без явной структуры сжимает качество в один сигнал. Добавляешь теги — и модель раскладывает качество по полочкам. В кейсе авторов обнаружилось, что 69% ошибок галлюцинации были одного типа: модель строила выводы за пределами фактов. Одна классификация → одно исправление → плюс двенадцать процентов к общему баллу. Без диагноза ты бы переписывал всё подряд и не понял бы что именно помогло — и помогло ли вообще.

Когда применять

Регулярная генерация одного типа контента: коммерческие предложения, посты, резюме переговоров, отчёты — особенно когда результаты скачут и непонятно почему. НЕ подходит для разовых задач — ценность раскрывается только при итерации. Если генерируешь текст один раз и не повторяешь, инструмент избыточен.

Мини-рецепт

1. Придумай измерения: задай себе вопрос — если этот текст плохой, то что именно в нём плохого? Структура? Аргументы? Попадание в боль клиента? Каждый тип «плохого» — отдельное измерение. Оптимально 5 штук.

2. Опиши критерий внутри каждого измерения: «есть конкретные цифры» работает лучше, чем «точно». Чем конкретнее критерий — тем точнее оценка.

3. Попроси LLM оценить вывод по измерениям: каждое отдельно, балл от 0 до 100 плюс 1–2 предложения объяснения.

4. Найди слабейшее измерение — это твоя точка вмешательства. Попроси модель выделить 2–3 типа ошибок именно здесь.

5. Исправь одну переменную в промпте — ровно ту, на которую указал диагноз. Остальное не трогай.

6. Перепроверь по тем же измерениям: целевое выросло? Остальные не упали? Если да — попал точно.

Примеры

[ПЛОХО] : Что не так с этим коммерческим предложением? Дай оценку и советы.
[ХОРОШО] : Оцени коммерческое предложение по следующим измерениям качества. Задача: КП для B2B-клиента на основе брифа Бриф: {бриф клиента} КП: {текст КП} Для каждого измерения: балл 0–100 + 1–2 предложения объяснения. Насколько КП точно закрывает названную боль клиента? Критерий: боль упомянута конкретно, решение привязано к ней напрямую Насколько чётко описано что именно получит клиент? Критерий: есть конкретные функции и результаты, без общих слов Есть ли подтверждения заявлений — цифры, примеры, механизмы? Критерий: каждый значимый тезис подкреплён фактом Легко ли клиенту найти ключевую информацию? Критерий: логичный порядок, понятные заголовки, нет лишнего Понятно ли что делать дальше и зачем сделать это сейчас? Критерий: конкретный следующий шаг, без размытых формулировок После оценки: 1. Назови слабейшее измерение 2. Выдели 2–3 типа ошибок именно там 3. Предложи одно точечное исправление промпта Результат: не расплывчатое «КП слабое», а конкретный профиль с диагнозом — «Доказательная база 58%, тип ошибки: тезис без подтверждения». Идёшь и чинишь именно это.
Источник: EvalLoop: A Methodology for Evaluation-Driven Iterative Improvement of Business AI Systems
ArXiv ID: 2607.05638 | Сгенерировано: 2026-07-08 04:31

Проблемы LLM

ПроблемаСутьКак обойти
Суммарная оценка качества не говорит что чинитьПросишь модель оценить текст числом или словом. Получаешь "82% — неплохо". Но 82% — это средняя температура по больнице. Структура может быть 96%, а синтез — 66%. Суммарный балл это скрывает. Не знаешь куда смотреть. Меняешь что попалоРазбей оценку на 5–8 отдельных измерений. Каждое — свой балл. Слабейший балл сразу показывает: вот твоя точка вмешательства

Методы

МетодСуть
Диагностическая оценка через измерения — находит что именно чинитьВместо одного вопроса "оцени текст" задаёшь 5 отдельных. Каждое измерение — в теге . Внутри: что измеряем и конкретный критерий хорошего результата. После оценки добавляешь шаг: "назови слабейшее измерение и выдели 2–3 типа ошибок внутри него". Это ключ — не просто "здесь слабо", а "здесь слабо потому что вот эти типы ошибок". Меняешь одну вещь в промпте. Прогоняешь снова по тем же измерениям. Проверяешь: слабое выросло? Остальные не упали? Почему работает: структурный провал чинится иначе чем галлюцинационный. Без измерений не знаешь какой именно провал. Когда применять: один тип контента который генерируешь регулярно. Когда не работает: разовая задача, нет повторения

Тезисы

ТезисКомментарий
Разные типы ошибок требуют разных исправлений — значит их нужно различать"Модель выдумывает факты" и "модель не попадает в структуру" — разные поломки. Первое чинится ограничением на вывод за пределами данных. Второе — форматными инструкциями. Если не знаешь какой тип сломан, с одинаковой вероятностью починишь правильное или сломаешь то, что работало. Применяй: добавляй в оценочный запрос шаг "классифицируй типы ошибок" — не просто балл, а категория. Категория даёт направление исправления
📖 Простыми словами

EvalLoop: A Methodology for Evaluation-Driven Iterative Improvement of BusinessAISystems

arXiv: 2607.05638

Суть EvalLoop в том, что мы перестаем оценивать работу нейросетей как школьные учителя — одной итоговой оценкой за четверть. В бизнесе толку от балла «три с плюсом» ноль, потому что непонятно, что именно чинить: то ли модель тупит, то ли данных не хватает, то ли тон общения как у коллектора. Методология превращает оценку в диагностическую карту, где качество распилено на 5–8 независимых кусков. Если система лажает, ты видишь не абстрактное «плохо», а конкретный «прогар» в одной из метрик, что сразу дает рецепт исправления.

Это как пытаться починить машину, у которой на приборке горит одна общая лампочка «что-то сломалось». Ты открываешь капот, смотришь на двигатель и гадаешь. EvalLoop же вешает датчик на каждый узел: отдельно на давление масла, отдельно на тормоза, отдельно на уровень антифриза. Вместо того чтобы в панике пересобирать весь движок (или менять модель с GPT-4 на Claude в надежде на чудо), ты просто доливаешь жидкость там, где мигает красным. Минимум суеты — максимум выхлопа.

В жизни это работает так: берем твой бизнес-процесс, например, генерацию КП, и вместо вопроса «ну как тебе текст?» задаем модели-судье 8 конкретных вопросов. Насколько предложение соответствует болям клиента, нет ли там галлюцинаций по ценам, соблюден ли деловой этикет. Если по этикету 10 из 10, а по «болям» — двойка, значит, проблема не в модели, а в том, что ты не скормил ей данные о клиенте. Ты видишь точную точку отказа и правишь промпт или базу знаний, не ломая то, что и так работает.

Тестировали это на сложных B2B-системах, но принцип универсален для любого AI-продукта, будь то чат-бот поддержки или генератор кода. Большинство разработчиков сейчас тыкаются в темноте, меняя промпты наугад и надеясь, что станет лучше. EvalLoop превращает этот хаос в инженерный цикл: измерил — нашел слабое звено — исправил — проверил снова. Слепая оптимизация умирает, на смену приходит таргетная настройка.

Короче: хватит оценивать AI «на глазок» или одним общим баллом — это путь в никуда и слив бюджета на бесконечные тесты. Нужно внедрять многомерную оценку, которая сама говорит, где именно система дает осечку. Либо ты строишь прозрачный конвейер улучшений, либо твой AI-сервис так и останется непредсказуемой игрушкой, которая то выдает шедевр, то несет полную ахинею без видимых причин.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с