Перейти к содержанию
Публикация AiManual

Как запустить LLM на старом железе: гайд по Raspberry Pi, Steam Deck и майнинг-ригам

Подробный гайд по запуску локальных LLM на Raspberry Pi, Steam Deck и майнинг-ригах. Оптимизация моделей, настройка llama.cpp, выбор квантованных версий.

Коротко

Что будет в материале

  1. 01

    Почему старые устройства всё ещё актуальны для LLM?

  2. 02

    Архитектурные особенности каждого устройства

  3. 03

    Выбор моделей для старого железа

  4. 04

    Оптимизация производительности

Почему старые устройства всё ещё актуальны для LLM?

В 2025 году, когда казалось бы, для запуска современных LLM нужны дорогие видеокарты и серверные процессоры, многие энтузиасты открывают для себя удивительную вещь: старые устройства всё ещё могут запускать языковые модели. И речь не только о базовых задачах, но и о полноценной работе с 7B-13B параметрическими моделями.

Три основных направления, которые мы рассмотрим в этом гайде:

  • Raspberry Pi — одноплатные компьютеры с ARM-архитектурой
  • Steam Deck — игровые консоли с x86-64 и встроенной графикой
  • Майнинг-риги — системы с множеством старых видеокарт

Ключевой прорыв — квантование моделей. Современные методы 4-битного и даже 3-битного квантования позволяют уменьшить размер моделей в 4-8 раз практически без потери качества для инференса.

Архитектурные особенности каждого устройства

УстройствоАрхитектураПамятьРекомендуемые модели
Raspberry Pi 4/5ARM644-8 ГБ RAMTinyLlama, Phi-2, Qwen2.5-1.5B
Steam Deckx86-64 + RDNA216 ГБ RAM + 512 МБ VRAMQwen2.5-7B, Granite-7B, Mistral-7B
Майнинг-риг (RX 580)x86-64 + GCN8+ ГБ VRAM на карту13B-модели с разделением по слоям

1Raspberry Pi: ARM-оптимизация и ограничения

Raspberry Pi — самый экзотический вариант для запуска LLM. ARM-архитектура требует специальной сборки llama.cpp, но результаты могут удивить.

Первым делом нужно собрать llama.cpp с оптимизациями для ARM:

# Устанавливаем зависимости
sudo apt update
sudo apt install build-essential cmake git

# Клонируем репозиторий
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

# Собираем с ARM-оптимизациями
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DLLAMA_CUBLAS=OFF -DLLAMA_METAL=OFF
make -j4
💡
Для Raspberry Pi 5 с 8 ГБ RAM можно пробовать Qwen2.5-3B в 4-битном квантовании. Скорость генерации будет около 1-2 токенов в секунду, что достаточно для автономных задач.

Рекомендуемая конфигурация для Pi 4/5:

  • Используйте Q4_K_M квантование — лучший баланс качества/размера
  • Включайте swap-файл (минимум 4 ГБ) для работы с моделями больше RAM
  • Используйте охлаждение — LLM загружают CPU на 100%

2Steam Deck: игровая консоль как LLM-станция

Steam Deck — это фактически полноценный ПК с процессором Zen 2 и графикой RDNA 2. В режиме Desktop можно установить Linux и получить доступ ко всем 16 ГБ памяти.

Особенность Steam Deck — общая память CPU/GPU. Это позволяет гибко распределять ресурсы:

# Устанавливаем llama.cpp с поддержкой Vulkan
sudo pacman -S base-devel cmake git vulkan-headers
cd llama.cpp
mkdir build && cd build
cmake .. -DLLAMA_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
make -j8

# Настройка UMA Buffer для выделения памяти GPU
# В BIOS Steam Deck: Settings -> Power -> UMA Frame Buffer Size -> 4G

Внимание: Vulkan-бэкенд в llama.cpp всё ещё экспериментальный. Для стабильной работы лучше использовать CPU-режим с частичным offload на GPU.

Конфигурация запуска для 7B моделей:

# Запуск с offload 20 слоёв на GPU
./main -m models/qwen2.5-7b-q4_k_m.gguf \
  -n 512 --temp 0.7 \
  --repeat_penalty 1.1 \
  -ngl 20 \
  -p "Вопрос: Как работает Steam Deck?"

Ожидаемая производительность: 5-8 токенов/сек для Qwen2.5-7B. Это уже практическая скорость для диалогов.

3Майнинг-риги: второе дыхание старых видеокарт

Старые майнинг-риги с RX 580, GTX 1080 Ti и другими картами 2016-2018 годов получают вторую жизнь. Ключевое преимущество — много видеопамяти (часто 8 ГБ на карту).

Основная проблема — поддержка ROCm для AMD и CUDA для старых NVIDIA. Решение — использовать llama.cpp в LXC-контейнерах с прямым доступом к GPU.

Настройка для AMD RX 580 (8 ГБ):

# Установка ROCm для старых карт GCN
wget https://repo.radeon.com/amdgpu-install/latest/ubuntu/jammy/amdgpu-install_6.1.60100-1_all.deb
sudo apt install ./amdgpu-install_6.1.60100-1_all.deb
sudo amdgpu-install --usecase=rocm

# Сборка llama.cpp с поддержкой ROCm
cd llama.cpp
mkdir build && cd build
cmake .. -DLLAMA_HIPBLAS=ON -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_C_COMPILER=/opt/rocm/bin/hipcc \
  -DCMAKE_CXX_COMPILER=/opt/rocm/bin/hipcc
make -j$(nproc)

Для многокарточных конфигураций используйте layer splitting:

# Распределение слоёв по двум картам
./main -m models/granite-13b-q4_k_m.gguf \
  -ngl 20 \
  --tensor-split 10,10 \
  -p "Вопрос: Как настроить многокарточную конфигурацию?"
💡
Старые карты NVIDIA (Pascal, Maxwell) могут работать через CUDA 11.x, но требуют специальных сборок llama.cpp. Для GTX 1080 Ti (11 ГБ) можно запускать 13B модели полностью в VRAM.

Выбор моделей для старого железа

Не все модели одинаково хорошо работают на ограниченных ресурсах. Рекомендую начинать с этих вариантов:

МодельРазмер (Q4)Требования RAMГде работает
Qwen2.5-1.5B~0.9 ГБ2 ГБRaspberry Pi 4, старые ноутбуки
Granite-3B~1.8 ГБ4 ГБRaspberry Pi 5, Steam Deck
Mistral-7B~4.2 ГБ8 ГБSteam Deck, ПК с 16 ГБ RAM
Qwen2.5-7B~4.5 ГБ8 ГБМайнинг-риги, системы с GPU
Granite-13B~7.8 ГБ12 ГБМногокарточные системы

Для загрузки моделей рекомендую Hugging Face и их квантованные версии в формате GGUF. Особенно хороши репозитории TheBloke, где есть готовые Q4_K_M версии большинства популярных моделей.

Оптимизация производительности

Настройка параметров llama.cpp

Ключевые параметры для старого железа:

./main -m model.gguf \
  -c 2048 \           # Контекст (меньше = быстрее)
  -b 512 \            # Batch size
  -t 6 \              # Количество потоков CPU
  -ngl 99 \           # Слои на GPU (99 = все возможные)
  --mlock \           # Фиксация модели в RAM
  --no-mmap \         # Отключение mmap для старых дисков
  --temp 0.8 \        # Креативность
  --repeat-penalty 1.1 # Штраф за повторения

Оптимизация памяти

Для устройств с ограниченной RAM критически важны:

  • ZRAM — сжатие оперативной памяти в реальном времени
  • Huge Pages — уменьшение overhead памяти ядра
  • OOM Killer настройка — приоритизация llama.cpp процессов

Настройка ZRAM на Raspberry Pi:

# Установка и настройка zram
sudo apt install zram-config
sudo nano /etc/default/zramswap

# Изменяем параметры:
ALGO=lz4
PERCENT=100
PRIORITY=100

Реальные кейсы использования

Автономный ассистент на Raspberry Pi

Raspberry Pi 5 с 8 ГБ RAM может работать как автономный голосовой ассистент с локальной LLM. Используйте комбинацию:

  1. Qwen2.5-1.5B для понимания запросов
  2. Local TTS (Piper) для генерации речи
  3. Vosk для распознавания речи

Скорость ответа: 2-3 секунды на простые запросы.

Исследовательская станция на Steam Deck

Steam Deck в док-станции с монитором — отличная портативная LLM-лаборатория. Можно:

  • Анализировать научные статьи (загружать PDF через llama.cpp)
  • Писать код с локальным Copilot-аналогом
  • Экспериментировать с разными моделями без облака

Сервер инференса на майнинг-риге

Старый майнинг-риг с 6x RX 580 (48 ГБ VRAM) может обслуживать несколько пользователей одновременно через llama.cpp RPC-server.

Такой сервер может обрабатывать до 5-10 запросов в минуту на 13B модели, что сравнимо с базовыми облачными предложениями, но полностью локально и бесплатно после первоначальных инвестиций в железо.

Распространённые ошибки и их решение

ПроблемаПричинаРешение
Segmentation fault при запускеНедостаток RAM или неправильная сборкаПроверить free -h, пересобрать без AVX2
Очень медленная генерацияСлишком большой контекст или batchУменьшить -c и -b параметры
CUDA/ROCm ошибкиСтарые драйверы или картыИспользовать CPU-only или более старые версии ROCm
Модель не загружаетсяНеправильный формат или повреждениеСкачать заново, проверить sha256

Сравнение с другими подходами

Почему именно старое железо, а не:

  • Облачные API — локальность, приватность, нет абонплаты
  • Новое железо — цена, доступность, экологичность (reuse)
  • Серверные решения — простота, низкое энергопотребление

Как показывают исследования в статье Local LLM vs API, старое железо окупается уже через 3-6 месяцев активного использования по сравнению с облачными API.

Будущее старых устройств в эпоху LLM

Тенденции на 2025-2026 годы:

  1. Ещё более эффективное квантование (2-битное с приемлемым качеством)
  2. Специализированные маленькие модели для edge-устройств
  3. Улучшение поддержки старых GPU в фреймворках
  4. Распределённые вычисления между разными типами устройств

Старое железо не умерло — оно нашло новое применение в эпоху локального ИИ. С каждым месяцем инструменты становятся лучше, а сообщество находит новые способы выжать максимум из казалось бы устаревшего оборудования.

💡
Начинайте с самых маленьких моделей и постепенно увеличивайте сложность. Даже TinyLlama на Raspberry Pi может быть полезен для простых задач классификации и извлечения информации.

FAQ частые вопросы

Какая минимальная RAM нужна для запуска LLM?

Абсолютный минимум — 2 ГБ RAM для 1.5B моделей в Q4. Для комфортной работы с 7B моделями нужно 8+ ГБ RAM. Подробнее в статье про минимальные требования VRAM.

Можно ли запустить Stable Diffusion на том же железе?

Да, многие принципы аналогичны. Смотрите гайд по Stable Diffusion на старом железе.

Что лучше: много старых карт или одна новая?

Для обучения — однозначно новая карта с большей VRAM. Для инференса — несколько старых карт могут быть выгоднее по цене за ГБ VRAM.

Как избежать перегрева?

Обязательно:

  • Мониторить температуру (lm-sensors, nvidia-smi)
  • Настроить троттлинг при превышении 80°C
  • Использовать активное охлаждение
  • Рассмотреть андервольтинг для снижения тепловыделения

Стоит ли покупать старое железо специально для LLM?

Только если вы получаете его по очень хорошей цене (например, майнинг-риг за 30% от первоначальной стоимости). В остальных случаях лучше рассмотреть оптимальные конфигурации для LLM.