Запись архива

Hugging Face открыла рецепт обучения кодовой модели рисовать акварелью

Hugging Face опубликовала воспроизводимый пайплайн обучения модели, которая рисует акварельные композиции через JavaScript-код. В проекте используются TRL, OpenEnv, GRPO и две модели эстетической оценки.

Пайплайн обучения кодовой модели рисовать акварелью через JavaScript, TRL, OpenEnv и GRPO
Пайплайн обучения кодовой модели рисовать акварелью через JavaScript, TRL, OpenEnv и GRPO
Изображение из исходного материала

Hugging Face опубликовала открытый рецепт обучения языковой модели, которая создаёт акварельные изображения не напрямую, а через JavaScript-код. Модель генерирует программу примерно на 150 строк, а затем этот код исполняется библиотекой p5.brush для p5.js.

Проект описан в блоге Hugging Face 3 сентября 2026 года. Он развивает идею Сурии Нарредди: 23 августа автор показал видео с акварелями, созданными языковой моделью, и, по данным публикации, ролик быстро набрал более 1,5 млн просмотров. В реализации Hugging Face сделан акцент не на демонстрации результата, а на воспроизводимости: опубликованы среда обучения, скрипты, референсный пул и обученные модели.

Модель рисует через ограниченный набор команд

Вместо генерации пикселей система учится писать программы на JavaScript. Эти программы используют p5.brush — библиотеку, которая добавляет к p5.js инструменты для имитации кисти, растекания краски и мягких краёв.

Модели разрешено применять только десять методов библиотеки. Это ограничение задаёт рамки визуального стиля: результат должен выглядеть менее идеально и более похоже на ручную работу. Такой подход отличается от типичного использования генеративных моделей изображений, где пользователь меняет текстовый запрос, а сама процедура рисования остаётся скрытой.

Сгенерированный код можно прочитать, отредактировать и запустить повторно. Поэтому эксперимент интересен не только как способ получить картинку, но и как исследование программируемого визуального стиля. Решения модели представлены в виде последовательности команд, а не набора недоступных для анализа весов отдельного генератора изображений.

В качестве базовой модели в опубликованной команде используется Qwen/Qwen3.5-35B-A3B. Обучение запускается с LoRA, поддержкой bf16 и градиентным чекпоинтингом. В примере автор предлагает генерировать акварель с сюжетом «персиковый гибискус».

Награда основана на эстетической оценке

Пайплайн построен на GRPO из библиотеки TRL. Обычно обучение с подкреплением для языковых моделей применяют там, где правильность можно проверить автоматически: например, по ответу математической задачи или результату выполнения тестов. В акварельном эксперименте правильного ответа нет, поэтому система оптимизирует эстетическую оценку.

Награда складывается из двух оценщиков.

HPSv3 — открытая модель предпочтений примерно на 7 млрд параметров. Она получает изображение и текстовое описание и оценивает, насколько результат соответствует человеческим предпочтениям, отражённым в данных обучения модели.

Второй оценщик — Qwen3-VL-30B-A3B-Instruct. Он сравнивает картину-кандидата с четырьмя случайно выбранными изображениями из референсного пула. В описании эксперимента отдельно упоминаются растекание краски, полупрозрачные заливки и мягкие края. Сравнение выполняется в обоих порядках показа изображений, после чего итоговая оценка отражает долю сравнений, выигранных кандидатом.

Авторы не заявляют, что такая оценка представляет объективное качество акварели. Она измеряет соответствие конкретному набору референсов и выбранным критериям. Если изменить пул или текст инструкции для оценщика, направление оптимизации также изменится.

Референсный пул задаёт «вкус» системы

Ключевая часть эксперимента — вручную отобранный и размеченный набор изображений. Именно он определяет, какие визуальные свойства система будет считать желательными. В этом смысле обучение настраивает не абстрактную «красивую акварель», а конкретное представление о стиле.

Hugging Face описывает три запуска с разными весами двух оценщиков. Сначала автор проверил вариант только с HPSv3, чтобы убедиться, что весь пайплайн способен обучаться. Затем были проведены два более длительных запуска с добавлением попарного судьи на основе референсов.

Чем выше вес попарного оценщика, тем сильнее результат зависит от вкуса, зафиксированного в пуле, а не от усреднённых предпочтений HPSv3. Одновременно такая цель становится сложнее для оптимизации. В публикации отмечается, что при слишком сильном смещении в сторону судьи или при слишком большом удалении стиля от среднего модель теоретически может перестать улучшаться. В описанных запусках этого не произошло: оба варианта с попарным оцениванием продолжили обучаться.

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

Пайплайн можно запустить на инфраструктуре Hugging Face

Для эксперимента требуется поднять два Spaces: один с RL-средой, другой с моделью-оценщиком. После этого обучение запускается заданием Hugging Face Jobs. В приведённой конфигурации указаны 110 шагов, 240 эпизодов и восемь генераций на шаг; максимальная длина ответа модели составляет 8192 токена, а срок выполнения задания — до 48 часов на конфигурации H200.

Пример команды из публикации:

hf jobs uv run train/watercolour_grpo.py —flavor h200 —timeout 48h \
—secrets HF_TOKEN \
—env-url https://-watercolour-env.hf.space \
—model Qwen/Qwen3.5-35B-A3B —lora —all-linear —bf16 \
—gradient-checkpointing \
—subject ‘a peach hibiscus’ —references 4 \
—top-p 0.95 —top-k 20 \
—lr 5e-5 —lr-scheduler constant_with_warmup —warmup-steps 5 \
—scale-rewards none —steps 110 —n-episodes 240 \
—num-generations 8 —per-device-batch-size 1 \
—gradient-accumulation-steps 8 —max-completion-length 8192 \
—run-tag my-run —out /watercolour-grpo —push-to-hub

Команда является примером конфигурации, а не гарантией результата для любой видеокарты или любого набора изображений. Параметры `` нужно заменить на собственные имена Space и репозитория. Для понимания используемых компонентов пригодятся документация TRL и репозиторий OpenEnv; сам эксперимент опубликован в блоге Hugging Face.

Практический вывод для разработчиков — переносить этот подход можно не только на акварель. Схема подходит для задач, где модель генерирует код, код запускается в контролируемой среде, а качество оценивается по визуальному или иному предпочтению. Главным ограничением останется не сам GRPO, а качество среды, критериев и референсного набора.

Из публикации также следует, что полный технический отчёт Нарредди ещё ожидается. Поэтому открытую реализацию Hugging Face можно проверять уже сейчас, но сравнивать её напрямую с исходным проектом пока рано: для оригинальной работы, по словам автора реализации, полный набор артефактов ещё не опубликован.

Источники