Hugging Face выпустила открытый RL-рецепт: модель учится рисовать акварели кодом

Hugging Face выпустила открытый RL-рецепт: модель учится рисовать акварели кодом

23 августа Сурья Нарредди выложил ролик, где языковая модель рисует акварели, написав JavaScript-код через библиотеку p5.brush ("добавляет p5.js естественные инструменты рисования"). Ролик стремительно набрал более 1,5 млн просмотров. Нарредди рассказал об идее и тренировке в собственном блоге, но показал лишь раннюю и более узкую стадию проекта, крупные планы цветов, а не полные композиции из ролика, и не опубликовал ни код, ни модели: только пообещал полный технический отчёт.

Сержио Панейего, инженер Hugging Face, воспроизвёл рецепт Нарредди целиком в открытую, с помощью библиотек TRL и OpenEnv. Весь пайплайн работает на инфраструктуре Hugging Face: обучение идёт на Jobs, RL-среда и модель-скорер развёрнуты как Spaces, парная модель-судья вызывается через Inference Providers, а все артефакты, датасет, среда, скрипты обучения и обученные модели, собраны в одной коллекции на Hub. После разворачивания двух Spaces запуск обучения, одна команда.

Обученная модель пишет программу примерно на 150 строк JavaScript, которая и рисует картину. Библиотека p5.brush открывает 47 методов, но системный промпт разрешает модели только 10 из них, остальные тридцать семь (линии, штриховка, кастомные кисти) сломали бы акварельный стиль. Награда складывается из четырёх частей: gate (0,05), код должен компилироваться, использовать библиотеку и не жульничать; поощрение за длину (0,05), мягкий стимул к более длинному коду; парный судья (вес 0,60 в исходной версии), модель Qwen3-VL-30B-A3B-Instruct сравнивает картину с четырьмя случайными картинами из эталонного пула; и HPSv3 (вес 0,30), открытая 7B-модель эстетических предпочтений, обученная на выборе людей между парами изображений. Эталонный пул, 178 вручную отобранных картин, поделённых на уровни "нравится" и "нормально"; их сгенерировали четыре открытые модели (GLM-5.2, 64 картины, Kimi-K3, 57, Qwen3-Coder-Next, 35, Qwen3.5-122B-A10B, 22) по реальным, свободно лицензированным фотографиям гибискуса с iNaturalist, после трёх раундов правок по замечаниям модели-судьи и итоговой ручной оценки самого Панейего.

Обучены три версии, отличающиеся только соотношением весов между парным судьёй и HPSv3: hps-only (0 / 0,90, только для проверки пайплайна, 60 шагов, средняя награда группы выросла с 0,58 до 0,71), judge-led (0,60 / 0,30, исходное соотношение, 110 шагов, награда выросла с 0,45 до 0,72) и hps-led (0,30 / 0,60, промежуточный вариант, 110 шагов, награда выросла с 0,57 до 0,82). Все три обучились. Покрытие холста краской удвоилось в обоих прогонах с судьёй (с 0,11 до 0,23 и с 0,13 до 0,30), а число прогонов с итоговой наградой ниже 0,3 за треть шагов резко упало (в judge-led, с 99 до 16, в hps-led, с 37 до 4).

Обучение шло на одной видеокарте H200: 18 часов на 60 шагов и около 34 часов на 110. Один шаг, восемь прогонов, занимает 15, 18 минут, из которых 70, 80% уходит на рендер картинки headless-браузером; один рендер занимает 69, 96 секунд при таймауте в 90. Сбои инфраструктуры (таймауты, не ответивший скорер) обнулили награду примерно в 1,5% прогонов в среднем и до 5,2% в худшем запуске. Автор нашёл и исправил баг LoRA: список целевых слоёв по умолчанию для этой архитектуры настраивал только 10 из 40 слоёв, переход на all-linear почти решил проблему, хотя даже так маршрутизируемые тензоры экспертов (mixture-of-experts) остаются замороженными. Скорость обучения подняли с 2e-5 до потолка в 5e-5, ориентируясь на чужую методичку про LoRA.

Автор сам называет границы работы: сравнить свою реализацию с реализацией Нарредди нельзя, потому что его код не опубликован; в эталонном пуле нет ни одной картины, написанной человеком, только сгенерированные моделями; лицензия на выложенные датасет, среду и модели нигде не указана (свободная лицензия оговорена только для исходных фотографий гибискуса); денежная стоимость обучения не приведена, только часы GPU и Spaces; и открытым остаётся вопрос, сломает ли более долгое обучение видимый потолок прогона hps-only (гипотетический максимум средней награды, 0,771, если бы каждый прогон дотягивал до уровня своих лучших). По тому же рецепту уже есть параллельные работы: Алекс Янго применил его к рисованию животных, а Брендан Хоган, к канвас-анимациям, обучаемым на пуле вручную оценённых клипов.

Ключевые факты

  • 23 августа Сурья Нарредди выложил вирусный ролик (более 1,5 млн просмотров): языковая модель пишет JavaScript-код через p5.brush и рисует акварели, но сам код и модели не опубликовал.
  • Сержио Панейего (Hugging Face) воспроизвёл рецепт целиком в открытую, TRL + OpenEnv, весь пайплайн на Jobs/Spaces/Inference Providers, датасет из 178 картин, среда и обученные модели выложены на Hub, запуск обучения, одной командой.
  • Награда собрана из HPSv3 (0,30), парного судьи Qwen3-VL-30B-A3B-Instruct против эталонного пула (0,60) и двух малых слагаемых (gate и поощрение за длину, по 0,05); все три обученные версии с разным весом судьи показали рост награды.
  • Инженерная сторона: одна видеокарта H200, 18, 34 часа на прогон, рендер одного скетча 69, 96 секунд при дедлайне в 90; найден и исправлен баг LoRA, из-за которого обучались только 10 из 40 слоёв модели.
  • Автор честно перечисляет ограничения: сравнить с оригиналом Нарредди нельзя (его код не опубликован), в пуле нет ни одной картины человека, лицензия на артефакты не указана, денежная стоимость обучения не приведена.

Почему это важно

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

Кому это важно

Инженерам и исследователям, которые работают с RLHF/RLAIF и субъективными наградами вместо проверяемых. Пользователям экосистемы Hugging Face, в посте на живом примере собраны вместе TRL, OpenEnv, Jobs, Spaces и Inference Providers. Сообществу генеративного и креативного кодинга, которое ищет открытые воспроизводимые пайплайны, а не закрытые демо. Художникам, интересующимся кодом как медиумом, автор прямо ставит проект в один ряд с DeepDream, GAN-работами вроде Edmond de Belamy и датасетом тюльпанов Анны Ридлер.

Как это применить

Всё выложено на Hugging Face Hub открыто: эталонный пул картин, код RL-среды, скрипты обучения и сами обученные модели, объединённые в одну коллекцию. Чтобы повторить, нужно развернуть два Spaces, среду и модель-скорер, задать пару переменных окружения для весов награды и запустить одну команду hf jobs uv run с параметрами модели, LoRA и числом шагов. Среду можно направить на другой датасет, и награда автоматически подстроится под другой вкус без изменения кода. Рецепт уже переносили на другие сюжеты: Алекс Янго, на рисование животных, Брендан Хоган, на канвас-анимации по пулу оценённых клипов.

Можно ли доверять

Автор публикует не только выводы, но и весь путь к ним: код, датасет, обученные модели и точные числа по каждому из трёх прогонов, так что результат можно перепроверить самостоятельно. Он прямо говорит, где сравнение невозможно, реализация Нарредди не опубликована, и не скрывает найденный по ходу баг LoRA, из-за которого часть слоёв не обучалась. Независимого стороннего аудита цифр нет, но открытость команды и артефактов делает результат воспроизводимым, а не декларативным.

Риски и подводные камни

Эталонный пул целиком состоит из картин, сгенерированных моделями, ни одной человеческой работы в нём нет, а значит модель учится имитировать не человеческий вкус напрямую, а вкус, уже отфильтрованный другими моделями и одним человеком. Сбои инфраструктуры обнуляли награду до 5,2% прогонов в худшем запуске, что шумит в метриках. Чем больше вес парного судьи, тем сильнее награда отражает вкус одного конкретного человека, и, по собственному предупреждению автора, обучение может застопориться вовсе, если целевой стиль слишком далёк от среднего. Удвоение покрытия холста краской при том, что число фигур почти не коррелирует с наградой, оставляет открытым вопрос, не подталкивает ли модель к обходу оценки, а не к настоящему росту качества, сам автор эту возможность не закрывает. Лицензия на выложенные артефакты не указана, а вся конструкция обкатана на нишевой библиотеке, что ограничивает перенос выводов на другие медиумы.

«Он едва способен работать карандашами [...] Не может выполнить простые команды. На сегодня всё, это очень бесит.»

— Алехандро Кампос Урибе, автор библиотеки p5.brush, из дневника 2022 года