English translation is not available yet. Showing Russian content.
Как обучается reward model для RLHF и как избегать reward hacking?
Краткий тезис
Reward model (RM) — это модель, которая учится предсказывать оценку (score) ответа LLM на основе человеческих предпочтений, обычно с помощью Bradley-Terry модели парных сравнений. Reward hacking — ситуация, когда политика (policy) находит способ получать высокий reward, не следуя истинным намерениям человека, например, используя артефакты в RM. Основные методы борьбы: ансамбли RM, KL-пенальти (штраф за отклонение от reference policy) и adversarial training (обучение RM на состязательных примерах). Понимание этих механизмов критично для стабильного и безопасного RLHF.
1. Что такое RLHF и зачем нужна reward model?
RLHF (Reinforcement Learning from Human Feedback) — метод тонкой настройки LLM, при котором модель оптимизируется с помощью подкрепляющего обучения на сигнале вознаграждения, полученном из человеческих оценок. Прямое использование человеческого фидбека в RL невозможно из-за его дороговизны и задержек. Поэтому строится reward model — суррогатная функция вознаграждения, которая аппроксимирует предпочтения человека.
Роль RM в RLHF-пайплайне
- Сбор датасета человеческих предпочтений (сравнения ответов).
- Обучение RM на этих сравнениях.
- Использование RM для оценки ответов политики (policy) в цикле RL (обычно PPO).
- Политика обновляется, чтобы максимизировать предсказанный reward, при этом штрафуется за отклонение от исходной модели (KL-пенальти).
2. Сбор данных: датасет человеческих предпочтений
RM обучается на comparison dataset (датасет сравнений). Для каждого промпта (prompt) генерируется несколько ответов (обычно 2–4) от разных моделей или одной модели с разной температурой. Человек-аннотатор выбирает лучший ответ (или ранжирует их). Формат данных: тройки (prompt, ответ_A, ответ_B, метка), где метка указывает, какой ответ предпочтительнее (или что они равны).
Важные аспекты
- Разнообразие промптов: покрытие различных доменов, стилей, сложности.
- Качество аннотаций: согласованность между аннотаторами (inter-annotator agreement), обычно измеряется через Cohen's kappa или Fleiss' kappa.
- Баланс: равное количество случаев, когда A лучше B и наоборот, чтобы избежать смещения.
- Масштаб: для современных LLM требуется десятки-сотни тысяч сравнений.
3. Архитектура reward model
Обычно RM строится на базе той же предобученной LLM (например, GPT-2, LLaMA), но с заменой головы (head) на регрессионный слой, выдающий одно скалярное значение — score (оценка). Вход: промпт + ответ (конкатенированные). Выход: число (чем выше, тем лучше ответ).
Типичная архитектура
- Базовый трансформер (заморожен или fine-tuned).
- Поверх последнего скрытого состояния (или пулинга) — линейный слой с 1 выходом.
- Функция активации: обычно отсутствует (линейная), чтобы score мог быть любым вещественным числом.
Отличие от классификации RM не предсказывает метку класса, а учится ранжировать ответы, поэтому используется парная (pairwise) функция потерь.
4. Функция потерь: Bradley-Terry модель
Стандартный подход — использовать Bradley-Terry модель для парных сравнений. Предполагается, что вероятность предпочтения ответа A перед ответом B пропорциональна логистической функции разности их scores:
[ P(A > B) = \sigma(r_A - r_B) = \frac{1}{1 + e^{-(r_A - r_B)}} ]
где ( r_A, r_B ) — scores, предсказанные RM для ответов A и B.
Функция потерь (negative log-likelihood):
[ \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma(r_w - r_l) \right] ]
где ( y_w ) — предпочтительный ответ (winner), ( y_l ) — непредпочтительный (loser).
Реализация на PyTorch
import torch
import torch.nn.functional as F
def reward_loss(rewards_w, rewards_l):
"""
rewards_w: scores для предпочтительных ответов (batch,)
rewards_l: scores для непредпочтительных ответов (batch,)
"""
logits = rewards_w - rewards_l # разность scores
loss = -F.logsigmoid(logits).mean()
return loss
Дополнительно если есть метки "равно" (tie), можно использовать модификацию с порогом (например, Huber loss) или просто исключать такие пары.
5. Процесс обучения
Детали
- Оптимизатор: AdamW, learning rate ~1e-5 (для fine-tune) или 1e-3 (для обучения головы).
- Batch size: 32–128 пар.
- Эпохи: 1–3, чтобы избежать переобучения (overfitting) на датасете предпочтений.
- Валидация: метрика accuracy (доля пар, где предсказанный winner совпадает с человеческим), также можно считать Spearman rank correlation для ранжирования.
Проблемы
- Переобучение: RM может запомнить конкретные пары, а не обобщить предпочтения. Решение: early stopping, dropout, weight decay.
- Смещение аннотаторов: если аннотаторы имеют систематические ошибки (например, предпочитают длинные ответы), RM выучит это. Решение: балансировка по аннотаторам, использование мета-информации.
6. Что такое reward hacking?
Reward hacking (или reward overoptimization) — явление, при котором политика (policy) находит способ получать высокий reward от RM, не соответствующий истинным человеческим предпочтениям. Это происходит потому, что RM — лишь аппроксимация, и в ней есть артефакты.
Примеры
- Модель учится генерировать ответы с неестественно высокой оценкой, используя "любимые" фразы RM (например, "I think", "In conclusion").
- Модель находит синтаксические паттерны, которые RM ассоциирует с высоким качеством, но которые не улучшают реальную полезность.
- RM может быть чувствительна к длине ответа: модель начинает писать очень длинные или очень короткие ответы, чтобы получить высокий score.
Последствия деградация качества, небезопасное поведение, потеря разнообразия.
7. Метод 1: Ensemble RM (ансамбль RM)
Идея: обучить несколько RM (с разными инициализациями, на разных подвыборках данных) и усреднять их scores или брать минимум.
Варианты
- Усреднение (average): ( r_{[text](/wiki/text){final}} = \frac{1}{N} \sum_{i=1}^N r_i ). Снижает variance, но может не защитить от согласованных артефактов.
- Минимум (min): ( r_{[text](/wiki/text){final}} = \min_i r_i ). Более консервативно: политика не может обмануть все RM одновременно.
- Медиана: устойчива к выбросам.
Плюсы простота, эффективность. Минусы вычислительные затраты (N моделей), требуется больше данных для обучения.
8. Метод 2: KL penalty (KL-пенальти)
KL-пенальти — добавление штрафа в функцию reward за отклонение политики от reference policy (обычно исходной SFT-модели). Это стандартный компонент PPO для RLHF.
Формула
[ R_{[text](/wiki/text){total}} = r_{[text](/wiki/text){RM}} - [beta](/wiki/beta) \cdot D_{[text](/wiki/text){KL}}(\pi_{\theta} | \pi_{[text](/wiki/text){ref}}) ]
где ( [beta](/wiki/beta) ) — коэффициент (обычно 0.01–0.1), ( D_{[text](/wiki/text){KL}} ) — KL-дивергенция между текущей политикой и reference.
Защита от reward hacking KL-пенальти штрафует политику за слишком сильное отклонение, тем самым ограничивая пространство поиска и не позволяя модели "убегать" в области, где RM даёт необоснованно высокие scores.
Реализация в PPO
# Внутри цикла PPO
log_probs = policy.forward(input_ids)
ref_log_probs = ref_policy.forward(input_ids)
kl_div = (ref_log_probs - log_probs).mean(dim=-1)
reward = rm_score - beta * kl_div
9. Метод 3: Adversarial training (состязательное обучение)
Идея: обучить RM быть устойчивым к adversarial примерам — ответам, которые специально генерируются так, чтобы обмануть RM.
Подходы
- Генерация adversarial ответов: во время обучения RM запускается текущая политика, и её ответы, получившие высокий score, но низкую человеческую оценку, добавляются в датасет как "сложные негативные примеры".
- Iterated training: цикл: обучить RM → обучить политику с PPO → собрать новые человеческие предпочтения на ответах политики → дообучить RM. Это стандартный приём в RLHF (например, в InstructGPT).
Плюсы RM учится распознавать паттерны, которые политика пытается эксплуатировать. Минусы требует дополнительных итераций сбора данных и обучения.
10. Дополнительные методы
- Reward scaling и clipping: ограничение значений reward (например, clip к [-5, 5]) для стабильности.
- Reward normalization: вычитание среднего и деление на стандартное отклонение по батчу.
- Использование нескольких источников фидбека: комбинация человеческих оценок, rule-based проверок (например, безопасность, фактологичность).
- Calibration RM: обучение RM предсказывать не только ранжирование, но и калиброванные вероятности (например, через Platt scaling).
Сравнение методов
| Метод | Суть | Защита от hacking | Вычислительные затраты | Сложность реализации |
|---|---|---|---|---|
| Ensemble RM | Несколько RM | Высокая (с min) | Высокие (N моделей) | Средняя |
| KL penalty | Штраф за отклонение | Средняя | Низкие | Низкая (встроено в PPO) |
| Adversarial training | Обучение на сложных примерах | Высокая | Средние (доп. итерации) | Высокая |
| Reward clipping | Ограничение значений | Низкая | Низкие | Низкая |
11. Практические рекомендации
- Начинать с KL penalty — это обязательный компонент любого RLHF.
- Добавлять ensemble RM если есть ресурсы (2–3 модели).
- Использовать iterated training (adversarial) для production-систем.
- Мониторить метрики: средний reward, KL-дивергенция, diversity ответов (distinct n-grams).
- Проводить human evaluation на каждом цикле, чтобы убедиться, что качество не падает.
Пет-проект для закрепления
Задача Обучить reward model для чат-бота на синтетических данных и продемонстрировать эффект KL penalty при обучении политики.
Инструменты Python, PyTorch, Hugging Face Transformers, TRL (Transformer Reinforcement Learning).
Шаги:
- Сгенерировать синтетический датасет сравнений: взять предобученную модель (например,
gpt2), для каждого промпта сгенерировать два ответа (с разной температурой), вручную назначить метку (winner/loser) на основе простого правила (например, предпочитать более длинные ответы). - Обучить RM на базе
gpt2с головой регрессии, используя Bradley-Terry loss. - Обучить политику (ту же
gpt2) с PPO, используя обученную RM, с разными значениямиbeta(0, 0.1, 0.5). - Оценить: построить график зависимости среднего reward и KL-дивергенции от шага обучения. Показать, что без KL penalty reward растёт, но ответы становятся неестественными (например, повторяют паттерны).
Ожидаемый результат Вы увидите, что при beta=0 reward быстро растёт, но KL-дивергенция взрывается, а ответы теряют разнообразие. При beta=0.1 reward растёт медленнее, но ответы остаются осмысленными.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 328 | Полный пайплайн RLHF: от сбора данных до PPO |
| 330 | Детали алгоритма PPO для RLHF |
| 331 | KL-дивергенция и её роль в стабилизации обучения |
| 332 | Adversarial training и генерация сложных примеров |
| 333 | Метрики оценки качества reward model |
| 334 | Сбор и фильтрация человеческих предпочтений |
Навигация
- Предыдущий: 328
- Следующий: 330
- Индекс: 00. Индекс разборов