Локальный LLM на Raspberry Pi 5: какие модели Llama-семейства реально работают

Автор кейса: Денис Есин (Denbackyard) Технический специалист, разработчик локальных LLM-сценариев 09 Ноябрь 2025

Задача — собрать AI-ассистента, который полностью работает локально на Raspberry Pi 5, без интернета и без обращения к внешним API. Зачем: приватность данных, автономность (важно для офлайн-сценариев), возможность держать ассистента в проектах, где облако недоступно или запрещено. Ограничение — одно: вся вычислительная нагрузка ложится на маленькую плату с активным охлаждением.

Стек платформы. Базовая ОС на Pi 5, Docker для изоляции окружения, Ollama как раннер моделей, открытый WebUI как интерфейс чата. Установка стандартная: docker compose, развёртывание Ollama, подгрузка модели через `ollama pull`, WebUI на нужном порту.

По шагам это выглядит так. Сначала ставишь свежий Raspberry Pi OS 64-bit и обновляешь систему. Дальше Docker — пакеты из официального скрипта, добавление пользователя в группу docker. Поднимается docker-compose.yml с двумя сервисами: Ollama (image `ollama/ollama`, проброс порта 11434, том для хранения весов) и open-webui (image `ghcr.io/open-webui/open-webui:main`, проброс 3000-го порта, подключение к Ollama через внутреннюю сеть). После `docker compose up -d` идёшь в WebUI на 3000-м порту, подгружаешь нужную модель, и она готова к работе.

Активное охлаждение обязательно — без него инференс уходит в throttling в первую же минуту нагрузки. Стандартный пассивный радиатор не справится: Pi 5 под Mistral 7B греется так, что без вентилятора частоту режет с 2.4 ГГц до 1.5 и ниже. Я ставил активный кулер с управляемым PWM — это позволило держать температуру чипа в районе 60–65 °C даже под продолжительной нагрузкой, и плата работала без throttling-провалов.

Модели брал из тех, что разумно поднимаются на 8–16 ГБ RAM. TinyLlama примерно на 1 миллиард параметров. Phi-3 Mini — 3–4 миллиарда. Mistral 7B — семь миллиардов. И мультимодальная LLaVA 7B для экспериментов с распознаванием картинок. Все примеры использовал в q4_K_M-квантовании — это стандартный компромисс между точностью и размером для маленького железа.

Замеры на TinyLlama. Time to first token — 0.2–0.5 секунды, это почти мгновенный отклик в чате. Скорость генерации — 20–35 токенов в секунду. Это полноценный интерактивный режим: пишешь вопрос, ответ начинает идти потоком сразу. По ощущениям — как чат с обычным онлайн-сервисом, только локальный. Качество ответов скромное (модель маленькая), но для роли «ответь на вопрос из FAQ» или «расшифруй короткий текст» хватает.

На Phi-3 Mini картина другая. TTFT 0.5–1.2 секунды — задержка перед первым токеном уже заметная. Скорость 8–15 токенов в секунду — это всё ещё интерактивно, но видно, что модель генерирует не «потоком», а «пунктиром». Качество выше TinyLlama: связнее ответы, лучше держит контекст, разумно структурирует длинные ответы. Я в итоге остановился на ней как на основной модели для большинства задач — баланс скорости и осмысленности.

Mistral 7B — это уже на грани возможностей платы. TTFT 1.2–3.0 секунды, скорость 2–6 токенов в секунду. Интерактивности почти нет: задаёшь вопрос, идёшь делать что-то ещё, через минуту-две возвращаешься читать ответ. По качеству — заметно лучше Phi-3, но платить за это секундами ожидания не всегда оправдано. Запускается и работает, но плата греется сильнее, охлаждение должно быть на максимуме.

Отдельно про LLaVA 7B — это мультимодальная модель, она принимает на вход не только текст, но и картинки. На Pi 5 она работает так же на грани, как Mistral 7B по тексту, но добавляется ещё стадия обработки изображения — это ещё несколько секунд сверху TTFT. Сценарий, где это окупается: локальный ассистент, который смотрит на картинку с камеры (скан документа, фото с прибором) и описывает её содержимое. На потоке такое не пойдёт, но как разовый запрос — работает.

Про квантование. q4_K_M — это четырёхбитное квантование с улучшенным распределением весов; у Ollama-моделей оно по умолчанию для маленького железа. Альтернативы — q5_K_M (чуть точнее, чуть тяжелее) и q8_0 (почти fp16, но размер удваивается и Pi уже не тянет). На практике q4_K_M даёт оптимальный баланс на этом железе: разница в качестве ответа против fp16 заметна только на сложных reasoning-задачах, а выигрыш по памяти и скорости огромный.

Контекст у всех моделей я ограничивал 2–4k токенов. Большие контексты на этом железе бессмысленны: и медленно, и память съедает быстро. Для типовых задач ассистента 2k хватает. Если нужен длинный документ — тут уже надо думать про другое железо, не про Pi.

Что я понял про границы платформы. Модели до ~4 миллиардов параметров на Pi 5 живут хорошо: TinyLlama и Phi-3 Mini интерактивные, можно строить с ними реальный продукт. Семимиллиардные (Mistral 7B и LLaVA 7B) — на грани: запускаются, но требуют терпения и хорошего охлаждения. Всё, что больше 7B — на этой плате практически нецелесообразно: даже если запустится, скорость будет минутами на ответ, и плата уйдёт в throttling.

Сценарии где это работает. Локальный голосовой/текстовый помощник в умном доме — TinyLlama хватает. Чат-бот для FAQ-сценариев на офлайн-стенде (выставка, музей, локальный терминал) — Phi-3 Mini. Прототип для приватной работы с документами, где облако запрещено — Mistral 7B при наличии терпения. Сценарии где не работает: продакшен с много пользователей одновременно, обработка длинных документов, сложный multi-turn-диалог с большим контекстом.

По стабильности — Pi 5 с активным охлаждением держит длительные сессии нормально. У меня плата работала часами под Phi-3 Mini в режиме чата, без перезагрузок и без деградации скорости. Энергопотребление под нагрузкой около 8–10 ватт, то есть от обычного USB-C-блока питания плата живёт без проблем, хороший power supply на 5V/5A обязателен. Слабый блок будет давать просадки напряжения, и плата начнёт ругаться предупреждениями в логе.

Из выводов. Pi 5 с компактной Llama-семейной моделью — это не замена облачному GPT, а дополнение. Он закрывает сценарии, где приватность и автономность важнее скорости и масштаба: офлайн-стенды, домашняя автоматизация, приватная работа с документами в закрытом контуре. Для всего остального остаётся облако или более мощное локальное железо.