← На главную

13KB хватило для Mamba-модели с BitNet на BBC Micro

31.07.2026 13:08 · hackernews

MOS 6502 — 8-битный процессор 1975 года, на котором работали BBC Micro и Apple II. У автора завалялся отцовский BBC Model B, и он решил выяснить, какую самую сильную языковую модель можно запустить на этой машине с помощью современного машинного обучения.

Памяти в обрез: в пользовательском пространстве всего 25KB — 9KB уходит на код инференса, 13KB на веса модели. Процессор понимает только 8-битные целые, а инструкции умножения в его наборе нет вообще. Код на C компилируется в 6502 через CC65. Модель обучается на MacBook, а на BBC Micro загружается через PlayUEF и самодельный кабель 3.5mm-to-tape — ноутбук проигрывает аудио в разъём, и BBC думает, что слушает ленту. Для отладки используют эмуляторы sim65 и jsbeeb.

Сама модель — авторегрессионная, предсказывает следующий токен. Словарь маленький: 26 букв плюс пробел. Токены превращаются в векторы размерности 56. Чтобы уместиться в 13KB, веса квантуют в BitNet: каждый параметр принимает значения -1, 0 или 1. Такой параметр занимает log2(3)=1.58 бита, а 4 штуки упаковываются в один байт — распаковка простым сдвигом. В 13KB получается 52 тысячи параметров. Обучение при этом идёт в float32, а на forward параметры округляются до тернарных; градиенты текут в полной точности. Последний LM head оставляют в int4, чтобы аккуратнее распределять вероятности.

Почему не transformer? Attention требует смотреть на все предыдущие токены, и KV cache растёт с длиной контекста. Для 32KB RAM это слишком. Рекуррентные модели — Mamba, S4, GRU, LSTM — имеют фиксированный вектор состояния и одинаковую форму вычислений на каждом шаге. GRU не подошёл: в тернарном режиме спектральный радиус матриц больше единицы, градиенты взрываются. У Mamba per-channel decay не превышает 1, поэтому она стабильна. Её и выбрали.

Промежуточные суммы копятся в 16-бит, потом активации обрезаются hardtanh и масштабируются обученным сдвигом shr, чтобы влезть обратно в 8 бит.

Сэмплирование токенов — top-k softmax, но exp на 6502 нет. Поэтому используют lookup-таблицу экспонент с температурой. Правда, сид генератора случайных чисел фиксирован — модель выдаёт один и тот же псевдослучайный результат.

В итоге Mamba-модель реально работает на BBC Micro. Она не слишком умная, но это современная архитектура на железе 80-х. Автор подчёркивает: при проектировании ML моделей нужно думать о железе. Это перекликается с тезисом Сары Хукер о hardware lottery — если бы железо было другим, лучшие архитектуры могли бы выглядеть иначе.

Читать оригинал →