中文翻译暂不可用,显示俄语原文。
Как вы измеряете inter-rater reliability для human evaluation?
Краткий тезис
reliability|Inter-rater reliability (IRR) — это статистическая мера согласованности между аннотаторами (экспертами) при выполнении задач разметки, ранжирования или оценки. В контексте human evaluation LLM-систем (например, оценка качества ответов RAG) IRR критически важна: если аннотаторы не согласны друг с другом, результаты оценки ненадёжны. Основные метрики: Cohen's Kappa (для двух аннотаторов), Kappa|Fleiss' Kappa (для трёх и более) и Alpha|Krippendorff's Alpha (для любых типов данных и числа аннотаторов). Низкая IRR (<0.5) сигнализирует о проблемах в инструкциях, сложности задачи или субъективности критериев; решение — улучшение гайдлайнов, калибровочные сессии или использование большинства голосов.
1. Термин: Inter-rater reliability (IRR)
reliability|Inter-rater reliability (согласованность между оценщиками) — это степень, в которой независимые аннотаторы присваивают одинаковые оценки или категории одним и тем же объектам. В human evaluation (оценка человеком) IRR служит индикатором качества разметки: высокая IRR означает, что критерии оценки объективны и понятны, низкая — что задача слишком субъективна или инструкции нечёткие.
Зачем IRR в ML/LLM
- Оценка качества ответов LLM (faithfulness, relevance, helpfulness)
- Ранжирование сгенерированных текстов
- Разметка датасетов для fine-tuning или RLHF
- Валидация метрик-автоматических оценок (LLM-as-judge)
Ключевая идея: IRR учитывает согласие, которое могло возникнуть случайно (by chance). Простой процент согласия (percent agreement) не корректен, так как не вычитает случайное совпадение.
2. Cohen's Kappa (κ) — для двух аннотаторов
Cohen's Kappa — самая распространённая метрика IRR для двух аннотаторов, работающих с категориальными данными (например, «релевантно / не релевантно»).
Формула
κ = (P_o - P_e) / (1 - P_e)
Где:
- P_o — наблюдаемая доля согласия (percent agreement)
- P_e — ожидаемая доля случайного согласия (рассчитывается из маргинальных распределений каждого аннотатора)
Пример расчёта
Пусть два аннотатора оценивают 100 ответов на бинарную шкалу (1 — хорошо, 0 — плохо). Матрица согласия:
| Аннотатор B: 1 | Аннотатор B: 0 | Итого | |
|---|---|---|---|
| Аннотатор A: 1 | 40 (a) | 10 (b) | 50 |
| Аннотатор A: 0 | 15 (c) | 35 (d) | 50 |
| Итого | 55 | 45 | 100 |
- P_o = (a + d) / N = (40 + 35) / 100 = 0.75
- P_e = (50/100)(55/100) + (50/100)(45/100) = 0.50.55 + 0.50.45 = 0.275 + 0.225 = 0.5
- κ = (0.75 - 0.5) / (1 - 0.5) = 0.25 / 0.5 = 0.5
Интерпретация (Landis & Koch, 1977):
| Значение κ | Сила согласия |
|---|---|
| < 0.00 | Poor (хуже случайного) |
| 0.00 – 0.20 | Slight (незначительное) |
| 0.21 – 0.40 | Fair (умеренное) |
| 0.41 – 0.60 | Moderate (среднее) |
| 0.61 – 0.80 | Substantial (существенное) |
| 0.81 – 1.00 | Almost perfect (почти идеальное) |
Для human evaluation в ML обычно целевое значение κ > 0.7 (substantial). Если κ < 0.5 — требуется пересмотр инструкций.
Ограничения
- Работает только для двух аннотаторов
- Чувствителен к дисбалансу классов (парадокс Каппы)
3. Fleiss' Kappa — для трёх и более аннотаторов
Fleiss' Kappa — обобщение Cohen's Kappa на случай произвольного числа аннотаторов (≥2). Используется, когда каждый объект оценивается фиксированным числом аннотаторов (обычно 3–5).
Формула
κ = (P̄ - P̄_e) / (1 - P̄_e)
Где:
- P̄ — средняя доля парных согласий по всем объектам
- P̄_e — средняя ожидаемая доля случайного согласия (рассчитывается из распределения оценок по всем аннотаторам)
Пример: 3 аннотатора оценивают 10 ответов по шкале {A, B, C}. Для каждого ответа считаем, сколько аннотаторов поставили каждую категорию. Затем вычисляем P̄ и P̄_e.
Интерпретация — те же пороги, что и для Cohen's Kappa.
Преимущество позволяет оценить согласованность всей группы аннотаторов сразу, а не попарно.
4. Krippendorff's Alpha (α) — универсальная метрика
Krippendorff's Alpha — наиболее гибкая метрика IRR, которая:
- Работает с любым числом аннотаторов (≥2)
- Поддерживает любые типы данных: номинальные, порядковые, интервальные, отношения, даже с пропущенными значениями
- Учитывает размерность шкалы (например, разница между «отлично» и «хорошо» меньше, чем между «отлично» и «плохо»)
Формула (упрощённо):
α = 1 - (D_o / D_e)
Где:
- D_o — наблюдаемое расхождение (сумма взвешенных расстояний между парами оценок)
- D_e — ожидаемое расхождение при случайном распределении
Типы данных и функции расстояния
- Номинальные: расстояние = 0 если совпадают, 1 если нет
- Порядковые: расстояние = (разность рангов)^2
- Интервальные: (разность значений)^2
Интерпретация α ≥ 0.8 — хорошая надёжность, α ≥ 0.667 — минимально приемлемая для предварительных выводов (по Криппендорфу).
Пример использования оценка тональности текста по 5-балльной шкале (порядковые данные) тремя аннотаторами.
5. Сравнение метрик IRR
| Метрика | Число аннотаторов | Тип данных | Учитывает случайность | Устойчивость к дисбалансу |
|---|---|---|---|---|
| Percent agreement | Любое | Любой | Нет | Низкая |
| Cohen's Kappa | 2 | Номинальные | Да | Средняя |
| Fleiss' Kappa | ≥2 | Номинальные | Да | Средняя |
| Krippendorff's Alpha | ≥2 | Любой (с весами) | Да | Высокая |
| Gwet's AC1 | 2 | Номинальные | Да | Высокая (устойчива к парадоксу Каппы) |
Рекомендация для human evaluation в ML используйте Krippendorff's Alpha как универсальный стандарт, а для быстрой проверки — Cohen's Kappa (два аннотатора) или Fleiss' Kappa (больше двух).
6. Причины низкой IRR и методы улучшения
Типичные причины
- Нечёткие гайдлайны аннотаторы по-разному понимают критерии (например, «релевантность»)
- Сложность задачи слишком много категорий или тонкие различия
- Усталость / когнитивная нагрузка длинные сессии разметки
- Субъективность оценка креативности, юмора, тона
- Недостаточная калибровка аннотаторы не обсуждали спорные случаи
Методы улучшения
- Итеративное уточнение инструкций проведите пилотную разметку, обсудите расхождения, обновите гайдлайны
- Калибровочные сессии перед основной разметкой дайте 10–20 примеров, обсудите правильные ответы
- Уменьшение числа категорий объедините близкие классы (например, 5-балльную шкалу → 3-балльную)
- Majority voting (голосование большинства): используйте 3+ аннотаторов и берите метку, выбранную большинством — это повышает надёжность финальной разметки
- Автоматические проверки в процессе разметки показывайте аннотаторам их расхождения с другими и просите пересмотреть
7. Практический пример: оценка faithfulness ответов RAG
Задача два аннотатора оценивают 50 ответов RAG на faithfulness (1 — факты верны, 0 — есть галлюцинации).
Шаги:
- Собрать матрицу согласия (как в разделе 2)
- Рассчитать Cohen's Kappa (например, через
sklearn.metrics.cohen_kappa_score) - Интерпретировать: если κ < 0.5 — пересмотреть определение faithfulness, добавить примеры в инструкцию
- Если κ > 0.7 — можно использовать одного аннотатора или усреднять
Код на Python
from sklearn.metrics import cohen_kappa_score
# Оценки двух аннотаторов (0 или 1)
annotator1 = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0]
annotator2 = [1, 0, 1, 0, 0, 1, 1, 0, 1, 0]
kappa = cohen_kappa_score(annotator1, annotator2)
print(f"Cohen's Kappa: {kappa:.3f}")
# Вывод: Cohen's Kappa: 0.737 (пример)
Для Fleiss' Kappa (3+ аннотаторов):
from statsmodels.stats.inter_rater import fleiss_kappa
import numpy as np
# Матрица: строки — объекты, столбцы — категории, значения — число аннотаторов, выбравших категорию
# Пример: 10 объектов, 2 категории (0 и 1), 3 аннотатора
data = np.array([
[3, 0], # все три сказали 0
[2, 1], # двое сказали 0, один 1
[1, 2],
[0, 3],
[3, 0],
[2, 1],
[1, 2],
[0, 3],
[2, 1],
[3, 0]
])
kappa = fleiss_kappa(data, method='fleiss')
print(f"Fleiss' Kappa: {kappa:.3f}")
8. Альтернативные подходы и продвинутые темы
- Gwet's AC1 — альтернатива Cohen's Kappa, менее чувствительная к дисбалансу классов. Рекомендуется, когда одна категория встречается значительно чаще другой.
- Weighted Kappa — для порядковых шкал, где разные расхождения имеют разную «стоимость» (например, разница в 1 балл менее критична, чем в 3).
- Intraclass Correlation Coefficient (ICC) — для непрерывных оценок (например, средняя оценка качества по шкале 1–10). Используется, когда аннотаторы ставят числовые значения, а не категории.
- Bootstrap-интервалы — для оценки неопределённости IRR (доверительные интервалы).
Когда какую метрику выбрать
- Категориальные данные, 2 аннотатора → Cohen's Kappa
- Категориальные, ≥3 аннотаторов → Fleiss' Kappa
- Любые данные, любое число аннотаторов, с учётом расстояния → Krippendorff's Alpha
- Непрерывные данные → ICC
Пет-проект для закрепления
Задача Разработать инструмент для оценки IRR на синтетических данных и визуализации согласия аннотаторов.
Инструменты Python (pandas, numpy, sklearn, statsmodels, matplotlib/seaborn).
Шаги:
- Сгенерировать синтетический датасет: 100 объектов, 3 аннотатора, 3 категории (A, B, C). Задать истинные метки и добавить шум (вероятность ошибки для каждого аннотатора).
- Рассчитать:
- Построить матрицу согласия (heatmap) для каждой пары.
- Вывести сводную таблицу метрик.
- Эксперимент: изменить уровень шума и посмотреть, как меняются метрики.
Ожидаемый результат Скрипт, который наглядно демонстрирует, как IRR падает при увеличении расхождений, и позволяет выбрать порог для отбраковки аннотаторов.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 491 | Как вы проводите human evaluation для RAG-систем? |
| 493 | Как вы используете LLM-as-judge для автоматической оценки? |
| 494 | Какие метрики качества генерации вы знаете? |
| 495 | Как вы оцениваете качество retrieval'а в RAG? |
| 496 | Как вы проводите A/B тестирование в RAG-системе? |
| 497 | Как вы измеряете user satisfaction для RAG? |
Навигация
- Предыдущий: 491
- Следующий: 493
- Индекс: 00. Индекс разборов