Нейросеть на процессоре 1975 года: как BitNet и Mamba работают на BBC Micro

Hacker News · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Разработчик реализовал работу авто-регрессивной языковой модели на классическом 8-битном процессоре MOS 6502, используя квантование весов до тернарных значений. Проект демонстрирует возможность запуска современных архитектур нейросетей на ограниченных ресурсах ретро-железа.

Ценность: Демонстрация работы LLM на 8-битном процессоре подтверждает эффективность квантования и архитектур, оптимизированных под вычислительные ограничения, что актуально для edge-вычислений.

В мире, где нейросети требуют терафлопсов и гигабайты памяти, проект по запуску языковой модели на процессоре MOS 6502 выглядит как технический курьез. Однако это серьезное инженерное исследование того, как современные методы машинного обучения адаптируются к экстремальным ограничениям железа. Автор проекта использовал BBC Model B 80-х годов, доступ к которому он получил от своего отца, чтобы проверить, насколько компактной может стать языковая модель при сохранении способности генерировать текст.

Главной проблемой стала память: на процессоре доступно лишь 25 КБ пользовательского пространства. В итоге код инференса занял 9 КБ, а веса модели — 13 КБ. Поскольку архитектура 6502 не имеет инструкции для умножения, разработчик обратился к методу BitNet, который квантует веса до тернарных значений {-1, 0, 1}. Это заменяет дорогие операции умножения на простые сложения и вычитания, что критически важно для скорости работы на медленном CPU.

Выбор архитектуры также был продиктован аппаратными ограничениями. Стандартные трансформеры с механизмом внимания требуют растущего кэша KV по мере генерации токенов, что быстро исчерпывает доступную RAM. Вместо этого автор выбрал архитектуру Mamba, которая использует фиксированный размер состояния. Это обеспечивает предсказуемое потребление памяти и вычислительных ресурсов, что идеально подходит для статической среды 8-битного процессора.

Для обучения модели использовался прямой проход с тернарным квантованием и обратный проход с градиентами в полной точности float32. Это позволило сохранить стабильность обучения, избегая проблем с исчезновением или взрывом градиентов, характерных для рекуррентных сетей при низком квантовании. Активации хранились в 8-битном формате, а для их нормализации применялась обучаемая функция активации с масштабируемым сдвигом.

Процесс инференса на BBC Micro реализован через компиляцию C-кода в машинные инструкции 6502 с помощью компилятора CC65. Для передачи данных с MacBook на ретро-компьютер была создана самодельная аудиокабельная связь, имитирующая запись с кассеты. Это решение позволяет запускать модель непосредственно на целевом железе, а не только в эмуляторах.

Результатом стала работающая система, способная генерировать текст, хотя и не обладающая высокой интеллектуальной глубиной. Проект подчеркивает важность «механической симпатии» — принципа проектирования алгоритмов с учетом конкретных возможностей оборудования. Это подтверждает тезис о том, что выбор архитектуры нейросетей сильно зависит от доступных вычислительных ресурсов.