Как работает ReST (Reinforced Self-Training)? Чем отличается от PPO (итеративное обучение на собственных генерациях)?
Краткий тезис
Reinforced Self-Training (ReST) — это упрощённый метод выравнивания языковых моделей без онлайн-взаимодействия с reward model. Вместо дорогой PPO с критиком и обновлением политики в реальном времени, ReST использует итеративный цикл: генерация → фильтрация по вознаграждению → дообучение на лучших собственных сэмплах. Основное отличие от PPO: ReST не требует оценки преимущества (advantage) и работает офлайн, но рискует зациклиться на «мнимых» удачных траекториях (model collapse).
2. Нет online взаимодействия
В отличие от PPO, ReST не требует генерации во время обучения и многократного вызова reward model в процессе одной итерации градиентного спуска. Все генерации производятся заранее (offline batch). Это даёт преимущество:
- Значительно проще инженерно: не нужно поддерживать actor-critic петлю с буфером опыта.
- Дешевле: можно один раз сгенерировать пул кандидатов и отфильтровать его, а затем дообучаться на нём сколько угодно эпох.
- Легко масштабировать: генерации выполняются однократно на большом кластере, а обучение — стандартным SFT.
Недостаток: модель не видит реакцию reward model на её обновлённую политику до следующего раунда Grow. Это делает ReST менее адаптивным, чем online-методы.
3. Проще, чем PPO
Сравнение ключевых элементов:
| Аспект | PPO (RLHF) | ReST |
|---|---|---|
| Алгоритм | Actor-critic с clipping | SFT на отфильтрованных сэмплах |
| Оценка преимущества | GAE (Generalized Advantage Estimation) | Нет |
| Критик / Value model | Да, необходима | Не нужен |
| Reward model | Вызывается на каждом шаге генерации | Вызывается однократно после батча |
| Стабильность | Высокая (clipping, trust region) | Зависит от порога фильтрации |
| Риск коллапса | Низкий (регуляризация KL) | Высокий (self-reinforcing) |
ReST радикально проще в реализации: не нужно настраивать KL penalty, learning rate для критика, блендинг с SFT loss. Однако эта простота платится потенциальной нестабильностью.
4. Может зациклиться (self-reinforcing)
Главная опасность ReST — самоподкрепляющийся цикл (self-reinforcing loop). Если на раннем раунде фильтрации отобрать сэмплы с высоким вознаграждением, но низким фактическим качеством (например, reward model ошибочно поощряет многословность), то модель будет усиливать этот паттерн, отбрасывая альтернативы. В результате:
- Уменьшается разнообразие генераций (Diversity loss).
- Модель может «выучить» артефакты reward model — reward hacking.
- При многократном повторении циклов распределение ответов сужается, что ведёт к model collapse.
Механизм: на каждом шаге Improve мы максимизируем вероятность последовательностей, которые уже получили высокую оценку. Если reward model несовершенна, то ошибки накапливаются, как в классическом offline RL с регрессией к среднему.
Методы борьбы:
- Использовать KL-регуляризацию относительно исходной модели (как в PPO).
- Динамически обновлять reward model на каждом раунде.
- Применять аугментацию или смешивать с исходными данными.
Пет-проект для закрепления
Задача: Реализовать упрощённый цикл ReST для дообучения небольшой модели (например, GPT-2) на датасете инструкций с синтетической reward model.
Инструменты:
- Python 3.10+, PyTorch, Transformers, Datasets.
- Предобученная модель: GPT-2 (≈124M параметров).
- Reward model: простая бинарная модель на основе DistilBERT, обученная предсказывать «полезность» ответа (например, длину и наличие ключевых слов).
- Датасет: 500 инструкций из OpenAssistant или самодельных.
Шаги:
- Загрузить базовую модель и reward model.
- Сгенерировать 5 ответов на каждую инструкцию (Grow).
- Вычислить вознаграждение для каждого ответа. Отобрать top‑30%.
- Дообучить генеративную модель на отфильтрованных ответах через SFT (2 эпохи).
- Повторить шаги 2–4 ещё 2–3 раунда, повышая порог отбора до top‑10%.
- Оценить разнообразие (distinct n-grams) на тестовом наборе до и после ReST.
Ожидаемый результат:
- Первый раунд улучшит согласованность ответов с reward model.
- После 3–4 раундов заметно снизится разнообразие, часть ответов станет однотипной (self-reinforcing). Это визуализирует проблему.
Связь с другими вопросами
Навигация
- Предыдущий: 989
- Следующий: 991
- Индекс: 00. Индекс разборов