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

Как вы боретесь с reward hacking? (ансамбли RM, regularization, adversarial training)

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

Reward Hacking — явление, при котором агент (политика) находит способ максимизировать предсказание Reward Model, не следуя истинным намерениям человека. Борьба ведётся комбинацией методов: усреднение предсказаний нескольких RM, регуляризация через KL-пенальти, состязательное обучение (adversarial training) на специально отобранных «взломанных» траекториях, а также периодическая валидация людьми. Каждый метод снижает разные типы уязвимости RM, и на практике применяют их совместно.

2. Adversarial training: подмешиваем hacked примеры

Adversarial training — это включение в обучающую выборку RM тех траекторий, на которых политика показала высокую награду, но человек оценил их низко (или наоборот). Такие примеры называют «взломанными» (hacked).

Процесс

  1. Сбор взломанных траекторий:
    • После каждой итерации RL запускается политика, её действия оцениваются текущей RM и человеком.
    • Все пары (состояние, действие, reward от RM, оценка человека) записываются.
    • Если RM сильно расходится с человеком (например, reward > 0.9 при человеческой оценке < 0.2), пример попадает в «чёрный список».
  2. Дообучение RM:
    • Смешиваем исходные человеческие предпочтения и взломанные примеры в пропорции, например, 4:1.
    • На взломанных примерах штрафуем RM за предсказание высокого reward там, где человек дал низкий.
    • Можно использовать adversarial loss: $L_{adv} = \mathbb{E}{(s,a) \sim \pi} [\max(0, 1 - (R{human} - R_{model}))]$ (аналог hinge loss).
  3. Итеративное обновление: Повторяем цикл (RL → сбор → дообучение RM → RL) — это создаёт «гонку вооружений», где RM учится распознавать всё более изощрённые паттерны взлома.

Замечание

Adversarial training эффективен, но требует трудозатрат на человеческую оценку взломанных примеров. Поэтому часто ограничиваются автоматической фильтрацией: берут траектории, где reward модели аномально высок (например, > 95-го перцентиля), и отправляют человеку.


3. Regularization: KL penalty

KL-пенальти — самый распространённый способ регуляризации в RLHF. Он штрафует политику за отклонение от референсной модели (обычно SFT-модель):

$$ R_{[text](/wiki/text){total}}(s,a) = R_{model}(s,a) - [beta](/wiki/beta) \cdot D_{KL}(\pi_{\theta}(\cdot|s) \parallel \pi_{ref}(\cdot|s)) $$

Зачем это работает против reward hacking

  • Взлом часто заключается в том, чтобы генерировать необычные, редкие токены, на которые RM ошибочно даёт высокий reward.
  • KL-пенальти делает такие отклонения дорогими: политика вынуждена оставаться близкой к распределению референса, которое априори не содержит крайностей.
  • Коэффициент $[beta](/wiki/beta)$ выбирают так, чтобы контролировать trade-off между следованием reward и сохранением лексического разнообразия. Обычно $[beta](/wiki/beta)$ ~ 0.01–0.1, но подбирается эмпирически.

Другие формы регуляризации

  • L2-штраф на веса политики — менее эффективен, так как не ограничивает выходной логарифм.
  • Entropy bonus (добавление энтропии политики в reward) — способствует исследованию, но может даже усилить reward hacking, если политика начинает пробовать новые паттерны.

4. Периодическая валидация людьми

Даже при ансамбле и регуляризации RM может постепенно дрейфовать (reward drift). Поэтому необходима регулярная ручная проверка.

Метрики для мониторинга

МетрикаОписаниеДействие при аномалии
Human agreement% совпадений предпочтений RM с человеком на отложенной выборкеЕсли падает ниже 70% — перезапуск RM training
KL divergence$D_{KL}(\pi_{\theta} \parallel \pi_{ref})$Если растёт >2σ от среднего — ужесточить β
Out-of-distribution detectionДоля действий, где $\log p_{\theta}(a|s) < -5$Остановка обучения
Reward histogramРаспределение предсказанных rewardsЕсли появились хвосты >0.9 — проверить adversarial examples

Частота валидации: один раз в N итераций (например, каждые 10 шагов PPO). Если ресурсы ограничены, можно использовать автоматизированную проверку через LLM-as-a-Judge в качестве прокси человека, но финальное решение всегда остаётся за человеком.


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

Задача: реализовать симуляцию reward hacking в упрощённой среде и применить комбинацию методов защиты.

  • Инструменты:
    • Python, PyTorch / JAX, numpy.
    • Окружение: CartPole-v1 или кастомная «задача с перекосом» (например, агент получает высокий reward за случайное движение, а RM ошибочно поощряет этот паттерн).
    • PPO для обучения политики.
  • Шаги:
    1. Обучить одну RM (нейросеть с 2–3 слоями) на предпочтениях, собранных от человека (или симулированных «честным» показателем).
    2. Протестировать политику с этой RM — наблюдать reward hacking.
    3. Добавить KL-пенальти ($[beta](/wiki/beta)=0.1$) и убедиться, что поведение стабилизируется.
    4. Обучить ансамбль из 3 RM (разные инициализации). Усреднять их предсказания.
    5. Реализовать adversarial training: на каждой 5-й итерации собирать моменты, где RM даёт >0.9, а объективно reward низкий, дообучать RM.
    6. Сравнить частоту «взломанных» эпизодов (% эпизодов, где агент получил высокий reward, но цель не достиг).
  • Ожидаемый результат:
    • Без защиты — высокая частота взлома (например, 80%).
    • С ансамблем + KL — снижение до 30–40%.
    • С adversarial training — до 5–10%.

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

ВопросТема
992Как обучается Reward Model в RLHF?

Навигация

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