Что такое RLHF (Reinforcement Learning from Human Feedback) в 3 шагах? (SFT, Reward Model, RL)
Краткий тезис
RLHF (Reinforcement Learning from Human Feedback) — это трёхэтапный метод тонкой настройки языковых моделей, который позволяет согласовать поведение модели с человеческими предпочтениями без явной разметки правильных ответов. Процесс включает: (1) супервизированную тонкую настройку (SFT) на демонстрациях, (2) обучение модели вознаграждения (Reward Model) на парных сравнениях, (3) оптимизацию политики с помощью PPO (Proximal Policy Optimization) с использованием предсказанного вознаграждения. Итерационное повторение цикла позволяет постепенно улучшать качество выдачи.
-------|-------------------| | Размер датасета | 10k – 50k примеров | | Learning rate | 1e-5 – 2e-5 | | Число эпох | 1–3 (чтобы избежать переобучения) | | Base model | GPT-3.5, LLaMA 7B/13B, Pythia |
Важно: SFT не делает модель «дружелюбной» или «безопасной» — она просто учится генерировать ответы в стиле демонстраций. Переход к следующему шагу необходим для учёта нюансов предпочтений.
2. Шаг 2: обучение Reward Model (RM) на сравнениях
На втором шаге строится модель вознаграждения, которая предсказывает, насколько ответ «нравится» человеку. Для этого собираются человеческие оценки в формате парных сравнений (A vs B).
- Сбор данных: аннотаторам показывают один и тот же промпт и два ответа (от SFT-модели или разных политик). Человек выбирает лучший (или «значительно лучше» / «немного лучше»).
- Архитектура RM: обычно та же предобученная модель (LLM) с заменой последнего слоя на линейный головной слой, выдающий одно скалярное значение (reward). Вход — конкатенация промпта и ответа.
- Функция потерь: Binary Cross-Entropy для парных сравнений. Для пары (ответа (y_a) и (y_b)) с предсказанными rewards (r_a, r_b) лосс:
[ \mathcal{L}{RM} = -\mathbb{E}{(a,b)} \Big[ \sigma(r_a - r_b) \cdot \mathbb{1}(a > b) + \sigma(r_b - r_a) \cdot \mathbb{1}(b > a) \Big] ]
где (\sigma) — сигмоида.
- Размер датасета RM: 100k – 1M сравнений (обычно 500k–1M для InstructGPT).
- Результат: Reward Model, которая может оценивать любой ответ числом: чем выше reward, тем больше вероятность, что человек предпочтёт этот ответ.
| Метрика | Ожидаемое значение |
|---|---|
| Accuracy на валидации | 65–75% (человеческое согласие ≈ 80%) |
| Spearman correlation с человеческими оценками | 0.3–0.5 |
3. Шаг 3: RL (PPO) с reward от RM
Финальный этап — дообучение SFT-модели с помощью алгоритма RL так, чтобы максимизировать ожидаемое вознаграждение, предсказанное Reward Model, но без слишком сильного отклонения от исходной политики (чтобы не возник «режим коллапса» — модель, которая выучила обманывать RM).
- Алгоритм: PPO (или его вариации, например, GRPO). PPO — on-policy, используется clipped surrogate objective.
- Компоненты:
- Policy (Actor) — SFT-модель, которую дообучаем.
- Reward Model — заморожена и выдаёт reward для полного сгенерированного ответа.
- Value Model — часто копия policy, предсказывающая ожидаемый reward (critic).
- KL penalty — штраф за расхождение (KL divergence) между текущей политикой и исходной SFT-моделью. Это предотвращает вырождение.
Функция потерь для PPO (упрощённо):
[ \mathcal{L}{PPO} = -\mathbb{E}{t} \left \min\left( \frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} \hat{A}_t, ,[text{clip}\left( \frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}, 1-[epsilon](/wiki/Epsilon), 1+[epsilon](/wiki/Epsilon) \right) \hat{A}t \right) \right] + [beta](/wiki/beta)\cdot KL(\pi{\theta} | \pi_{SFT}) ]
-
Гиперпараметры:
- ([beta](/wiki/beta)) (KL penalty) — обычно 0.01–0.1.
- ([epsilon](/wiki/Epsilon)) (clip range) — 0.2.
- Число итераций PPO на одном batch сравнений — 1–4.
-
Процесс:
-
Результат: модель (RLHF-модель), которая генерирует ответы, более предпочтительные для людей, чем SFT-базовый вариант.
4. Итерации улучшения
RLHF редко выполняется один раз — обычно это итеративный процесс:
- После первого цикла получаем RL-модель.
- С её помощью генерируем новые ответы на новых промптах.
- Аннотаторы сравнивают ответы RL-модели с ответами SFT-модели (или предыдущей версии RL).
- На обновлённых сравнениях переобучаем Reward Model (или дообучаем её).
- Повторяем шаг PPO с улучшенной RM.
Цель: постепенное смещение распределения ответов в сторону человеческих предпочтений. На практике хватает 2–3 итераций, чтобы получить заметный прирост (как в DeepSeek-R1 или Claude).
| Итерация | Reward Model accuracy | Human preference win rate vs SFT |
|---|---|---|
| 0 (SFT) | — | 50% (базовая линия) |
| 1 | 68% | 70–80% |
| 2 | 72% | 85%+ |
5. Пет-проект для закрепления
Задача: Реализовать упрощённый пайплайн RLHF на небольшой языковой модели (DistilGPT2) с синтетическими данными человеческих предпочтений.
Инструменты:
- Python 3.10+; PyTorch 2.x; Transformers; TRL (Transformer Reinforcement Learning); Weights & Biases для логирования.
Шаги:
- SFT: Возьмите предобученную DistilGPT2 и дообучите на наборе из 1k пар (промпт + хороший ответ) из датасета OpenAssistant Conversations (oasst1). Используйте стандартный
TrainerсDataCollatorForLanguageModeling. - Reward Model: Создайте классификатор на базе той же DistilGPT2: добавьте линейный слой на [CLS]-токен (или последний скрытый). Подготовьте 10k пар сравнений (можно синтезировать, взяв SFT-модель и добавив шум к ответам). Обучайте с парным лоссом.
- PPO (RL):
- Используйте библиотеку
trl.PPOTrainer. - Определите
policyкак DistilGPT2,reward_modelкак загруженную RM. - Соберите 500 промптов, генерируйте ответы, векторизуйте их, получите reward, обновите policy через PPO (с KL penalty = 0.02).
- Повторите 5–10 шагов (эпох).
- Используйте библиотеку
- Итерация: сгенерируйте новые сравнения от обученной модели, дообучите RM, повторите PPO.
Ожидаемый результат:
- На тестовых промптах RLHF-модель будет генерировать ответы, которые получают выше средний reward от RM (проверить можно замерив average reward на выборке).
- Субъективно ответы станут более полными и менее токсичными (если начальные RM была обучена на «хороших» ответах).
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 326 | Что такое PPO и как применяется в RLHF? |
| 980 | Основные понятия Alignment (выравнивания) LLM |
| 982 | Что такое DPO (Direct Preference Optimization) и чем отличается от RLHF? |
Навигация
- Предыдущий: 980
- Следующий: 982
- Индекс: 00. Индекс разборов zation)|982]]
- Индекс: 00. Индекс разборов