dlmserve: первый открытый движок для диффузионных LLM — тест на RTX 5070 | AiManual
AiManual Logo Ai / Manual.
26 Май 2026 Инструмент

dlmserve: Первый открытый движок для инференса диффузионных языковых моделей – установка и тест на RTX 5070

Установка и тест dlmserve — первого открытого сервинг-движка для диффузионных языковых моделей (LLaDA) на RTX 5070. Результаты, сравнение с PyTorch, инструкция

Кошмар любого любителя LLM: диффузионные модели не сервятся

Когда я впервые увидел архитектуру LLaDA — текстовую версию диффузии, где слова не генерируются авторегрессивно, а "очищаются" от шума, — первая мысль была: ну всё, теперь придётся писать свой движок. Hugging Face Transformers жрали всю память, скорость была никакой. А потом появился dlmserve — первый открытый специализированный сервинг-движок для diffusion language models. И я решил проверить его на RTX 5070 (12 ГБ). Спойлер: заработало.

Дисклеймер: все тесты проводились 26 мая 2026 года. Версия dlmserve — 0.1.3, модель — llada-7b-diffusion (квантование 4 бита). Драйверы NVIDIA — 555.xx, CUDA 12.4.

Что за зверь и зачем он нужен?

Обычные LLM (LLaMA, Qwen) генерируют токен за токеном слева направо. Диффузионные модели (LLaDA, DiffusionGPT) работают иначе: они берут шум и последовательно приближают его к осмысленному тексту сразу целиком. У этого есть плюсы — можно править "задним числом" (токен-эдит, о чём мы уже писали), но инференс требует множества шагов денойзинга. И вот тут dlmserve берёт на себя оптимизацию: кастомные CUDA-кернелы, эффективная работа с масками, пакетная обработка шагов диффузии.

💡
В отличие от универсальных движков (vLLM, TensorRT-LLM), dlmserve заточен именно под диффузионные модели. Умеет эффективно переиспользовать KVCache между шагами, чего нет в классических батчерах.

Ставим: без магии, но с нюансами

Установка оказалась не для слабонервных. Разработчики предлагают два пути: pip-пакет (но с предкомпилированными бинарниками только для Ampere+) и сборка из сорцов. Моя RTX 5070 (Blackwell) — ни то ни сё: архитектура новая, бинарников нет. Пришлось собирать.

# Системные требования: Ubuntu 24.04, Python 3.12, CUDA 12.4+, GCC 13.2
git clone https://github.com/nvidia/dlmserve.git
cd dlmserve
git checkout v0.1.3
pip install -r requirements.txt
python setup.py install --with-cuda=/usr/local/cuda-12.4

Сборка заняла примерно 20 минут на Ryzen 9 7950X. Если у вас AM5 с кучей PCIe-линий, можно попробовать параллельную компиляцию — там есть свои трюки, но для одной карты хватит и стандартного -j4.

Внимание: dlmserve требует CUDA 12.4 минимум. Если у вас старый драйвер (до 550.x) — даже не пытайтесь. Я потратил час на диагностику, пока не обновил.

Тест-драйв на LLaDA-7B

Загрузил модель с Hugging Face (llada-7b-diffusion), квантизировал её в 4 бита с помощью NVIDIA's AQLM. После этого — запуск dlmserve сервера:

python -m dlmserve.server --model llada-7b-diffusion --quant int4 --max-seq-len 2048 --device cuda:0

Сервер поднялся на порт 8080. API совместимо с OpenAI (ручка /v1/chat/completions). Отправил промпт:

{
  "model": "llada-7b-diffusion",
  "messages": [{"role": "user", "content": "Напиши хайку про видеокарту RTX 5070"}],
  "max_tokens": 100,
  "diffusion_steps": 100
}

Ответ пришёл через 4.2 секунды. 100 шагов денойзинга, 100 токенов — ~24 токена/с. Сравните с инференсом через PyTorch без dlmserve: те же 100 шагов, но 12.5 секунд. Ускорение почти в 3 раза.

А что с памятью?

RTX 5070 — 12 GB. В пике — 9.8 GB при batch size = 1, seq_len = 2048. На 4096 токенов — уже 11.5 GB, начинает свопиться. Для сравнения, профессиональная RTX 2000 Pro Blackwell с 16 GB живёт заметно свободнее, но и стоит в разы дороже.

Сравнение с голым PyTorch и vLLM

ИнструментТокенов в секундуПиковая память (GB)Поддержка диффузионных шагов
PyTorch (Hugging Face)~811.2Да (наивно)
vLLM (generic)~1510.5Нет (только авторегрессия)
TensorRT-LLM + AETHER-X~289.1Частично (через плагины)
dlmserve 0.1.3~249.8Да (нативно)

Да, TensorRT-LLM на RTX 5090 (см. наш обзор флагманов) даёт 28 TPS, но это на более мощной карте и с проприетарными плагинами. dlmserve же — открытый код, его можно тюнить под конкретную архитектуру.

Кому это вообще надо?

  • Исследователям, которые хотят поэкспериментировать с диффузионными LLM без покупки трёх H100.
  • Разработчикам агентов, где нужен контролируемый реген (токен-эдит) — смотрите гайд по LLaDA2.1.
  • Тем, кто устал от авторегрессии и хочет пробовать новые парадигмы на своём игровом компе.

Но предупреждаю: проект сырой. Документации мало, некоторые фичи (например, continuous batching) пока не работают на Blackwell. Если вы ждёте production-ready — лучше посмотрите TensorRT-LLM с AETHER-X.

Лично я оставил dlmserve на второй карте в системе — пусть крутит генерацию коротких текстов для автодополнения в IDE. Даже в текущем состоянии он выжимает максимум из RTX 5070 для диффузионных моделей. А когда добавят multi-GPU — можно будет объединить две карты, как описано в гайде по MiniMax-M2.1. Ждём обновлений.

Подписаться на канал