TL;DR
RULER строит под каждый запрос свой чек-лист из шести критериев, а модель-судья со зрением ставит оценку по каждому пункту отдельно. Итог — взвешенное среднее. Исходно этот чек-лист служит наградой при обучении модели рисовать SVG (векторную графику в виде кода). Читателю полезна не часть про обучение, а сама схема оценки: «критерии под задачу + оценка по пунктам» вместо одного общего балла.
Главная находка: одиночные числовые метрики врут. Автоматические оценки сходства картинки с текстом (CLIP) и «красоты» (Aesthetic) нередко ставили сломанному рисунку балл выше, чем аккуратному. Когда модель стали обучать на этих оценках, она научилась их накручивать: рисовала плотные перекрывающиеся штрихи и декоративные узоры, «красота» по метрике росла, а реальное качество падало. Человеческим оценкам куда лучше соответствовала оценка по нескольким осям сразу.
Суть метода в два шага. Сначала сильная модель по тексту запроса пишет шесть критериев по трём осям: смысл, качество формы, стиль исполнения. Затем модель-судья смотрит на готовую картинку и оценивает каждый критерий от 0 до 1 по заданной шкале. Критерии формулируются как замысел («читается ли образ»), а не как требования к пикселям, иначе чек-лист превращается в «перерисуй эталон».
Схема метода
ШАГ 1 (один запрос, сильная модель): текст задачи → 6 критериев
ось «Смысл»: (1) читаемость концепта и ключевые элементы
(2) отличительные признаки и связи между объектами
ось «Форма»: (3) силуэт и проработка формы
(4) композиция и работа с холстом
ось «Стиль»: (5) чистота исполнения
(6) единство стиля и дизайнерский интерес
у каждого: название, описание, шкала оценок 0–1, вес
ШАГ 2 (отдельный запрос, модель-судья со зрением):
картинка + рубрика → оценка 0–1 по каждому пункту
ШАГ 3: итог = Σ(вес × оценка) / Σ(веса)
Правила хорошего критерия по статье: он касается одной наблюдаемой оси, его можно проверить по самой картинке, и он штрафует свой тип ошибки, без дублей.
Пример применения
Задача: Вы делаете лендинг для сервиса быстрой доставки в духе «Самоката» и просите модель нарисовать SVG-иконку «курьер на самокате с пакетом продуктов» в плоском минималистичном стиле. Вариантов много, и надо понять, какой лучше. Скалярной оценки «красиво / некрасиво» тут недостаточно.
Промпт (шаг 1, в одном чате):
Ты — арт-директор. Задача для иллюстратора: «SVG-иконка: курьер на электросамокате с пакетом продуктов, плоский минималистичный стиль, два основных цвета, для лендинга сервиса доставки».
Составь рубрику из 6 критериев для оценки готовой картинки.
Оси:
- Смысл (2 критерия): читаемость образа; наличие ключевых элементов и их связей.
- Форма (2 критерия): силуэт и проработка форм; композиция и использование холста.
- Стиль (2 критерия): чистота исполнения; единство стиля и дизайнерский интерес.
Требования к каждому критерию:
- привязан именно к этой задаче;
- описан на уровне замысла, а не точных координат и путей;
- проверяется по самой картинке;
- штрафует свой тип ошибки, без пересечений с другими.
Для каждого дай: название, описание, шкалу оценки 0–1 (что значит 0, 0.5, 1) и вес.
Промпт (шаг 2, новый чат, прикрепите отрендеренные картинки):
Ты — независимый судья. Ниже рубрика и изображение.
Оцени изображение по каждому из 6 критериев отдельно, строго по шкале рубрики.
Для каждого: оценка 0–1 и одна фраза обоснования.
Затем посчитай взвешенное среднее.
Не выставляй общий балл «на глаз» до разбора по пунктам.
<рубрика>
{рубрика из шага 1}
рубрика>
Результат: сначала придёт таблица из шести критериев со шкалами и весами, специфичными именно для самокатного курьера (например, «читается ли пакет с продуктами», «единая толщина линий и палитра из двух цветов»). Затем судья даст по каждой картинке шесть оценок с короткими обоснованиями и итоговое среднее. Видно, чем один вариант слабее другого: допустим, образ читается, но композиция тесная. Это можно прямо вставить в запрос на доработку.
Почему это работает
Слабость. Один балл сворачивает много разных свойств в непрозрачное число. Метрики вроде CLIP и Aesthetic обучены на фотографиях, а на стилизованной векторной графике ошибаются. Если по ним ещё и оптимизировать, система ищет самый лёгкий путь накрутить число, а не улучшить рисунок.
Сильная сторона. Модель со зрением неплохо отвечает на узкий конкретный вопрос про картинку: «читается ли образ», «чисто ли выполнено». Сильная текстовая модель хорошо придумывает критерии под конкретную задачу.
Как метод это использует. Он разделяет работу: одна модель формулирует, что такое «хорошо» для этого запроса, другая проверяет по пунктам. Накрутить сразу шесть независимых осей труднее, чем один скаляр. Под каждую задачу критерии свои, поэтому «минималистичная иконка» и «детальная иллюстрация» оцениваются по-разному. Универсальный чек-лист для всех запросов дал результат хуже.
Рычаги управления: - Число и состав критериев — для другой области замени оси (для текста: точность, структура, тон). - Веса — повысь вес критерия, который критичен для задачи. - Шкала с описаниями уровней — чем конкретнее «что такое 0.5», тем стабильнее оценки. - Уровень формулировок — замысел вместо точных координат оставляет модели свободу. - Независимый судья — оценивай не той же моделью и не в том же чате, где генерировал.
Шаблон промпта
Ты — независимый судья качества. Ты оцениваешь результат только по рубрике, не по общему впечатлению.
Исходная задача: {задача}
Результат для оценки: {результат или изображение}
Ось 1. {ось_1}
Критерий 1: {название} — {описание}. Шкала: 0 = {плохо}, 0.5 = {средне}, 1 = {отлично}. Вес: {вес}
Критерий 2: ...
Ось 2. {ось_2}
Критерий 3: ...
Критерий 4: ...
Ось 3. {ось_3}
Критерий 5: ...
Критерий 6: ...
1. По каждому критерию отдельно: оценка 0–1 и одна фраза обоснования.
2. Итог = сумма(вес × оценка) / сумма(весов).
3. Назови слабейший критерий и что именно исправить.
Подставьте: {задача} — исходный запрос, {результат} — то, что оцениваете, оси и критерии — из шага 1 (или попросите модель составить их).
🚀 Быстрый старт — вставь в чат:
Вот шаблон рубричной оценки (RULER). Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, что именно ты оцениваешь, для кого результат и что для тебя критично. Эти ответы нужны, чтобы критерии получились под твой запрос, а не общими. Из шаблона она возьмёт структуру: оси, шкалы 0–1, веса и порядок оценки.
Ограничения
⚠️ Проверено на одной задаче: все измерения сделаны на SVG-графике. Перенос схемы на тексты, код и другие продукты в статье не проверялся.
⚠️ Основной вклад — обучение моделей: главный результат (рост качества у 8B-модели) получен через RL-дообучение. Для читателя недоступно. Применима только часть про оценку и устройство рубрики.
⚠️ Ключевое сравнение сделано через обучение: то, что рубрика «под запрос» лучше универсальной, показано как преимущество при обучении модели. Как преимущество судьи при чистой оценке это отдельно не проверялось.
⚠️ Текст неполный: точные шаблоны промптов и веса вынесены в приложение, в предоставленном фрагменте их нет. Шаблон выше собран по описанию в статье.
⚠️ Фраза «оценка по пунктам лучше одного балла» не универсальна: рубрика всё равно зависит от качества судьи со зрением и от того, насколько удачно сформулированы критерии.
Как исследовали
Сначала авторы проверили, чему вообще можно доверять при оценке SVG. Они собрали 900 отрендеренных картинок от трёх моделей (Claude Opus 4.6, Qwen3-32B, Qwen3-8B, по 300 от каждой) и получили человеческие оценки. Затем сравнили, насколько с ними совпадают CLIP, Aesthetic и рубричная оценка судьи-VLM. Рубрика заметно впереди: корреляция около 0.79 против 0.61 у Aesthetic и 0.55 у CLIP, а согласие в парных сравнениях около 0.76 против 0.53–0.55.
Дальше авторы взяли Qwen3-8B и обучили её по схеме RL (GRPO) с четырьмя вариантами награды: без обучения, CLIP+Aesthetic+HPS, универсальная рубрика, RULER. Результат по рубричной оценке: 0.43 → 0.69 у RULER, около 0.66 у универсальной рубрики. Самое наглядное — провал скалярной награды. «Эстетическая» оценка на иконках выросла до 6.2, а реальное качество упало ниже стартового, и вместо 0.3k токенов модель писала 6.3k токенов плотных перекрывающихся штрихов. Это классический reward hacking (накрутка метрики вместо улучшения результата).
Итоговая модель на 8B сравнялась по рубрике с гораздо большим DeepSeek-V3 и обошла специализированные SVG-модели. В слепом сравнении людьми она выигрывала у всех пяти соперников, от 53% против VectorFusion до 96.5% против JanusCoder. Для практики вывод такой: измеряй по нескольким осям и под конкретную задачу, а не одним числом. Судья в тестах (GPT-5-mini) был независим от модели, которая писала рубрику (Claude Opus 4.6).
Адаптации и экстраполяции
Это не из статьи, а возможные переносы идеи.
🔧 Техника: добавить цикл доработки → осознанное улучшение
После оценки по пунктам попроси: «Перепиши результат, подтянув только критерии с оценкой ниже 0.6, остальные не ломай». Это использует разложение оценки как конкретный список правок вместо общего «сделай лучше».
🔧 Техника: не оптимизируй по одной цифре → защита от накрутки
Если просишь модель «улучшай, пока оценка не станет 10/10», она накручивает самый лёгкий показатель. В статье с этим же столкнулись при обучении. Держи в рубрике несколько независимых осей и проси судью обосновывать каждую.
Экстраполяция на текст. Оси: «Смысл: попадание в задачу и ключевая идея», «Структура: логика и порядок», «Стиль: тон под аудиторию и чистота языка». Ту же схему «рубрика под запрос + оценка по пунктам» можно применить к коммерческому предложению или посту. В статье это не проверялось.
Ресурсы
- RULER: Instance-aware Rubric Rewards for SVG Generation — Hangyu Ran, Yuhao Zheng, Yingying Zhang, Kevin Qinghong Lin, Han Peng (Ant Group, HKUST (Guangzhou), University of Oxford и независимый исследователь).
- Страница проекта: https://hangyuran.github.io/RULER/
- Связанные работы: LLM-Rubric (Hashemi et al., 2024), RaR (Gunjal et al., 2025), бенчмарк MMSVG (Yang et al., 2025b).
