Новости 28,9 млн параметров и почти 10 токенов в секунду. Нейросеть запустили на микроконтроллере за $10

NewsMaker

I'm just a script
Премиум
28,893
46
8 Ноя 2022
Большой ИИ не поместился. Маленький все равно пролез.

<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1200/675;margin-bottom:2rem;overflow:hidden">
zcidxn9s8pql90rz6240swveqc4fgice.jpg

<div itemprop="articleBody">Перепроверила цифры, характеристики памяти и методы оптимизации по исходному тексту. Уточнила формулировки, чтобы не приписывать микроконтроллеру возможности, которых эксперимент не демонстрировал. Языковую модель удалось запустить на микроконтроллере ESP32-S3 стоимостью меньше $10. Компактный чип, предназначенный для датчиков, устройств интернета вещей и встраиваемой электроники, генерировал текст локально со скоростью почти 10 токенов в секунду.

Эксперимент провёл разработчик под псевдонимом SlvDev . Автор опубликовал исходный код и техническое описание проекта на GitHub, а демонстрация работы модели появилась на YouTube-канале Better Stack .

Для эксперимента разработчик выбрал TinyStories, языковую модель Microsoft Research с 28,9 млн параметров. TinyStories примерно в 10 000 раз меньше крупных современных моделей и умеет создавать короткие относительно связные рассказы.

Даже настолько компактная модель изначально не помещалась в память ESP32-S3. Микроконтроллер располагает 520 КБ встроенной SRAM и 8 МБ дополнительной PSRAM, тогда как хранение весов TinyStories с 16-битной точностью требует около 60 МБ.

SlvDev применил четырёхбитное квантование, сократив объём памяти для весов на 75%. После сжатия модель занимала около 14,9 МБ. Уменьшение точности позволило значительно снизить требования к ресурсам, однако полученный объём всё равно превышал доступную оперативную память микроконтроллера.

Оставшуюся часть задачи разработчик решил с помощью метода послойного встраивания PLE, который применяется в моделях семейства Google Gemma. Около 25 млн параметров объёмом приблизительно 12 МБ перенесли во флеш-память ESP32-S3. Модель обращается к вынесенным весам сравнительно редко, поэтому низкая пропускная способность флеш-памяти не привела к резкому падению производительности.

После оптимизации в рабочей памяти потребовалось хранить около 2 МБ данных. Выходной слой, эмбеддинги и KV-кэш разместились в PSRAM, а промежуточные активации обрабатывались во встроенной SRAM объёмом 520 КБ.

Микроконтроллер достиг скорости 9,88 токена в секунду. По оценке автора проекта, такая производительность превышает среднюю скорость чтения человека.

Практические возможности TinyStories остаются ограниченными. Модель генерирует простые короткие рассказы, но не подходит для создания полноценного чат-бота, написания программного кода или управления ИИ-агентами. Другая компактная модель Barista отвечает на вопросы примерно вдвое быстрее, однако обучение охватывает только темы, связанные с эспрессо.

Эксперимент прежде всего демонстрирует эффективность современных методов квантования и распределения весов между разными видами памяти. Устройства с более производительным процессором и большим объёмом памяти, включая Raspberry Pi и смартфоны, способны запускать гораздо более функциональные локальные модели.

Google применяет квантование и PLE в модели Gemma 4-E2B-it с 5,1 млрд параметров. При четырёхбитных весах мультимодальной языковой модели требуется немного больше 1 ГБ памяти, а дополнительное сжатие и перенос весов позволяют сократить объём примерно до 500 МБ. Такой класс моделей подходит для локальных чат-ботов, управления простыми ИИ-агентами и работы с календарём без постоянного обращения к облачным платформам, хотя риск ошибочных ответов сохраняется.
 
Источник новости
www.securitylab.ru

Похожие темы