Запуск LLM на Raspberry Pi: защита microSD и оптимизация | AiManual
AiManual Logo Ai / Manual.
10 Янв 2026 Гайд

Запуск LLM на Raspberry Pi: как избежать износа microSD и оптимизировать setup

Подробный гайд по запуску локальных LLM на Raspberry Pi без убийства карты памяти. Настройка Ollama, перенос на SSD, оптимизация swap и памяти.

Почему ваш Raspberry Pi убивает microSD карты (и как это остановить)

Вы установили Ollama, скачали пару моделей и теперь ваш Raspberry Pi 5 превратился в компактную LLM-станцию. Все работает, но через месяц карта памяти начинает глючить. Еще через неделю - система не загружается. Знакомо?

Проблема не в плохих картах. Проблема в том, как LLM работают с памятью. Когда модель не помещается в оперативку (а на Raspberry Pi это почти всегда), система начинает активно использовать swap. А swap на microSD - это смертельный приговор для флеш-памяти.

Каждая запись в swap - это запись на microSD. LLM постоянно подгружают веса моделей, работают с контекстом, сохраняют промежуточные результаты. За день таких операций - десятки тысяч. Карта просто не рассчитана на такой режим работы.

Первое правило - выкиньте microSD

Серьезно. Если вы планируете серьезно работать с LLM на Raspberry Pi, microSD - не вариант. Даже самая дорогая карта с высокой выносливостью прослужит максимум несколько месяцев.

Что делать вместо этого?

1 Переходим на внешний SSD

Raspberry Pi 5 имеет USB 3.0 порты с достаточной скоростью для работы системы. Возьмите любой внешний SSD (даже самый дешевый) - его выносливость в разы выше microSD.

Как перенести систему:

# Клонируем microSD на SSD
sudo dd if=/dev/mmcblk0 of=/dev/sda bs=4M status=progress

# Расширяем файловую систему на SSD
sudo raspi-config
# Advanced Options -> Expand Filesystem

После этого загружайтесь с SSD и никогда не возвращайтесь к microSD для LLM задач.

💡
Не используйте USB-флешки как альтернативу SSD. У них та же проблема с выносливостью, что и у microSD. Только полноценный SSD с контроллером и NAND-памятью.

Настройка swap: не убить SSD

Даже на SSD бесконтрольный swap опасен. Но полностью отключать его нельзя - модели не влезут в оперативку.

Вот как настроить swap правильно:

# Сначала отключаем текущий swap
sudo dphys-swapfile swapoff
sudo systemctl stop dphys-swapfile

# Редактируем конфиг
sudo nano /etc/dphys-swapfile

# Меняем только одну строку:
CONF_SWAPSIZE=2048  # Размер в MB

# Для Raspberry Pi 5 с 8GB RAM:
# Если планируете запускать модели до 7B параметров - 2048MB
# Для моделей побольше (13B) - 4096MB
# Больше 4096MB смысла нет - скорость работы упадет катастрофически

Перезапускаем swap:

sudo systemctl start dphys-swapfile
sudo dphys-swapfile setup

Оптимизация Ollama под Raspberry Pi

Стандартная установка Ollama - это хорошо, но не оптимально для маломощного железа.

2 Установка с оптимизациями

# Устанавливаем Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Сразу настраиваем лимиты
sudo nano /etc/systemd/system/ollama.service.d/limits.conf

# Добавляем:
[Service]
LimitNOFILE=65536
LimitMEMLOCK=infinity

# Перезапускаем
sudo systemctl daemon-reload
sudo systemctl restart ollama

3 Конфигурация моделей

Создаем файл конфигурации для моделей:

mkdir -p ~/.ollama/models
nano ~/.ollama/models/custom-config.json
{
  "num_ctx": 2048,  # Уменьшаем контекст для экономии памяти
  "num_thread": 4,  # Количество потоков (для Pi 5 - 4)
  "num_gpu_layers": 0,  # На Raspberry Pi GPU слоев нет
  "main_gpu": 0,
  "low_vram": true,  # Критически важная настройка!
  "f16_kv": false,   # Экономия памяти
  "vocab_only": false,
  "use_mmap": true,  # Используем mmap для работы с файлами
  "use_mlock": false  # Не блокируем память в RAM
}

Теперь запускаем модель с этими параметрами:

OLLAMA_MODELS=~/.ollama/models ollama run llama3.2:1b --config ~/.ollama/models/custom-config.json

Выбор моделей: что реально запустится на Raspberry Pi

Не пытайтесь запустить 7B модель на Raspberry Pi 4 с 4GB RAM. Это физически невозможно. Даже с swap.

Модель Размер (GGUF) Минимум RAM Скорость (токенов/с)
TinyLlama 1.1B 0.7 GB 2 GB 15-20
Phi-2 2.7B 1.6 GB 3 GB 8-12
Llama 3.2 1B 0.6 GB 2 GB 20-25
Qwen2.5 0.5B 0.3 GB 1 GB 30-40

Для Raspberry Pi 5 с 8GB RAM можно пробовать модели до 3B параметров. Но готовьтесь к скорости 2-5 токенов в секунду. Это не для чата, это для экспериментов.

Оптимизация файловой системы

EXT4 по умолчанию - не лучший выбор для SSD с активным swap. Меняем настройки:

# Смотрим текущие параметры монтирования
cat /proc/mounts | grep /dev/sda1

# Редактируем fstab
sudo nano /etc/fstab

# Для раздела с системой добавляем параметры:
# noatime,nodiratime,discard,errors=remount-ro

# Пример:
UUID=ваш-uuid / ext4 defaults,noatime,nodiratime,discard,errors=remount-ro 0 1

noatime, nodiratime - отключают запись времени доступа к файлам. Для LLM это бесполезная нагрузка на SSD.

discard - включает TRIM для SSD. Важно для продления жизни накопителя.

Мониторинг износа SSD

Как понять, что ваш SSD еще жив?

# Устанавливаем smartmontools
sudo apt install smartmontools -y

# Смотрим информацию о SSD
sudo smartctl -a /dev/sda

# Особенно важны эти параметры:
# 177 Wear Leveling Count
# 179 Used Reserved Block Count
# 241 Total_LBAs_Written

# Можно настроить мониторинг
sudo nano /etc/smartd.conf

# Добавляем:
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m ваш@email.com

Что делать, если нужно больше мощности?

Raspberry Pi 5 - отличная платформа для экспериментов, но для серьезных LLM задач ее не хватит. Два варианта:

  1. Подключение eGPU - Raspberry Pi 5 имеет PCIe 2.0 x1. Можно подключить внешнюю GPU через адаптер. Подробности в нашей статье про подключение eGPU к Raspberry Pi.
  2. Сетевой инференс - запускайте тяжелые модели на более мощном сервере, а Raspberry Pi используйте как тонкий клиент. Ollama поддерживает удаленные соединения.

Частые ошибки (и как их не совершать)

Ошибка 1: Запуск модели без ограничения контекста. Результат - система пытается выделить память под максимальный контекст (обычно 4096 токенов) и падает.

# КАК НЕ НАДО
ollama run llama2

# КАК НАДО
ollama run llama2 --num_ctx 1024

Ошибка 2: Одновременный запуск нескольких моделей. На Raspberry Pi это гарантированное переполнение памяти.

# Останавливаем все перед запуском новой модели
ollama list
ollama stop имя_модели
# Только потом запускаем новую

Ошибка 3: Использование высокобитных квантований. На маломощном железе каждый бит на счету.

Выбирайте Q4_K_M или Q3_K_S вместо Q5_K_M. Разница в качестве минимальна, а в памяти и скорости - огромна. Подробнее о выборе квантования читайте в нашем руководстве по GGUF.

Автоматизация и мониторинг

Создаем простой скрипт для контроля:

#!/bin/bash
# llm-monitor.sh

# Проверяем память
MEM_USED=$(free -m | awk 'NR==2{print $3}')
MEM_TOTAL=$(free -m | awk 'NR==2{print $2}')
MEM_PERCENT=$((MEM_USED*100/MEM_TOTAL))

# Проверяем swap
SWAP_USED=$(free -m | awk 'NR==3{print $3}')

# Проверяем температуру
TEMP=$(vcgencmd measure_temp | cut -d= -f2 | cut -d\' -f1)

echo "Memory: ${MEM_PERCENT}% used"
echo "Swap used: ${SWAP_USED}MB"
echo "CPU Temp: ${TEMP}°C"

# Если swap больше 50% от размера - предупреждение
if [ $SWAP_USED -gt 1024 ]; then
  echo "WARNING: High swap usage! Consider using smaller model."
fi

Добавляем в cron для проверки каждые 5 минут:

crontab -e

# Добавляем строку:
*/5 * * * * /home/pi/llm-monitor.sh >> /var/log/llm-monitor.log

Итог: Raspberry Pi как LLM-платформа

Можно ли использовать Raspberry Pi для LLM? Да, но с пониманием ограничений. Это платформа для:

  • Экспериментов с tiny-моделями (до 3B параметров)
  • Образовательных целей
  • Прототипирования IoT-решений с AI
  • Специализированных задач (классификация текста, simple QA)

Не стоит ждать от Raspberry Pi чудес. Скорость генерации будет низкой, контекст - ограниченным. Но зато вы получите полностью локальную, автономную систему без облаков и API-ключей.

Если нужна серьезная мощность - собирайте отдельный AI-сервер или используйте старые рабочие станции, как в гайде по Dell T7910.

Главное - не убивайте microSD карты. Переходите на SSD, настраивайте swap и мониторьте состояние системы. Тогда ваш Raspberry Pi прослужит долго, даже с постоянными экспериментами с LLM.