Shard LLM: как создать 40M-параметровую модель для IoT с нуля | AiManual
AiManual Logo Ai / Manual.
03 Май 2026 Новости

Создание первой LLM с нуля: опыт автора Shard (40M параметров) для IoT

История создания Shard — компактной LLM с 40M параметров для IoT. Опыт автора, уроки, архитектура и почему 40 миллионов может быть лучше миллиарда.

В 2025 году, когда каждый стартап с третьей попытки пытается запихнуть очередную 70B-модель в смартфон, история Shard звучит как вызов трендам. 40 миллионов параметров. Никаких GPU-ферм. Даже не A100 — просто пара RTX-карт и несколько месяцев упрямства. Автор, инженер из embedded-среды, решил: хватит ждать, пока Big Tech сделает модельный ряд для микроконтроллеров. Он сделал сам.

Shard — не очередная игрушка. Это полноценный трансформер, способный генерировать осмысленный текст на ограниченном словаре, который влезает в 16 МБ flash-памяти обычного ESP32-S3. И да, он работает в реальном времени.

Почему 40 миллионов, а не 7 миллиардов?

Звучит как ересь. В эпоху, когда на Kaggle за 5 центов арендуют H100, делать модель меньше 100М — почти самоубийство. Но автор, вероятно, помнил закон Энди Гроува: "Выживают не самые большие, а самые адаптивные".

IoT-устройства — это не дата-центр. Там и 512 КБ RAM — роскошь. Вендоры кладут на весы: либо мощь, либо энергопотребление. GPT-4 сожрёт батарею дрона за 10 секунд инференса. 40 миллионов — это компромисс, который позволяет модели "думать" на батарейке 9V.

Архитектурные кульбиты

Каждый миллион параметров приходилось выгрызать зубами. Автор не использовал стандартный GPT-2 блок — он переписал attention с нуля, заменив softmax на ReLU, убрал position embedding (заменил на RoPE с ультракоротким радиусом) и пожертвовал половиной слоёв feed-forward.

В итоге модель — 8 слоёв, 8 голов внимания, d_model=384. В теории — смех. На практике — для задач типа "включи свет, когда температура упадёт ниже 18°C" — более чем.

💡
Сравните с обзором лучших LLM с tool calling для локального запуска — ни одна из них не поместится на микроконтроллере. Shard — первый претендент.

Ошибка, которая стоила 2 недель

Первая версия датасета была собрана с Wikipedia и Stack Overflow. Модель выдавала "Для запуска холодильника используйте sudo". Забавно? Только не для автора, который хотел получить ассистента для умного дома. Пришлось чистить данные вручную: удалить все мемы, оставить только инструкции по бытовой автоматике, добавить 20 тысяч диалогов с ESP32-логами.

Второй грабль — токенизация. Стандартный SentencePiece не влезал в 2 МБ. Автор написал свой токенизатор на основе байтовых пар с ограничением словаря в 4096 токенов. Любой незнакомый символ — в . Но для 40 миллионов параметров это даже плюс: модель не отвлекается на редкие слова.

Железные ограничения vs. софтверная смекалка

Инференс на ESP32 — это ад. Не в смысле скорости, а в смысле квантизации. Float32 не вмещается. INT8 — едва. Пришлось использовать 4-битную квантизацию с симметричной калибровкой, но даже так модель занимала 18 МБ — больше, чем flash. Автор выкрутился: заморозил веса первого слоя и сделал их int4, остальные — int8. В итоге 14,7 МБ. Влезло.

Кстати, о железе. Если вы думали, что запустить LLM на микроконтроллере — фантастика, взгляните на bare-metal LLM без операционной системы — там вообще UEFI-приложение, которое стартует без Linux. Shard в сравнении — почти тепличные условия.

Что дальше?

Автор выложил код на GitHub под лицензией MIT. Уже есть форки, где Shard подружили с Home Assistant и заставили отвечать на голосовые команды через микрофон ESP32.

Но главное — это прецедент. Если один инженер смог сделать работающую LLM для IoT, значит, вопрос не в деньгах, а в желании обойти ограничения. В 2026 году, когда самостоятельный хостинг LLM стал мейнстримом, Shard показывает: иногда 40 миллионов значат больше, чем 40 миллиардов.

Знаете, что мне нравится в этой истории? Автор не пытался продать курс "Как создать AGI за 7 дней". Он просто взял и сделал. И написал: "Моя модель не умеет писать стихи, но она не спалит ваш дом, если вы перепутали команды". За это и стоит уважать.

Подписаться на канал