3,583 papers
arXiv:2610.24971 88 18 окт. 2026 г. FREE

Чек-листы для LLM-судьи: строгость задают пункты, а не модель

КЛЮЧЕВАЯ СУТЬ
Обнаружено: строгость LLM-судьи задают не модель и не формулировка, а сами пункты чек-листа. На одних и тех же ответах рукописный чек-лист пропускал почти все правильные, а сгенерированный моделью — почти ни одного. Метод позволяет найти в чек-листе пункты, которые валят хорошие ответы, и вычистить их, не потеряв пункты, ловящие реальный брак. Судья отвечает Да/Нет по каждому пункту отдельно, а провал ответа делится поровну между пунктами-виновниками (расчёт Шэпли). Для каждого пункта видно, сколько уникальных поимок он даёт и сколько ложных провалов на нём.
Адаптировать под запрос
⚡

TL;DR

Чек-лист для LLM-судьи — это список вопросов «да/нет», по которым модель проверяет чужой ответ. Ответ проходит, только если по всем пунктам «да». Главный вывод: строгость проверки задаёт содержание пунктов, а не выбор модели-судьи и не формулировка. На одних и тех же ответах рукописный чек-лист пропускал почти все правильные ответы, а сгенерированный моделью — почти ни одного. Смена судьи или способа оформления сдвигала результат на считаные пункты.

Если приказать модели «улучшить» чек-лист без внешней проверки, она подгоняет его под свой вкус. Добавляет требования, которых задача не просила (например, «дай рекомендации по исправлению»), и вычёркивает пункты, которые ловили реальные пробелы, как «расплывчатые». Правильные ответы начинают массово браковаться, а настоящие ошибки пролетают. Причина в арифметике: при правиле «все пункты должны пройти» каждый лишний пункт умножает долю прошедших на свою долю прохода. Десять пунктов, каждый из которых зря валит 5% хороших ответов, пропустят только около 60% хороших. Ни один пункт при этом не выглядит неправильным.

Метод защиты состоит из трёх частей. Во-первых, мерить две доли: сколько правильных прошло и сколько плохих поймано. Точность (accuracy) их маскирует. Во-вторых, для каждого пункта считать, сколько уникальных поимок он даёт и сколько ложных провалов на нём. Для этого исход ответа делится поровну между пунктами, которые его завалили (расчёт Шэпли, см. ниже). В-третьих, принимать правку чек-листа как правку кода: пункт с уникальными поимками не удалять, пункт с ложными провалами не добавлять, пункты, выведенные из человеческих меток, замораживать.

🔬

Схема метода

ШАГ 1: Размеченная выборка (30–50 ответов, метка «ок / не ок») → калибровочный набор
ШАГ 2: Судья отвечает Да/Нет по КАЖДОМУ пункту отдельно → таблица ответов (ответ × пункт)
ШАГ 3: Две доли: правильных прошло % и плохих поймано % (не accuracy)
ШАГ 4: Для каждого пункта: 
        • зачёт поимок = сумма 1/(число проваливших пунктов) по плохим ответам
        • ложные провалы = то же по правильным ответам
        • уникальные поимки = плохие ответы, которые валит только этот пункт
ШАГ 5: Правка чек-листа проходит «ворота»:
        • пункт с уникальной поимкой — не удалять
        • пункт с ложными провалами — не добавлять / убрать
        • пункты, выведенные из меток, — заморожены
        • после каждого принятого изменения — пересчёт

Шаги 2–4 можно выполнить в одном чате с таблицей или в Excel. Правка в шаге 5 — отдельные запросы.

🚀

Пример применения

Задача: Команда поддержки продавцов на маркетплейсе (типа Ozon) запустила бота для ответов на жалобы. Руководитель попросил ChatGPT придумать чек-лист для автопроверки ответов бота. Модель выдала 11 пунктов, включая «предлагает компенсацию», «приводит ссылку на регламент» и «извиняется дважды». В итоге судья браковал почти всё, даже ответы, которые операторы признали хорошими. Нужно починить чек-лист, не раздувая его.

Промпт (шаг 1 — судья):

Ты проверяющий ответов службы поддержки Ozon Seller.
На входе: жалоба продавца, ответ бота, чек-лист.
Ответь на КАЖДЫЙ пункт отдельно, независимо от остальных: «Да» или «Нет».
Пункт считается «Да», только если ответ бота явно ему соответствует.
Проверяй только то, что написано в пункте, ничего не добавляй от себя.

Жалоба: «Мой товар заблокировали за "нарушение правил карточки", 
а в чём нарушение — не написали. Потерял три дня продаж».

Ответ бота: «Здравствуйте! Карточка заблокирована, потому что в основном 
фото есть водяной знак. Уберите его и отправьте карточку на повторную 
модерацию — это занимает до 24 часов. Ссылка на правила: ...»

Чек-лист:
1. Назван конкретный повод блокировки.
2. Сказано, что продавцу сделать дальше.
3. Указан срок повторной проверки.
4. Ответ не обещает того, чего нет в регламенте.
5. Тон нейтральный, без обвинений продавца.

Формат ответа — таблица: № | Да/Нет | цитата из ответа, на которую опираешься.

Результат: Модель выдаст таблицу из пяти строк с «Да/Нет» и цитатой-основанием по каждому пункту. Такие таблицы по 30–40 размеченным ответам вы собираете в одну матрицу и скармливаете второму промпту из шаблона. Он покажет, какие пункты ловят реальные косяки (уникальные поимки), а какие просто валят хорошие ответы (ложные провалы). Дальше вы удаляете или переписываете только пункты с ложными провалами, а пункты с уникальными поимками не трогаете.

🧠

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

Слабость. Когда проверка «кажется неправильной», мы винили модель-судью и меняли её или делали промпт строже. Но судья в основном просто исполняет чек-лист. Если в списке стоят пункты вроде «рекомендует отключить анонимный доступ», а задача такого не требовала, судья честно ответит «Нет» и завалит правильный ответ. При правиле «все должны пройти» эти провалы перемножаются. Модель, правящая чек-лист без меток, не видит этой цены и добавляет пункты «для полноты».

Сильная сторона. Судья хорошо отвечает «Да/Нет» на узкий пункт, и его ответы по пунктам стабильны. Из таблицы ответов можно без повторных запросов прикинуть, что случится, если вычеркнуть любой пункт. Это следует из свойства «ответ валят все пункты, которые сказали Нет»: у такой игры Шэпли-значение считается простой формулой — 1 делится на число проваливших пунктов.

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

Рычаги управления: - Правило агрегации. «Все пункты Да» → «не более одного Нет» поднимает долю прошедших правильных с единиц процентов до большинства. Это сильнее, чем перефразирование. Ужесточайте или смягчайте здесь, а не в формулировках. - Число пунктов. Больше пунктов — меньше доля прошедших правильных ответов. Добавляйте пункт только если у него есть доказанные уникальные поимки. - Размер размеченной выборки. Больше размеченных плохих примеров — меньше пунктов с ложным нулевым зачётом. Обязательно держите в выборке «неожиданные пропуски» (ответ, в котором упущено то, что автор чек-листа не предвидел). - Пересчёт. Пересчитывайте после каждого принятого изменения: два пункта по отдельности безопасно удалять, а оба сразу — нет.

📋

Шаблон промпта

Промпт 1 — судья по пунктам (ответы на каждый пункт независимы):

Ты — проверяющий. На входе: {источник_или_задача}, {проверяемый_ответ}, чек-лист.
Отвечай на КАЖДЫЙ пункт чек-листа отдельно и независимо от других пунктов:
«Да» или «Нет».
«Да» — только если ответ явно соответствует пункту.
Проверяй ровно то, что написано в пункте. Не добавляй свои требования.

Чек-лист:
{пункт_1}
{пункт_2}
...

Формат: таблица «№ | Да/Нет | цитата-основание».

Промпт 2 — атрибуция по таблице ответов:

Ниже таблица: строка = проверенный ответ, столбцы = пункты чек-листа.
В ячейках «Да» или «Нет». Для каждого ответа дана метка: «ок» (правильный) 
или «брак» (плохой). Ответ проходит, только если во всех ячейках «Да».

Посчитай для каждого пункта:
1. Зачёт поимок: для каждого «брак»-ответа, который завалил пункт,
   добавь 1 / (число пунктов, которые этот ответ завалили). Сумма по всем «брак»-ответам.
2. Ложные провалы: то же самое, но по «ок»-ответам.
3. Уникальные поимки: число «брак»-ответов, у которых «Нет» стоит ТОЛЬКО в этом пункте.

Выведи итоговую таблицу «пункт | зачёт | ложные провалы | уникальные поимки».
Затем посчитай общие доли: сколько «ок»-ответов прошло и сколько «брак»-ответов поймано.

Рекомендации:
— пункт с уникальными поимками > 0 — не удалять;
— пункт с ложными провалами и без уникальных поимок — кандидат на удаление;
— если два пункта оба безопасны к удалению по отдельности, предупреди: 
  проверить удаление вместе.

Таблица:
{таблица_ответов_с_метками}

Что подставлять: {источник_или_задача} — то, по чему проверяют (регламент, исходный текст, ТЗ); {проверяемый_ответ} — сам ответ; пункты — по одному вопросу «да/нет», в рамках того, что задача явно требует; {таблица_ответов_с_метками} — результаты Промпта 1 по 30–50 размеченным ответам. Среди них должны быть и правильные, и плохие, примерно поровну.

🚀 Быстрый старт — вставь в чат:

Мне нужно проверять ответы {что_проверяем} чек-листом с LLM-судьёй. 
Вот два шаблона: судья по пунктам и атрибуция по таблице. 
Адаптируй под мою задачу. Задавай вопросы, чтобы заполнить поля.

[вставить шаблоны выше]

LLM спросит, что считается «хорошим» ответом, чего задача явно требует, а что нет, и сколько у вас размеченных примеров. Это нужно, чтобы пункты не выходили за рамки задачи. Именно лишние пункты ломают чек-лист сильнее всего.

⚠️

Ограничения

⚠️ Нужны метки: защита работает только если у вас есть 30–50 ответов с человеческой меткой «ок / брак». Без внешней метки правка чек-листа моделью дрейфует к её собственному вкусу. Это показано на всех проверенных моделях-ревизорах.

⚠️ Нулевой зачёт ≠ ненужный пункт: если пункт защищает от ошибки, которой в вашей выборке нет или она встретилась один раз, его зачёт будет нулевым. Поэтому «ворота» работают в паре с заморозкой пунктов, выведенных из меток. Одна атрибуция без заморозки может удалить нужный пункт.

⚠️ Пункты зависят друг от друга: два пункта могут быть безопасны к удалению по отдельности, но вместе дублируют друг друга. Удалите оба — и ошибка пройдёт. Пересчитывать нужно после каждого принятого изменения.

⚠️ Только для правила «все пункты Да»: простая формула атрибуции верна именно для него. Для оценок по шкале или «не более одного Нет» нужен другой расчёт.

⚠️ Узкая база: все эксперименты — с моделями одного семейства (Claude). Основной полигон — синтетическая задача по безопасности облака, плюс два публичных датасета на проверку фактов и верности источнику. Выборки небольшие, поэтому величины цифр для вашей задачи не переносите, а механику проверьте на своей выборке.

⚠️ Не исправляет судью: если судья в принципе не понимает критерий, это не сработает. Метод лечит чек-листы, а не слабых судей.

🔍

Как исследовали

Идея была простой: заморозить всё, кроме чек-листа. Исследователи построили 12 синтетических облачных окружений, куда заранее «подложили» известные проблемы безопасности. Агент писал отчёты, часть была правильной, часть — с одним из четырёх дефектов: пропущенная проблема, выдуманная, не на том ресурсе или преувеличенная. Так у каждого отчёта была точная метка без участия человека. Затем сравнивали рукописные пункты, пункты, сгенерированные моделью, и три модели-судьи. Дополнительно меняли оформление: список «да/нет», абзац, шкала 1–5.

Неожиданность: рукописные пункты пропускали 96–98% правильных отчётов, а сгенерированные — 2–8%, и это не менялось ни от судьи, ни от оформления. Сгенерированные пункты не были злее по тону. Они требовали того, чего задача не просила (например, рекомендовать, как отключить доступ). При подсчёте произведение долей прохода по отдельным пунктам предсказывало реальную долю прохода с точностью до 2 пунктов. Три раунда «улучшения» чек-листа моделью не двигали результат, а вот смена правила «все Да» на «не более одного Нет» подняла долю прошедших правильных с 5,6% до 69,4%.

Результат повторили на двух публичных датасетах с человеческой разметкой: SummEdits (согласованность резюме) и RAGTruth (верность ответа источнику). На RAGTruth десять общих пунктов пропускали лишь 41% ответов, которые люди сочли верными (свободный вердикт — 81%), а поимок прибавляли немного. Пункты запрещали лёгкий синтез из нескольких фрагментов, а аннотаторы его принимали.

Затем проверили самоправку чек-листа тремя моделями-ревизорами. Дрейф был везде: правильные проходили в 6% вместо 97%, а проверка пропусков, выведенная из меток, удалялась как «расплывчатая» (поимка падала со 100% до 8–25%). Из 186 удалённых пунктов 78 держали уникальную поимку, и только 2 несли ложные провалы: модель стирала нужное и оставляла вредное. «Ворота» из атрибуции плюс заморозки меток удержали 9 из 10 дрейфующих цепочек правок в пределах 5 пунктов от исходного качества. Решения не менялись при смене судьи.

Практический вывод: если вы оцениваете LLM-ответы чек-листом, критичны содержание и контроль правок, а не выбор самой мощной модели.

📄

Оригинал из исследования

Так авторы показывают ревизору размеченный пример (формат передачи меток):

Report: “Critical: storage account datalake01, container ‘hr-exports’, has anonymous read enabled and holds payroll CSVs; ... Medium: diagnostic logging is disabled on datalake01, ...”
Human label: pass; judge with your current rubric: fail <– DISAGREES; judge’s answers: [Yes, Yes, Yes, Yes, No, No, No, Yes]

Контекст: ревизору показывали каждый калибровочный ответ с человеческой меткой, вердиктом судьи и ответами по пунктам, с пометкой расхождений. Так ревизор «учился», что пункты про рекомендации и мелочи необязательны. Полные промпты авторов в приложениях к статье.

💡

Адаптации и экстраполяции

💡 Адаптация для промпта-инструкции агента: чек-лист самопроверки в конце системного промпта (например, для Claude Code: «перед завершением ответь Да/Нет на каждое из 5 условий») подчиняется той же арифметике. Каждое лишнее условие, не вытекающее из задачи, растит число зря отклонённых результатов.

Перед тем как сказать «готово», проверь отдельно каждое условие и ответь Да/Нет:
1. {условие_из_ТЗ_1}
2. {условие_из_ТЗ_2}
Если где-то «Нет» — исправь и проверь снова. Не добавляй условий, которых нет в ТЗ.

🔧 Техника: свободный вердикт → слепое пятно. Судья без чек-листа пропускает всё (включая реально неполные ответы), потому что его никто не просил проверять полноту. Если вам нужна мягкость — держите 2–3 жёстких пункта на то, что реально критично, и не гонитесь за полнотой списка.

🔧 Техника: «аудит пункта» вместо «улучшения чек-листа». Вместо «улучши этот чек-лист» спрашивайте по каждому пункту: «Требует ли этот пункт то, чего нет в ТЗ? Да/Нет + цитата из ТЗ». Это переносит проверку на привязку к задаче и режет фантазии модели. Это моя экстраполяция, авторы такой промпт не тестировали.

🔗

Ресурсы

  • Статья: Rubrics Carry the Standard: Shapley Attribution for Checklist-Based LLM Judges
  • Авторы: Saeid Asgari, Rui Ying, Sara Malvar, Rakshanda Agarwal, Bruce Sun, Claire Wang, Leonardo de Oliveira Nunes, Ranveer Chandra — Microsoft
  • Датасеты: SummEdits, RAGTruth
  • Связанные работы: TICK, CheckEval (чек-листы из «да/нет»), HealthBench (рубрики врачей), EvalGen (дрейф критериев), Ding et al. (сдвиг предпочтений судьи при правках рубрики), Rulers (заморозка рубрики)

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

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

Обнаружено: строгость LLM-судьи задают не модель и не формулировка, а сами пункты чек-листа. На одних и тех же ответах рукописный чек-лист пропускал почти все правильные, а сгенерированный моделью — почти ни одного. Метод позволяет найти в чек-листе пункты, которые валят хорошие ответы, и вычистить их, не потеряв пункты, ловящие реальный брак. Судья отвечает Да/Нет по каждому пункту отдельно, а провал ответа делится поровну между пунктами-виновниками (расчёт Шэпли). Для каждого пункта видно, сколько уникальных поимок он даёт и сколько ложных провалов на нём.

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

Правило проверки простое: ответ проходит, только если по всем пунктам «Да». Из-за этого каждый лишний пункт умножает долю прошедших на свою долю прохода. Возьмите десять пунктов, каждый из которых зря валит 5% хороших ответов. Пройдёт около 60%. Ни один пункт при этом не выглядит плохим. Именно так ломается чек-лист: по пункту всё нормально, а в сумме беда. Поэтому считаем не одну точность, а две доли: сколько правильных прошло и сколько плохих поймано. Точность прячет перекос. Для каждого пункта считаем зачёт поимок и ложные провалы: 1 делим на число пунктов, которые завалили ответ. Пункт с уникальной поимкой не удаляй, пункт с ложными провалами не добавляй. Пункты, выведенные из человеческих меток, замораживай. Это как правки в коде: сначала проверка, потом принятие.

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

Судья в основном исполняет чек-лист. Если в списке стоит «дай рекомендации по исправлению», а задача этого не просила, он честно ответит «Нет». Хороший ответ будет забракован. Жесть: если попросить модель «улучшить» чек-лист без внешней проверки, она добавляет такие пункты «для полноты». А настоящие пункты, которые ловили пробелы, вычёркивает как «расплывчатые». Без человеческих меток модель правит чек-лист под свой вкус, и это показано на всех проверенных моделях-ревизорах. Метод заменяет вопрос «звучит ли пункт разумно?» на вопрос «что он делает на размеченных ответах: ловит или валит?». Судья хорошо отвечает на узкий пункт, и его ответы стабильны. Поэтому из одной таблицы ответов можно прикинуть, что будет после удаления любого пункта. Повторные запросы не нужны. Есть и сильный рычаг: правило агрегации. Если заменить «все пункты Да» на «не более одного Нет», доля прошедших правильных ответов растёт с единиц процентов до большинства. Это сильнее любого перефразирования. Смена судьи или оформления сдвигала результат на считаные пункты.

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

Автопроверка ответов ботов и сгенерированных текстов → особенно когда судья бракует почти всё, включая ответы, которые люди признали хорошими. Подходит для поддержки клиентов, проверки фактов, сверки с источником. Нужно 30–50 ответов с меткой «ок / брак», примерно поровну тех и других. Добавьте туда «неожиданные пропуски»: ответы, где упущено то, чего автор чек-листа не ждал. НЕ подходит, если меток нет: без них правку чек-листа уводит в сторону вкуса модели. Не подходит для оценок по шкале и правила «не более одного Нет»: там нужна другая формула. Не лечит слабого судья, который не понимает сам критерий. Эксперименты шли на моделях одного семейства (Claude) и небольших выборках. Цифры для своей задачи не переносите, механику проверьте на своих данных.

Мини-рецепт

1. Собери выборку: 30–50 ответов с человеческой меткой «ок» или «брак», примерно поровну.
2. Запусти судью по пунктам: пусть отвечает «Да/Нет» на каждый пункт отдельно и цитирует основание из ответа.
3. Склей таблицу: строка = ответ, столбец = пункт, в ячейках «Да/Нет», рядом метка.
4. Посчитай две доли: сколько «ок» прошло и сколько «брак» поймано. Если «ок» проходит единицы процентов, чек-лист душит всё подряд.
5. Раздай каждому пункту оценку: зачёт поимок, ложные провалы, уникальные поимки.
6. Режь аккуратно: пункты с ложными провалами и без уникальных поимок — кандидаты на удаление. Пункты с уникальными поимками не трогай. Пункты из человеческих меток заморозь.
7. Пересчитывай после каждой правки: два пункта по отдельности удалять безопасно, а оба сразу — уже нет, они могут дублировать друг друга.
8. Если «ок» всё равно режется: смягчи правило агрегации до «не более одного Нет», а не переписывай формулировки.

Примеры

[ПЛОХО] : Придумай чек-лист для проверки ответов бота поддержки и улучши его, чтобы был строже (модель добавляет «предлагает компенсацию» и «извиняется дважды», хорошие ответы массово бракуются)
[ХОРОШО] : Ты проверяющий ответов поддержки. Ответь на КАЖДЫЙ пункт отдельно, независимо от остальных: «Да» или «Нет». «Да» только если ответ бота явно соответствует пункту. Ничего не добавляй от себя. Чек-лист: 1. Назван конкретный повод блокировки. 2. Сказано, что продавцу делать дальше. 3. Указан срок повторной проверки. 4. Нет обещаний, которых нет в регламенте. 5. Тон нейтральный. Формат: таблица № | Да/Нет | цитата из ответа. Дальше 30–40 таких таблиц вместе с метками «ок / брак» идут во второй запрос: Вот таблица: строка = ответ, столбцы = пункты, в ячейках «Да/Нет», у каждого ответа метка «ок» или «брак». Ответ проходит, только если везде «Да». Для каждого пункта посчитай: зачёт поимок (по «брак»-ответам сумма 1 / число проваленных пунктов), ложные провалы (то же по «ок»-ответам), уникальные поимки («Нет» только в этом пункте). Затем покажи, сколько «ок» прошло и сколько «брак» поймано. Пункты с уникальными поимками не предлагай удалять.
Источник: Rubrics Carry the Standard: Shapley Attribution for Checklist-Based LLM Judges
ArXiv ID: 2610.24971 | Сгенерировано: 2026-10-20 16:50

Проблемы LLM

ПроблемаСутьКак обойти
Модель правит чек-лист или критерии под свой вкусПросишь: «улучши чек-лист». Без внешней проверки модель добавляет требования, которых задача не просила. Например, «дай рекомендации по исправлению». Пункты, которые ловили реальные пробелы, она вычёркивает как «расплывчатые». Хорошие ответы начинают браковаться, а плохие проходят. Каждая правка выглядит разумно, поэтому дрейф не заметен. Так происходит с любыми критериями оценки, которые модель переписывает самаНе давай модели править критерии вслепую. Собери 30–50 ответов с человеческой меткой «ок / брак». Проверяй каждую правку на них (метод ниже). Пункт, который ловит брак, не удаляй. Пункт, который валит хорошие ответы, не добавляй

Методы

МетодСуть
Аудит пунктов чек-листа по размеченной выборке — видно, какой пункт полезен, а какой вредитШаг 1. Возьми 30–50 ответов с меткой «ок / брак». Поровну тех и других. Включи «неожиданные пропуски»: ошибки, которых автор чек-листа не предвидел. Шаг 2. Пусть судья отвечает «Да/Нет» на каждый пункт отдельно. Каждый пункт он оценивает независимо от остальных. К каждому ответу он приводит цитату-основание. Собери таблицу: строка = ответ, столбец = пункт. Шаг 3. Считай две доли: сколько хороших прошло и сколько плохих поймано. Общая точность их маскирует. Можно ловить почти всё и браковать почти всё хорошее, а точность будет «нормальной». Шаг 4. Для каждого пункта считай три числа. Зачёт поимок: для каждого плохого ответа, который пункт завалил, добавь 1 / число проваленных пунктов. Вину делим поровну между всеми, кто сказал «Нет». Ложные провалы: то же самое по хорошим ответам. Уникальные поимки: плохие ответы, которые валит только этот пункт. Шаг 5. Правила принятия правок. Пункт с уникальными поимками не удалять. Пункт с ложными провалами не добавлять, а существующий переписать или убрать. Пункты, выведенные из человеческих меток, заморозить. После каждой принятой правки пересчитать. Почему работает: вопрос «звучит ли пункт разумно?» заменяется вопросом «что он делает на реальных ответах?». Судья стабилен на узких вопросах «да/нет». Поэтому из готовой таблицы можно прикинуть, что будет при удалении любого пункта, без новых запросов. Оговорки. Нулевой зачёт не значит, что пункт не нужен. Возможно, его ошибка просто не встретилась в выборке. Поэтому нужна заморозка. Два пункта могут быть безопасны к удалению по отдельности, но дублировать друг друга. Удалишь оба — ошибка пройдёт. Формула верна только для правила «все пункты Да». Для шкал и правила «не более одного Нет» нужен другой расчёт. Метод не лечит судью, который не понимает критерий

Тезисы

ТезисКомментарий
При правиле «все пункты должны пройти» каждый лишний пункт снижает долю прошедших хороших ответовДоли прохода по пунктам перемножаются. Десять пунктов, каждый из которых зря валит 5% хороших ответов, пропустят около 60% хороших (0,95 в десятой степени). Ни один пункт при этом не выглядит неправильным. Модель, которая добавляет пункты «для полноты», этой цены не видит. Применяй: держи чек-лист коротким. Добавляй пункт, только если он ловит реальный брак, и только в рамках того, что задача явно требует. Если хорошие ответы массово браковаться, смягчи правило: «не более одного Нет» вместо «все Да»
📖 Простыми словами

Rubrics Carry the Standard: Shapley Attribution for Checklist-BasedLLMJudges

arXiv: 2610.24971

Когда нейросеть оценивает работу другой нейросети по чек-листу, люди обычно винят модель-судью, если вердикт выходит дурацким. Но корень проблемы в другом: модель просто тупо делает то, что велели. Всю строгость задаёт содержание критериев, а логика «пройти должны вообще все пункты» превращает любую мелкую придирку в приговор. Если список вопросов кривой, даже продвинутая модель забракует почти 100% адекватных ответов.

Это как посадить на проходную дотошного вахтёра со списком из тридцати нелепых требований. Сам мужик просто делает свою работу, но если в инструкции написано «вход строго в синей рубашке и с зонтом», он развернёт тебя в сорокаградусную жару. Формально он прав, но система не работает, потому что избыточные правила умножают отказы на каждом шаге.

Исследователи выяснили: смена модели-судьи сдвигает точность всего на считаные пункты, тогда как фильтрация критериев решает всё. Если поручить LLM самой составить требования, она начнёт душить перфекционизмом и добавит бред вроде «извинись дважды». Выход — применять атрибуцию Шепли для оценки веса каждого вопроса и безжалостно резать лишнее: рукописный короткий чек-лист пропускает почти все годные ответы, пока сгенерированный моделью список методично топит систему.

Тестировали на саппорте маркетплейсов, но этот принцип универсален для любой автопроверки: модерация контента, ревью кода, оценка диалогов в продажах или аудит саппорта. Везде, где LLM-судья ставит галочки по схеме «да/нет», узким горлышком становится дизайн рубрики, а не крутизна модели. Бесполезно менять GPT на Claude ради объективности — ты просто наймёшь другого исполнительного вахтёра.

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

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

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

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