Palette: 20B-нейросеть с открытыми весами строит презентации в заданном дизайн-стиле

Авторы блог-поста на Hugging Face исходят из того, что передовые модели делают хорошие презентации, но у них есть собственный «фирменный» стиль, от которого их не отучить промптами, а конфиденциальный контент иногда вообще нельзя отправлять наружу. Маленькие открытые модели, которые можно развернуть у себя, с этим справляются плохо: заголовки сливаются с фоном, текст вылезает за слайд, фигуры наезжают друг на друга. Palette проверяет ставку: небольшая модель с открытыми весами, обученная на синтетических данных в вашем дизайн-стиле и подстрахованная программной «обвязкой» (harness) с проверкой и починкой, может конкурировать с передовыми системами, а результат остаётся у пользователя.
Основная идея, разделить работу, как это делают люди. Одна модель на 20 млрд параметров с одним LoRA-адаптером играет две роли. «Дизайнер» читает план и пишет структурированный JSON-бриф: палитру, типографику и для каждого слайда макет, точное содержание и краткое обоснование решения. «Кодер» берёт описание одного слайда из брифа и пишет JavaScript для pptxgenjs, который этот слайд рисует, предваряя код рассуждением. Бриф читаем и редактируем, поэтому макет одного слайда можно поменять, не пересоздавая всю презентацию. А поскольку контекст каждого слайда известен заранее, вызовы кодера идут параллельно, по одному на слайд, что ускоряет этап кодирования примерно в 6-7 раз. Авторы объясняют выбор LoRA вместо полного дообучения тем, что так модель получает формат и навык, не теряя знаний базовой модели, а эксперименты дешевле. Дизайнерские примеры пришлось взять с пятикратной передискретизацией: примеры кодера примерно в 5 раз длиннее, и без этого дизайнер недообучался.
Обучающих данных нет в открытом доступе (нет корпуса планов, дизайнерских решений и кода слайдов), поэтому их сгенерировали с помощью большой открытой модели-учителя: около 1000 презентаций, примерно 10 000 слайдов. Каждая начиналась с «рецепта» (жанр, длина, макеты, пользовательские директивы). К каждому примеру прилагается рассуждение в контрфактической форме: что рассматривалось и почему отвергнуто. Каждая сгенерированная презентация отрисовывается и проверяется на наложения и выход за границы тем же проверяющим модулем, что работает при выводе; сломанные слайды чинятся, а их рассуждение переписывается. Самой трудной оказалась достоверность: хуже всего слайд с фактами, которых не было во входных данных (например, таблица 6×5 по трём пунктам заставляет кодера выдумывать недостающее). Правило в промпте не помогло; надёжно меняло вывод учителя исправление эталонных презентаций в его промпте.
Пользователь может управлять оформлением директивами в двойных квадратных скобках прямо в плане, например «[[make this a timeline]]», сделать хронологию вместо таблицы. В рецептах данных 12 категорий директив, каждая сформулирована по-разному, чтобы модель училась смыслу, а не фиксированной фразе.
Обвязка работает так: сначала простые правила исправляют известные ошибки (например, неверный код цвета, из-за которого все слайды стали бы чёрными), затем каждый слайд отрисовывается, а проверка геометрии отмечает наложения, обрезанный текст и выход за слайд. Отмеченные слайды отправляются отдельной модели-редактору, которая переписывает код. Правка принимается, только если проверка подтвердила улучшение, иначе остаётся оригинал: обвязка может исправить слайд, но не ухудшить его. На 131 презентации (каждая сгенерирована один раз, с обвязкой и без) обвязка добавляет в среднем 3,5 балла.
Оценка шла на PresentBench, который оценивает презентации по пяти критериям: базовые требования, визуальный дизайн, полнота, корректность и верность источнику. Бенчмарк даёт исходный документ, а не план, поэтому план по документу составляла отдельная передовая модель, а Palette строила презентацию по этому плану. Показаны три области; цифры конкурентов взяты из статьи о PresentBench. Palette заняла первое место в областях Economics и Education, третье в Talk (там две закрытые системы набрали больше) и второе по среднему за три области: 59,7 против 60,8 у NotebookLM, впереди остальных. PresentBench не измеряет соответствие конкретному дизайн-языку, а бенчмарка для этого авторы не знают.
В планах: использовать проверки обвязки как награды для обучения с подкреплением (в духе GRPO), извлекать рисунки из исходных документов (например, через Docling) и подстраиваться под собственные шаблоны пользователя по одному-двум файлам .pptx без переобучения.
Ключевые факты
- Palette, модель на 20 млрд параметров с одним LoRA-адаптером в двух ролях: «дизайнер» пишет JSON-бриф, «кодер» пишет код pptxgenjs для каждого слайда; параллельные вызовы кодера ускоряют этот этап примерно в 6-7 раз.
- Обучение шло на синтетике, сгенерированной большой открытой моделью-учителем: около 1000 презентаций, примерно 10 000 слайдов, в стиле IBM Design Language, с рассуждениями в контрфактической форме.
- Обвязка проверяет геометрию каждого слайда и принимает правку редактора только при подтверждённом улучшении; на 131 презентации она даёт в среднем +3,5 балла PresentBench.
- На PresentBench Palette первая в Economics и Education, третья в Talk и вторая по среднему за три области: 59,7 против 60,8 у NotebookLM.
- Главная трудность, достоверность: слайды с фактами не из входных данных; помогло исправление эталонных презентаций в промпте учителя, а не добавление правил.
Почему это важно
Сюжет, попытка показать, что небольшая модель с открытыми весами, которую можно запустить на своей инфраструктуре, способна приблизиться к закрытым системам в задаче, где оформление важно не меньше текста. По результатам авторов, на PresentBench Palette уступает по среднему за три области лишь NotebookLM (на 1,1 балла) и опережает остальные системы из сравнения. Практически значимы и приёмы: разделение редакторских и геометрических решений между двумя ролями, обучение на рассуждениях с отвергнутыми вариантами и «безопасная починка», которая никогда не ухудшает результат.
Кому это важно
Командам, которым нужны презентации в корпоративном дизайн-стиле и при этом нельзя отправлять конфиденциальный материал во внешние сервисы. Также тем, кто обучает модели на структурированном выводе, который можно проверить кодом (авторы называют диаграммы, схемы, макеты интерфейсов), и тем, кто строит синтетические обучающие данные.
Как это применить
Готового продукта в тексте нет: выпуск весов, кода, датасета или обвязки в нём не упоминается, как и лицензия. Применять можно подход. Разделить задачу на планирование и отрисовку по одному элементу с параллельными вызовами; добавить проверку, которая принимает правку только при измеримом улучшении; исправлять эталонные примеры в промпте учителя, а не наращивать правила. Авторы также описывают директивы в формате [[ ]] для управления отдельными решениями и ищут способ подстраиваться под шаблоны по одному-двум файлам .pptx без переобучения.
Можно ли доверять
Это пост самих авторов системы, цифры их собственные и независимо не проверены. Сравнение с конкурентами опирается на значения из статьи о PresentBench, а не на повторные запуски. План для каждого прогона составляла отдельная передовая модель, то есть результат отражает связку «план от внешней модели плюс Palette». Прирост обвязки в 3,5 балла, среднее по 131 презентации, каждая сгенерирована один раз, разброс и разбивка по областям не приводятся. В тексте нет оценок по отдельным областям (только среднее: 59,7 и 60,8), не названы базовая модель, учитель, остальные пять систем в сравнении и две закрытые системы, обогнавшие Palette на Talk. Людьми качество не оценивалось, сравнения с шаблонами IBM нет.
Риски и подводные камни
PresentBench оценивает качество презентации, но не следование конкретному дизайн-языку, поэтому заявленная «презентация в стиле IBM Design Language» этим бенчмарком не подтверждается. На Talk (повествовательные презентации под выступление) Palette только третья, и авторы сами признают слабость на слайдах с большим числом рисунков. Достоверность остаётся самой сложной проблемой: модель может добавлять факты, которых не было во входных данных, и правилом в промпте это не лечится. Ускорение в 6-7 раз относится только к этапу кодирования, а не ко всему конвейеру.
«Заголовок состоит из 62 символов. При 44 pt он перенесётся на три строки и упрётся в диаграмму ниже, поэтому я поставил 36 pt: он умещается в две строки и оставляет место над диаграммой.»
— пример рассуждения роли «кодер» из обучающих данных Palette (иллюстрация в посте, не реальное лицо)