---
title: "Как развернуть свою LLM на GPU-сервере: Ollama и vLLM"
description: "Запустите приватную LLM на собственном GPU-сервере: подберите GPU по видеопамяти, начните с Ollama, поднимите OpenAI-совместимый API на vLLM и закройте доступ."
url: https://offshoreserv.com/ru/blog/self-host-llm-gpu-server
lang: ru
updated: 2026-09-26
source: HTML page at the url above (canonical); this is its Markdown version
---

[ИИ и GPU](https://offshoreserv.com/ru/blog/category/ai-gpus)

# Как запустить LLM на собственном GPU-сервере (Ollama, vLLM)

От пустого GPU-сервера до приватного API, совместимого с OpenAI: какую карту арендовать, настройка Ollama и vLLM, TLS и ключи, тесты производительности, конфиденциальность и стоимость.

26 сентября 2026 г.10 мин чтения От команды OffshoreServ

Главное

- Подбирайте по видеопамяти: веса, плюс кеш для вашего контекста, плюс 10–20% запаса. Модели 70B в 4-битном квантовании нужно около 50 ГБ.
- Ollama запускает модель двумя командами; её API на 127.0.0.1:11434 не имеет аутентификации.
- vLLM обслуживает множество пользователей пакетами через OpenAI-совместимый API на порту 8000; его необязательный ключ защищает лишь некоторые маршруты.
- Ничего не открывайте напрямую: используйте SSH-туннель или обратный прокси с TLS, который проверяет ключ и пропускает только пути `/v1`.
- Проведите бенчмарк на собственном сервере, отключите телеметрию и сравните ежемесячную цену со своим счётом за API.

Чтобы разместить LLM самостоятельно, арендуйте GPU-сервер с достаточным для модели объёмом видеопамяти, установите Ollama для быстрого старта или vLLM для OpenAI-совместимого API и привяжите оба к 127.0.0.1. Подключайтесь к ним через SSH-туннель или обратный прокси с TLS, который проверяет ключ. Модель на 8B работает с полной точностью на RTX 4090 с 24 ГБ.

Это руководство превращает пустой [GPU-сервер](https://offshoreserv.com/ru/offshore-gpu-servers) в приватную конечную точку: какую карту арендовать, точные команды для Ollama и vLLM, TLS и аутентификация, бенчмарки и стоимость. Команды рассчитаны на Ubuntu 24.04 с установленными драйвером NVIDIA и CUDA, как на наших GPU-серверах.

## Зачем размещать LLM самостоятельно?

**Ваши промпты остаются на вашем сервере.** При использовании облачного API каждый промпт и ответ проходят через чужую инфраструктуру по чужим правилам логирования и хранения. Приватный LLM-сервер запускает модель на вашей собственной GPU. В FAQ Ollama сказано прямо: при локальном запуске [«мы не видим ваших промптов и данных»](https://github.com/ollama/ollama/blob/main/docs/faq.mdx).

**Стоимость предсказуема.** Сервер с помесячной оплатой стоит одинаково и за десять запросов, и за десять миллионов: при постоянной нагрузке это дешевле оплаты за токены, при малой — дороже.

**Вы управляете моделью:** её версией, квантованием и длиной контекста. Она не меняется, когда провайдер обновляет каталог, и её можно дообучать на данных, которые остаются на сервере.

Компромиссы: обновления, безопасность и мониторинг — на вас, а модели с открытыми весами — это не проприетарные модели крупнейших API. Если нужна одна из них, доступ к ней возможен только через её API.

## Выбирайте GPU по объёму видеопамяти

Чтобы запустить LLM на GPU-сервере, начните с памяти: веса, KV-кеш для вашего контекста и некоторый запас должны поместиться в видеопамять. Эти цифры из нашего руководства о том, [сколько видеопамяти нужно LLM](https://offshoreserv.com/ru/blog/how-much-vram-for-llms), учитывают контекст 8K токенов для одного пользователя и 10% запаса.

| Модель (пример) | 4 бит | 8 бит | 16 бит | Подходящая GPU |
| --- | --- | --- | --- | --- |
| От 7B до 8B (Llama 3.1 8B) | Около 7 ГБ | Около 11 ГБ | Около 19 ГБ | RTX 4090, даже в 16-битной точности |
| От 13B до 14B (Qwen3-14B) | Около 11 ГБ | Около 18 ГБ | Около 32 ГБ | RTX 4090 в 8-битной точности, RTX 5090 — для длинного контекста |
| 32B (Qwen3-32B) | Около 24 ГБ | Около 40 ГБ | Около 73 ГБ | RTX 5090 в 4-битной точности |
| 70B (Llama 3.3 70B) | Около 50 ГБ | Около 85 ГБ | Около 157 ГБ | A100 или H100 в 4-битной точности, 2 × H100 — в 8-битной |
| gpt-oss-120b (смесь экспертов) | Помещается в один GPU на 80 ГБ (нативный MXFP4) | Неприменимо | Неприменимо | A100 или H100 |

[Сервер с RTX 4090](https://offshoreserv.com/ru/offshore-gpu-servers/rtx-4090) стоит $84.99 в месяц, [сервер с RTX 5090](https://offshoreserv.com/ru/offshore-gpu-servers/rtx-5090) — $134.99, A100 80 ГБ — $355.99, а [сервер с H100](https://offshoreserv.com/ru/offshore-gpu-servers/h100) — $581.99. Модели на 32B в 4-битном квантовании нужно около 24 ГБ, так что на карте с 24 ГБ при росте контекста места не остаётся: берите для неё RTX 5090. Из двух карт на 80 ГБ H100 с пропускной способностью памяти 3.35 ТБ/с генерирует на той же модели быстрее, чем A100.

## Быстрый старт: собственная LLM на Ollama

Установочный скрипт Ollama для Linux настраивает системную службу и обнаруживает GPU NVIDIA. Его можно прочитать перед запуском:

```
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
ollama run llama3.1:8b
ollama ps
```

`llama3.1:8b` весит 4.9 ГБ. `ollama run` открывает чат (`/bye` выходит из него), а `ollama ps` должна показывать **100% GPU**; доля CPU означает, что модель не помещается в видеопамять. Столбец CONTEXT показывает длину контекста, которую [Ollama выбирает по доступной видеопамяти](https://github.com/ollama/ollama/blob/main/docs/context-length.mdx) (4K токенов при менее чем 24 ГиБ, 32K — от 24 ГиБ, 256K — от 48 ГиБ), а `OLLAMA_CONTEXT_LENGTH` её переопределяет. Затем проверьте, где служба слушает, и вызовите её API:

```
ss -tln | grep 11434
curl http://127.0.0.1:11434/api/generate -d '{"model": "llama3.1:8b", "prompt": "Why is the sky blue?", "stream": false}'
```

[По умолчанию Ollama привязывается к 127.0.0.1, порт 11434](https://github.com/ollama/ollama/blob/main/docs/faq.mdx), поэтому первая строка должна показывать `127.0.0.1:11434`. Так и оставьте. В FAQ объясняется, как открыть доступ с помощью `OLLAMA_HOST=0.0.0.0`, но у локального API нет аутентификации: любой, кто доберётся до порта, сможет запускать, скачивать и удалять модели.

Ollama также предоставляет маршруты в стиле OpenAI под `/v1`. Клиентам нужны базовый URL `http://127.0.0.1:11434/v1` и любой ключ API, который [Ollama игнорирует](https://github.com/ollama/ollama/blob/main/docs/api/openai-compatibility.mdx). Настройки задаются переменными окружения службы: выполните `sudo systemctl edit ollama.service`, добавьте эти строки, затем перезагрузите конфигурацию и перезапустите службу:

```
[Service]
Environment="OLLAMA_NO_CLOUD=1"
Environment="OLLAMA_CONTEXT_LENGTH=16384"
```

```
sudo systemctl daemon-reload
sudo systemctl restart ollama
```

## OpenAI-совместимый API на vLLM

vLLM создан для высокой пропускной способности: он обрабатывает на GPU множество запросов одновременно, объединяя их в пакеты, и работает по протоколу OpenAI, поэтому существующий клиентский код работает без изменений. Установите его в отдельное виртуальное окружение, как показано в [руководстве по установке vLLM](https://github.com/vllm-project/vllm/blob/main/docs/getting_started/installation/gpu.cuda.inc.md), затем создайте ключ и запустите сервер:

```
python3 -m venv ~/venvs/vllm
source ~/venvs/vllm/bin/activate
pip install --upgrade pip
pip install vllm --extra-index-url https://download.pytorch.org/whl/cu129
export VLLM_API_KEY=$(openssl rand -hex 32)
echo "$VLLM_API_KEY"
vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192
```

Ключ обязателен, потому что задана `VLLM_API_KEY`; флаг `--api-key` делает то же самое. [Краткое руководство](https://docs.vllm.ai/en/latest/getting_started/quickstart.html) указывает адрес по умолчанию `http://localhost:8000`, но [код сервера](https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/launchers/launcher.py) без указания хоста привязывается ко всем интерфейсам IPv4, поэтому всегда передавайте `--host`. `--max-model-len` ограничивает контекст и его кеш. По умолчанию vLLM резервирует 92% памяти GPU, так что почти полная карта в `nvidia-smi` — это нормально. Модель скачивается с Hugging Face при первом запуске, и её весам нужно около 15 ГБ: используйте карту на 24 ГБ или больше. Проверьте работу официальным клиентом OpenAI:

```
from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="YOUR_KEY")
reply = client.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[{"role": "user", "content": "Explain RAID 1 in one sentence."}],
)
print(reply.choices[0].message.content)
```

Тот же код работает с Ollama по адресу `http://127.0.0.1:11434/v1`. В Docker публикуйте порт только на 127.0.0.1, поскольку правила портов Docker обходят ufw, и оставьте `--ipc=host` для общей памяти, которую использует PyTorch:

```
sudo docker run --rm --gpus all --ipc=host -p 127.0.0.1:8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:latest --model Qwen/Qwen2.5-7B-Instruct --api-key "$VLLM_API_KEY"
```

На двух или четырёх GPU `--tensor-parallel-size 2` или `4` распределяет одну модель между ними. Наше [руководство по образам для GPU](https://offshoreserv.com/ru/docs/gpu/images) добавляет NVIDIA Container Toolkit и юнит systemd, который поддерживает работу vLLM.

### Ollama и vLLM вкратце

| Вопрос | Ollama | vLLM |
| --- | --- | --- |
| Вариант установки | Один скрипт, работает как системная служба | Пакет Python или образ Docker |
| Модели | Библиотека Ollama, по имени | Hugging Face, по репозиторию |
| Адрес по умолчанию | 127.0.0.1:11434 | Порт 8000 на всех интерфейсах, если не задан `--host` |
| Аутентификация | У локального API нет | Необязательный ключ, защищающий лишь некоторые маршруты |
| Для чего | Один пользователь или небольшая команда, быстрые тесты | Много одновременных запросов, работа на нескольких GPU |

## Добавьте TLS и аутентификацию

Ни один из этих серверов не стоит выставлять в интернет как есть. В документации Ollama сказано, что [локальный API не требует аутентификации](https://github.com/ollama/ollama/blob/main/docs/api/authentication.mdx). [Руководство по безопасности](https://docs.vllm.ai/en/latest/usage/security.html) vLLM сообщает, что `--api-key` защищает только маршруты под `/v1`, `/v2`, `/inference` и `/cohere`, оставляя открытыми другие, например `/pause` и `/tokenize`, и предупреждает, что полагаться только на ключ нельзя.

### Для себя: SSH-туннель

```
ssh -N -L 11434:127.0.0.1:11434 -L 8000:127.0.0.1:8000 YOUR_USER@SERVER_IP
```

Пока туннель работает, клиенты на вашем компьютере используют `http://127.0.0.1:11434/v1` или `http://127.0.0.1:8000/v1`. SSH шифрует трафик, а ваш ключ удостоверяет вас; сервер не открывает новых портов. Команда работает и в PowerShell.

### Для приложений и команд: Caddy с TLS и ключом

Caddy сам получает и продлевает сертификат и [перенаправляет HTTP на HTTPS](https://caddyserver.com/docs/automatic-https). Направьте A-запись домена на сервер, откройте порты 80 и 443 в брандмауэре, установите Caddy из [официального репозитория](https://caddyserver.com/docs/install), создайте ключ командой `openssl rand -hex 32` и замените `/etc/caddy/Caddyfile` на:

```
llm.example.com {
	@denied {
		not {
			path /v1/*
			header Authorization "Bearer YOUR_LONG_RANDOM_KEY"
		}
	}
	respond @denied 403
	reverse_proxy 127.0.0.1:11434 {
		header_up Host localhost:11434
	}
}
```

Затем выполните `sudo systemctl reload caddy`. Запросы, которые не находятся под `/v1/` или не несут ключ, получают 403, потому что [`respond` выполняется раньше `reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives). Правило пути также оставляет закрытыми собственные маршруты Ollama `/api`, через которые можно скачивать и удалять модели. Перезапись Host важна: при прослушивании 127.0.0.1 [Ollama отвечает 403](https://github.com/ollama/ollama/blob/main/server/routes.go) на запросы с другими именами хостов, и пример nginx из её FAQ перезаписывает заголовок так же. Для vLLM проксируйте на `127.0.0.1:8000` без блока `header_up` и используйте ключ сервера.

Клиенты затем используют `https://llm.example.com/v1` и ключ, который OpenAI-совместимые клиенты отправляют как Bearer-токен; Caddy сразу передаёт потоковые ответы. Сервису для других людей нужны также ограничения частоты запросов, а на то, что он генерирует, распространяются наши [правила допустимого использования](https://offshoreserv.com/ru/acceptable-use-policy).

## Измерьте пропускную способность сами

Число токенов в секунду зависит от карты, модели, квантования, версии движка, длины контекста и параллельности, поэтому мы не публикуем цифры, которые не измеряли. Для одного пользователя на плотной модели потолок — пропускная способность памяти, делённая на размер весов: около 205 токенов в секунду для 4-битной модели на 8B на RTX 4090, по нашему руководству по видеопамяти. Реальные результаты ниже.

### С Ollama

```
ollama run llama3.1:8b --verbose
```

`--verbose` выводит время после каждого ответа, включая **eval rate** — скорость генерации в токенах в секунду. Через API ответы содержат `eval_count` и `eval_duration` в наносекундах, а [справочник API Ollama](https://github.com/ollama/ollama/blob/main/docs/api.md) вычисляет скорость как `eval_count / eval_duration × 10^9`.

### С vLLM

В vLLM есть [генератор нагрузки](https://github.com/vllm-project/vllm/blob/main/docs/benchmarking/cli.md). Эта команда отправляет на 127.0.0.1:8000 200 запросов — по 1 024 случайных входных токена и 256 выходных токенов в каждом, по 16 одновременно, — используя `OPENAI_API_KEY` как Bearer-токен:

```
export OPENAI_API_KEY="$VLLM_API_KEY"
vllm bench serve --model Qwen/Qwen2.5-7B-Instruct --dataset-name random --random-input-len 1024 --random-output-len 256 --num-prompts 200 --max-concurrency 16
```

Смотрите на три строки отчёта: **output token throughput** — выходная пропускная способность всего сервера, **mean TTFT** (время до первого токена) — отзывчивость и **mean TPOT** (время на выходной токен) — то, что видит каждый пользователь. Повторите тест при параллельности 1, 8 и 32, следите в это время за `nvidia-smi dmon -s pucm` и используйте длину промптов, близкую к вашему реальному трафику.

## Сохраняйте приватность промптов

Собственный хостинг оставляет промпты на вашем сервере, только если ничто другое не отправляет их куда-то ещё:

1. **Никаких публичных портов.** `sudo ss -tlnp` должна показывать 11434 и 8000 только на 127.0.0.1. Разрешите SSH, а также 80 и 443 для Caddy — и больше ничего, как в нашем [руководстве по усилению защиты](https://offshoreserv.com/ru/docs/security/hardening); порты Docker публикуйте как `127.0.0.1:PORT:PORT`.
2. **Никаких облачных моделей по случайности.** Ollama может также запускать [облачные модели](https://github.com/ollama/ollama/blob/main/docs/cloud.mdx), например `gemma4:cloud`, на своих серверах, и тогда ваши промпты обрабатывают они. `OLLAMA_NO_CLOUD=1` отключает облачные модели и веб-поиск.
3. **Отключите телеметрию.** По умолчанию vLLM собирает анонимную [статистику использования](https://docs.vllm.ai/en/latest/usage/usage_stats.html) о вашем оборудовании и конфигурации; `VLLM_NO_USAGE_STATS=1` или `DO_NOT_TRACK=1` отключают её. [`HF_HUB_DISABLE_TELEMETRY=1`](https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables) отключает телеметрию Hugging Face, а после загрузки модели `HF_HUB_OFFLINE=1` прекращает все обращения к Hub.
4. **Тихие логи.** vLLM записывает запросы в лог только с `--enable-log-requests`, а текст промптов — только на уровне DEBUG. Так и оставьте и проверьте, что хранит любой чат-интерфейс.

```
export VLLM_NO_USAGE_STATS=1
export HF_HUB_DISABLE_TELEMETRY=1
export HF_HUB_OFFLINE=1
```

Для службы укажите это в её файле окружения. С нашей стороны мы не логируем и не анализируем трафик клиентских серверов: никакой глубокой инспекции пакетов, никакого сканирования содержимого, и мы никогда не смотрим, что работает внутри.

## Стоимость: API, облачный GPU или собственный сервер

- **API** тарифицируется за токены: ничего не нужно запускать и нет затрат на простой, но каждый промпт уходит провайдеру, а счёт растёт с объёмом.
- **Облачный GPU** тарифицируется почасово. По сравнению с сервером с помесячной оплатой точка безубыточности — это месячная цена, делённая на почасовую ставку: наш RTX 4090 за $84.99 равен 85 часам при примерной ставке $1.00 в час.
- **Собственный сервер** стоит одинаково под нагрузкой и в простое, поэтому стоимость токена падает по мере роста использования. При круглосуточной работе наш RTX 4090 обходится примерно в $0.116 в час, а H100 — примерно в $0.797.

По сравнению с API сервер окупается при средней пропускной способности выше этой:

```
break-even tokens per second = monthly price ÷ (API price per million tokens × 2.628)
```

2.628 — это число миллионов секунд в месяце из 730 часов. При примерной цене API $1 за миллион токенов сервер за $84.99 выходит на безубыточность при средней скорости около 32 токенов в секунду с учётом простоя, а H100 за $581.99 — около 221. Это примерные цены, а не предложения, и API тарифицируют также входные токены. Почасовая сторона разобрана в нашем сравнении [выделенных GPU-серверов и облачных GPU](https://offshoreserv.com/ru/blog/dedicated-gpu-vs-cloud-gpu).

Оплата поквартально экономит 5%, а за год — 12%, и тогда RTX 4090 обходится в $74.79 в месяц. Серверы готовы через 1–24 часа, а GPU-серверы после выдачи не подлежат возврату, так что подберите модель до заказа.

## Часто задаваемые вопросы

### Можно ли запустить LLM на собственном сервере?

Да. Подойдёт любой Linux-сервер, у GPU NVIDIA которого достаточно видеопамяти для модели: около 7 ГБ для модели на 8B и около 50 ГБ для модели на 70B, обе в 4-битной точности с контекстом. Установите Ollama или vLLM, оставьте их на 127.0.0.1 и подключайтесь через SSH-туннель или обратный прокси с TLS, который проверяет ключ.

### Что лучше — Ollama или vLLM?

Они решают разные задачи. Ollama быстрее настроить, и она подходит одному пользователю или небольшой команде. vLLM объединяет множество одновременных запросов в пакеты, распределяет модели между GPU и проверяет ключ API, что подходит для приложений. Оба отвечают на запросы в стиле OpenAI под /v1, поэтому можно начать с Ollama и перейти на vLLM, не переписывая клиент.

### Сколько видеопамяти нужно для модели на 70B?

Около 43 ГБ для весов в 4-битной точности или около 50 ГБ с контекстом 8K и запасом: одна A100 или H100 на 80 ГБ либо две RTX 5090 по 32 ГБ. В 8-битной точности закладывайте около 85 ГБ, то есть две H100; в 16-битной — около 157 ГБ на сервере с несколькими H100. Более длинный контекст и больше пользователей требуют больше памяти.

### Есть ли у Ollama аутентификация?

У локального API — нет. В документации Ollama сказано, что API на localhost:11434 не требует аутентификации; ключи API применяются только к её облачному сервису. Оставьте привязку по умолчанию к 127.0.0.1, доступную только самому серверу, и добавьте SSH-туннель или обратный прокси с TLS и проверкой ключа, прежде чем подключится кто-то ещё.

### Собственная LLM дешевле API?

При стабильном объёме — часто да; при малом или нерегулярном — обычно нет. Разделите месячную цену сервера на цену вашего API за миллион токенов, умноженную на 2.628: результат — средняя скорость в токенах в секунду, которую сервер должен поддерживать, чтобы окупиться. Приватность может быть важнее цены: на вашем собственном сервере промпты остаются под вашим контролем.

**Размещайте проекты там, где закон на вашей стороне**

Офшорные VPS, выделенные, RDP- и GPU-серверы в семи юрисдикциях. Без KYC, оплата криптовалютой.

## Ещё из блога

- [ИИ и GPU Выделенный GPU-сервер или облачный GPU: стоимость, конфиденциальность и скорость Помесячно или почасово? Как найти точку безубыточности между выделенным GPU-сервером и облачным GPU и что меняется с точки зрения доступности, скорости и конфиденциальности.26 сентября 2026 г.8 мин чтения](https://offshoreserv.com/ru/blog/dedicated-gpu-vs-cloud-gpu)
- [ИИ и GPU Сколько видеопамяти нужно для запуска LLM? (руководство 2026 года) Практический способ рассчитать объём видеопамяти для больших языковых моделей: веса в зависимости от точности, KV-кэш для контекста, запас и какие GPU подходят для моделей от 8 до 120 млрд параметров.26 сентября 2026 г.9 мин чтения](https://offshoreserv.com/ru/blog/how-much-vram-for-llms)
- [Право и юрисдикции Страны «5, 9 и 14 глаз»: что это значит для хостинга Какие страны входят в альянсы «Пять глаз», «Девять глаз» и «14 глаз», что из этого официально, а что известно из утечек, и что членство на самом деле означает для сервера в каждой из наших семи локаций.26 сентября 2026 г.8 мин чтения](https://offshoreserv.com/ru/blog/14-eyes-countries-hosting)

---

OffshoreServ — офшорный хостинг-провайдер: VPS, выделенные серверы, Windows RDP и GPU-серверы в семи юрисдикциях (Исландия, Швейцария, Молдова, Румыния, Нидерланды, Болгария и Малайзия), оплата только криптовалютой (Bitcoin, Ethereum, Monero, Tether (USDT) и Solana), без проверки личности (без KYC).

Prices and plans: https://offshoreserv.com/ru/pricing · Answers: https://offshoreserv.com/ru/faq · Every page: https://offshoreserv.com/llms.txt
