Как вы управляете качеством разметки (label quality) для DPO датасетов?

Краткий тезис

Качество разметки — критический фактор успеха DPO (Direct Preference Optimization), так как модель обучается на парах «предпочтительный / непредпочтительный» ответ. Низкое качество разметки приводит к зашумленному сигналу предпочтения и ухудшению финальной модели. Управление качеством включает метрики согласованности (Kappa|Cohen’s Kappa, Kappa|Fleiss’ Kappa), использование gold set для калибровки аннотаторов, обнаружение выбросов среди аннотаторов, механизмы консенсуса (мажоритарка 3+ экспертов) и автоматическую валидацию пар.


1. Термин: DPO и его чувствительность к разметке

DPO (Direct Preference Optimization) — метод fine-tuning LLM, который напрямую оптимизирует политику на основе предпочтений человека без отдельной модели вознаграждения. На вход подаются триплеты: prompt, chosen (предпочтительный ответ), rejected (непредпочтительный). Каждая пара должна быть явно размечена человеком или сильным LLM.

Почему качество разметки особенно важно

  • DPO штрафует модель за присвоение высокой вероятности rejected-ответу. Если метка перепутана (chosen на самом деле хуже), модель учится неправильному поведению.
  • Размер датасета для DPO обычно меньше, чем для RLHF, поэтому каждый пример ценен.
  • Шум в разметке может привести к reward hacking или снижению разнообразия генераций.

Термин «Label quality» (качество разметки) включает точность, согласованность и непротиворечивость меток предпочтения.


2. Метрики согласованности аннотаторов

Процесс разметки обычно требует нескольких аннотаторов на один пример. Для измерения их согласованности используются статистические метрики.

2.1 Cohen’s Kappa (для двух аннотаторов)

Kappa|Cohen’s Kappa учитывает случайное согласие. Формула:

kappa = (p_o - p_e) / (1 - p_e)

где p_o — наблюдаемая доля согласия, p_e — ожидаемая доля случайного согласия (на основе маргинальных распределений).

Значение KappaУровень согласия
< 0.0Менее чем случайное
0.0 – 0.20Небольшое
0.21 – 0.40Слабое
0.41 – 0.60Умеренное
0.61 – 0.80Существенное
0.81 – 1.00Почти идеальное

Рекомендация для DPO датасетов целевое значение Kappa|Cohen’s Kappa > 0.7 (существенное согласие). Если ниже — нужно пересмотреть инструкции или обучать аннотаторов.

2.2 Fleiss’ Kappa (для трёх и более аннотаторов)

Обобщение Cohen’s Kappa для множества фиксированных аннотаторов. Используется, когда каждый пример размечают 3+ человека.

Расчёт строится матрица, сколько аннотаторов отнесли пример к chosen (1) или rejected (0). Kappa считается по формуле с учётом всех пар.

Порог > 0.6 считается приемлемым, > 0.7 — хорошим.

2.3 Дополнительные метрики

  • Percent agreement (процент полного совпадения) — простая, но не учитывает случайность. Не рекомендуется как единственная.
  • Krippendorff’s Alpha — работает для любых типов шкал (номинальных, порядковых), позволяет учесть пропуски. Используется в академических исследованиях.

Пример расчёта Cohen’s Kappa на Python:

from sklearn.metrics import cohen_kappa_score

# labels: 1 = chosen, 0 = rejected
annotator1 = [1, 1, 0, 1, 0]
annotator2 = [1, 0, 0, 1, 1]

kappa = cohen_kappa_score(annotator1, annotator2)
print(f"Cohen's Kappa: {kappa:.2f}")

3. Gold set — золотой стандарт для валидации

Gold set (или golden dataset) — небольшой набор примеров (обычно 50–200), размеченных экспертами (или супер-аннотаторами) с максимальным качеством.

Как используется

  • Все аннотаторы периодически размечают один и тот же gold set (например, каждые 100 примеров).
  • Их ответы сравниваются с эталонными. Метрики: accuracy (доля совпадений), precision/recall для каждой категории.
  • Если аннотатор падает ниже порога (например, accuracy < 80%), его разметка отбраковывается или он отправляется на переобучение.

Обновление gold set пересматривать раз в 1–2 недели или при смене инструкций. Важно, чтобы gold set не был статичным, иначе аннотаторы могут его «заучить».


4. Outlier detection среди аннотаторов

Outlier detection — выявление аннотаторов, чьи метки систематически отклоняются от консенсуса или gold set.

Методы

  • Z-показатель согласия для каждого аннотатора рассчитать среднее совпадение с другими (или с gold). Если z-score < -2, аннотатор — выброс.
  • Temporal drift отслеживать метрики во времени. Если качество аннотатора внезапно падает (усталость, смена настроения).
  • Clustering ответов если разметка одного аннотатора образует отдельный кластер, не совпадающий с мажоритарным, это подозрительно.

Действия исключить разметку выброса, провести беседу, переобучить или заменить.


5. Механизмы консенсуса

Чтобы получить надёжную метку для каждого примера, используют консенсус нескольких аннотаторов.

5.1 Majority voting (мажоритарка)

Самый простой подход: 3 или 5 аннотаторов размечают пример, итоговая метка — большинство голосов.

Преимущества простота, устойчивость к одному случайному ошибочному голосу.

Недостатки если аннотаторы систематически ошибаются из-за неясной инструкции, мажоритарка не спасёт.

5.2 Consensus с обсуждением (deliberative consensus)

После независимой разметки аннотаторы обсуждают расхождения и приходят к единому решению. Подходит для сложных пограничных случаев. Требует времени, но повышает качество на хард-примерах.

5.3 Expert arbitration

Третий эксперт (или супервайзер) разрешает спор, когда голоса разделились (например, 2 против 1). Эксперт видит аргументы обеих сторон.


6. Автоматическая валидация пар

Даже после консенсуса можно автоматически проверить пары на логическую непротиворечивость.

6.1 LLM-as-Judge

Использовать сильную LLM (GPT-4, Claude) для оценки качества пары. Промпт:

Оцени пару ответов на запрос: {prompt}
Chosen: {chosen}
Rejected: {rejected}
Верно ли, что chosen объективно лучше rejected? Ответь только "да" или "нет".

Если LLM говорит «нет» — пара подозрительна и отправляется на ревью.

6.2 Проверка на инверсию

Случай: в процессе разметки перепутали местами chosen и rejected. LLM или эвристика (одинаковые ответы, разное форматирование) может это выявить.

6.3 Проверка на тривиальность

Если chosen и rejected отличаются незначительно (edit distance < 10 символов), такая пара может не нести полезного сигнала. Можно отбрасывать такие примеры.


7. Итеративное улучшение процесса

Управление качеством — не разовая акция, а цикл.

Feedback loop

  1. Собрать разметку → 2. Рассчитать метрики согласия → 3. Выявить проблемные примеры → 4. Обновить инструкции / обучить аннотаторов → 5. Повторить на новом батче.

Инструменты поддержки

  • Label Studio — open-source платформа с поддержкой консенсуса, gold set, скоринга аннотаторов.
  • Prodigy (Spacy) — активное обучение + встроенные метрики согласия.
  • LightTag — коммерческая платформа с дашбордами качества.

8. Стратегия для стартапов и малых команд

Если нет бюджета на множество аннотаторов:

  • Используйте ансамбль из 2–3 разных LLM как аннотаторов (GPT-4, Claude, Gemini) и применяйте majority voting между ними.
  • Размечайте gold set вручную силами команды (10–20 примеров) для калибровки LLM-аннотаторов.
  • Фильтруйте пары по уверенности: если LLM даёт низкую вероятность для chosen (например, < 0.6 логит), отбрасывайте пример.

Пет-проект для закрепления

Задача Создать мини-DPO датасет для задачи summarization диалогов, обеспечить качество разметки через описанные методы.

Инструменты Python (pandas, scikit-learn, datasets), Label Studio (локально или Docker), LLM API (GPT-4 для gold set).

Шаги:

  1. Взять 50 диалогов из SamSum или DialogSum.
  2. Сгенерировать 2 варианта саммари (разными LLM или человеком).
  3. В Label Studio создать проект с задачей выбора лучшего саммари.
  4. Пригласить 3 друзей/коллег в качестве аннотаторов, дать письменную инструкцию.
  5. Разметить все 50 примеров каждым аннотатором.
  6. Экспортировать метки, посчитать Fleiss’ Kappa на всех примерах.
  7. Отобрать 10 примеров, где согласие низкое, и обсудить с аннотаторами, уточнить инструкции.
  8. Повторить разметку для новой партии из 30 примеров.
  9. Обучить маленькую модель (например, distilgpt2) с DPO на очищенном датасете.
  10. Оценить качество саммари (ROUGE, win rate против baseline).

Ожидаемый результат Дашборд с Kappa, gold set accuracy, отфильтрованный датасет из ~70–80 пар с Kappa > 0.7, обученная модель с улучшенной суммаризацией.


Связь с другими вопросами

ВопросТема
260Сбор данных для DPO: источники и фильтрация
262Метрики оценки DPO-модели
259Аугментация данных для DPO
263Балансировка классов (chosen vs rejected)
264Активное обучение для удешевления разметки
258Сравнение DPO и RLHF в контексте качества разметки

Навигация