Trigger warning: скрепы.
TL;DR: Я сделал механическую игрушку на российский конкурс, и это была очень сложная инженерная задача.
Несколько месяцев назад Российское Общество «Знание» объявило конкурс «Родная Игрушка»: нужно было отправить идею какой-нибудь куклы, модельки, конструктора, настолки итд, которая впоследствии может производиться в России и обладать соответствующим культурным или научным колоритом. Было подано что-то около 22 тысяч идей, я отправил две. В следующий тур вышло несколько сотен, в том числе внезапно одна из моих — заводная подводная лодка, которая плывет не вперед, как существующие заводные игрушки для ванны, а прям погружается и всплывает. Связал я это не с военными подлодками, а с научными глубоководными аппаратами, по которым у России несколько мировых рекордов. Вы знали, например, что Кэмерон брал наши глубоководные «Мир-1/2» для съемок Титаника? А еще они первыми достигли дна Северного Ледовитого Океана.
После отбора вы попадали в этап моделирования, где нужно было сделать 3D-модель, чертежи, спецификацию, описание и так далее. Здесь я уже не обошелся без помощи профессиональных 2D и 3D художников. Заказал эскизы и моделирование внешнего вида, а сам уже в Компасе дорабатывал нужные элементы для сборки.
Моделирование отсекло ещё значимый процент участников, где-то 70-80 человек в пяти категориях вышли на этап создания прототипа. И вот тут я скажу вам, сложно передать, сколько хитрых инженерных задач пришлось решить по пути. Проект оказался одним из самых сложных (и одним из самых интересных) в моей практике. Вообще, айтишнику полезно поработать с материальным миром, изобилующим погрешностями и допущениями.
Герметичность корпуса, например, испытывает противоположные воздействия при движении в среде вверх и вниз — швы, не пропускающие при погружении, начинают пропускать при всплытии. Разница в два грамма балласта на таких масштабах влияет на плавучесть очень значительно, поэтому балласт должен легко регулироваться (я остановился на двух отсеках с ружейной дробью). Мультипликатор заводного механизма пришлось перепроектировать пять раз, попутно печатая фотополимером зубчатые колеса с модулем пол миллиметра. Сделать фотополимер цветным с устойчивостью к воде — офигенно непростая задача с не самым очевидным решением: в жидкий раствор с нужным базовым оттенком подмешивается пигмент для эпоксидных смол, и только потом печатается на чуть увеличенной засветке. Сделать полностью прозрачное стекло не вышло, но и текущая частичная прозрачность получилась не сразу. Даже у жетонов был десяток итераций, чтобы они не оказались слишком тяжелыми, и чтобы металлическое ядро для захвата магнитом не было слишком далеко от стенок. Добавьте сюда подбор шага и размеров винта, сложности работы с моделью такой формы, летнюю жару, из-за которой постоянно забивался подающий механизм принтера...
Но результатом очень доволен, смотрите видео. Прямо сейчас еду в Москву на выставку игрушек, где выберут победителей, чьи проекты запустят в тираж уже на настоящем производстве.
#gadgets#diy#hobby
🌟 FlexTok: адаптивная 1D-токенизация изображений от Apple.
FlexTok - метод токенизации изображений, который преобразует 2D-изображения в упорядоченные 1D-последовательности переменной длины.
Его цель - сократить объем данных, необходимых для обучения генеративных моделей, и при этом оставить достаточную информацию для качественной реконструкции и генерации.
В отличие от традиционных подходов, где число токенов фиксировано и зависит только от размера изображения, FlexTok подстраивается под сложность контента: простейшая сцена может кодироваться несколькими токенами, а сложная - десятками и сотнями .
FlexTok, это по сути, пайплайн из 3 компонентов: ViT‑энкодер, квантование регистров и маскирование внимания:
ViT‑энкодер с набором «регистровых» токенов читает латентные представления VAE‑GAN и конденсирует их в 1D-последовательность до 256 регистров .
Затем, с помощью FSQ‑квантования, каждый регистр дискретизируется в код из заранее определенного словаря размером ~64 000.
На этом этапе применяется "nested dropout": во время обучения случайно обрезаются последние токены, чтобы модель научилась упорядочивать информацию от грубых форм к деталям.
Параллельно применяется авторегрессионная маска внимания: каждый токен в цепочке видит только те, что были до него, и не знает о тех, что идут после. Это заставляет модель генерировать изображения шаг за шагом, от первого токена к последнему, и упрощает ей задачу прогнозирования следующих элементов.
Декодер в FlexTok - это модель rectified flow, которая на вход берет укороченные токены и слегка зашумленные латенты VAE и учится предсказывать тот шум, который нужно убрать, чтобы вернуть исходное представление.
Чтобы обучение шло быстрее и давало более точные результаты, добавляют REPA‑Loss: он сравнивает промежуточные признаки с векторами из DINOv2‑L. Благодаря этому даже при очень жесткой компрессии (от 1 до 256 токенов), FlexTok успешно восстанавливает детали изображения.
FlexTok легко встраивается в текстово‑ориентированные модели и может улучшить соответствие изображения описанию, даже если число токенов меняется. К тому же его адаптивная токенизация применима не только к картинкам, но и к аудио или видео.
▶️Набор токенизаторов:
🟢Flextok_d12_d12_in1k - 12\12 слоев энкодер-декодер, датасет IN1K;
🟢Flextok_d18_d18_in1k - 18\18 слоев энкодер-декодер, датасет IN1K;
🟢Flextok_d18_d28_in1k - 18\28 слоев энкодер-декодер, датасет IN1K;
🟢Flextok_d18_d28_dfm - 18\28 слоев энкодер-декодер, датасет DFN.
▶️VAE:
🟠Flextok_vae_c4 - 4 каналов латента, коэффициент понижающей дискретизации 8;
🟠Flextok_vae_c8 - 8 каналов латента, коэффициент понижающей дискретизации 8;
🟠Flextok_vae_c16 - 16 каналов латента, коэффициент понижающей дискретизации 8.
🟡Страница проекта
🟡Набор на HF
🟡Arxiv
🟡Demo
🖥GitHub
@ai_machinelearning_big_data
#AI#ML#Tokenizer#Flextok#Apple
🌟Minimax VTP: гибридный токенизатор для диффузии на стероидах.
В диффузионных архитектурах считается, что масштабировать первую стадию, VAE - занятие неблагодарное.
Eго задача - превратить пиксели в латентный код и обратно, а добавление ему параметров или данных никак не помогает основной модели DiT генерировать изображения лучше.
MiniMax решила поменять правила игры и представила Visual Tokenizer Pre-training (VTP).
Их гипотеза заключается в том, что токенизатор должен не просто механически "зиповать" пиксели, а понимать семантику изображения.
Чтобы реализовать это, они объединили в обучении токенизатора сразу 3 лосса:
🟢Стандартный pixel reconstruction loss;
🟢Self-supervised learning (через Masked Image Modeling и дистилляцию, как в DINOv2);
🟢Image-text contrastive loss (как в CLIP).
Это заставило латентное пространство структурироваться семантически: теперь векторы кодировали смыслы, а не просто цветовые пятна.
🟡Теоретические выкладки подтвердились на практике.
Оказалось, что качество генерации напрямую зависит от "интеллекта" токенизатора. Не меняя архитектуру и гиперпараметры самого DiT и не увеличивая затраты на его обучение, просто за счет использования VTP-токенизатора удалось улучшить метрику FID на 65.8% и ускорить сходимость модели в 3 раза.
🟡Но главное открытие - это то, что заработал закон масштабирования для Stage 1.
Теперь, чем больше вычислительной мощности и данных вливается в претрейн токенизатора, тем качественнее становится итоговая генерация, чего раньше с обычными VAE достичь было невозможно.
🟡В открытом доступе опубликованы 3 чекпоинта VTP с различием по количеству параметров:
🟠VTP-Large - 0.7B;
🟠VTP-Base - 0.3B;
🟠VTP-Small - 0.2B.
📌Лицензирование: MIT License.
🟡Набор моделей
🟡Arxiv
🖥GitHub
@ai_machinelearning_big_data
#AI#ML#Diffusion#Tokenizer#Minimax