Обучение с подкреплением: PPO, SAC, DQN и промышленное применение
Мы каждый день видим проекты, которые умирают не из‑за слабого алгоритма, а из‑за неправильной награды. Инженер пишет reward = +1 за правильное действие, запускает обучение, а через 10 млн шагов агент находит способ получить максимум, не решив задачу. Это reward hacking — системная боль промышленного RL. Наш опыт показывает: правильный reward занимает 70% успеха.
Почему RL сложнее, чем supervised learning?
В supervised learning есть датасет с правильными ответами. В RL правильного ответа нет — есть скалярный сигнал «лучше/хуже», который приходит с задержкой в сотни шагов. Агент сам исследует пространство и находит стратегию.
Следствия: нестабильность обучения, высокая чувствительность к гиперпараметрам, медленная сходимость. PPO (Proximal Policy Optimization) на Atari сходится за 10 млн шагов — это часы. На роботизированных задачах с реальной физикой — дни или недели в симуляторе.
Выбор алгоритма под задачу:
| Задача | Алгоритм | Причина |
|---|---|---|
| Непрерывное управление (роботика, техпроцессы) | SAC, TD3 | Sample efficiency, стабильность |
| Дискретные действия, game‑playing | PPO, DQN + Rainbow | Простота, изучен в индустрии |
| Multi‑agent | MAPPO, QMIX | Кооперация/конкуренция |
| Offline RL (датасет без среды) | CQL, IQL, TD3+BC | Обучение без среды |
| RLHF (alignment LLM) | PPO, GRPO | Интеграция с reward model |
Как настроить PPO и избежать типичных проблем?
PPO — рабочая лошадка RL. Основная идея: ограничиваем обновление политики через клиппирование ratio clip_range=0.2. Это даёт стабильность по сравнению с vanilla policy gradient. Но без грамотной настройки агент не сходится.
Одна из частых ловушек — entropy collapse: агент слишком быстро становится детерминированным, перестаёт исследовать. Симптом — entropy coefficient падает до нуля. Лечение — ent_coef=0.01–0.05 и не снижать ниже 0.001. Другая проблема — value function расходится, когда vf_loss_coef высокий, а explained_variance отрицательный. Рекомендуем vf_coef=0.5 и gradient clipping max_grad_norm=0.5.
Неправильный n_steps тоже ломает обучение. n_steps=2048 — дефолт Stable‑Baselines3. Для задач с длинным горизонтом (>500 шагов) нужно увеличивать, для быстрых (10–50 шагов) — уменьшать до 256–512.
Для быстрого старта используем stable‑baselines3 + sb3‑contrib. Для research и кастомных алгоритмов — tianshou или CleanRL.
SAC для непрерывного управления
SAC (Soft Actor‑Critic) добавляет в objective максимизацию энтропии — агент учится быть и эффективным, и разнообразным. Это даёт отличную sample efficiency и устойчивость к шуму в reward.
На задачах управления техпроцессами SAC обычно обходит PPO по сходимости: требуется меньше взаимодействий для того же качества. Ключевой параметр — target_entropy. Стандартное значение ‑dim(action_space) часто подходит, но для специфических задач лучше настраивать вручную.
Как перенести обученного агента на реальное устройство?
Обучать RL на реальном роботе — дорого и опасно. Стандартный подход: обучение в симуляторе → трансфер на реальное железо. Основная проблема — reality gap: симулятор не воспроизводит физику, трение, шум датчиков.
Главный инструмент — domain randomization. Во время обучения случайно варьируем параметры среды: масса объектов ±30%, коэффициент трения ±50%, задержка действий 0–100 мс, шум наблюдений σ=0.01–0.1. Агент обучается быть робастным к вариациям, и реальный мир становится лишь ещё одной вариацией.
Сравнение популярных симуляторов:
| Симулятор | Особенности | Производительность |
|---|---|---|
| MuJoCo | Стандарт для роботики, физика среднего уровня | Один робот — CPU |
| Isaac Gym / Isaac Lab (NVIDIA) | GPU‑accelerated, 10 000+ параллельных сред | Высокая (на A100 до 50 000 fps) |
| PyBullet | Бесплатный, удобный для прототипов | Низкая, CPU |
| Gazebo | Интеграция с ROS, полный цикл | Средняя, CPU+GPU |
Кейс: манипулятор для сортировки компонентов на PCB
Использовали Isaac Gym с 4096 параллельными средами на A100, PPO с domain randomization (случайная масса, освещение, позиция камеры). 500 млн шагов — 18 часов. После трансфера на реальный UR5 success rate 78% без дополнительного fine‑tuning. После 2 часов на реальном роботе (10 k шагов) — 94%. Весь process — 3 недели.
RLHF: обучение LLM из человеческой обратной связи
RLHF стал стандартом после InstructGPT. Классическая схема: supervised fine‑tuning → reward model → PPO.
Проблемы классического PPO: нестабильность (KL‑дивергенция может взорваться), медленная сходимость, сложность настройки. Поэтому популярны альтернативы:
- DPO — обходит reward model, учится на парах предпочтений. Проще, стабильнее, но менее гибкий.
- GRPO — используется в DeepSeek‑R1, хорош для reasoning tasks.
- ORPO — объединяет SFT и alignment в одну стадию.
Библиотека trl от Hugging Face — стандарт. Поддерживает PPO, DPO, ORPO, GRPO из коробки, работает с PEFT/LoRA для memory‑efficient fine‑tuning.
«Reward hacking — одна из основных причин провалов в RL, наряду с неправильно выбранной архитектурой среды.» — Wikipedia: Reward hacking
Что входит в работу
- Архитектурное решение и обоснование выбора алгоритма
- Разработка и документирование reward‑функции
- Создание симулятора или настройка существующего
- Обучение, hyper‑parameter sweep (Optuna / Ray Tune)
- Трансфер на реальное железо или интеграция в продукт
- Документация, доступы к коду и симуляторам
- Обучение команды и 3‑месячная поддержка после деплоя
Процесс работы
- Аудит задачи — фиксируем цели, ресурсы, ограничения.
- Reward engineering — формализация желаемого поведения, проверка на reward hacking.
- Выбор среды и алгоритма — baseline, первые прогоны.
- Систематический hyperparameter sweep — используем Optuna.
- Обучение в симуляторе с domain randomization.
- Тестирование на реальном оборудовании (при необходимости).
- Деплой, мониторинг, поддержка.
Сроки: proof of concept — 2–4 недели; production‑система с sim‑to‑real — 3–8 месяцев; RLHF для LLM — 4–10 недель. Стоимость рассчитывается индивидуально — оценим ваш проект за 2 дня. Свяжитесь с нами для консультации.
Наша команда — 5+ лет опыта в RL, 30+ успешных проектов в роботике, оптимизации цепочек поставок и LLM alignment. Гарантируем прозрачную архитектуру и полную техническую документацию. Закажите разработку системы RL — мы поможем обойти типовые ловушки и получить работающую систему в сжатые сроки.







