LMDeploy

Набор инструментов для эффективного развёртывания LLM от Shanghai AI Lab — промышленного уровня инференс, квантование и сервис для больших языковых моделей с непрерывной пакетной обработкой и PagedAttention.

🏛️ Разработано OpenMMLab / Shanghai AI Lab | Лицензия Apache-2.0 | 4000+ звёзд на GitHub


Что такое LMDeploy?

LMDeploy — это всесторонний набор инструментов для сжатия, развёртывания и обслуживания больших языковых моделей в продакшене. Создан командой, стоящей за OpenMMLab (MMDetection, MMSeg), он приносит оптимизации исследовательского уровня в практическое развёртывание:

  • Движок TurboMind — высокопроизводительный бэкенд инференса на C++ с оптимизациями для CUDA

  • Движок PyTorch — гибкий движок на Python с широкой совместимостью моделей

  • Непрерывная пакетная обработка — максимизирует загрузку GPU при одновременных запросах

  • PagedAttention — эффективное управление KV-кэшем (аналогично vLLM)

  • Квантование 4-бит / 8-бит — поддержка AWQ и SmoothQuant

  • Визионно-языковые модели — поддержка InternVL, LLaVA, Qwen-VL

По сравнению с vLLM, движок TurboMind в LMDeploy обеспечивает примерно в 1.36× большую пропускную способность на Llama 3 8B при batch=32, а квантование AWQ в LMDeploy — первоклассное, а не побочный продукт. Для VLM (особенно InternVL2) LMDeploy является эталонным стеком для развёртывания.

Почему LMDeploy?

Функция
LMDeploy
vLLM
TGI

Непрерывная пакетная обработка

Квантование AWQ

Спекулятивное декодирование

Визионно-языковое

Ограничено

Ограничено

API OpenAI

TurboMind (самостоятельный движок)


Быстрый старт на Clore.ai

Шаг 1: Выберите GPU-сервер

На clore.aiarrow-up-right рынок:

  • Минимум: NVIDIA GPU с 8 ГБ видеопамяти (для моделей 7B)

  • Рекомендуется: RTX 3090/4090 (24 ГБ) или A100 (40/80 ГБ)

  • CUDA: Требуется 11.8 или 12.x

Шаг 2: Разверните LMDeploy в Docker

Проброс портов:

Порт контейнера
Назначение

22

Доступ по SSH

23333

API-сервер LMDeploy

Переменные окружения:

Шаг 3: SSH и проверка


Запуск API-сервера

Совместимый с OpenAI сервер (рекомендуется)

Движок PyTorch (широкая совместимость)

Вывод при старте сервера

circle-check

Поддерживаемые модели

Текстовые модели

Визионно-языковые модели


Квантование

AWQ квантование 4-бит

AWQ (взвешенное квантование с учётом активаций) в LMDeploy даёт отличное качество при 4-битном квантовании:

SmoothQuant W8A8

8-битное квантование весов и активаций (лучше для развёртываний, критичных по пропускной способности):

Влияние квантования

Квантование
VRAM (7B)
Потеря качества
Прирост пропускной способности

Нет (bf16)

~14 ГБ

Нет

Базовый уровень

SmoothQuant W8A8

~8 ГБ

Минимальная

+20%

AWQ W4A16

~4 ГБ

Низкая

+15%

GPTQ W4A16

~4 ГБ

Низкая

+10%

circle-info

Рекомендация по AWQ: Для большинства сценариев AWQ 4-бит — лучший баланс между качеством и экономией видеопамяти. Используйте --w-group-size 128 для лучшего качества при немного большем использовании памяти.


Примеры использования API

Клиент на Python

Потоковая передача

Нативный Python-клиент LMDeploy

Визионно-языковая модель


Развёртывание на нескольких GPU

Тензорный параллелизм


Расширенные настройки

Конфигурация движка TurboMind

Конфигурация генерации


Мониторинг и метрики

Проверить состояние сервера

Мониторинг GPU


Пример Docker Compose


Бенчмаркинг

Пример вывода (RTX 4090, TurboMind, bf16):

На A100 80GB ожидайте примерно в 2.2× большую пропускную способность по сравнению с RTX 4090 при высокой конкуренции из-за пропускной способности памяти HBM2e (2 TB/s против 1 TB/s).


Рекомендации Clore.ai по GPU

Выбирайте в зависимости от размера целевой модели и нагрузки на сервис:

Сценарий использования
GPU
VRAM
Почему

Модели 7–13B, dev/staging

RTX 3090

24 ГБ

Лучшее соотношение $/VRAM; поддерживает 7B bf16 или 13B AWQ

Модели 7–13B, продакшен

RTX 4090

24 ГБ

~40% быстрее, чем 3090 при той же видеопамяти; 412 ток/с на Llama 3 8B

Модели 70B, командное обслуживание

A100 40GB

40 ГБ

Вмещает 70B AWQ; ECC-память для надёжности

Модели 70B, высокая пропускная способность

A100 80GB

80 ГБ

Вмещает 70B bf16; 2× пропускная способность по сравнению с A100 40GB при batch=32

Бюджетный выбор: RTX 3090 + AWQ 4-бит — обслуживает Llama 3 8B примерно на ~280 ток/с при batch=8, покрывает большинство сценариев API.

Выбор по скорости: RTX 4090 — самый быстрый по соотношению цена/производительность для моделей 7–13B; TurboMind выжимает максимум из 1 TB/s пропускной способности.

Выбор для продакшена: A100 80GB — запускайте Qwen2-72B или Llama 3 70B полностью в bf16 без компромиссов по качеству квантования; легко вписывается в мультиинстансное GPU-обслуживание.


Устранение неполадок

Модель не загружается

CUDA: недостаточно памяти

Порт уже используется

circle-exclamation

Рекомендации Clore.ai по GPU

Движок TurboMind и квантование W4A16 в LMDeploy обеспечивают лучшую в своём классе пропускную способность — особенно на GPU архитектур Ampere/Hopper.

GPU
VRAM
Цена Clore.ai
Пропускная способность Llama 3 8B
Llama 3 70B Q4

RTX 3090

24 ГБ

~$0.12/ч

~120 ток/с (fp16)

❌ Слишком большой

RTX 4090

24 ГБ

~$0.70/ч

~200 ток/с (fp16)

❌ Слишком большой

A100 40GB

40 ГБ

~$1.20/ч

~160 ток/с (fp16)

~55 ток/с (W4A16)

A100 80GB

80 ГБ

~$2.00/ч

~175 ток/с (fp16)

~80 ток/с (fp16)

2× RTX 4090

48 ГБ

~$1.40/час

~380 ток/с (тензорный параллелизм)

~60 ток/с

circle-info

RTX 3090 при ~$0.12/час является лучшим выбором для моделей 7B–13B. Движок TurboMind в LMDeploy извлекает почти максимум пропускной способности из потребительских GPU. Один RTX 3090, обслуживающий Llama 3 8B, обрабатывает 120 ток/с — этого достаточно для продакшен API с 10–20 одновременными пользователями.

Для моделей 70B: A100 40GB (~$1.20/час) с квантованием W4A16 даёт ~55 ток/с — более экономично, чем две RTX 4090.


Ресурсы

Последнее обновление

Это было полезно?