vLLM — это высокопроизводительная библиотека для инференса больших языковых моделей (LLM), которая активно используется в продакшене. Однако её установка и работа требуют понимания аппаратных ограничений. В отличие от некоторых фреймворков, vLLM строго привязана к архитектуре GPU и версии CUDA/ROCm. В этой статье разберём, какое железо нужно для запуска vLLM, как избежать ошибок при сборке и сколько видеопамяти потребуется для популярных моделей.
01Поддерживаемые платформы и GPU
vLLM поддерживает несколько аппаратных платформ, но их статус поддержки и требования к окружению сильно различаются. Основной упор сделан на экосистему NVIDIA, однако есть варианты для AMD, Intel и Apple.
NVIDIA CUDA: Золотой стандарт
Это наиболее стабильный и производительный вариант. vLLM использует CUDA для ускорения вычислений. Для работы требуется:
- Операционная система: Linux (Windows не поддерживается нативно, только через WSL2 с ограничениями или форки).
- Python: версии 3.10 – 3.13.
- Драйвер NVIDIA: актуальная версия, поддерживающая требуемый CUDA Toolkit.
Для NVIDIA GPU рекомендуется использовать готовые wheel-пакеты или Docker-образы, так как сборка из исходников требует точного соответствия версий CUDA и cuDNN.
AMD ROCm: Альтернатива для Linux
Поддержка AMD GPU реализована через ROCm. Важно отметить, что ROCm работает преимущественно на Linux. Поддержка Windows ограничена или отсутствует в официальных релизах vLLM. Для AMD карт (серии Radeon RX и Instinct) необходимо убедиться, что ваша карта входит в список совместимых ROCm устройств. Часто это карты серии RX 6000/7000 и профессиональные Instinct MI.
Apple Silicon: M-серия
vLLM поддерживает чипы Apple M1, M2, M3 и их вариации (Pro, Max, Ultra). Здесь используется единая архитектура памяти (Unified Memory), что упрощает распределение данных между CPU и GPU. Однако производительность инференса на Apple Silicon обычно уступает топовым NVIDIA GPU из-за меньшего пропускного способности памяти и отсутствия специализированных тензорных ядер для LLM в том же масштабе, что и у H100/A100.
Intel XPU
Поддержка Intel Arc и других XPU устройств доступна, но требует специфических драйверов и библиотек Intel oneAPI. Это нишевое решение, которое может быть актуально для корпоративных сред с унифицированным стеком Intel.
02Требования к VRAM и объёмы памяти
Главный ограничитель при выборе GPU для LLM — это объём видеопамяти (VRAM). vLLM использует PagedAttention для эффективного управления памятью, но базовые требования остаются высокими.
Примерные требования к VRAM для популярных моделей (при использовании 4-битной квантованной версии Q4_K_M или аналогичной через GGUF/AWQ, если конвертация поддерживается, или FP16 для нативных весов):
- Llama-3-8B (FP16): Требует заметного объёма памяти, подходящего для карт среднего класса. Подойдёт RTX 3090/4090 (24 ГБ) или одна RTX A4000 (16 ГБ может быть впритык с учётом контекста).
- Llama-3-70B (FP16): Требует значительных ресурсов, обычно мульти-GPU конфигурацию (например, несколько A100 или RTX 4090 с NVLink/PCIe связью).
- Mistral-7B: Требует умеренного объёма памяти. Одна RTX 3090/4090 справится легко.
Для Apple Silicon единая память позволяет использовать всю оперативную память системы как VRAM. Однако скорость вычислений будет ограничена пропускной способностью памяти. Для моделей размером 70B+ на Mac потребуется большой объём единой памяти, а лучше 128 ГБ+.
03Установка и сборка
Самый простой способ установки — использование pre-built wheels. Это избавляет от проблем с компиляцией CUDA-ядер.
Установка через pip (NVIDIA CUDA)
Создайте виртуальное окружение и установите пакет:
pip install vllmДля AMD ROCm команда будет аналогичной, но пакет будет собран под ROCm:
pip install vllm --extra-index-url https://download.pytorch.org/whl/rocm6.0Если pre-built wheels недоступны для вашей версии CUDA/ROCm, придётся собирать из исходников. Это требует установки CUDA Toolkit (для NVIDIA) или ROCm Toolkit (для AMD) и компиляции кастомных ядра.
Использование Docker
vLLM предоставляет готовые Docker-образы, что упрощает развёртывание. Для NVIDIA:
docker run --gpus all -it --rm vllm/vllm-openai:latestДля AMD ROCm:
docker run --device /dev/kfd --device /dev/dri -it --rm vllm/vllm-openai:latest-rocm04Какое железо кому подойдёт
Выбор зависит от бюджета и задач:
- Бюджетный уровень: RTX 3060 12GB или б/у RTX 3090 24GB. Подойдёт для моделей до 7B параметров (Llama-3-8B, Mistral-7B) с умеренным контекстом. RTX 3090 пр
Источник: Официальная документация ↗
