Игорь Градов
Игорь Градов
5 мин
ai

Microsoft запустила TernML: тернарные нейросети работают на чипах за 36 рублей

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

Microsoft запустила TernML: тернарные нейросети работают на чипах за 36 рублей
Почему это важно

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-кода происходит автоматически

Пошаговая инструкция

  1. Выберите архитектуру под задачу. TernML поддерживает пять типов:
  2. KAN (разреженный граф с кусочно-линейными тернарными весами) для компактных классификаторов
  3. CNN с квантизацией при обучении (QAT) для работы с изображениями
  4. Transformer с тернарным вниманием (TernaryAttention) для последовательностей
  5. RNN/LSTM, включая двунаправленные, для временных рядов
  6. Vision Transformer (ViT) с CLS-токеном (токен, специальная единица входных данных для модели) для визуальных задач

  7. Обучите модель с тернарными весами. Используйте Straight-Through Estimator (STE, метод, который позволяет обратному распространению ошибки работать через дискретные веса, как если бы они были непрерывными).

  8. Запустите генерацию C-кода. TernML автоматически создаёт файлы .c и .h с int8-арифметикой. Функция Tanh реализована через таблицу подстановки (LUT) на 256 записей, без единой операции с плавающей точкой.

  9. Скомпилируйте и загрузите на микроконтроллер. Результат работает на чипах без FPU и без DSP (цифрового сигнального процессора).

  10. Протестируйте инференс (запуск обученной модели для получения результата). Модель в 27,3 КБ умещается в 16 КБ RAM типичного Cortex-M0+.

Конкретный пример: CNN на CIFAR-10

Автор обучил свёрточную сеть из трёх 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 рублей с нейросетью внутри меняет экономику продукта. Датчик с локальным распознаванием жестов, звуков или аномалий больше не требует облака и дорогого чипа.

Мнение редакции dzen.guru

По моим наблюдениям, проект пока на ранней стадии: обучение CNN на CIFAR-10 не завершено, а ViT-тесты автор описывает как подтверждение эффекта, но без публичного бенчмарка на крупном датасете. Однако сама идея, генерировать чистый C-код с int8-арифметикой для тернарных сетей, закрывает реальную дыру в российской экосистеме. У нас есть микроконтроллеры, но нет AI-стека для них. TernML может стать этим стеком, если сообщество подхватит. Честная оговорка: проект ведёт один автор, коммерческой поддержки нет, и для продакшен-задач стоит дождаться стабильных релизов и независимых бенчмарков.

Разберитесь в нейросетях на практике

В dzen.guru мы тестируем ИИ-инструменты и объясняем, как они работают для авторов и предпринимателей РФ

Попробовать dzen.guru

Микроконтроллер за 36 рублей, нейросеть в 27 килобайт, точность выше float-версии: если эти три факта подтвердятся на более широких бенчмарках, тернарные нейросети сделают локальный ИИ на дешёвом российском железе не экспериментом, а рабочим инструментом.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

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

Комментарии

Читайте также

Нейросеть с памятью без квадратичных затрат: российская ELMUR принята на ICLR 2026
ai

Нейросеть с памятью без квадратичных затрат: российская ELMUR принята на ICLR 2026

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

6 мин
Claude Code AI оценивает 100 вебинаров за ночь: кейс Otus.ru с цитатами и таймкодами
ai

Claude Code AI оценивает 100 вебинаров за ночь: кейс Otus.ru с цитатами и таймкодами

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

6 мин
Открытое ядро MoonMath обгоняет AMD Instinct MI300X AITER на 18% в среднем
ai

Открытое ядро MoonMath обгоняет AMD Instinct MI300X AITER на 18% в среднем

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

5 мин