TL;DR
Надёжность AI-оценки зависит не от настроек модели, а от того, насколько конкретны критерии в промпте. Расплывчатые описания ("оцени качество аргументации", "насколько логично написано") дают нестабильный результат: одно и то же можно получить на 6 и на 9. Конкретные чеклист-критерии ("есть ли конкретный пример?", "названа ли проблема в первом абзаце?") — устойчивый.
Слабость LLM в оценке проявляется в средней зоне. Явно сильный или явно слабый текст модель оценивает уверенно и стабильно. Но там, где нужно взвешивать детали — "в целом нормально, но местами слабо" — без чётких критериев AI начинает угадывать. То выдаст 6, то 8, и непонятно почему. Это не баг модели — это баг расплывчатой инструкции.
Решение: разбить размытые критерии на observable checklist-пункты — конкретные, проверяемые, привязанные к конкретным частям текста или задачи. Вместо "оцени структуру" → "есть ли заголовок?", "указана ли проблема до решения?", "есть ли призыв к действию?". Чем меньше интерпретации требует каждый пункт — тем стабильнее результат.
Схема метода
(Работает в одном промпте)
ШАГ 1: Разбить критерии оценки на конкретные бинарные пункты
→ рубрика-чеклист (да/нет или 0/1/2 за каждый пункт)
ШАГ 2: Дать LLM рубрику + оцениваемый объект
→ попросить пройтись по каждому пункту явно
ШАГ 3 (optional): Добавить 1 пример с правильной оценкой (1-shot)
→ повышает стабильность для неоднозначных случаев
Пример применения
Задача: Таня из Екатеринбурга ведёт телеграм-канал про личные финансы. Написала три варианта поста о том, почему люди не откладывают деньги. Хочет выбрать лучший вариант и понять, что именно работает.
Промпт:
Оцени три варианта поста по рубрике ниже.
По каждому пункту: поставь балл и объясни в 1 предложении почему.
В конце — итоговый балл и вывод: какой вариант лучше и почему именно он.
РУБРИКА (каждый критерий — от 0 до 2):
1. Зацепка в первом абзаце
0 = нет зацепки, начало скучное
1 = есть попытка, но слабая
2 = первое предложение вызывает желание читать дальше
2. Проблема сформулирована конкретно
0 = расплывчато ("люди не умеют копить")
1 = есть конкретика, но неточно
2 = проблема названа точно и узнаваемо для читателя
3. Практическая польза
0 = нет совета или действия
1 = есть совет, но абстрактный
2 = есть конкретное действие, которое можно сделать сегодня
4. Ясность языка
0 = сложные конструкции, канцелярит
1 = читается нормально
2 = просто, живо, без лишних слов
5. Призыв к реакции
0 = нет
1 = есть, но слабый
2 = вопрос или призыв, который реально хочется ответить
---
ВАРИАНТ 1:
[вставить текст]
ВАРИАНТ 2:
[вставить текст]
ВАРИАНТ 3:
[вставить текст]
Результат: Модель пройдёт по каждому из 5 пунктов для каждого варианта — с баллом и однострочным объяснением. В конце выдаст итоговые баллы и вывод: какой вариант выиграл и за счёт чего. Видно не "вариант 2 лучше", а почему — конкретно по пунктам.
Почему это работает
LLM плохо справляется с размытыми задачами. Когда скажешь "оцени качество", модель сама решает что это значит. Разные запросы — разные внутренние определения. Отсюда нестабильность: один и тот же текст получает разные оценки в разных диалогах.
Зато модель отлично справляется с проверкой по конкретному списку. "Есть ли призыв к действию?" — бинарный вопрос. Найти конкретный элемент в тексте модель умеет хорошо. Разбив расплывчатый критерий на несколько конкретных — ты переводишь задачу из "интерпретируй" в "проверь наличие".
Чеклист убирает зону неопределённости — именно там, где модель ошибается чаще всего. Средние по качеству тексты — не очень хорошие, но и не плохие — требуют взвешивания. Без явных критериев модель "угадывает". С чеклистом — проходит по пунктам и суммирует.
Рычаги управления: - Детализация пунктов → чем уже и конкретнее каждый критерий, тем стабильнее оценка. Один размытый пункт — одна точка нестабильности - Шкала (0–1 vs 0–3) → бинарные пункты (есть/нет) дают самый стабильный результат; расширенные шкалы добавляют нюанс, но и риск угадывания - 1-shot пример → добавь один разобранный пример с выставленными баллами — помогает для неоднозначных случаев, когда критерии можно трактовать по-разному - Явный вывод → попроси модель написать итоговый вывод отдельно — это заставляет синтезировать, а не просто перечислять
Шаблон промпта
Оцени {объект} по рубрике ниже.
По каждому пункту: поставь балл и объясни в 1 предложении.
В конце — итоговый балл и вывод.
РУБРИКА:
1. {Критерий 1}
0 = {плохой вариант}
1 = {средний вариант}
2 = {хороший вариант}
2. {Критерий 2}
0 = {плохой вариант}
1 = {средний вариант}
2 = {хороший вариант}
3. {Критерий 3}
0 = {плохой вариант}
1 = {средний вариант}
2 = {хороший вариант}
[добавить нужное количество критериев]
---
{Текст/объект для оценки}
Плейсхолдеры:
- {объект} — что оцениваем: пост, питч, резюме, ответ клиенту, landing page
- {Критерий N} — конкретный аспект: "Зацепка в первом предложении", "Наличие цифр и фактов", "Ясность призыва к действию"
- {плохой/средний/хороший вариант} — описание что именно соответствует каждому баллу
Ключевое правило формулировки критериев: каждый пункт должен быть проверяемым без интерпретации. Тест простой: можно ли проверить этот пункт, просто прочитав текст? Если нужно "чувствовать" — критерий ещё слишком расплывчатый.
🚀 Быстрый старт — вставь в чат:
Вот шаблон чеклист-рубрики для оценки через LLM.
Адаптируй под мою задачу: {твоя задача и что нужно оценить}.
Задавай вопросы, чтобы заполнить критерии.
[вставить шаблон выше]
LLM спросит что именно оценивать и по каким параметрам — потому что без этого она не сможет составить конкретные, проверяемые пункты. Она возьмёт структуру шаблона и сгенерирует готовую рубрику под твою задачу.
Ограничения
⚠️ Средняя зона всегда сложнее: Даже с хорошей рубрикой AI оценивает "примерно нормальные" случаи менее стабильно, чем явно сильные или слабые. Если решение принципиальное — проверь пограничные случаи вручную.
⚠️ Рубрика не заменяет экспертизу при разработке: Составить хорошую рубрику — это работа. Если критерии написаны наспех и остаются расплывчатыми, чеклист-форма не спасёт. Главный труд — в формулировке пунктов.
⚠️ Многоформатные объекты сложнее: Исследование показало, что рукописные тексты с формулами, схемами и зачёркнутыми пометками снижают точность. Применительно к чату: если оцениваемый объект плохо структурирован (каша из текста, таблиц, картинок) — сначала упорядочи его.
⚠️ Повторный запрос может дать другой балл: Temperature в чате обычно выше нуля. Для критически важных оценок — прогони несколько раз и смотри на разброс. Если баллы сильно гуляют — рубрика ещё недостаточно конкретна.
Как исследовали
Команда взяла 20 реальных студенческих ответов на физическом экзамене — рукописных, с формулами, зачёркнутыми расчётами и схемами. Четыре преподавателя физики независимо оценивали каждый ответ, а GPT-4o работал как пятый "оценщик".
Ключевой момент дизайна — два раунда с двумя разными рубриками. В первом раунде использовали холистическую рубрику: у каждого навыка было общее описание уровней ("Мастерство / Развивается / Попытка / Нет попытки"), и оценщик смотрел на ответ целиком. Во втором раунде взяли ту же физику, но разбили каждый навык на конкретные чеклист-пункты: "правильно применил уравнения вертикального движения в части (а)?", "перевёл вектор в компоненты?".
Дополнительно в раунде 2 систематически варьировали два параметра: 0-shot vs 1-shot (с примером или без) и температуру от 0.3 до 1.0.
Что удивило: температура почти не повлияла на стабильность. Ожидалось, что при temperature=1.0 модель будет давать разброс — но разница с 0.3 оказалась минимальной. Зато переход от холистической к чеклист-рубрике дал заметный рост согласованности между AI и людьми. Особенно для ответов среднего уровня — именно там, где обе рубрики расходились сильнее всего.
Практический инсайт: рубрика важнее настроек. Можно не думать о температуре, но нельзя не думать о том, насколько конкретны критерии.
Оригинал из исследования (фрагмент рубрики V2 — чеклист)
Rubric Version 2 (Checklist-based):
Physics Knowledge:
- Part (a): Correctly applies vertical motion equation → 0/1
- Part (b): Coordinates horizontal and vertical components → 0/1
- Part (c): Correctly interprets projectile outcome → 0/1
Problem Solving:
- Extracts relevant information from problem statement → 0/1
- Identifies governing principles or equations → 0/1
- Converts between representational forms (e.g., vector components) → 0/1
- Executes algebraic or numerical procedures correctly → 0/1
Контекст: Это вторая версия рубрики (V2), которую разработали после первого раунда. Каждый пункт — конкретная наблюдаемая операция, привязанная к конкретной части задачи. Нет расплывчатых описаний — только "сделал / не сделал".
Адаптации
💡 Адаптация: оценка по ролям
Если хочешь оценку с разных точек зрения — добавь роль перед рубрикой:
Ты — строгий редактор деловых текстов Bain & Company.
Оцени этот питч по рубрике ниже...
Ты — скептичный инвестор, который видел 500 питчей и устал от воды.
Оцени по рубрике...
Роль не меняет механику чеклиста, но сдвигает интерпретацию пограничных случаев. Полезно когда нужна оценка "глазами конкретного читателя".
🔧 Техника: добавить уровень "почему именно так"
После оценки по рубрике — отдельный блок:
После оценки всех пунктов ответь:
- Какой один пункт сильнее всего тянет вниз?
- Что конкретно нужно переписать, чтобы поднять его на 2?
Превращает диагностику в actionable feedback. Особенно полезно при оценке своих же текстов перед отправкой.
Ресурсы
Название работы: Designing Reliable LLM-Assisted Rubric Scoring for Constructed Responses: Evidence from Physics Exams
Авторы: Xiuxiu Tang, G. Alex Ambrose, Ying Cheng
Организация: University of Notre Dame (Department of Psychology + Notre Dame Learning)
Контакт: xtang8@nd.edu
