В прошлый раз я рассказал про GraphKAN, первую тернарную KAN с весами {-1, 0, +1}, которая выдала 96.15% на MNIST при 15 КБ. (ссылка).

С тех пор проект переродился. Рассказываю, что изменилось и почему.


GraphKAN → TernML

Название «GraphKAN» привязывало технологию к KAN (Kolmogorov-Arnold Networks). Для B2B-продаж это звучит как игрушка. Плюс пайплайн оказался шире: работает не только на KAN, но и на свёрточных сетях, трансформерах и RNN.

Так родился TernML (Ternary Machine Learning). Код переименован, репозитории заархивированы, всё собрано под единым брендом.

Архитектуры: уже не KAN

Тернарные веса {-1, 0, +1} с Straight-Through Estimator подтвердили эффект регуляризации квантизацией на всех архитектурах. float → тернар стабильно повышает точность. Тернарное пространство весов работает как информационное горлышко: шум отсекается, сигнал усиливается.

Сейчас TernML поддерживает 5 архитектур:

  • KAN , разреженный граф с piecewise-linear ternary weights

  • CNN (QAT) , свёрточный слой с тернарными весами, обучение с квантизацией

  • Transformer , TernaryAttention, TernaryFeedForward, каузальная маска (21 тест)

  • RNN/LSTM , однослойные и многослойные, bidirectional (33 теста)

  • Vision Transformer (ViT) , patch embedding, CLS токен (11 тестов)

Результаты

К прошлым цифрам (MNIST 96.15%) добавился глубокий CNN на CIFAR-10:

  • 3 Conv слоя + BatchNorm + аугментация + cosine annealing

  • STE ternary: 84.03% (обучение не завершено)

  • Размер модели: 27.3 КБ в тернарной упаковке

Для сравнения: 46.31% на мелкой сети, 82.60% float , тернар даёт прирост 1.43 п.п.

Генерация C-кода для Cortex-M0+

TernML умеет генерировать .c/.h файлы для микроконтроллеров без FPU:

  • int8-only арифметика

  • Tanh через LUT (256 entry)

  • Тернарная упаковка: 4 значения в одном uint8

  • Влезает в 16 КБ RAM

Cortex-M0+ (STM32G031) стоит ~36 ₽, в нём нет ни FPU, ни DSP. TFLite Micro на таком чипе не запускается. Российские микроконтроллеры (Микрон MIK32 Amur, НИИЭТ К1921) тоже без FPU и без своего AI-стека.

Эффект регуляризации: перепроверено

ViT с тернарными весами подтверждает: эффект не привязан к архитектуре. На 11 тестах ViT стабильно показывает обратную связь: тернарная квантизация работает как регуляризатор, повышая точность относительно float baseline.

Всего 82 unit-теста покрывают 5 архитектур, кодогенерацию и упаковку.


Ссылки:


2026. Fakeonomics. Все права защищены.