TensorFlow Lite Micro и инструменты для микроконтроллерного ИИ

Языковые модели на микроконтроллере звучат абсурдно, и до недавнего времени так оно и было. ESP32-S3 имеет 512 КБ SRAM и до 32 МБ внешней PSRAM. Полезная модель чата требует гигабайт. Изменение, которое произошло в 2025 году, — это квантованные наномодели: трансформеры с 20–30 миллионами параметров, квантованные в INT8, оптимизированные для узкой задачи, которые помещаются между «обнаружением ключевых слов» и «облачным LLM». В недавней статье XDA описано развёртывание модели с 28,9M параметрами на ESP32-S3, и в комментариях стало ясно, что главный вопрос — не «могу ли я это сделать», а «какие инструменты я использую». Ниже представлены семь приложений для рабочего стола, которые мы установили бы в первую очередь.

На что обратить внимание при выборе набора инструментов для микроконтроллерного LLM

Быстрое сравнение

Приложение Лучше всего подходит для Платформы Бесплатный план Примечание
TensorFlow Lite Micro Стандартный рантайм вывода для микроконтроллеров Windows, macOS, Linux Да Библиотека на C++, интегрируется с любым набором инструментов
Edge Impulse Studio Конвейер от данных к прошивке Веб + настольный CLI Бесплатный уровень Обучение и развёртывание моделей из браузера
PlatformIO Кроссплатформенная сборка внутри VS Code Windows, macOS, Linux Да Обрабатывает ESP32, RP2040, nRF, STM32 в одном проекте
ESP-IDF Официальный SDK от Espressif Windows, macOS, Linux Да Первоклассная поддержка ESP32-S3 PSRAM и ускорителей ИИ
Arduino IDE 2 Удобное развёртывание для начинающих Windows, macOS, Linux Да Теперь изначально поддерживает пакеты плат ESP32
TinyMaix Самый лёгкий рантайм для крошечных моделей Linux, macOS, Windows Да Ядро вывода из 400 строк, INT8-дружественное
llama.cpp Кроссплатформенный запуск маленьких моделей Windows, macOS, Linux Да Эталон для малого трансформерного вывода

Приложения

1. TensorFlow Lite Micro — лучший стандартный рантайм

TensorFlow Lite Micro (TFLM) — это рантайм, на который стандартизуются большинство проектов микроконтроллерного ИИ. Это библиотека на C++ без динамического выделения памяти, без зависимостей ОС и без доступа к файловой системе. Espressif поставляет официальный компонент ESP-IDF, который добавляет ядра ESP-NN для S3, поэтому INT8 свёртки и плотные слои работают в четыре-восемь раз быстрее, чем эталонные ядра. Если вы новичок в микроконтроллерном ИИ, это рантайм, который предполагают туториалы.

Где это не подходит: API на C++ и беспощадный. Отладка неправильного входа модели часто заканчивается трассировкой стека на последовательном порту.

Цены:

Платформы: набор инструментов для рабочего стола работает на Windows, macOS, Linux

Загрузка: github.com/tensorflow/tflite-micro

Итог: первая библиотека для добавления в новый проект микроконтроллерного ИИ.

2. Edge Impulse Studio — лучший конвейер от данных к прошивке

Edge Impulse Studio — это приложение браузера, которое проведёт вас от записи датчика к развертываемому бинарному файлу прошивки. Загрузите данные, разметьте их, выберите архитектуру модели, обучите, и оно генерирует библиотеку на C++ или полный набросок Arduino, настроенный для целевой платы. Поддержка ESP32-S3, nRF52840, Nicla Vision и Nano 33 BLE Sense глубока. Настольный CLI позволяет вам писать весь конвейер для CI скриптом.

Где это не подходит: бесплатный уровень ограничивает время обучения и размер набора данных. Продвинутые архитектуры требуют уровня enterprise.

Цены:

Платформы: веб-приложение плюс CLI для Windows, macOS, Linux

Загрузка: edgeimpulse.com

Итог: выбор, когда вы предпочитаете обучаться в браузере, а не в Colab.

3. PlatformIO — лучшая кроссплатформенная сборочная среда

PlatformIO — это расширение VS Code, которое превращает один проект в сборку для любой из сотни плат. Переключайте цель с ESP32-S3 на RP2040 на nRF52 с двухстрочным изменением в platformio.ini. Библиотеки TensorFlow Lite Micro, TinyMaix и Edge Impulse устанавливаются через встроенный менеджер пакетов. Интеграция отладчика работает с любым зондом J-Link или ST-Link.

Где это не подходит: начальная загрузка тяжелая. Производительность при первом запуске медленная на Windows.

Цены:

Платформы: Windows, macOS, Linux (как расширение VS Code)

Загрузка: platformio.org

Итог: среда, которая сохраняет один и тот же проект живым на трёх поставщиков чипов.

4. ESP-IDF — лучше всего, когда целью является именно ESP32-S3

ESP-IDF — официальная платформа Espressif. Если проект привержен семейству ESP32-S3, это самые глубокие инструменты: собственные распределители PSRAM, ядра первой стороны ESP-NN и встроенная поддержка OTA-обновлений. CLI idf.py управляет menuconfig, flash, monitor и модульными тестами. Хорошо сочетается с TFLM и TinyMaix.

Где это не подходит: только ESP32. Ранняя блокировка ограничивает портативность.

Цены:

Платформы: Windows, macOS, Linux

Загрузка: github.com/espressif/esp-idf

Итог: платформа, когда вы знаете, что целью является ESP32.

5. Arduino IDE 2 — лучше всего для первого проекта микроконтроллерного ИИ

Arduino IDE 2 — это то, с чего начинает большинство людей. Менеджеры плат для ESP32, RP2040 и nRF — в один клик, TensorFlow Lite Micro доступен как встроенная библиотека, и последовательный монитор прямо в приложении. Переписанная версия 2.x добавила настоящий отладчик и набросок для каждого проекта.

Где это не подходит: более медленные сборки, чем PlatformIO или ESP-IDF, и меньше контроля над флагами компиляции.

Цены:

Платформы: Windows, macOS, Linux

Загрузка: arduino.cc/en/software

Итог: пусть, который большинство первых проектов использует перед тем, как перейти на PlatformIO.

6. TinyMaix — лучший рантайм для самых маленьких моделей

TinyMaix — это рантайм, к которому вы прибегаете, когда TFLM слишком велик. Весь механизм вывода — это примерно 400 строк C. Он поддерживает квантованные модели INT8 и INT16, вывод только целых чисел и платы с такой малой памятью, как 30 КБ. Идеален для крошечных декодеров трансформеров, которым нужно только поздороваться, классифицировать или маршрутизировать.

Где это не подходит: более узкое покрытие операций, чем TFLM. Пользовательские слои могут потребоваться переносить вручную.

Цены:

Платформы: кросс-компилируется из Windows, macOS, Linux

Загрузка: github.com/sipeed/TinyMaix

Итог: рантайм для момента «это вообще помещается».

7. llama.cpp — лучше всего для продвижения потолка того, что может вместить микроконтроллер

llama.cpp не является традиционным рантайма микроконтроллера, но сообщество перенесло его на ESP32-S3, RP2350 и даже платы Milk-V RISC-V в исследовательских целях. Если модель в игре — это трансформер с 20–60 миллионами параметров, полученный из современной базы, конвейер квантования GGUF llama.cpp позволяет вам сжать его до чего-то, что плата может вместить. Работает сначала на рабочем столе для прототипирования, затем кросс-компилируется.

Где это не подходит: интеграция цикла вывода в встроенную RTOS — ручная работа. Производительность в реальном времени зависит от агрессивного квантования.

Цены:

Платформы: кросс-компилируется из Windows, macOS, Linux

Загрузка: github.com/ggml-org/llama.cpp

Итог: эталонный рантайм для всех, кто сжимает «настоящий» трансформер на плату.

Как выбрать правильный

FAQ

Может ли ESP32-S3 действительно запустить языковую модель? Крошечный. Менее 30 миллионов параметров, квантованный INT8, одна узкая задача. Не ожидайте ChatGPT. Ожидайте классификацию намерений, структурированное извлечение или короткие написанные сценарии, которые лучше, чем подстановка шаблонов.

В чём разница между TFLM и TinyMaix? TFLM — это поддерживаемый Google, более широкий рантайм с лучшим покрытием операций и ядрами поставщиков. TinyMaix — это более лёгкий рантайм, разработанный для наименьших устройств. Используйте TFLM по умолчанию; переключитесь на TinyMaix, когда TFLM не поместится.

Мне нужна ESP-IDF, если я использую PlatformIO? PlatformIO поставляет копию ESP-IDF под капотом. Вы получаете один и тот же рантайм, завёрнутый в более дружелюбную систему сборки. Используйте ESP-IDF напрямую только, когда вам нужны последние функции или точная настройка CI от Espressif.

Может ли Edge Impulse обучать LLM для микроконтроллеров? Пока нет. Каталог моделей Edge Impulse охватывает варианты CNN, RNN и трансформера, размер которых подходит для классификации и обнаружения, а не для создания языка. Для работы с LLM обучайте на PyTorch и используйте llama.cpp или TinyMaix для развёртывания.

Действительно ли llama.cpp пригоден для использования на микроконтроллере? Для исследований и демонстраций — да. Развёртывание производственного уровня обычно переключается на TFLM или TinyMaix, как только архитектура модели будет установлена, потому что их объём памяти более компактен и их интеграция в сборки RTOS более чистая.