Ошибки 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.
Готовы запустить?
Запустить GPU-сервер