Почему ваш новый B200 молчит как партизан
Вы только что получили сервер с парой B200. Установили Ubuntu, поставили драйвера. Скачали DeepSeek-V3.2 с Hugging Face. Запускаете стандартную команду vLLM - и получаете красивый segfault. Или ошибку про safetensors. Или про отсутствие nvlsm.
Знакомо? Это стандартный сценарий на 2026 год.
Причина в том, что vLLM 0.16 (актуальная версия на март 2026) еще не идеально заточена под Blackwell архитектуру. Плюс новые модели используют специфичные форматы весов. Плюс NVIDIA изменила управление памятью через fabric-manager. В сумме - идеальный шторм.
Не пытайтесь установить vLLM через pip install vllm. Это гарантированно сломается на B200/H200. Docker - ваш единственный разумный выбор, и то с кастомизацией.
Что на самом деле происходит в железе
Blackwell (B200/H200) - это не просто более быстрые GPU. Это другая архитектура памяти. NVLink переродился в nvlsm (NVLink Shared Memory), который требует отдельного демона fabric-manager. Без него GPU не видят память друг друга, и vLLM падает при попытке распределить тензоры.
Еще момент: DeepSeek-V3.2 использует sparse attention в некоторых слоях. vLLM 0.16 поддерживает это, но только если собрать с определенными флагами. В стандартном образе - нет.
И третий гвоздь: формат safetensors. Новые модели все чаще используют его вместо pickle. Это безопаснее, но требует свежих версий transformers и safetensors библиотек.
Собираем пазл: пошаговый разбор
1 Готовим хостинг: драйвера и fabric-manager
Забудьте про драйвер 550.xx. На 04.03.2026 вам нужен минимум 560.35. Лучше 570.xx. Проверяем:
nvidia-smi
# Должна быть версия драйвера >= 560.35.00
# И архитектура GPU: Blackwell
Устанавливаем fabric-manager. Без него nvlsm не заработает.
sudo apt-get install -y cuda-drivers-fabricmanager-570
sudo systemctl enable nvidia-fabricmanager
sudo systemctl start nvidia-fabricmanager
Проверьте статус: sudo systemctl status nvidia-fabricmanager. Если видите ошибки про /dev/nvidia-fabric, перезагрузите сервер. Да, старый добрый ребит помогает.
2 Кастомизируем Docker образ vLLM
Официальный образ vllm/vllm-openai:latest не подойдет. Нужно собирать свой. Вот минимальный рабочий Dockerfile:
FROM nvidia/cuda:12.4.0-devel-ubuntu22.04
# Устанавливаем системные зависимости
RUN apt-get update && apt-get install -y \
python3.10 \
python3-pip \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# Клонируем vLLM с нужной версией
RUN git clone https://github.com/vllm-project/vllm.git /vllm
WORKDIR /vllm
RUN git checkout v0.16.0 # Актуально на март 2026
# Устанавливаем torch с поддержкой CUDA 12.4
RUN pip3 install --no-cache-dir \
torch==2.5.0 \
torchvision==0.20.0 \
torchaudio==2.5.0 \
--index-url https://download.pytorch.org/whl/cu124
# Собираем vLLM с поддержкой sparse attention
RUN pip3 install --no-cache-dir -e . \
--extra-index-url https://download.pytorch.org/whl/cu124
# Ставим свежие transformers и safetensors
RUN pip3 install --no-cache-dir \
transformers==4.45.0 \
safetensors==0.5.0 \
huggingface-hub==0.25.0
Собираем образ:
docker build -t vllm-blackwell:0.16 .
3 Скачиваем и проверяем модель
DeepSeek-V3.2 весит около 280GB в FP16. Убедитесь, что есть место. И используйте HF_TOKEN если модель gated.
# Скачиваем через huggingface-hub
pip install huggingface-hub
huggingface-cli download deepseek-ai/DeepSeek-V3.2 --local-dir ./DeepSeek-V3.2 --token YOUR_TOKEN
Проверяем структуру файлов. Должны быть:
- model.safetensors (основные веса)
- tokenizer.json
- config.json
- modeling_deepseek.py (специфичный скрипт для архитектуры)
4 Запускаем инференс с правильными флагами
Вот команда, которая работает на 2x B200 с 192GB памяти каждый:
docker run --gpus all --shm-size=10g \
-v /path/to/DeepSeek-V3.2:/model \
-p 8000:8000 \
vllm-blackwell:0.16 \
python3 -m vllm.entrypoints.openai.api_server \
--model /model \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.95 \
--max-model-len 131072 \
--served-model-name DeepSeek-V3.2 \
--enforce-eager # Критично для Blackwell!
Ключевой флаг здесь - --enforce-eager. Он отключает graph capture в torch, который пока нестабилен на Blackwell.
Ошибки, которые съедят ваш день (и как их избежать)
| Ошибка | Причина | Решение |
|---|---|---|
| CUDA error: operation not supported on this device | fabric-manager не запущен или драйвер устарел | Проверить systemctl status nvidia-fabricmanager. Обновить драйвер до 570+. |
| RuntimeError: Failed to load safetensors | Библиотека safetensors < 0.4.0 | Обновить safetensors до 0.5.0. Принудительно переустановить: pip install --force-reinstall safetensors==0.5.0 |
| Out of memory при загрузке модели | vLLM резервирует всю память под кэш | Использовать --gpu-memory-utilization 0.9 и --max-model-len 65536 для начала |
| ModuleNotFoundError: No module named 'deepspeed' | В Dockerfile не установлены все зависимости | Добавить RUN pip install deepspeed==0.15.0 в Dockerfile |
Оптимизации для продакшена
Если нужно обслуживать много запросов, добавьте эти флаги:
--max-num-batched-tokens 16384 \
--max-num-seqs 256 \
--quantization awq # Если модель в AWQ формате
--disable-custom-all-reduce # Иногда помогает на Blackwell
Для особо длинных контекстов (DeepSeek-V3.2 поддерживает 128k) мониторьте использование памяти через nvidia-smi. Если растет - уменьшайте --max-model-len.
А если у меня старое железо?
Не беда. vLLM 0.16 работает и на A100, и даже на H100. Просто уберите --enforce-eager и fabric-manager не понадобится. Для совсем старого железа вроде V100 или RTX 3090, возможно, придется использовать более старую версию vLLM (0.14.x) и квантовать модель.
Кстати, если вы экспериментируете с разным железом, вам может пригодиться наш гайд по запуску LLM на старом железе, где разбираем даже Raspberry Pi и майнинг-риги.
Проверяем, что все работает
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-V3.2",
"prompt": "Кто такой DeepSeek?",
"max_tokens": 50
}'
Если получили вменяемый ответ - вы герой. Если нет - смотрите логи контейнера. Самые полезные логи включаются через:
--log-level debug # в команде запуска api_server
Что в будущем?
К vLLM 0.17 (ожидается в Q2 2026) обещают нативную поддержку Blackwell без костылей. И возможно, встроенную оптимизацию для sparse attention моделей вроде DeepSeek-V3.2.
Пока же этот гайд - ваш спастельный круг. Сохраните его, потому что через месяц снова что-то сломается после обновления драйверов.
P.S. Если вы только выбираете железо для LLM-станции, не пропустите наш разбор как собрать мощную станцию за $15 000. Там есть нюансы, которые сэкономят вам кучу нервов.