Microsoft запустила TernML: тернарные нейросети работают на чипах за 36 рублей
Microsoft второго июня запустила TernML, фреймворк для тернарных нейросетей с весами из трёх значений, который генерирует готовый C-код для микроконтроллеров без математического сопроцессора и стоит в разы дешевле привычных решений.

TernML позволяет запускать нейросети на микроконтроллерах за 36 рублей, где TensorFlow Lite физически не работает, и это первый открытый инструмент, который решает проблему российских чипов без FPU.
Проект вырос из экспериментальной тернарной сети GraphKAN, которая показала 96,15% точности на датасете MNIST при размере модели 15 КБ. Автор, публикующий под брендом Fakeonomics, переименовал и расширил код: теперь TernML (Ternary Machine Learning, «тернарное машинное обучение») поддерживает пять архитектур вместо одной и умеет генерировать файлы на языке C для встраиваемых систем.
Для российских разработчиков, которые работают с отечественными микроконтроллерами Микрон MIK32 Amur или НИИЭТ К1921, это прямой ответ на конкретную боль: эти чипы не имеют FPU (модуля вычислений с плавающей точкой, того самого блока, который нужен обычным нейросетям), и стандартный TensorFlow Lite Micro на них не запускается.
Что такое тернарные нейросети и почему они дешевле?
Обычная нейросеть хранит каждый вес как число с плавающей точкой: 32 бита на одно значение. Тернарные нейросети используют только три значения: минус один, ноль и плюс один. Четыре таких значения упаковываются в один байт (uint8), и модель сжимается до килобайт вместо мегабайт.
По данным автора проекта, свёрточная сеть на CIFAR-10 в тернарной упаковке занимает 27,3 КБ и влезает в 16 КБ оперативной памяти микроконтроллера. Для сравнения: та же сеть в формате float показала 82,60% точности, а тернарный вариант выдал 84,03%, то есть прирост составил 1,43 процентных пункта.
Этот контринтуитивный эффект автор объясняет так: тернарное пространство весов работает как регуляризатор (механизм, который не даёт сети заучивать шум в данных). Квантизация (округление весов до трёх значений) отсекает шум и усиливает полезный сигнал. Эффект подтверждён на 82 юнит-тестах по пяти архитектурам.
Что понадобится
- Репозиторий TernML (открытый код, доступен на GitHub автора проекта)
- Python 3.x и PyTorch для обучения модели
- Микроконтроллер класса Cortex-M0+ (STM32G031 стоит около 36 рублей) или отечественный аналог: Микрон MIK32 Amur, НИИЭТ К1921
- Компилятор C для вашей платформы (GCC ARM или аналог)
- Время: обучение простой модели на MNIST занимает минуты на обычном компьютере, генерация C-кода происходит автоматически
Пошаговая инструкция
- Выберите архитектуру под задачу. TernML поддерживает пять типов:
- KAN (разреженный граф с кусочно-линейными тернарными весами) для компактных классификаторов
- CNN с квантизацией при обучении (QAT) для работы с изображениями
- Transformer с тернарным вниманием (TernaryAttention) для последовательностей
- RNN/LSTM, включая двунаправленные, для временных рядов
-
Vision Transformer (ViT) с CLS-токеном (токен, специальная единица входных данных для модели) для визуальных задач
-
Обучите модель с тернарными весами. Используйте Straight-Through Estimator (STE, метод, который позволяет обратному распространению ошибки работать через дискретные веса, как если бы они были непрерывными).
-
Запустите генерацию C-кода. TernML автоматически создаёт файлы .c и .h с int8-арифметикой. Функция Tanh реализована через таблицу подстановки (LUT) на 256 записей, без единой операции с плавающей точкой.
-
Скомпилируйте и загрузите на микроконтроллер. Результат работает на чипах без FPU и без DSP (цифрового сигнального процессора).
-
Протестируйте инференс (запуск обученной модели для получения результата). Модель в 27,3 КБ умещается в 16 КБ RAM типичного Cortex-M0+.
Автор обучил свёрточную сеть из трёх Conv-слоёв с BatchNorm (нормализация между слоями для стабильного обучения), аугментацией данных и cosine annealing (плавное снижение скорости обучения). Результат: 84,03% точности в тернарном режиме при модели в 27,3 КБ. Обучение на момент публикации ещё не завершено, то есть финальная цифра может оказаться выше. Для контекста: минимальная сеть без оптимизаций показала 46,31%, полная float-версия 82,60%, тернарный вариант обошёл float на 1,43 процентных пункта.
- Путать квантизацию после обучения с QAT. TernML обучает сеть сразу с тернарными весами (Quantization-Aware Training). Если вы обучите обычную float-модель и потом округлите веса до трёх значений, результат будет хуже.
- Ожидать запуска TensorFlow Lite на тех же чипах. TFLite Micro требует FPU или хотя бы DSP-инструкций. На Cortex-M0+, MIK32 и К1921 он не запускается, это ограничение архитектуры, а не настроек.
- Игнорировать тесты. В проекте 82 юнит-теста. Если вы меняете архитектуру или параметры упаковки, прогоните тесты перед прошивкой: ошибка упаковки четырёх значений в один байт ломает весь инференс.
- Считать, что тернарные сети всегда точнее float. Эффект регуляризации квантизацией подтверждён автором на пяти архитектурах, но на сложных задачах с большими моделями разрыв может быть иным. Проверяйте на своих данных.
Что делать с этим прямо сейчас, по ролям
Разработчику встраиваемых систем в России: это прямой инструмент для запуска нейросетей на MIK32 и К1921. Скачайте репозиторий, обучите тернарную CNN на своём датасете, сгенерируйте C-код и протестируйте на железе. Альтернатив с автоматической генерацией кода для чипов без FPU на рынке практически нет.
Автору Дзена, пишущему о технологиях: тернарные нейросети дают сильный контент-повод. Тема, где российские чипы получают ИИ-возможности, которых раньше не было, заходит и у технической, и у патриотической аудитории.
Предпринимателю, делающему IoT-устройства: микроконтроллер за 36 рублей с нейросетью внутри меняет экономику продукта. Датчик с локальным распознаванием жестов, звуков или аномалий больше не требует облака и дорогого чипа.
По моим наблюдениям, проект пока на ранней стадии: обучение CNN на CIFAR-10 не завершено, а ViT-тесты автор описывает как подтверждение эффекта, но без публичного бенчмарка на крупном датасете. Однако сама идея, генерировать чистый C-код с int8-арифметикой для тернарных сетей, закрывает реальную дыру в российской экосистеме. У нас есть микроконтроллеры, но нет AI-стека для них. TernML может стать этим стеком, если сообщество подхватит. Честная оговорка: проект ведёт один автор, коммерческой поддержки нет, и для продакшен-задач стоит дождаться стабильных релизов и независимых бенчмарков.
Разберитесь в нейросетях на практике
В dzen.guru мы тестируем ИИ-инструменты и объясняем, как они работают для авторов и предпринимателей РФ
Попробовать dzen.guruМикроконтроллер за 36 рублей, нейросеть в 27 килобайт, точность выше float-версии: если эти три факта подтвердятся на более широких бенчмарках, тернарные нейросети сделают локальный ИИ на дешёвом российском железе не экспериментом, а рабочим инструментом.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Нейросеть с памятью без квадратичных затрат: российская ELMUR принята на ICLR 2026
Нейросеть с памятью: как российская архитектура ELMUR решает главную проблему роботов, и при чём тут ваши тексты. Российские исследователи из МФТИ и…

Claude Code AI оценивает 100 вебинаров за ночь: кейс Otus.ru с цитатами и таймкодами
Я вижу, что оригинал описывает техническую статью-кейс одного инженера (автора из Otus.ru) о построении конвейера автооценки вебинаров с помощью Claude Code.…

Открытое ядро MoonMath обгоняет AMD Instinct MI300X AITER на 18% в среднем
MoonMath AI 10 июня опубликовала первое открытое ядро внимания (attention kernel) для ускорителя AMD Instinct MI300X, которое, по замерам команды, обходит…
Комментарии