Sonata

Языковую модель запустили на микроконтроллере ESP32-S3 за $10

image source

Локальный запуск больших языковых моделей уже привычен на ноутбуках и смартфонах. Энтузиаст под псевдонимом SlvDev пошёл дальше — он поднял небольшую языковую модель прямо на микроконтроллере ESP32-S3 стоимостью около $10.

ESP32-S3 располагает всего 520 кбайт SRAM и 8 Мбайт псевдо-SRAM (PSRAM). Чип создан для управления датчиками, устройствами интернета вещей и прочей периферией, так что о моделях уровня DeepSeek V4 Flash речи не идёт.

Вместо этого выбор пал на систему в 10 000 раз компактнее — TinyStories от Microsoft Research с 28,9 млн параметров. Но даже она в исходном виде требовала около 60 Мбайт при 16-битной точности — столько памяти у контроллера просто нет.

Первым шагом стало квантование: веса ужали с 16 бит до 8, а затем и до 4. Модель уменьшилась до 14,9 Мбайт, и под неё пришлось взять версию микроконтроллера с 16 Мбайт флеш-памяти.

Затем автор реализовал механизм послойного встраивания (Per-layer embedding, PLE), применяемый в открытых моделях Google Gemma. Так 25 млн параметров объёмом 12 Мбайт переехали во флеш-память, к которой обращаются относительно редко.

В оперативной памяти контроллера осталось лишь 2 Мбайт данных: входные заголовки и KV-кеш разместились в PSRAM, а для активаций хватило 520 кбайт SRAM.

Итог — генерация со скоростью 9,88 токена в секунду, то есть быстрее, чем читает среднестатистический человек.

TinyStories — удачная демонстрация концепции, но она умеет лишь сочинять короткие истории, для чат-бота этого мало. Есть похожая по размеру модель Barista: она отвечает на вопросы и вдвое быстрее, но только про эспрессо.

Обе модели слишком малы для чего-то серьёзного. Однако сам факт их работы на десятидолларовом микроконтроллере выглядит впечатляюще.

источник

Загрузка страницы