
Это продолжение поста “Две нейросети по 15 КБ” — там были базовые цифры. А тут уже личная история: как делалось, что пошло не так, и что выяснилось по пути.
Май 2024 года. Выходит статья “KAN: Kolmogorov-Arnold Networks”. И происходит то, что бывает раз в несколько лет — кто-то предлагает альтернативу MLP.
Не модификацию и не лайфхак — альтернативу.
В MLP каждый нейрон делает weight × input + bias, и все 80 лет развития — это вариации на тему “как сделать этот вес точнее, быстрее, разреженнее”. KAN предлагает другое: заменить линейный вес на обучаемую функцию. Вроде мелкий трюк, а на практике — меньше параметров при той же точности и встроенная интерпретируемость.
К 2026 году уже появились QuantKAN (4-битное квантование), KANtize (2-3-битные B-spline таблицы), BiKA (аппаратный акселератор, вдохновленный KAN). И все они, по сути, про одно — сделать KAN меньше, чтоб работал не только на GPU.
Граница в три бита — она же психологическая. Ниже 4 бит у всех начинается «а вдруг всё сломается». И знаете что? Обычно так и есть. Любой, кто квантовал нейросети в 2 бита, знает: точность падает. Не чуть-чуть — катастрофически.
Но {-1, 0, +1} — это даже не два бита, это log₂(3) ≈ 1.58 бита. Формально — между binary и ternary, а по ощущениям — чистое безумие.
Ну я и решил попробовать.