Универсальный Bloom: Analyze ⏱ 10 мин + 5 на практику оценка

Почему «точное совпадение» — плохая метрика (LLM-as-Judge)

🧊 Won't Have 💧 Could Have ☀️ Should Have 🔥 Must Have
💧 Could Have
Углубление в то, как именно оценивать ответы агента честно. Не критично для общей картины, но снимает очень частую и дорогую ловушку. Полезно, если сам собираешься мерить качество.

🤔 Зачем это читать

Ты решил по-взрослому проверять своего AI-помощника. Завёл список из полусотни вопросов с «правильными» ответами-эталонами и настроил проверку: ответ агента совпал с эталоном дословно — зачёт, не совпал — брак. Логично же. Запускаешь — и видишь разгром: половина ответов помечена красным. Лезешь читать руками, а там… ответы-то верные. Просто агент написал «Столица Франции — Париж», а у тебя в эталоне «Париж — столица Франции». Смысл один. Машина увидела разные слова — и влепила ноль.

Знакомо? Или обиднее: на этот кривой результат смотрит начальство. Ты гордо показываешь «у нас 48% точности» — и проект режут как сырой. А на деле помощник отвечает правильно процентов на девяносто, просто твоя линейка меряет не то. Ты не доказал, что он плох. Ты доказал, что не умеешь его мерить — и это стоило проекту жизни.

Корень один: для текста «точное совпадение» (exact-match, дословная сверка с эталоном) — почти всегда плохая метрика. Язык гибкий: одну и ту же верную мысль можно сказать десятком способов, и все они правильные. Линейка, которая сверяет по буквам, этого не видит в принципе. Она годится для «да/нет» и чисел, но не для живого текста — а агенты как раз пишут живой текст.

После этой темы ты будешь сходу различать, где дословная сверка работает, а где она вреднее, чем её отсутствие — и будешь знать, чем её заменить, когда нужно честно оценить смысл, а не буквы. Это прямое продолжение темы 11.2 — Как понять, что агент работает: оценка vs тестирование: там мы договариваемся, что агента надо мерить; здесь разбираем, чем именно мерить, чтобы линейка не врала.

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

📏 Дословная сверка ломается на первом же синониме

Начнём с того, почему вообще тянет к «точному совпадению». Оно честное и дешёвое: сравнил две строки символ в символ — совпало или нет, спорить не о чем, считается мгновенно и бесплатно. И для многих вещей это ровно то, что нужно. Агент вернул код страны «RU»? Сумму «58 000»? Ответ «да»/«нет»? Тут дословная сверка идеальна: правильный ответ ровно один, и любое отклонение — это реальная ошибка.

Беда начинается там, где правильных формулировок много. А у живого текста их всегда много. Посмотри на самый простой случай — оба ответа верны на сто процентов, но дословная сверка одному из них ставит ноль.

Вопрос: «Какая столица Франции?» · эталон в списке: «Париж — столица Франции»
Ответ агента
«Столица Франции — Париж»
❌ 0 баллов
Дословно с эталоном не совпало — слова переставлены. Машина видит «брак».
Что на самом деле
Смысл идентичен эталону
✅ верно
Человек поставил бы зачёт за секунду. Те же факты, другой порядок слов.
Один правильный ответ — два разных вердикта. Виновата не модель. Виновата линейка, которая меряет буквы вместо смысла.

И это самый безобидный пример — всего лишь перестановка слов. В реальной работе агент перефразирует, добавляет вежливое вступление, пишет «18 тысяч рублей» вместо «18 000 ₽», отвечает развёрнуто там, где в эталоне сухо. Каждое такое расхождение дословная сверка считает ошибкой. В итоге метрика показывает не «насколько агент хорош», а «насколько дословно он попал в твою конкретную формулировку» — а это никому не нужное число. Хуже того: оно системно занижает качество, и ты принимаешь решения на заниженных цифрах.

👅 Дегустатор не сверяет блюдо с фоткой из меню

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

А теперь представь дегустатора-формалиста, который оценивает иначе: достаёт фотографию блюда из меню и сверяет тарелку с фоткой пиксель в пиксель. Петрушка лежит не под тем углом? Соус капнул левее, чем на картинке? Брак, отправить на кухню. При этом блюдо может быть бесподобным на вкус — но он же не пробовал, он сверял картинку. Абсурд, правда? Так вот, дословная сверка ответа с эталоном — это и есть тот самый формалист с фоткой. Он меряет внешнее совпадение, а не качество.

Нормальный способ оценить текст — как нормальный дегустатор: по рубрике (rubric, чек-лист критериев качества). Не «совпало ли слово в слово с эталоном», а «верны ли факты? отвечает ли на вопрос? вежливо ли? нет ли отсебятины?». Это оценка по смыслу и по делу — ровно то, что сделал бы человек, только нам нужно как-то поручить это машине, потому что ответов — тысячи, и руками каждый не перечитаешь.

⚖️ LLM-судья: отдельный дегустатор с чек-листом

И вот решение, к которому пришла индустрия: раз оценку по смыслу хорошо делает человек, но людей не хватает на тысячи ответов — посадим другую языковую модель в роли дегустатора. Этот приём называется LLM-судья (LLM-as-Judge, «модель в роли судьи»): одна модель отвечает на вопросы, а вторая, отдельная, оценивает эти ответы по рубрике — как живой эксперт, но быстро и на любом объёме.

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

Псевдокод (на пальцах) · задание LLM-судье # это НЕ настоящий код, а логика на человеческом языке
РОЛЬ: ты строгий дегустатор. Оцени ОТВЕТ помощника по чек-листу ниже.
ВОПРОС: «Товар не подошёл, можно ли вернуть через 20 дней после покупки?»
ОТВЕТ: [сюда подставляется то, что выдал агент]

ЧЕК-ЛИСТ (рубрика):
  1. Факт верен? (товар надлежащего качества «не подошёл» — возврат 14 дней, значит «нельзя»)
  2. Прямо отвечает на вопрос клиента?
  3. Тон вежливый, без грубости?
  4. Нет выдуманных условий, которых не спрашивали?

ВЫДАЙ СТРОГО В ФОРМАТЕ: вердикт (зачёт / незачёт) + балл по каждому пункту + одна фраза почему
# судья оценивает СМЫСЛ по пунктам, а не сверяет буквы с эталоном

Заметь три правила, без которых судья превращается в лотерею — их стоит держать в голове, даже если настраивать будет подрядчик:

📋
Рубрика, а не «на глаз». Без чёткого чек-листа судья оценивает по настроению, и два запуска дадут два разных вердикта. Чек-лист — это то, что делает оценку повторяемой и объяснимой: видно, за какой именно пункт сняли балл.
🧱
Структурный вывод (structured output, ответ по жёсткой схеме). Судья выдаёт не сочинение, а строгую форму: вердикт, баллы по пунктам, короткое обоснование. Иначе результаты не собрать в таблицу и не посчитать. Это та самая «подача по стандарту» — ответ по жёсткой форме, а не вольное сочинение; здесь она работает на оценку.
🌡️
Низкая «температура» (настройка разброса в ответах: чем ниже, тем меньше импровизации). Судье импровизация ни к чему: его задача — оценивать стабильно и одинаково, а не творить. Низкая температура держит вердикты последовательными от запуска к запуску.

🚫 Нельзя одной модели и готовить, и судить

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

Поэтому писатель и судья — две разные роли, две отдельные модели (или хотя бы два независимых вызова с разными ролями). Одна готовит, другая дегустирует свежим взглядом. Это та же логика «свежего глаза», что и в приёме 5.4 Producer-Critic, где отдельный критик проверяет работу автора: смысл один — кто делал, тот плохой судья своему делу. Разделил роли — получил честную оценку. Слил в одну — получил самолюбование с красивыми цифрами.

И держи в голове трезвую оговорку, прежде чем влюбляться в LLM-судью: судья — тоже языковая модель, и он тоже ошибается. Он может быть мягче к длинным ответам, поддаться на уверенный тон, иногда промахнуться по факту. Поэтому его не ставят и забывают: рубрику время от времени сверяют с живой человеческой оценкой на небольшой выборке — совпадает ли судья с тем, как оценил бы эксперт. Судья масштабирует здравый смысл на тысячи ответов, но не заменяет его насовсем. Об этом — в AI-чутье ниже.

🎮 Какой линейкой мерить этот ответ

Четыре ситуации с оценкой ответов агента. Для каждой реши: хватит ли дешёвой дословной сверки (правильный ответ ровно один, любое отклонение — реальная ошибка) или нужен LLM-судья по рубрике (правильных формулировок много, важен смысл, а не буквы). Жми — и сразу увидишь разбор. Опора простая: дословная сверка годится только там, где ответ обязан быть ровно одной строкой.

📖 Ключевые понятия

Точное совпадение (exact-match)
Способ оценки, при котором ответ агента сверяется с эталоном дословно, символ в символ: совпало — зачёт, нет — брак. Дёшево, быстро и честно, но только там, где правильный ответ ровно один (код, число, метка из списка, «да»/«нет»). На живом тексте системно бракует правильные ответы из-за других слов — там это плохая метрика.
Рубрика (rubric)
Чек-лист критериев качества, по которому оценивают ответ: факт верен? на вопрос отвечает? тон вежливый? нет отсебятины? Аналог того, как дегустатор оценивает блюдо (посолено? сочно? подача?), а не сверяет с фоткой из меню. Делает оценку по смыслу повторяемой и объяснимой.
LLM-судья (LLM-as-Judge)
Приём оценки, где отдельная языковая модель ставит вердикт ответам по рубрике — как живой эксперт, но быстро и на любом объёме. Масштабирует человеческую оценку на тысячи ответов. Работает на трёх опорах: рубрика, структурный вывод, низкая температура. Сам тоже ошибается — рубрику периодически сверяют с человеческой оценкой.
Разделение ролей (писатель ≠ судья)
Правило: одну и ту же модель нельзя просить и писать ответ, и оценивать его — она поставит себе «отлично», не видя своих слепых пятен. Писатель и судья — две разные роли. Та же логика свежего взгляда, что в приёме Producer-Critic.

🛡️ Частые заблуждения

«Сравнить с эталоном дословно — самая честная и объективная проверка»

Для текста — нет. Дословная сверка честна только когда правильный ответ один-единственный. У живого текста верных формулировок десятки, и сверка по буквам бракует их все скопом — показывает не качество агента, а то, насколько дословно он угадал твою личную формулировку эталона. Это не «строгая объективность», это системно заниженная и бесполезная цифра.

«LLM-судья — это модель оценивает сама себя, цифры будут подтасованы»

Если делать правильно — судья это ДРУГАЯ модель в отдельной роли, а не та же самая. Самооценку мы как раз запрещаем (повар не ставит себе оценку). Подвох в другом: судья — тоже модель и тоже ошибается, поэтому его рубрику периодически сверяют с живой человеческой оценкой на выборке. Не «подтасовка», а «масштабируемый эксперт, которого надо изредка калибровать».

«Раз дословная сверка плохая — выкину её совсем и всё буду мерить судьёй»

Перегиб в другую сторону. Где правильный ответ ровно один — код, число, метка из списка — дословная сверка идеальна: дешевле, быстрее и точнее судьи, спорить не о чем. Гонять LLM-судью на «RUB» или «да/нет» — жечь деньги и время на ровном месте. Линейку выбирают под задачу: буквы — для единственного верного ответа, смысл — для живого текста.

🧠 AI-чутьё (AI Judgment)

Судья масштабируем, но слепо не доверять; писатель и судья — всегда разные роли

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

LLM-судья — мощная вещь: он растягивает человеческий здравый смысл на тысячи ответов, которые руками никто не перечитает. Но держи две оговорки, иначе он подведёт. Первая: судья — тоже модель и тоже ошибается. Не ставь его и не уходи: сверяй его вердикты с живой человеческой оценкой на небольшой выборке — попадает ли он туда же, куда эксперт. Если разъезжается — чини рубрику. Вторая, и она железная: никогда не давай одной модели и писать, и судить. Самооценка модели бесполезна ровно так же, как самооценка повара своему блюду — почти всегда «отлично». Писатель и судья — две роли, две отдельные головы. Это тот же принцип свежего взгляда, что в Producer-Critic.

Практический вывод владельца: когда тебе показывают «точность нашего AI — X%», не кивай на цифру — спроси, чем мерили. Дословной сверкой по тексту? Тогда реальное качество почти наверняка выше показанного, а цифре грош цена. Судьёй? Тогда уточни, отдельная ли это модель и сверяли ли её с людьми. Один правильный вопрос про линейку защищает и от заниженной паники, и от завышенного оптимизма — а оба стоят денег.

🎯 Практика

Одно задание на пять минут — оно превращает «теорию про линейки» в твою рабочую рубрику.

  1. Возьми задачу, где AI-помощник пишет живой текст со своей работы: ответ клиенту, краткое содержание письма, черновик коммерческого предложения. Запиши её в одну строку.
  2. Спроси себя честно: правильный ответ тут ровно один или формулировок много? Почти наверняка много — значит, дословная сверка тут врёт, нужна оценка по смыслу.
  3. Набросай рубрику из 3-5 пунктов — чек-лист, по которому ты сам оценил бы этот ответ. Например, для ответа на жалобу: факт верен? проблема признана? решение предложено? тон вежливый? нет выдуманных обещаний? Это и есть задание, которое получил бы LLM-судья.
  4. Бонус-проверка: для той же работы найди, есть ли в ней кусочек, где ответ обязан быть единственным (номер заказа, сумма, дата). Вот его — и только его — честно мерить дословной сверкой. Так ты на одной задаче увидишь, где какая линейка уместна.

Помнишь те «48% точности», от которых чуть не зарезали проект в начале страницы? Теперь у тебя есть рубрика — и ты можешь показать не липовое число от кривой линейки, а честную оценку по делу. Это разница между «нас зарубили на цифре» и «мы доказали ценность».

🔗 Что дальше

Следующая тема: 11.4 — Concept drift: был хорош на запуске, через месяц поплыл (concept drift — дрейф: агент со временем «плывёт» от реальности). Даже честная оценка — это снимок на сегодня. Завтра сменился ассортимент, законы, привычки клиентов — и агент, что был хорош на запуске, тихо поплыл. Разберём, как ловить эту деградацию раньше, чем её заметит клиент.

Связанные темы:

Откуда мы пришли:

Дальше в модуле: