В этом году я читаю небольшой курс лекций студентам Высшей Инжиниринговой Школы НИЯУ МИФИ, вот на прошлой неделе начал. Тема: архитектура приложений. Сначала SOLID, простые паттерны, а потом сложные паттерны и DDD.
Долго думал над тем, какие примеры приводить. Классические книжные не хотелось, типа вот у нас класс "Животное", у него наследник "Кошка". Это понятно для жизни, но далеко от реального программирования. И примеры со своей работы не хотелось, потому что без знания специфики не будет понятно, что такое "Цифровая ведомость объёмов работ", и почему в ней есть те или иные ограничения.
Так что придумал вот такой сценарий для студентов: примеры из видеоигр. Любая видеоигра это программа, написанная разработчиками на языке программирования. Это реальные люди, которые сталкивались с реальной необходимостью применить какие-либо паттерны и архитектурные подходы. Я, конечно, не знаю, как та или иная функция была реализована в игре на самом деле — вполне возможно, что из-за спешки, производственного ада, использования устаревших технологий или проблем планирования что-то написано очень плохо, коряво, без архитектуры и с огромным техническим долгом. Но я просто показывал ситуации, в которых какой-то конкретный структурный подход кажется уместным, и рассказывал, как можно такую ситуацию реализовать на практике.
Вроде получилось неплохо, студентам зашло. Обратная связь по лекции пришла положительная, так что будем продолжать :)
#dev
🌟BitDance: авторегрессионная генерация изображений с бинарными токенами.
Генеративные модели делятся на 2 лагеря: диффузионные и авторегрессионные. Вторые концептуально ближе к LLM - генерируют изображение токен за токеном, как текст. Проблема в том, что это очень медленно, а качество проигрывает диффузии.
BitDance - экспериментальная 14B AR-модель, которая пытается решить оба этих вопроса разом.
Этим проектом группа китайских рисёчеров показала, что правильный бинарный токенизатор + diffusion head + параллельный патчинг закрывает большинство претензий.
Они локализовали 3 проблемы дискретных AR-моделей и закрыли каждую отдельным решением.
🟡Плохая реконструкция токенизатора
Вместо VQ-кодбука тут используется бинарный токенизатор на основе квантования с групповым разбиением каналов. Словарь вырастает до 2²⁵⁶ (для сравнения: у Cosmos - 65536), при этом модель держит PSNR 25.29 против 24.81 у непрерывного DC-AE, то есть бинарные токены реконструируют изображение лучше, чем VAE у SANA.
🟡Нестабильный сэмплинг
А как вообще выбирать из словаря в 2²⁵⁶ вариантов? Обучить классификатор на все возможные токены тут не вариант: такой слой не поместится ни в какую память. В качестве решения - прикрутили diffusion head, которая моделирует биты на непрерывном гиперкубе. То есть, модель предсказывает структуру битов через velocity-matching, что и позволяет сэмплить из гигантского пространства состояний.
🟡Скорость
AR генерирует по одному токену за шаг. BitDance за один шаг выдает сразу 64 токена (или 16), при этом модель понимает, как они связаны между собой внутри этого блока. Громко заявленный результат: 30x ускорение относительно next-token AR при сопоставимом качестве. об этом в конце
🟡Тесты
На мелкой версии ImageNet BitDance-H достигает FID 1.24 (лучший результат среди AR-моделей, наравне с xAR-H).
На DPG-Bench (text-to-image) полноценная BitDance набирает 88.28 - это выше FLUX.1-Dev, SD3, Janus-Pro, но уступает Seedream 3.0 и Qwen-Image.
В релизе 2 версии 14B модели, с предикшеном на 16 и 64 токена и макс. разрешением 1Мpx.
Остается вопрос: насколько бинарный токенизатор + diffusion head добавляет латентности на каждом шаге, даже если самих шагов стало меньше из-за патчинга.
30x по скорости - это сравнение не с диффузионными моделями, которые уже умеют генерировать за 4–8 шагов.
14B - это не про "взял и запустил". Есть конечно версии на ImageNet с разрешением 256х256 для воспроизведения эксперимента, но не за этим мы сюда пришли.
📌Лицензирование: Apache 2.0 License.
🟡Страница проекта
🟡Arxiv
🟡Модель
🟡Demo
🖥GitHub
@ai_machinelearning_big_data
#AI#ML#AR#T2I#BitDance
🌟X-Omni от Tencent: авторегрессионная text-to-image модель с RL.
X-Omni - методика обучения T2I моделей, которая наглядно доказывает, что RL может вдохнуть новую жизнь в авторегрессионный подход и вывести такие модели на SOTA-уровень.
X-Omni построена на гибридной, но при этом унифицированной архитектуре. Схематично она выглядит так:
Семантический токенизатор изображений SigLIP-VQ с фиксированным словарем на 16 384 токена кодирует картинку в дискретные токены. Эти визуальные токены вместе с текстовыми подаются в единую авторегрессионную модель на базе Qwen2.5-7B. Наконец, в финальном рендеринге используется диффузионный декодер на основе FLUX.1-dev.
🟡Уникальность метода - в смеси RL по GRPO и комплексной reward-системе.
Вместо одного критерия, модель оценивается сразу по нескольким направлениям. За эстетику и соответствие предпочтениям человека отвечает HPSv2 и модель Unified Reward. За семантическую связь между промптом и изображением — VLM-модель Qwen2.5-VL-32B. А за самое сложное, отрисовку текста внутри картинки, отвечает отдельная награда на основе OCR-систем GOT-OCR2.0 и PaddleOCR.
Тестовую модель X-Omni обучали на смеси из 200 млн. изображений, которые после токенизации превратились в 600 млрд мультимодальных токенов, а на этапе SFT использовал ещё 1.5 млрд. токенов.
Для RL-фазы был отобран микс из 180 тыс. промптов, состоящий как из творческие запросы, так и задач на рендеринг текста.
🟡И это дало свои плоды, особенно в отрисовке текста, где авторегрессионные модели исторически пасовали.
На бенче OneIG-Bench X-Omni показала результат 0.901 для английского языка, обойдя GPT-4o (0.857). А на собственном LongText-Bench, специально созданном для оценки рендеринга длинных надписей, модель буквально разгромила всех в китайском языке, набрав 0.814 балла против 0.619 у GPT-4o.
В задачах общей генерации по тексту X-Omni также на высоте. На DPG-Bench модель достигла SOTA-результата 87.65, опередив GPT-4o (86.23) и Show-o2 (86.14). На GenEval результат составил 0.83, чуть-чуть не дотянув до модели Mogao (0.89).
Даже в задачах на понимание изображений X-Omni показывает себя достойно: на OCRBench ее результат (704) превосходит другие унифицированные модели, например Emu3 (687).
🟡Интересные подробности.
Во-первых, X-Omni не нуждается в CFG. В отличие от Emu3 или Janus-Pro, качество которых резко падает при отключении CFG, X-Omni работает стабильно.
Во-вторых, что, пожалуй, самое важное, RL превосходит даже SFT с последующим сэмплингом best-of-N.
Этот вывод идет вразрез с устоявшимся мнением в области языкового моделирования и доказывает, что для изображений холистическая оптимизация через RL дает существенный прирост качества.
📌Лицензирование: Apache 2.0 License.
🟡Страница проекта
🟡Набор моделей
🟡Arxiv
🟡Demo
🖥GitHub
@ai_machinelearning_big_data
#AI#ML#T2I#RL#XOmni#Tencent