CMF: новый формат для создания специализированных LLM моделей
Компания Cortiq представила CMF (Cortiq Model Format) — принципиально новый формат хранения нейросетей, призванный решить проблемы универсальности больших языковых моделей. В отличие от традиционных методов сжатия, CMF использует подход задачной компиляции, позволяя «вырезать» из одной большой модели узкоспециализированных экспертов, оптимизированных под конкретные задачи, таких как решение дифференциальных уравнений или анализ документов. Формат обеспечивает компактное хранение за счет физической удалении неактивных весов или использования масок навыков, а также поддерживает мультимодальные конвейеры в одном контейнере.

# Компактные эксперты: как формат CMF меняет подход к специализированным LLM
Универсальные языковые модели (LLM) стали стандартом, но за их способность отвечать на любые вопросы приходится платить высокую стоимость вычислений и потребление памяти. Проблема заключается в том, что одна гигантская сеть пытается одновременно быть юристом, программистом, математиком и историком. В результате модель остается большой, тяжелой и часто содержит избыточные связи, бесполезные для решения конкретной узкой задачи.
Разработчик Cortiq, выступавший с докладом на платформе Habr, предложил альтернативу: не уменьшать универсальную модель силой, а «компилировать» её под конкретную работу. Это не простое сжатие разрядности весов, а структурная перестройка, при которой из общей архитектуры извлекаются только необходимые нейронные соединения.
Задача как фильтр: из универсала в специалиста
Ключевая идея формата CMF строится на концепции, напоминающей MoE (Mixture of Experts), но с важным отличием. В классических MoE-моделях эксперты — это отдельные блоки внутри одной большой сети. В новой парадигме экспертами становятся самостоятельные модели, созданные путем «обрезки» одной крупной обученной сети.
Процесс создания такого специалиста включает в себя несколько этапов: сначала выводится маска активных координат полносвязных слоев (FFN), затем выполняется поиск оптимума по ошибке на отложенной выборке, проводится тонкая подстройка последних слоев и, наконец, происходит физическое удаление неактивных нейронов (defrag).
Например, при решении задачи по дифференциальным уравнениям с помощью модели Qwen3.5 0.6B, активными осталось всего около 20% исходных весов. При этом точность на целевой задаче выросла в несколько раз. Логика проста: убираются «шумные» связи, которые мешали модели сфокусироваться на конкретной предметной области, а оставшаяся структура оптимизируется под нужный паттерн.
Техническое объяснение: что такое маска FFN?
Полносвязный слой (FFN — Feed Forward Network) в архитектуре трансформера состоит из нескольких проекций: входного преобразования (gate_proj), промежуточного преобразования (up_proj) и выходного (down_proj). В новой модели координаты этих проекций жестко связаны: одна и та же активная нейронная связь должна отмечаться одновременно в gate_proj и up_proj, а также соответствовать столбцу в down_proj. Маска гарантирует, что после «обрезки» сеть остается математически корректной и вычислительно устойчивой.
Семантика исполнения: почему нельзя использовать стандартные форматы
Изначально автор пытался сохранить результаты такой специализации в популярном формате GGUF. Однако здесь возникла фундаментальная проблема. В плотном тензоре нулевое значение занимает столько же места, сколько и ненулевое. Хотя математически нули можно было бы игнорировать, в формате GGUF структура осей тензоров должна сохраняться строго. Попытки физически удалить или переставить нулевые координаты приводили к рассинхронизации между проекциями gate, up и down, делая вычисления некорректными.
Стандартные форматы хранения, такие как GGUF или SafeTensors, не обладают встроенной семантикой для описания «задачной маски». Они хранят веса как есть, но не умеют объяснять исполнителю, какие именно части сети активны, а какие — отключены. Попытка добавить это через кастомные поля в существующие форматы привела бы к необходимости переписывать логику загрузки и исполнения во всех поддерживающих их клиентах. Поэтому был создан отдельный, специализированный формат CMF.
Архитектура CMF: два подхода к хранению специалистов
Формат CMF предлагает два принципиально разных способа организации специализированных моделей, решая разные практические задачи.
1. Автономный специалист: физическое удаление Если модель нужна для одной конкретной задачи (например, только для прогнозирования валют), ненужные части нейронной сети можно удалить физически. Вместо огромного файла, содержащего гигабайты нулевых данных, на диске хранятся меньшие матрицы, состоящие только из «живых» весов. Количество строк у входных проекций становится равным количеству столбцов выходной проекции для данного специалиста. Это обеспечивает максимальную экономию места и быструю загрузку.
2. Семейство специалистов: общая основа и навыки (Skills) Если одна базовая модель должна обслуживать несколько разных задач (например, кодирование документов и решение математических задач), физически вырезать их из общей основы нельзя: вес, бесполезный для одной задачи, может быть критически важен для другой. В этом случае CMF использует концепцию «навыков» (skills).
Общая модель хранится в исходном виде, а каждый навык — это не новая копия модели, а набор замещающих тензоров и побитовых масок, указывающих, какие части общей основы активны для данного навыка. При запуске исполнителя Cortiq динамически выбирает источник весов: либо общую основу, либо тензор конкретного навыка. Это позволяет одному контейнеру хранить базу и множество адаптированных специалистов, каждый из которых потребляет ресурсы только тогда, когда ему нужно.
Структура файла и безопасность
Файл CMF имеет предсказуемую структуру: начинается 128-байтовый конверт с адресацией секций, затем следует JSON с архитектурой и реестром навыков, двоичный каталог тензоров и сам блок весов. Блоки выровнены по границам 4096 байтов, что позволяет использовать механизм mmap (мемори-маппинг) для эффективной загрузки в память без полной дефрагментации диска. Каждый тензор имеет уникальный хеш для проверки целостности данных.
Многозадачность и мультимодальность
Одной из сильных сторон CMF является способность объединять в одном файле разнородные компоненты искусственного интеллекта. В отличие от традиционных подходов, где каждая часть конвейера (токенизатор, диффузионная модель, VAE) хранится отдельно, CMF собирает их в единый адресный контейнер.
Примером служит модель MiniMax-H3 Turbo, которая в одном CMF-файле объединяет диффузионный трансформер, кодировщик запросов Qwen3-VL, видео-VAE и звуковые компоненты. Это сократило объем рабочей сборки с 200 ГБ (множество разрозненных файлов) до 14,48 ГБ или 25,70 ГБ с полным кодировщиком. Такой подход особенно важен для мультимодальных задач, где синхронизация и быстрая загрузка всех компонентов критичны.
Оптимизация вычислений и разрядность
Формат также поддерживает гибкую систему квантования (сжатия весов). Вместо глобального применения одной разрядности ко всей модели, CMF позволяет задавать тип квантования для каждого тензора отдельно. Для MoE-модели можно подобрать оптимальное сжатие для каждого эксперта индивидуально. Доступны специализированные кодеки, такие как q8_2f для точной обработки выбросов и q1t для экстремально низких разрядностей.
Кроме того, в исполнительном движке Cortiq реализован режим O(1) внимания. В классическом точном внимании объем памяти для хранения контекста растет линейно с длиной диалога. Режим O(1) заменяет точное внимание на потоковый оператор с фиксированным бюджетом состояния, что позволяет поддерживать долгие беседы без переполнения оперативной памяти. Важно отметить, что это приближенный метод, и для некоторых задач он требует предварительной проверки качества.
Заключение
CMF представляет собой важный шаг к децентрализации и специализации искусственного интеллекта. Он смещает фокус с создания огромных универсальных моделей на создание легковесных, проверенных «инструментов», которые можно запускать на потребительском оборудовании, включая мобильные устройства. Формат не является магическим решением всех проблем ИИ, но предоставляет надежный строительный блок для создания эффективных, компактных и специализированных систем.
Проект открыт для сообщества, и разработчики могут уже сейчас использовать конвертеры и исполнители для собственных задач, проверяя результаты на своих данных.