В 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" — более чем.
Ошибка, которая стоила 2 недель
Первая версия датасета была собрана с Wikipedia и Stack Overflow. Модель выдавала "Для запуска холодильника используйте sudo". Забавно? Только не для автора, который хотел получить ассистента для умного дома. Пришлось чистить данные вручную: удалить все мемы, оставить только инструкции по бытовой автоматике, добавить 20 тысяч диалогов с ESP32-логами.
Второй грабль — токенизация. Стандартный SentencePiece не влезал в 2 МБ. Автор написал свой токенизатор на основе байтовых пар с ограничением словаря в 4096 токенов. Любой незнакомый символ — в
Железные ограничения 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 дней". Он просто взял и сделал. И написал: "Моя модель не умеет писать стихи, но она не спалит ваш дом, если вы перепутали команды". За это и стоит уважать.