Ферма из б/у видеокарт для LLM: полный гайд по сборке и настройке в 2025 | AiManual
AiManual Logo Ai / Manual.
29 Дек 2025 Гайд

Собрал ферму из 6 б/у видеокарт. Вот как заставить их работать на локальные LLM в 2025

Подробный гайд по сборке и настройке фермы из 6 б/у видеокарт для запуска локальных языковых моделей (LLM) с помощью Ollama и распределенных вычислений.

2025 год на дворе, а доступ к мощным GPU для экспериментов с ИИ по-прежнему стоит дорого. Но что, если я скажу вам, что за 30-40% от стоимости одной новой RTX 4090 можно собрать целую ферму, способную запускать модели уровня Qwen2.5-32B? Этот гайд — результат моего эксперимента по сборке рабочей системы из шести б/у видеокарт. Я расскажу не только как это сделать, но и почему каждый шаг важен, какие подводные камни ждут и как их обойти.

Проблема: дорогой хлеб для ИИ-масла

Локальные языковые модели требуют огромных объемов видеопамяти (VRAM). Модель на 70 миллиардов параметров может "съесть" 40+ ГБ. Покупать новые карты — разорительно. Б/у карты с майнинговых ферм (часто RTX 3060 12GB, RTX 3080 10GB) продаются за копейки, но имеют две проблемы: износ и сложность управления несколькими GPU в одной системе. Главный вызов — заставить их работать вместе, а не как набор отдельных ускорителей.

💡
Если вы сомневаетесь, хватит ли 10 ГБ VRAM для ваших задач, ознакомьтесь с нашим гайдом «Можно ли запустить локальную LLM на 10 ГБ видеопамяти?». Он поможет оценить требования.

Решение: распределение нагрузки и правильный софт

Мы не будем пытаться заставить одну модель работать на всех картах сразу (это сложно и поддерживается не всеми фреймворками). Вместо этого используем стратегию распределения запросов (inference routing). Несколько инстансов Ollama (или другого сервера) будут запущены на разных GPU, а балансировщик нагрузки (например, Nginx) будет распределять промпты между ними. Это дает отказоустойчивость и позволяет загружать разные модели на разные карты.

1 Выбор и подготовка железа

Моя конфигурация (бюджет ~1500$):

  • Видеокарты (6 шт.): 3x RTX 3060 12GB + 3x RTX 3080 10GB. Все — б/у с майнинговых ферм. Ключевой параметр — объем VRAM.
  • Материнская плата: ASUS Prime Z790-P (имеет 4 слота PCIe x16, но мы используем райзеры и сплиттеры).
  • Блок питания: Be Quiet! Dark Power 13 1600W. Важно: мощность с запасом 30% и достаточное количество кабелей PCIe.
  • Процессор и ОЗУ: Intel Core i5-13600K, 64 GB DDR5. CPU не критичен, но многоядерность поможет в препроцессинге.
  • Охлаждение: Открытый стенд или серверная стойка с мощными вентиляторами 120-140 мм. Температура — враг №1.

Перед покупкой б/у карт обязательно протестируйте их под нагрузкой (FurMark, 20 минут). Обращайте внимание на температуру памяти (junction temperature) — она должна быть стабильной и не превышать 95-100°C. Карты с перегревом памяти долго не проживут.

2 Установка ОС и драйверов: Linux или WSL2?

Для максимальной производительности и контроля — чистый Linux (Ubuntu 24.04 LTS). Но если вы привязаны к Windows для других задач, используйте WSL2 с полной интеграцией GPU.

Команды для Ubuntu 24.04:

# Обновляем систему
sudo apt update && sudo apt upgrade -y

# Устанавливаем драйверы NVIDIA (версия 560+)
sudo apt install nvidia-driver-560 nvidia-utils-560

# Устанавливаем CUDA Toolkit (12.5)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-toolkit-12-5

# Перезагружаемся
sudo reboot

После перезагрузки проверяем, что все карты видны:

nvidia-smi

Вы должны увидеть список из 6 GPU с их температурой и загрузкой памяти. Если какой-то карты нет — проверьте физическое подключение и питание.

💡
Плотный монтаж нескольких карт ведет к перегреву. Изучите наш тест «4 видеокарты RTX Pro 6000 вплотную», чтобы понять, как температура влияет на производительность и долговечность.

3 Установка и настройка Ollama с привязкой к GPU

Ollama — наш главный инструмент для запуска LLM. Устанавливаем его и настраиваем переменные окружения для управления GPU.

# Установка Ollama (Linux)
curl -fsSL https://ollama.com/install.sh | sh

# Запускаем сервис
sudo systemctl enable ollama
sudo systemctl start ollama

По умолчанию Ollama использует все доступные GPU. Нам нужно запустить несколько инстансов, каждый на своем GPU. Создаем systemd-сервисы для каждого.

# Создаем конфигурационный файл для первого инстанса (GPU 0)
sudo tee /etc/systemd/system/ollama-gpu0.service << EOF
[Service]
ExecStart=/usr/bin/ollama serve
Environment="OLLAMA_HOST=0.0.0.0:11435"
Environment="CUDA_VISIBLE_DEVICES=0"
User=ollama
Group=ollama
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# Аналогично создаем ollama-gpu1.service (CUDA_VISIBLE_DEVICES=1) и т.д. до 5.

Запускаем и проверяем инстансы:

sudo systemctl daemon-reload
sudo systemctl start ollama-gpu0
sudo systemctl start ollama-gpu1
# ... и так для всех шести

# Проверяем статус
sudo systemctl status ollama-gpu0

4 Загрузка моделей и распределение по GPU

Теперь загружаем модели, учитывая объем VRAM на каждой карте. На RTX 3060 (12 ГБ) можно запустить более тяжелые модели, чем на RTX 3080 (10 ГБ).

# Для инстанса на GPU0 (RTX 3060 12GB) загружаем Qwen2.5-14B
OLLAMA_HOST=http://localhost:11435 ollama pull qwen2.5:14b

# Для инстанса на GPU1 (RTX 3080 10GB) загружаем Qwen2.5-7B
OLLAMA_HOST=http://localhost:11436 ollama pull qwen2.5:7b

Важно: каждый инстанс слушает на своем порту (11435, 11436, ... 11440).

5 Настройка балансировщика нагрузки (Nginx)

Nginx будет распределять входящие запросы между нашими шестью инстансами Ollama. Устанавливаем и настраиваем его.

sudo apt install nginx -y

Создаем конфигурацию для балансировки:

sudo nano /etc/nginx/sites-available/ollama-cluster

Вставляем следующую конфигурацию:

upstream ollama_backend {
    server 127.0.0.1:11435; # GPU0
    server 127.0.0.1:11436; # GPU1
    server 127.0.0.1:11437; # GPU2
    server 127.0.0.1:11438; # GPU3
    server 127.0.0.1:11439; # GPU4
    server 127.0.0.1:11440; # GPU5
}

server {
    listen 8080;
    server_name localhost;

    location / {
        proxy_pass http://ollama_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_buffering off;
        proxy_request_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }

    # Длинные таймауты для генерации текста
    proxy_connect_timeout 600s;
    proxy_send_timeout 600s;
    proxy_read_timeout 600s;
}

Активируем конфиг и перезапускаем Nginx:

sudo ln -s /etc/nginx/sites-available/ollama-cluster /etc/nginx/sites-enabled/
sudo nginx -t  # Проверяем синтаксис
sudo systemctl restart nginx

6 Тестирование и мониторинг

Теперь наша ферма готова. Проверим ее работу, отправив запрос через балансировщик:

curl http://localhost:8080/api/generate -d '{
  "model": "qwen2.5:7b",
  "prompt": "Объясни, как работает квантовая запутанность",
  "stream": false
}'

Для мониторинга используем комбинацию nvidia-smi, htop и можно настроить Grafana с Prometheus для сбора метрик.

Нюансы и возможные ошибки

В процессе настройки вы почти наверняка столкнетесь с этими проблемами:

Проблема Причина Решение
Карта не определяется в системе Недостаточное питание, плохой контакт в райзере, сбой драйвера Проверить кабели питания, переустановить карту, перезагрузиться с параметром ядра nvidia-drm.modeset=1
Ollama падает с ошибкой CUDA out of memory Модель не помещается в VRAM конкретной карты Использовать меньшую модель или квантованную версию (например, qwen2.5:7b-q4_K_M)
Низкая скорость генерации текста Узкое место в CPU или ОЗУ при препроцессинге, перегрев GPU Мониторить температуру, убедиться, что CPU не загружен на 100% другими задачами
Неравномерная загрузка карт Балансировщик Nginx использует round-robin, но модели разного размера Настроить веса (weight) в upstream Nginx в зависимости от мощности карты
💡
Для более сложных сценариев распределения вычислений между разнородным железом (например, если вы захотите добавить к ферме Mac Studio) изучите нашу статью «Кластеризация LLM».

Что в итоге?

Мы получили рабочую ферму с общим объемом VRAM около 66 ГБ (12+12+12+10+10+10), способную параллельно обрабатывать несколько запросов к разным моделям или балансировать нагрузку на одну модель. Это решение в разы дешевле покупки нового серверного GPU и дает гибкость. Такая ферма — отличный полигон для экспериментов, разработки RAG-систем или даже небольшого приватного SaaS.

Главное — следить за температурой, правильно распределять модели по картам и иметь хорошую систему вентиляции. Удачи в сборке!

FAQ: Частые вопросы

Можно ли использовать карты AMD?

Теоретически да, но экосистема для LLM (CUDA, cuBLAS) заточена под NVIDIA. Для AMD потребуется ROCm и проверка совместимости с Ollama или другим ПО. Это сложнее и менее стабильно.

Сколько электричества будет потреблять такая ферма?

Под нагрузкой все 6 карт могут потреблять от 1200 до 1500 Вт. Добавьте 200-300 Вт на остальную систему. Итого ~1.8 кВт в час. При круглосуточной работе счета за электричество будут существенными.

Можно ли заставить одну модель работать на всех картах одновременно?

Да, но это требует использования фреймворков с поддержкой моделирования (model parallelism), таких как TensorFlow или PyTorch с DeepSpeed. Ollama в стандартной конфигурации так не умеет. Это тема для отдельного сложного гайда.