Введение
В сети сейчас полно «гуру» и коучей, которые обещают запустить собственную LLM почти на ноутбуке. Да, это технически возможно, но обычно речь идёт о моделях в диапазоне от млн до млрд параметров. Такая модель будет работать, однако — медленно, и её практическая ценность будет ограничена. В результате многие пользователи разочаровываются в локальных LLM.
В этой статье я расскажу, как пошагово развернуть собственный сервер для инференса LLM, чтобы получить действительно полезный инструмент.
Зачем нужен локальный сервер LLM?
Снижение расходов
Доступ к API крупных облачных сервисов (OpenAI, Anthropic, Google AI и т.д.) обходится дорого, особенно при интенсивном использовании.
Контроль над данными
При работе с конфиденциальной информацией часто требуется, чтобы запросы и ответы оставались внутри вашей инфраструктуры.
Гибкость и кастомизация
На локальном сервере вы можете дообучать модель, подгонять её под узкоспециальные задачи и управлять параметрами инференса.
Качество ответов
При правильном подборе модели локальный LLM может давать ответы, сравнимые или даже превосходящие ответы крупных коммерческих сервисов (DeepSeek, Grok, ChatGPT и т.п.). Об этом подробнее в заключении.
Что нам потребуется:
быть очень уверенным пользователем ПК
отличать байт от бита
ну и собственно сам сервер.
О сервере немного подробней, нужно понимать что это недешево и чем мощнее железо, тем более мощную LLM получится запустить. Минимально рекомендую конфигурацию: 2 видеокарты RTX4070 12Gb, процессор Core i7-14700K, 64Gb RAM, блок питания от 850 ватт, хорошо продуваемый корпус и желательно материнская плата которая имеет два PCI X16 слота, я начинал как раз с такой конфигурации если самому собирать то можно уложить до 200т.р. примерно.
Первое что нам нужно сделать, это скачать образ Ubuntu 25.10 вот ссылка https://ubuntu.com/download/desktop размер 5.9 Гб и сделать из него загрузочную флешку например через rufus-4.8. Установка системы не сильно отличается от установки windows, занимает минут 20 и описывать ее нет смысла. При установке нужен интернет.
После установки запускаем на сервере терминал, в левом нижнем углу нажмите значек Приложения. Установим SSH‑доступ. Для дальнейшей работы удобно подключаться к серверу по SSH из любой точки мира.
в терминале выполняем команды:
sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
Проверка
В терминале выполняем
systemctl status ssh
# Ожидаем статус "active (running)"
Проверка видеокарты и драйвера NVIDIA
nvidia-smi
После выполнения этой команды должны быть показаны все установленные GPU.
Устанавливаем утилиты для мониторинга системы
sudo apt install -y nvtop htop mc
nvtop – интерактивный монитор загрузки GPU.
htop – улучшенный top для CPU, памяти и процессов.
mc – Midnight Commander – удобный файловый менеджер, работающий в терминале.
Установка Apache2 (опционально)
Если планируете размещать статический контент или использовать Apache как обратный прокси, установите его:
sudo apt install -y apache2
sudo systemctl enable --now apache2
Установка Miniconda (рекомендую этот вариант).
Miniconda – лёгкий дистрибутив Anaconda, позволяющий управлять отдельными окружениями.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
При установке согласитесь со всеми лицензиями (введите yes).
После установки откройте новый терминал. Вы должны увидеть:
(base) user@host:~$
Почему именно Miniconda?
Она занимает минимум места, а все нужные пакеты можно установить в отдельные окружения без конфликтов.
Теперь к главному, установка Ollama
Ollama – локальный сервер для запуска LLM‑моделей.
curl -fsSL https://ollama.com/install.sh | sh
После установки проверьте, что сервис запустился:
systemctl status ollama
# Должен быть статус "active (running)"
Теперь можно приступить к загрузке первой модели, для этого переходим на сайт ollama https://ollama.com/search.
И например загружаем модель gpt-oss:20b, очень неплохая модель для минимальной комплектации сервера, это моя личная рекомендация и кто то с ней может быть несогласен.
Пишем в терминале
ollama run gpt-oss:20b
Должен начаться процесс загрузки, ждем окончания, весит она 14 гигабайт, так что время будет зависеть от скорости вашего провайдера интернет.
После загрузки модель автоматически запустится и вы уже можете задавать ей вопросы. Но в терминале это не очень удобно. Поэтому нажмите ctr-Z или напишите /bye b продолжим установку сервера.
Так же вы можете посмотреть перечень загруженных моделей набрав в терминале:
ollama list
Open‑WebUI – удобный веб‑интерфейс для работы с Ollama (и другими back‑ends).
Создаём отдельное conda‑окружение, так как для запуска нужен Python версии 3.11, а у вас будет скорее всего Python 3.13
conda create -n openwebui python=3.11 -y
conda activate openwebui
Устанавливаем пакеты
pip install open-webui
pip install firecrawl # опционально, если нужен скрейпинг контента
Запускаем сервер в тестовом режиме
open-webui serve
По умолчанию интерфейс будет доступен в браузере по адресу http://<IP‑сервера>:8080
Автозапуск Open‑WebUI как systemd‑службы
Скрипт‑обёртка
Создайте в домашнем каталоге файл run_openwebui.sh:
sudo nano run_openwebui.sh
Вставляем в него
#!/usr/bin/env bash
# 1 Подгружаем функции Conda
source /домашний каталог/miniconda3/etc/profile.d/conda.sh
# 2 Активируем нужное окружение
conda activate openwebui
# 3 Запускаем ваш основной процесс
open-webui serve
Сохраняем ctrl-O и выходим из редактора ctrl-X
Сделайте скрипт исполняемым:
chmod +x ~/run_openwebui.sh
Тестовый запуск
bash ~/run_openwebui.sh
Если скрипт работает – создаём systemd‑службу.
создаем файл openwebui.service
sudo nano /etc/systemd/system/openwebui.service
вставляем
[Unit]
Description=OpenWebUI (conda env) service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/домашний каталог/run_openwebui.sh
Restart=on-failure
RestartSec=30
Environment="PATH=/домашний каталог/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Если нужен вывод в журнал systemd:
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Сохраняем ctrl-O и выходим из редактора ctrl-X
Регистрация и запуск сервиса
sudo systemctl daemon-reload
sudo systemctl enable openwebui.service
sudo systemctl start openwebui.service
Проверьте статус:
sudo systemctl status openwebui.service
# Ожидаем "active (running)"
Теперь Open‑WebUI будет автоматически стартовать после перезагрузки и работать в фоне и интерфейс будет доступен по адресу http://<IP‑сервера>:8080 постоянно.
Когда вы первый раз откроете этот адрес в браузере, вы попадете на форму регистрации, пройдя ее, вы станете администратором собственого ИИ чата. Сможете добавлять и удалять пользователей и многое другое.
Установка Webmin (веб‑панель администрирования), Webmin позволяет управлять системой через браузер (порт 10000).
Создаём отдельное conda‑окружение (чисто для изоляции)
conda create -n webmin -y
conda activate webmin
Добавляем репозиторий и ставим пакет
curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh webmin-setup-repo.sh
sudo apt install -y webmin
После этого веб‑интерфейс будет доступен по https://<IP‑сервера>:10000.
Полезные утилиты для мониторинга
sudo apt install -y lm-sensors smartmontools
lm‑sensors – покажет температуры CPU, GPU, материнской платы (sensors).
smartmontools – состояние SSD/HDD (smartctl -A /dev/nvme0n1)
Но пока не запускайте в браузере. Откройте для редактирования файл настроек WEBMIN
sudo nano /etc/webmin/miniserv.conf
В нем отредактируйте 2 строки
ssl=0
ssl_hsts=0
По умолчанию в них стоят 1. Если этого не сделать вам браузер вынесет мозг.
Если вы закажете у провайдера интернет услугу белый IP адрес, то к своему серверу вы можете получить доступ откуда угодно, сможете давать доступ друзьям и коллегам если нужно. Для того что бы получить доступ к своему серверу извне, вам необходимо в роутере сделать проброс портов 22, 80, 8080 и 10000.
Еще бы хотелось рассказать про настройку Open-WEBUI, как настроить модель, как запустить RAG с помощью нее, но статья получилась довольно длинной и если будут пожелания я сздам про это отдельную статью.
Ну и небольшие дополнения к статье.
Как я написал в начале, локальные LLM часто решают задачи точнее и быстрее публичных сервисов, вот моя статья по этому поводу Локальная модель vs Гигачат: мой опыт и выводы / Хабр У меня загружено 9 разных моделей, но в основном использую только 3, а именно gpt-oss120b, qwen3-next:80b и qwen3:235b. Считаю их самыми оптимальными, но это сугубо мое мнение. Протестировал я более 30 разных моделей, общий объем которых при загрузке был более 2Тб.
Интересное замечание, модель gpt-oss:20b справилась со сложной задачей не хуже своей старшей модели которую я использую gpt-oss:120b, только немного хромает с русским языком. Но для запуска моделей типа gpt-oss:120b требуется не менее 80Гб видеопамяти. У меня сейчас у сервера 96Гб видеопамяти, и хотелось бы еще столько же.
Источник

Политика
Поделиться
Поделиться этой статьей
Копировать ссылкуX (Twitter)LinkedInFacebookEmail
Сенатор Элизабет Уоррен бьет тревогу

