Ошибки Ollama и vLLM: GPU, OOM и подключение

Проверяйте свою LLM в порядке доступ к GPU → сервер модели → запрос на сервере → SSH-туннель → клиент. Так вы не будете менять модель из-за закрытого туннеля или неверного порта.

Ollama отвечает, но работает на CPU

На GPU-инстансе выполните:

nvidia-smi
ollama ps

Проверяйте ollama ps сразу после запроса. Пустой список может означать, что модель уже выгрузилась. Если не работает nvidia-smi, проверьте доступ окружения к GPU. Для контейнера видеокарта должна быть доступна с хоста; установка ещё одного драйвера внутри не является универсальным решением.

При частичном размещении CPU/GPU уменьшите модель, выберите поддерживаемое квантование или сократите контекст. Повторите тот же запрос. Проверьте поддержку конкретной видеокарты и драйвера движком.

CUDA out of memory

Разделите три ситуации:

Момент ошибки Что проверить Первое изменение
Загрузка модели Размер/точность весов и другие GPU-процессы Меньшая модель или поддерживаемое квантование
Длинный вход Контекст и KV-кеш Уменьшить контекст и лимит ответа
Несколько запросов Число активных последовательностей Снизить параллелизм и измерить снова

Посмотрите процессы в nvidia-smi; останавливайте только свои ненужные задачи. Для vLLM проверьте --max-model-len, --max-num-seqs и бюджет памяти. Повышение --gpu-memory-utilization не создаёт свободную VRAM и может усилить конфликт с другими процессами. Расчёт памяти отделяет веса от контекста.

Connection refused или зависший запрос

Начните на самом сервере:

curl --connect-timeout 5 --max-time 10 http://127.0.0.1:11434/api/version
ss -ltn

Для vLLM используйте порт 8000 и /v1/models с ключом. Если локальный запрос не проходит, проверьте терминал или журнал процесса. Для systemd Ollama: journalctl -u ollama -n 100 --no-pager; для Compose: docker compose logs --tail=100 ollama.

Если на сервере всё работает, проверьте SSH-туннель. В инструкции Ollama компьютер использует порт 11435, а сервер — 11434. Ошибка «address already in use» означает, что локальный порт занят: выберите другой и обновите адрес клиента.

Если зависает только генерация, возможны загрузка модели или очередь. Попробуйте один запрос с коротким ответом. Успешный /api/version подтверждает работу HTTP-сервера, но не готовность модели.

API не находит модель

Получите список через ollama list или /api/tags; для совместимого сервера — /v1/models. Используйте точное имя или alias. В примере vLLM это qwen-local, а в Ollama — полный тег библиотеки.

После перехода с обычного процесса на systemd проверьте пользователя и каталог кеша. Второй кеш часто объясняет внезапно пустой список.

Порт занят после установки

Установщик Ollama мог запустить systemd-сервис, пока вы пробуете отдельный ollama serve. Оставьте один способ запуска. Прежде чем останавливать процесс, проверьте статус сервиса и занятый порт. Аналогично нативный и Compose-варианты не могут одновременно занять порт 11434 хоста.

Open WebUI открывается, но чат не работает

Сначала проверьте Ollama независимо от интерфейса. Затем его сохранённый адрес подключения. Для Compose это http://ollama:11434, для нативного интерфейса на компьютере — http://127.0.0.1:11435. localhost контейнера не указывает на другой сервис или GPU-хост.

Полные варианты есть в инструкции Open WebUI. Во время работы держите SSH-туннель открытым.

Медленные или некачественные ответы

Отделите холодный первый запрос от прогретых. Проверьте размещение на GPU, контекст и длину ответа. Зафиксируйте модель и квантование до изменения настроек. При бессвязных ответах проверьте instruction-вариант и применяемый chat template.

Скрипт измерений сохранит последовательные замеры. Сравнивайте также сами ответы на одной задаче: токены в секунду не являются оценкой качества.

Источники: диагностика Ollama, поддержка оборудования, память vLLM.

Все инструкции по запуску своей LLM.

Готовы запустить?

Запустить GPU-сервер