Mirage - визуально-языковая модель от Cactus Compute с файлом весов 22 МБ. Её целевые устройства: телефоны, носимые гаджеты и роботы. За один проход модель выдаёт описание сцены, детекцию объектов, OCR, сегментацию, анализ пространственных связей и решения.
Авторы замерили end-to-end работу на Samsung Galaxy S26: 74 мс на NPU и 107 мс на CPU. Параметров в модели 51,3 млн: 7,8 млн в кодировщике изображения, 40,8 млн в языковом декодере, 2,6 млн в OCR- и пространственных головах. Текстовые описания поддерживают английский, немецкий, французский, испанский, итальянский, нидерландский и польский.
Вторая часть истории интереснее первой. Cactus Compute утверждает, что структурированный вывод Mirage, переданный текстовой LLM, даёт той возможности VLM без дообучения: на 256 вопросах VQAv2 Qwen3-0.6B поднялась с 9,3 до 31,3 балла. Дальше - архитектура, сценарии запуска и разбор того, где этот приём ломается.
Что такое Mirage от Cactus Compute и кому она адресована
Cactus Compute работает в узкой нише: сжимает модели до минимальной практичной формы, которая ещё приносит пользу на потребительском железе. В этой линейке уже есть семейство Simple Attention и Hadamard MLP, на котором построены Needle и Whistle, а Mirage закрывает визуальную часть. Формулировка из публикации Cactus Compute предельно конкретна: небольшая визуальная модель для телефонов, носимых устройств, роботов и других потребительских устройств.
Ключевые характеристики в одном месте
| Параметр | Значение |
|---|---|
| Разработчик | Cactus Compute |
| Размер файла весов | 22 МБ |
| Всего параметров | 51,3 млн |
| Кодировщик изображения | 7,8 млн параметров |
| Языковой декодер | 40,8 млн параметров |
| OCR- и пространственные головы | 2,6 млн параметров |
| Задачи за один проход | описание сцены, детекция объектов, OCR, сегментация, пространственные связи, решения |
| Латентность на Samsung Galaxy S26 | 74 мс на NPU, 107 мс на CPU |
| Языки описаний | английский, немецкий, французский, испанский, итальянский, нидерландский, польский |
Чем Mirage отличается от привычных VLM
Разница идёт по четырём осям. Размер: 22 МБ против гигабайтных весов, с которыми обычно работают локальные VLM на десктопе. Железо: целевая платформа - телефон или носимое устройство с NPU, а не GPU на 16-24 ГБ. Задачи: один проход закрывает и восприятие (детекция, OCR, сегментация), и разбор сцены (связи между объектами, решения), тогда как обычно это набор отдельных моделей. Язык: описания сразу на семи языках, а не только на английском.
Цена компактности - точность. 51,3 млн параметров не могут тягаться с многомиллиардными моделями на сложных сценах, и пример со скейтбордом ниже это показывает. Mirage стоит оценивать как дешёвый сенсор восприятия, а не как замену крупной VLM.
Скорость на устройстве: 74 мс на NPU и 107 мс на CPU Galaxy S26
Замеры, которые приводят авторы, - end-to-end: от подачи кадра до готового структурированного ответа, а не время одной операции. На Samsung Galaxy S26 получилось 74 мс на NPU и 107 мс на CPU.
Переведём в кадры в секунду: примерно 13 на NPU и 9 на CPU. Для интерактивных сценариев этого достаточно, ответ на изменение сцены приходит быстрее, чем человек успевает осознанно среагировать. Для потокового видео на 30-60 кадрах в секунду пропускной способности нет: поток придётся прореживать до нескольких кадров в секунду и запускать модель по событию.
Оговорка важная: замеры сделаны на одном устройстве. Переносить 74 мс на другой чип, другой драйвер или другую версию фреймворка без проверки нельзя, у NPU решающую роль играет поддержка со стороны софта.
NPU против CPU: что это значит для батареи и выбора устройства
NPU выигрывает по латентности: 74 мс против 107 мс, примерно на треть быстрее. На практике выбор между ними решают не эти 33 мс, а доступность: NPU требует поддержки в рантайме и драйверах, а на части устройств модель спокойно пойдёт только по CPU. CPU-путь медленнее, зато универсален и предсказуем.
Цифр по энергопотреблению авторы не приводят, поэтому обещаний про расход батареи лучше не делать. Логика подсказывает, что NPU рассчитан на инференс моделей и тратит меньше энергии на ту же работу, но проверять это нужно на конкретном устройстве и конкретной сборке.
Архитектура Mirage: как уложиться в 22 МБ при 51,3 млн параметров
Основная масса весов сидит в декодере. 40,8 млн параметров у языковой части, которая превращает признаки изображения в текст: описания, имена объектов, координаты, короткие рассуждения. Кодировщик изображения забирает 7,8 млн, а OCR- и пространственные головы вместе 2,6 млн, то есть меньше 6% всей модели.
22 МБ на 51,3 млн параметров - это в среднем около 3,5 бита на параметр. Для сравнения: те же 51,3 млн в fp8 заняли бы примерно 51 МБ. Схему квантования авторы в публикации не расписывают, но арифметика говорит, что в файле лежат веса заметно ниже 4 бит.
HConvGLU и преобразования Адамара простыми словами
Кодировщик смешивает информацию между каналами через фиксированные преобразования Адамара и небольшие обучаемые свёртки. Преобразование Адамара - заранее заданная операция над вектором. Её не надо хранить как матрицу весов, и она не требует умножения на большую матрицу: каналы перемешиваются по жёсткой схеме, а небольшие свёртки доводят результат до нужного вида.
Экономия двойная. В файле меньше чисел, потому что основная часть смешивания не обучается. И вычислений меньше: фиксированные операции дешевле плотных матричных умножений, что на мобильном NPU важно.
Общие признаки для детекции и масок
Детекция и сегментация в Mirage не дублируют работу. Кодировщик считает признаки изображения один раз, а головы читают их с общих карт признаков, отсюда и 2,6 млн параметров на OCR и пространственные задачи. Специализированные головы добавляют разметку, а не второй проход по картинке.
Декодер построен на семействе Simple Attention и Hadamard MLP, том же, что стоит за Needle и Whistle. Отсюда общая логика линейки: вместо тяжёлых матриц внимания более дешёвые операции, а выразительность добирается структурой.
Главный тезис авторов: структурированный вывод Mirage как зрение для текстовой LLM
Идея простая до дерзости. Mirage не пытается быть ассистентом: она выдаёт структурированную запись о сцене, а отвечать на вопрос поручают обычной текстовой модели, которая получает эту запись как контекст.
Что именно передаётся текстовой модели
В записи: имена объектов, их свойства, отношения между ними и компактная цепочка рассуждений. Читающая модель получает вопрос плюс этот разбор и формирует ответ. Дообучение не используется ни на одной стороне: ни Mirage под читающую модель, ни читающая модель под формат Mirage.
Формат ответа при этом жёсткий: эксперименты требовали JSON-объекта со строковым полем answer. Эта деталь позже больно ударит по метрикам.
Цифры на VQAv2: 9,3 против 31,3 у Qwen3-0.6B
Эксперимент шёл на 256 вопросах VQAv2 из 128 изображений, метрика - VQA consensus credit из 100, ни одна модель не дообучалась. Результаты Qwen3-0.6B, как их приводит Cactus Compute в своём разборе:
| Условие | Балл |
|---|---|
| Только вопрос | 9,3 |
| Запись Mirage и полная цепочка рассуждений | 31,3 |
| Запись другого изображения | 22,2 |
| Запись без цепочки рассуждений | 33,1 |
Рост с 9,3 до 31,3 - это данные авторов, независимой проверки в материале нет. Показательна контрольная точка: запись от другого изображения дала 22,2. Судя по разнице, примерно 9 баллов даёт привязка записи именно к тому кадру, о котором спрашивают.
Самое интересное в последней строке. Удаление цепочки рассуждений дало 33,1 балла, то есть выше, чем с ней. Авторы прямо пишут, что надёжного выигрыша от цепочки не нашли: достаточно структурированного ответа. Для практики это значит экономию на генерации рассуждений, более низкую латентность и меньше поводов сломать формат.
Где идея ломается: большие модели, JSON и промахи восприятия
Прирост на 0,6B не масштабируется автоматически. С теми же промптами и наблюдениями Mirage крупные модели выросли скромнее:
| Модель | Без записи | С записью Mirage |
|---|---|---|
| Qwen3-1.7B | 27,5 | 31,6 |
| Qwen3-4B-Instruct-2507 | 33,4 | 37,3 |
Плюс 4,1 и 3,9 балла: приятно, но это уже не спасение слабой модели, а небольшой бонус к сильной. Чем выше стартовая планка читающей модели, тем меньше относительный выигрыш от чужой записи о сцене.
Почему формат JSON съедает баллы
Ответ без корректного JSON-объекта со строковым полем answer получал ноль. Метрика смешивает две вещи: качество ответа и дисциплину формата. Масштаб потерь виден по числам: Nemotron с записью и цепочкой нарушил требование в 214 случаях из 256, Qwen3-1.7B - в 34.
Практический вывод для интеграции: ставить парсер и валидацию формата, при провале переспрашивать или чинить ответ программно. Иначе модель, которая всё поняла, но добавила лишний текст вокруг JSON, получит ноль в метрике и пустой ответ в проде.
Случай со скейтбордом: как запись Mirage ухудшила ответ
На одной фотографии со скейтбордом Mirage не увидел скейтборд и описал машины, людей и обувь. Qwen по одному вопросу угадал «a skateboard». После чтения записи и цепочки Mirage он ответил «a car».
Это худший сценарий для схемы: структурированный вывод выглядит авторитетно, и читающая модель доверяет ему больше, чем собственному выводу из вопроса. Ошибка восприятия маленькой модели не гасится, а усиливается. Для систем, где промах стоит дорого, нужен второй источник сигнала или порог уверенности.
Практические сценарии локального запуска Mirage
Сценарии, под которые Mirage подходит по заявленным возможностям:
- OCR на устройстве без облака;
- детекция объектов и сегментация для носимых устройств;
- анализ пространственных связей для роботов и манипуляторов;
- описание сцены для ассистентов доступности;
- мультиязычные подписи на семи языках;
- структурированный препроцессор для текстовой LLM в пайплайне, где нет отдельной VLM.
Роботы и носимые устройства: почему размер важнее бенчмарков
В робототехнике и носимой электронике бюджет памяти и энергии жёсткий. 22 МБ влезают в устройство, где многогигабайтная VLM не рассматривается даже теоретически: в контроллер, в камеру, в очки, в манипулятор. 74 мс на NPU дают около 13 обновлений в секунду, и для реакции в контуре управления этого хватает, если не требовать высокой точности на сложных сценах.
Мультиязычный OCR и описание сцены офлайн
Самый доступный для проверки кейс: распознать текст и описать сцену без обращения к облаку, на семи языках. Для приложений с персональными данными, для поездок без сети, для складских терминалов это снимает вопрос отправки кадров на сервер. Качество OCR и описаний заявлено авторами, независимых замеров в материале нет: перед внедрением нужен собственный прогон на своих изображениях.
Стоит ли брать Mirage: выводы и чего ждать дальше
Mirage полезна там, где важны размер и латентность, а не максимальная точность. Мобильным и встраиваемым разработчикам она даёт рабочий набор восприятия в 22 МБ. Робототехнике быстрый сенсор с детекцией, масками и пространственными связями. Пользователям локальных LLM способ показать текстовой модели картинку без второй модели на несколько гигабайт.
Не подходит она там, где промах восприятия недопустим: медицинская визуализация, точные измерения, контроль качества с высокими штрафами за ошибку. Смешанные результаты на крупных моделях, чувствительность к формату JSON и история со скейтбордом - три причины не строить на Mirage критичный пайплайн без подстраховки.
Авторы анонсировали следующий шаг: дообучить читающую модель на записях Mirage в паре с вопросами и короткими ответами и поделиться результатами. Если это сработает, схема «маленький сенсор плюс текстовая LLM» станет предсказуемее. Пока Mirage - сильный инженерный результат с честно описанными границами, и проверять её стоит на своих данных, а не на чужих цифрах из исходной публикации.