Назад к блогу

Опубликовано 20 июня 2026 г.

Куррикулум по неуверенности критика: как учить веб-агента на одной видеокарте

Reinforcement LearningPPOLLM AgentsThesis

Ограничение как постановка задачи

Обучать веб-агента через RL дорого: среда медленная, эпизоды длинные, награда разреженная. Обычный ответ - кластер. Условие этой работы было обратным: одна потребительская видеокарта на 16 ГБ. Всё остальное в архитектуре следует из этого ограничения.

Иерархия: замороженный планировщик, обучаемый исполнитель

Qwen3-8B (frozen, 4-bit NF4)         ← планировщик, ставит подцель
        ↓ подцель (JSON)
DeBERTa-v3-small (frozen)
        → Transformer (2 слоя, 4 головы) → GRU(256)
        → тип действия + pointer attention (какой элемент страницы)
        ↓ CLICK / TYPE / SCROLL / SELECT
BrowserGym / MiniWoB++

Обучается только исполнитель - несколько миллионов параметров вместо восьми миллиардов. Планировщик и энкодер заморожены и живут в 4-битной квантизации. Выбор элемента сделан через pointer attention, а не классификацию: число элементов на странице заранее неизвестно.

Идея 1: куррикулум по дисперсии value-функции

Классический куррикулум идёт от простого к сложному по заранее заданному порядку. Проблема в том, что «сложное» определяет автор, а не агент.

Здесь порядок задаёт критик. Для каждой задачи хранится дисперсия его оценок, и задачи семплируются тем чаще, чем она выше. Высокая дисперсия означает, что агент не понимает, чего стоят его действия в этой задаче, - значит, именно там обучение даст больше всего.

Разброс между задачами получился в 2740 раз: от нуля на click-link, где всё давно понятно, до 0.00274 на social-media. То есть механизм действительно перераспределял бюджет обучения, а не работал равномерно.

Идея 2: Reward Fusion вместо бинарного успеха

Бинарная награда на длинных эпизодах почти всегда ноль, и градиенту не за что зацепиться. Награда собирается из четырёх слагаемых:

R = 0.5·ORM + 0.3·R_DOM + 0.2·R_waypoint − штрафы
  • ORM - оценка модели-судьи по итоговому состоянию;
  • R_DOM - программная проверка DOM: действительно ли поле заполнено, диалог закрыт, чекбокс отмечен;
  • R_waypoint - промежуточные вехи внутри эпизода;
  • штрафы - за лишние действия и недопустимые переходы.

В логах прогона - 100 различных значений награды в диапазоне от −8.4 до +0.92. Это и есть проверка, что схема работает: награда действительно градуированная, а не замаскированный бинарный сигнал.

Результаты

МетрикаЗначение
Средний SR (фаза 3)42%
Финальный SR (последние 10 итераций)61.7%
Задач с ненулевым SR20 из 25
Шагов среды50 000

Лучшие задачи - click-dialog и focus-text (100%), click-button (60%).

Что не получилось

Честный список важнее таблицы.

  • choose-date / book-flight: jQuery-датапикер при перерисовке DOM накапливает идентификаторы элементов, и длинная навигация становится ненадёжной.
  • enter-date / enter-time: три поля ввода делят один идентификатор, штатный fill() в текущей версии среды не срабатывает.
  • email-inbox / search-engine: задачи требуют рассуждения, а не выбора элемента, - потолок самой pointer-политики.
  • PopArt: статистики нормализации value не сохраняются в чекпойнт и пересчитываются при возобновлении обучения.

Первые два пункта - это дрейф версий среды, а не свойство метода. Последние два - реальные ограничения архитектуры, и именно они задают направление следующей работы.