English translation is not available yet. Showing Russian content.
Что такое calibration ошибок модели и как ее измерять (ECE, MCE, Brier score)?
Краткий тезис
Calibration (калибровка) модели — это свойство, при котором предсказанная моделью уверенность (confidence) соответствует фактической точности (accuracy). Например, если модель говорит «я уверен на 80%», то в 80% случаев её предсказание должно быть верным. Для количественной оценки калибровки используют метрики ECE (Calibration Error|Expected Calibration Error), MCE (Maximum Calibration Error) и Brier score. В контексте LLM и RAG калибровка критична, так как модели часто склонны к overconfidence (излишней уверенности), что ведёт к неверным ответам и снижению доверия к системе.
1. Термин: Calibration (калибровка)
Calibration — это степень соответствия между предсказанной вероятностью класса и истинной долей правильных предсказаний для этой вероятности. Идеально откалиброванная модель: для всех примеров, где модель предсказала вероятность p, ровно p·100% из них оказываются верными.
Пример:
- Модель выдала 100 предсказаний с уверенностью 0.9. Если 90 из них верны — калибровка идеальная.
- Если верны только 70 — модель overconfident (излишне уверена).
- Если верны 95 — модель underconfident (недостаточно уверена).
Для задач классификации калибровка обычно рассматривается для предсказанных вероятностей целевого класса. В LLM калибровка может оцениваться на уровне токенов (например, вероятность правильного следующего токена) или на уровне ответа (уверенность в сгенерированном тексте).
2. Почему калибровка важна для LLM и RAG
- Overconfidence в LLM Модели часто выдают высокие вероятности даже для неверных ответов (например, галлюцинации). Это подрывает доверие к системе.
- RAG и принятие решений В Agentic RAG агент может принимать решения на основе уверенности модели (например, решать, стоит ли обращаться к внешнему инструменту). Плохая калибровка ведёт к неверным решениям.
- Оценка качества Калибровка — один из аспектов uncertainty quantification (оценка неопределённости). Без неё мы не можем интерпретировать вероятности модели как истинные степени уверенности.
- Fine-tuning После дообучения калибровка часто ухудшается, поэтому её нужно восстанавливать (например, с помощью temperature scaling).
3. Reliability diagram (диаграмма надёжности)
Reliability diagram — визуальный инструмент для оценки калибровки. Ось X — предсказанная уверенность (разбитая на бины, например, 10 бинов по 0.1), ось Y — фактическая точность в каждом бине. Идеальная калибровка — диагональная линия y=x.
Построение
- Разбить интервал [0,1] на M равных бинов (обычно M=10).
- Для каждого бина:
- Вычислить среднюю предсказанную уверенность (confidence) — среднее вероятностей в бине.
- Вычислить фактическую точность (accuracy) — долю правильных предсказаний в бине.
- Нанести точки (confidence, accuracy) и соединить.
Интерпретация
- Точки выше диагонали → underconfidence (модель слишком скромна).
- Точки ниже диагонали → overconfidence.
- Отклонение от диагонали количественно измеряется метриками ECE и MCE.
4. ECE (Expected Calibration Error)
ECE — средневзвешенное абсолютное отклонение между accuracy и confidence по бинам.
Формула
ECE = Σ_{m=[[1. Как бы вы спроектировали RAG-систему для 10 000 документов с разной структурой|1]]}^{M} (|B_m| / N) * |acc(B_m) - conf(B_m)|
где:
- M — количество бинов,
- |B_m| — количество примеров в бине m,
- N — общее количество примеров,
- acc(B_m) — точность в бине m,
- conf(B_m) — средняя уверенность в бине m.
Интерпретация
- ECE < 5% — хорошая калибровка.
- ECE 5–10% — умеренная, требуется улучшение.
- ECE > 10% — плохая калибровка, модель сильно пере- или недоуверена.
Пример расчёта на Python
import numpy as np
def compute_ece(probs, labels, n_bins=10):
bin_boundaries = np.linspace(0, 1, n_bins + 1)
bin_lowers = bin_boundaries[:-1]
bin_uppers = bin_boundaries[1:]
ece = 0.0
for bin_lower, bin_upper in zip(bin_lowers, bin_uppers):
in_bin = (probs > bin_lower) & (probs <= bin_upper)
prop_in_bin = np.mean(in_bin)
if prop_in_bin > 0:
accuracy = np.mean(labels[in_bin])
avg_confidence = np.mean(probs[in_bin])
ece += np.abs(accuracy - avg_confidence) * prop_in_bin
return ece
5. MCE (Maximum Calibration Error)
MCE — максимальное абсолютное отклонение между accuracy и confidence среди всех бинов.
Формула
MCE = max_{m=[[1. Как бы вы спроектировали RAG-систему для 10 000 документов с разной структурой|1]]..M} |acc(B_m) - conf(B_m)|
Интерпретация
- MCE показывает наихудший бин — где модель наиболее сильно ошибается в оценке уверенности.
- Используется, когда критично избежать больших ошибок калибровки в отдельных диапазонах (например, в медицинской диагностике).
Сравнение ECE и MCE
| Метрика | Что измеряет | Когда важна |
|---|---|---|
| ECE | Среднее отклонение по всем бинам | Общая оценка калибровки |
| MCE | Максимальное отклонение | Безопасность, worst-case анализ |
6. Brier score
Brier score — среднеквадратичная ошибка между предсказанной вероятностью и истинным бинарным индикатором (0 или 1). Для многоклассовой задачи — усреднение по классам.
Формула (бинарный случай):
Brier = (1/N) * Σ_{i=1}^{N} (p_i - y_i)^2
где p_i — предсказанная вероятность положительного класса, y_i — истинная метка (0 или 1).
Свойства
- Brier score ∈ [0, 1]. Чем меньше, тем лучше.
- Разлагается на три компоненты: reliability (калибровка), resolution (способность разделять классы), uncertainty (энтропия истинных меток). Это позволяет понять, за счёт чего улучшается качество.
Декомпозиция Brier score (Murphy decomposition):
Brier = Reliability + Resolution - Uncertainty
- Reliability — та же идея, что ECE (среднеквадратичное отклонение accuracy от confidence).
- Resolution — насколько сильно предсказанные вероятности варьируются для разных примеров.
- Uncertainty — энтропия истинного распределения (константа для датасета).
Пример расчёта
def brier_score(probs, labels):
return np.mean((probs - labels) ** 2)
7. Методы калибровки (Post-hoc calibration)
После обучения модели её вероятности можно откалибровать с помощью небольшого валидационного набора. Основные методы:
7.1 Temperature scaling
- Простейший и эффективный для нейросетей.
- Логиты делятся на скаляр T (temperature) перед softmax:
p = softmax(logits / T). - T подбирается минимизацией NLL (negative log-likelihood) на валидации.
- T > 1 — снижает уверенность (борется с overconfidence), T < 1 — повышает.
7.2 Platt scaling
- Логиты пропускаются через сигмоиду с параметрами a, b:
p = sigmoid(a * logit + b). - Подходит для бинарной классификации, обобщается на многоклассовую через one-vs-rest.
7.3 Isotonic regression
- Непараметрический метод: обучается монотонная функция, отображающая предсказанные вероятности в калиброванные.
- Требует больше данных, может переобучаться.
7.4 Histogram binning
- Разбивает предсказанные вероятности на бины и заменяет их на эмпирическую точность внутри бина.
- Простой, но грубый метод.
Сравнение методов
| Метод | Тип | Параметры | Когда использовать |
|---|---|---|---|
| Temperature scaling | Параметрический | 1 (T) | Нейросети, быстро, эффективно |
| Platt scaling | Параметрический | 2 (a, b) | Бинарная классификация |
| Isotonic regression | Непараметрический | много | Много данных, сложные искажения |
| Histogram binning | Непараметрический | число бинов | Простота, интерпретируемость |
8. Калибровка в LLM
В LLM калибровка измеряется на уровне:
- Token-level: вероятность правильного следующего токена.
- Sequence-level уверенность во всём сгенерированном ответе (например, средняя вероятность токенов или вероятность ответа при условии запроса).
Проблемы
- LLM часто overconfident: дают высокие вероятности даже для галлюцинаций.
- Калибровка ухудшается после fine-tuning (особенно при обучении с RLHF).
- Для RAG: уверенность модели в ответе может не соответствовать фактической правильности, что затрудняет детекцию ошибок.
Методы калибровки для LLM
- Temperature scaling на этапе инференса (изменение T в softmax).
- Platt scaling на уровне эмбеддингов последнего слоя.
- Averaging over multiple samples (например, self-consistency) — усреднение вероятностей по нескольким сгенерированным ответам.
- Conformal prediction — не требует калибровки, даёт гарантии покрытия.
9. Связь с Agentic RAG
В Agentic RAG агент принимает решения на основе уверенности модели:
- Когда обращаться к поиску (retrieval).
- Когда завершить диалог или запросить уточнение.
- Какой инструмент использовать.
Плохая калибровка ведёт к:
- Ложной уверенности в неверном ответе → агент не исправляет ошибку.
- Недостаточной уверенности в правильном ответе → лишние запросы к инструментам, увеличение latency.
Поэтому калибровка — важная часть оценки и улучшения агентных систем.
10. Пет-проект для закрепления
Задача Откалибровать модель BERT для классификации тональности (SST-2) и измерить улучшение ECE и Brier score.
Инструменты Python, PyTorch, transformers, sklearn, datasets.
Шаги:
- Загрузить предобученный BERT-base-uncased и датасет SST-2.
- Получить логиты на валидационной выборке (без калибровки).
- Рассчитать ECE, MCE, Brier score до калибровки.
- Обучить temperature scaling (оптимизация T по NLL на валидации).
- Применить T к логитам, пересчитать метрики.
- Построить reliability diagrams до и после.
- Сравнить результаты.
Ожидаемый результат
- ECE снизится с ~10-15% до <5%.
- Brier score уменьшится.
- Reliability diagram приблизится к диагонали.
Дополнительно Повторить для LLM (например, GPT-2) на задаче генерации (оценивать калибровку следующего токена).
11. Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 486 | Confidence calibration в LLM |
| 488 | Uncertainty estimation (энтропия, вариационное инференс) |
| 489 | Temperature scaling и его влияние на генерацию |
| 490 | Platt scaling для многоклассовой классификации |
| 491 | Reliability diagrams и их интерпретация |
| 492 | Декомпозиция Brier score (Murphy decomposition) |
12. Навигация
- Предыдущий: 486
- Следующий: 488
- Индекс: 00. Индекс разборов
Навигация
- Предыдущий: 486
- Следующий: 488
- Индекс: 00. Индекс разборов