Оценка качества LLM-продукта: датасет, калибровка, метрики | AiManual
AiManual Logo Ai / Manual.
13 Янв 2026 Гайд

Как оценивать качество LLM-продукта: практическое руководство с датасетом и калибровкой

Практическое руководство по оценке качества LLM-продуктов. Разметка датасета, калибровка оценщиков, бинарные метки vs сравнения. Методология для инженеров и про

Забудьте про "мне кажется". Пора измерять

Вы запустили LLM-продукт. Клиенты вроде довольны. Но когда CEO спрашивает "Насколько мы стали лучше после последнего обновления?", вы начинаете рассказывать про субъективные ощущения и отдельные кейсы. Это выглядит непрофессионально. Хуже того - вы не можете принимать решения о развитии продукта на основе данных.

Проблема не в вас. Проблема в том, что оценка качества LLM-продуктов - это дикая смесь искусства и науки, где до недавнего времени преобладало первое. Но так больше не должно быть.

Самый опасный миф: "Мы используем GPT-4 для оценки качества ответов других моделей". Это как просить лисицу охранять курятник. GPT-4 имеет свои предубеждения, слепые зоны и, что самое главное, стоит денег за каждый вызов.

Три шага к объективности

Забудьте про сложные академические метрики типа BLEU или ROUGE. Они не работают для реальных продуктов. Вам нужна система, которая:

  1. Измеряет то, что важно для вашего бизнеса
  2. Работает быстро и дешево
  3. Дает воспроизводимые результаты
  4. Позволяет сравнивать разные версии продукта

1Создаем датасет: что размечать и как не сойти с ума

Первая ошибка - пытаться разметить все подряд. Вторая - размечать слишком мало. Третья - думать, что разметка это одноразовая акция.

Ваш датасет должен отражать реальное использование продукта. Если у вас чат-бот для поддержки клиентов, соберите реальные диалоги (анонимизированные). Если это код-генератор - реальные задачи разработчиков. Нет реальных данных? Сгенерируйте синтетические, но максимально приближенные к реальности.

Что размечатьСколько нужноКто размечает
Критические сценарии (деньги, безопасность)100% покрытиеЭксперты предметной области
Частые запросы (80% трафика)500-1000 примеровОбученные асессоры
Экзотические кейсы100-200 примеровРазработчики продукта

Шум в разметке - это не баг, это фича. Люди не согласны между собой. Эксперты спорят. Это нормально. Ваша задача - не добиться 100% согласия, а измерить уровень несогласия и учесть его в метриках.

💡
Используйте инструменты вроде Label Studio или Prodigy для разметки. Но не зацикливайтесь на инструментах - главное процесс. Размечайте каждую пару запрос-ответ минимум тремя разными людьми. Если согласие меньше 70% - переформулируйте инструкции или признайте этот кейс сложным для оценки.

2Бинарные метки vs сравнения: выбираем оружие

Большинство команд начинают с бинарных меток: "хороший ответ" / "плохой ответ". Это интуитивно понятно. И это ошибка.

Бинарные метки работают только для очевидных случаев. Но большинство ответов LLM находятся в серой зоне: "технически правильный, но стилистически неудачный", "полный, но содержит лишнюю информацию", "точный, но плохо структурированный".

Сравнения решают эту проблему. Вместо "хорошо/плохо" вы спрашиваете: "Ответ A лучше ответа B?". Это:

  • Более естественно для людей (мы сравниваем, а не присваиваем абсолютные оценки)
  • Меньше зависит от настроения асессора
  • Позволяет строить относительные рейтинги

Но есть нюанс. Сравнения требуют в 3-4 раза больше работы. Каждый пример нужно сравнивать с несколькими другими. И здесь на помощь приходит специальный промпт для сравнения LLM, который структурирует процесс оценки.

# Пример сравнения двух ответов
comparison_prompt = """
Запрос: {query}

Ответ A: {response_a}
Ответ B: {response_b}

Инструкция по оценке:
1. Правильность: содержит ли ответ фактические ошибки?
2. Полнота: отвечает ли на все части запроса?
3. Ясность: легко ли понять ответ?

Какой ответ лучше? Ответьте только "A", "B" или "РАВНЫ".
"""

Не смешивайте бинарные метки и сравнения в одном датасете. Выберите один подход и придерживайтесь его. Смешение подходов даст несравнимые метрики и головную боль при анализе.

3Калибровка LLM-оценщиков: учим модель оценивать

Ручная разметка - это дорого и медленно. LLM-оценщики - это быстро и дешево. Но они часто ошибаются. Решение - калибровка.

Калибровка это не "настроим температуру и надеемся на лучшее". Это систематический процесс приведения оценок LLM к человеческим стандартам.

Вот как это работает на практике:

import numpy as np
from sklearn.calibration import CalibratedClassifierCV
from sklearn.linear_model import LogisticRegression

# У вас есть:
# X - эмбеддинги ответов (например, из sentence-transformers)
# y_human - человеческие оценки (0/1 или сравнения)
# y_llm - оценки LLM-оценщика

# 1. Собираем данные калибровки
calibration_data = []
for query, response, human_score, llm_score in dataset:
    embedding = get_embedding(response)  # 384 или 768 измерений
    calibration_data.append({
        'features': embedding,
        'human': human_score,
        'llm': llm_score
    })

# 2. Обучаем калибровочную модель
X = np.array([d['features'] for d in calibration_data])
y_human = np.array([d['human'] for d in calibration_data])
y_llm = np.array([d['llm'] for d in calibration_data])

# Калибруем предсказания LLM под человеческие оценки
calibrator = CalibratedClassifierCV(LogisticRegression(), method='sigmoid')
calibrator.fit(X, y_human)

# 3. Используем калиброванный оценщик
def calibrated_score(response):
    embedding = get_embedding(response)
    return calibrator.predict_proba([embedding])[0][1]

Этот подход решает несколько проблем сразу:

  • LLM-оценщик может быть смещен в сторону определенных типов ответов
  • Человеческие оценки имеют шум - калибровка его сглаживает
  • Можно комбинировать несколько LLM-оценщиков

Важный момент: калибровочный набор должен быть репрезентативным для вашего продукта. Не калибруйте на общих данных, если у вас специфическая предметная область.

Методология оценки: от теории к практике

У вас есть разметка. У вас есть калиброванный оценщик. Что дальше? Собираем все в систему.

Первое правило: оценивайте не абсолютные значения, а изменения. Ваша метрика упала с 0.85 до 0.83 после обновления модели. Это катастрофа или статистическая погрешность?

Второе правило: используйте доверительные интервалы. LLM-продукты недетерминированы (даже с temperature=0 есть вариабельность). Прочитайте как тестировать недетерминированные LLM, чтобы не сойти с ума от флуктуаций.

Третье правило: разделяйте метрики по типам ошибок:

Тип ошибкиКак измерятьЧто делать
Фактические ошибкиРучная проверка экспертамиДобавить в RAG систему, улучшить промпты
Стилистические проблемыLLM-оценщик с калибровкойНастроить system prompt, добавить few-shot примеры
Неполные ответыПроверка покрытия ключевых точекУвеличить max_tokens, улучшить структуру промпта
ГаллюцинацииСравнение с source документамиВнедрить логический детектор вместо очередного промпта

Ошибки, которые все совершают (и как их избежать)

Ошибка 1: оценивать все подряд. Не нужно. Определите 3-5 ключевых сценариев, которые действительно важны для бизнеса. Оценивайте их.

Ошибка 2: использовать одну метрику. Качество LLM-продукта многомерно. Нужна как минимум тройка: точность, полнота, ясность.

Ошибка 3: забывать про latency и стоимость. Самый точный ответ, который стоит $10 и генерируется 30 секунд - это плохой ответ для большинства продуктов.

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

💡
Создайте "золотой датасет" из 50-100 идеально размеченных примеров. Запускайте его при каждом изменении модели или промптов. Это ваш канон. Если метрики на этом датасете падают - что-то пошло не так, даже если на основном датасете все хорошо.

Инструменты и автоматизация

Ручная оценка масштабируется плохо. Хорошая новость: есть инструменты.

Для быстрого старта подойдет LM Studio или llama.cpp для запуска локальных моделей-оценщиков. Дешево, приватно, можно кастомизировать.

Для production системы рассмотрите специализированные фреймворки: LangSmith от LangChain, Phoenix от Arize, или собственное решение на основе открытых моделей.

Ключевой момент автоматизации: пайплайн оценки должен быть частью CI/CD. Каждый PR с изменением промптов или моделей должен пройти через оценку на золотом датасете. Если метрики падают ниже порога - автоматическое отклонение.

# Пример конфигурации GitHub Actions для оценки LLM
name: LLM Quality Gate

on:
  pull_request:
    paths:
      - 'prompts/**'
      - 'models/**'

jobs:
  evaluate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run evaluation
        run: |
          python evaluate.py \
            --golden-dataset dataset/golden.json \
            --prompt-file prompts/system.md \
            --threshold 0.85
        
      - name: Fail if below threshold
        if: ${{ failure() }}
        run: |
          echo "Quality metrics below threshold. Check evaluation report."
          exit 1

Что делать, когда метрики врут

Бывает. Метрики показывают улучшение, но пользователи жалуются. Или наоборот - метрики падают, но отзывы положительные.

Первое: проверьте датасет. Не устарел ли он? Отражает ли текущее использование продукта?

Второе: проанализируйте расхождения. Где именно метрики расходятся с реальностью? Часто проблема в том, что вы измеряете не то, что важно пользователям.

Третье: добавьте качественные метрики. Проведите юзабилити-тестирование с 5-7 реальными пользователями. Их feedback часто ценнее тысяч автоматических оценок.

Четвертое: помните про опасность temperature=0. Модель может быть уверена в неправильном ответе. Уверенность != правильность.

Дальнейшие шаги

Система оценки качества - это не проект, а процесс. Раз в месяц пересматривайте:

  • Актуальность датасета (добавляйте новые типы запросов)
  • Эффективность LLM-оценщика (перекалибровывайте при смене модели)
  • Пороговые значения (адаптируйте под бизнес-требования)

Начните с малого. Возьмите 100 самых частых запросов. Разметьте их вручную. Настройте простой LLM-оценщик. Запустите оценку текущей версии продукта. Это займет неделю, но даст больше инсайтов, чем месяцы субъективных обсуждений.

И последнее: не пытайтесь достичь совершенства. В оценке качества LLM-продуктов перфекционизм - враг прогресса. Лучшая система оценки - та, которую вы действительно используете, а не та, которая идеальна в теории.