Как оценивать качество 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):
- Разбить все пары на $K$ бинёв по величине $[Delta](/wiki/Delta)$ (например, 10 бинёв).
- Для каждого бина посчитать среднюю уверенность (среднее $[Delta](/wiki/Delta)$, нормализованное сигмоидом или scaled) и фактическую долю правильных решений (accuracy).
- 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).
Шаги:
- Сгенерировать синтетические баллы reward model и истинные метки chosen/rejected с помощью заданной функции вероятности и случайного шума (например, логистическая модель с коэффициентами, + гауссов шум).
- Реализовать расчёт accuracy и ROC‑AUC.
- Реализовать ECE с 10 бинами, построить reliability diagram.
- Имитировать двух "аннотаторов" (один — сама модель, второй — "человек" с шумом). Вычислить Cohen’s Kappa между моделью и "человеком" на одних и тех же парах.
- Вывести все метрики в таблицу и проанализировать, как меняются значения при увеличении шума.
Ожидаемый результат: Понимание, что accuracy и AUC падают с шумом, но ECE растёт (калибровка ухудшается). Human agreement (kappa) снижается пропорционально. Умение интерпретировать каждую метрику.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 984 | Reward Model: архитектура, обучение, роль в RLHF |
Навигация
- Предыдущий: 990
- Следующий: 992
- Индекс: 00. Индекс разборов