Aivaro
  • Оглавление
  • Вопросы
  • Практика
  • Вики
  • Материалы сообщества
  • Тесты
  • Поиск
✈Telegram @ai_varo
RUEN中文
…
Оглавление/Вопросы/#991

Как оценивать качество Reward Model (accuracy, calibration, ROC-AUC)?

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

Reward Model — критический компонент пайплайна RLHF, и его качество напрямую влияет на выравнивание LLM. Оценка reward model сводится к четырём метрикам: accuracy (доля правильных бинарных сравнений chosen vs rejected), ROC‑AUC (способность ранжировать пары, нечувствительная к порогу), calibration (соответствие уверенности модели реальной точности) и human agreement (корреляция предсказаний модели с решениями человека). Комплексное применение этих метрик позволяет выявить не только дискриминационную силу, но и надёжность суррогатного сигнала награды.

2. ROC‑AUC: способность разделять chosen/rejected

ROC‑AUC (Area Under the Receiver Operating Characteristic curve) оценивает, насколько хорошо reward model ранжирует все возможные пары chosen/rejected независимо от выбранного порога.

Как строится

  • Для каждой пары вычисляется разность баллов: $[Delta](/wiki/Delta) = [text](/wiki/text){score(chosen)} - [text](/wiki/text){score(rejected)}$.
  • Перебираются все возможные пороги $t$: если $[Delta](/wiki/Delta) > t$ — предсказание "правильный выбор", иначе "неправильный".
  • Строится кривая: TPR (True Positive Rate) vs FPR (False Positive Rate) при разных $t$.
  • AUC = площадь под этой кривой.

Преимущества

  • Робастность к порогу: AUC усредняет производительность по всем порогам, поэтому не зависит от того, насколько далеко разбросаны баллы.
  • Инвариантность к монотонному преобразованию: если модель выучила правильный порядок, но сжала все баллы в узкий диапазон, AUC останется высоким.
  • Нечувствительность к дисбалансу классов (если доля chosen/rejected сбалансирована в парах).

Ожидаемые значения

  • AUC = 0.5 — случайное ранжирование.
  • AUC > 0.7 — приемлемое качество.
  • AUC > 0.9 — отличное разделение (но возможна утечка).
  • AUC < 0.5 — модель систематически ошибается (можно инвертировать знак баллов).

Пример

from sklearn.metrics import roc_auc_score

# delta = scores_chosen - scores_rejected (формат: одна разность на пару)
# y_true = 1 для каждой пары (т.к. всегда chosen > rejected)
delta = scores_chosen - scores_rejected
y_true = np.ones(len(delta))
auc = roc_auc_score(y_true, delta)

3. Calibration: уверенность vs точность

Calibration (калибровка) оценивает, насколько разность баллов reward model соответствует вероятности того, что chosen действительно лучше. Даже при высоком AUC модель может быть плохо откалибрована: например, выдавать $[Delta](/wiki/Delta) = 10$ для пар, где chosen реально лучше лишь в 60% случаев.

Метрики калибровки

  • Expected Calibration Error (ECE):

    1. Разбить все пары на $K$ бинёв по величине $[Delta](/wiki/Delta)$ (например, 10 бинёв).
    2. Для каждого бина посчитать среднюю уверенность (среднее $[Delta](/wiki/Delta)$, нормализованное сигмоидом или scaled) и фактическую долю правильных решений (accuracy).
    3. ECE = $\sum_{k} w_k \cdot |[text](/wiki/text){acc}_k - [text](/wiki/text){conf}_k|$, где $w_k$ — доля пар в бине.
  • Reliability diagram: график зависимости accuracy от уверенности. Идеально — диагональ.

Почему это важно

  • В RLHF reward model влияет на процесс PPO: если $[Delta](/wiki/Delta)$ некалибрована, преимущества между ответами могут быть переоценены или недооценены, что приводит к смещению политики.
  • Калибровка особенно критична при использовании reward model в ранжировании (например, для Rejection Sampling или Best-of-N).

Пример ECE

def compute_ece(delta, y_correct, n_bins=10):
    bin_edges = np.linspace(delta.min(), delta.max(), n_bins+1)
    bin_indices = np.digitize(delta, bin_edges) - 1
    ece = 0.0
    for i in range(n_bins):
        mask = (bin_indices == i)
        if np.sum(mask) == 0:
            continue
        conf = np.mean(delta[mask])  # или отмасштабированное значение
        acc = np.mean(y_correct[mask])
        ece += np.sum(mask) * np.abs(acc - conf)
    return ece / len(delta)

4. Human agreement: корреляция с людьми

Human agreement (согласованность с человеком) — итоговая проверка: насколько решения reward model совпадают с решениями людей на том же наборе сравнений.

Метрики

  • Cohen’s Kappa — учитывает случайное совпадение: $$ \kappa = \frac{[text](/wiki/text){Accuracy observed} - [text](/wiki/text){Accuracy expected}}{1 - [text](/wiki/text){Accuracy expected}} $$ где expected accuracy — вероятность случайного совпадения при тех же маргинальных частотах.

  • Kendall’s Tau или Spearman’s $\rho$ — корреляция рангов, если people дают не бинарные метки, а оценки по шкале.

  • Agreement rate — доля пар, где предсказание совпало с большинством людей (или с меткой опции selected).

Ограничения

  • Межчеловеческое согласие (inter‑annotator agreement) обычно неидеально (50–80%). Reward model не может превзойти это согласие, если оно заложено в обучающих данных.
  • Сравнение происходит на тех же примерах, что использовались для обучения — это может завысить оценку. Лучше использовать отдельный тестовый набор, размеченный независимыми людьми.

Идеальная ситуация

  • Human agreement > inter‑annotator agreement — reward model "договаривается" с людьми не хуже, чем люди между собой.
  • Если human agreement значительно ниже, это указывает на расхождение между принципами модели и человеческими предпочтениями.

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

Задача: Разработать скрипт для комплексной оценки reward model, который вычисляет accuracy, ROC‑AUC, ECE и Kendall’s tau на синтетическом датасете с контролируемым уровнем шума.

Инструменты: Python, NumPy, scikit‑learn, matplotlib (для reliability diagram).

Шаги:

  1. Сгенерировать синтетические баллы reward model и истинные метки chosen/rejected с помощью заданной функции вероятности и случайного шума (например, логистическая модель с коэффициентами, + гауссов шум).
  2. Реализовать расчёт accuracy и ROC‑AUC.
  3. Реализовать ECE с 10 бинами, построить reliability diagram.
  4. Имитировать двух "аннотаторов" (один — сама модель, второй — "человек" с шумом). Вычислить Cohen’s Kappa между моделью и "человеком" на одних и тех же парах.
  5. Вывести все метрики в таблицу и проанализировать, как меняются значения при увеличении шума.

Ожидаемый результат: Понимание, что accuracy и AUC падают с шумом, но ECE растёт (калибровка ухудшается). Human agreement (kappa) снижается пропорционально. Умение интерпретировать каждую метрику.


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

ВопросТема
984Reward Model: архитектура, обучение, роль в RLHF

Навигация

  • Предыдущий: 990
  • Следующий: 992
  • Индекс: 00. Индекс разборов