SGLang (Serving Graph Language) — это высокопроизводительный фреймворк для развертывания больших языковых моделей (LLM) и мультимодальных моделей. В отличие от стандартных решений, он использует передовые методы оптимизации, такие как спекулятивный декодинг и дисагрегация префилла/декода. Этот инструмент идеален для практиков, которым нужна максимальная скорость генерации токенов (throughput) и минимальная задержка (latency) как на одиночных GPU, так и в распределенных кластерах. Ниже приведена инструкция по локальной установке и первому запуску.
01Требования
Для стабильной работы SGLang необходимо подготовить соответствующее программное и аппаратное обеспечение. Проект активно развивается и требует свежих версий зависимостей.
- Операционная система: Linux (рекомендуется Ubuntu 20.04/22.04) или Windows (через WSL2). macOS поддерживается ограниченно.
- Python: Поддерживаются актуальные версии Python. Версии 3.12+ могут требовать дополнительных шагов сборки.
- GPU: NVIDIA GPU с поддержкой актуальных версий CUDA. Также поддерживаются AMD (ROCm), Intel Xeon и Google TPU, но NVIDIA остается наиболее стабильной платформой для большинства пользователей.
- VRAM: Зависит от модели. Требуется достаточный объем видеопамяти для загрузки весов модели и активации, с возможностью масштабирования на несколько GPU для больших архитектур.
02Установка
Процесс установки оптимизирован для быстрой сборки из исходного кода или установки через PyPI. Рекомендуется использовать виртуальное окружение для изоляции зависимостей.
Шаг 1. Создание виртуального окружения
Создайте и активируйте окружение с Python (выберите версию, совместимую с вашими зависимостями):
python3 -m venv sglang_env
source sglang_env/bin/activateШаг 2. Установка PyTorch
Установите PyTorch с поддержкой CUDA. Команда ниже актуальна для актуальной версии CUDA. Если у вас другая версия, проверьте актуальную команду на сайте PyTorch.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121Шаг 3. Установка SGLang
Установите сам пакет SGLang. Для получения последней версии с поддержкой новых моделей (например, DeepSeek-V3/V4 или Llama 3.1) лучше всего использовать установку из репозитория или pip с флагом обновления:
pip install -U sglang[all]Флаг [all] устанавливает дополнительные зависимости, необходимые для работы с различными типами моделей (включая диффузионные модели и специфические парсеры JSON).
pip install --index-url https://pypi.org/simple/ ... или настройте прокси). Также можно клонировать репозиторий и устанавливать через pip install . после локальной сборки.03Первый запуск
После установки SGLang предоставляет два основных интерфейса: командную строку для быстрого тестирования и серверный режим для интеграции с приложениями. Мы рассмотрим запуск сервера, так как это основной сценарий использования.
Шаг 1. Запуск сервера инференса
Запустите демон SGLang, указав путь к модели. SGLang автоматически скачает модель с Hugging Face, если она не найдена локально. Для примера возьмем популярную модель meta-llama/Llama-3-8b-instruct.
python -m sglang.launch_server --model-path meta-llama/Llama-3-8b-instruct --host 0.0.0.0 --port 30000Параметры:
--model-path: Имя модели в Hugging Face или локальный путь.--host 0.0.0.0: Позволяет подключаться к серверу с других устройств в сети.--port 30000: Порт, на котором будет работать API (по умолчанию 30000).
Шаг 2. Отправка запроса
Откройте новый терминал, активируйте то же окружение и отправьте тестовый запрос через API, совместимый с OpenAI:
import requests
url = "http://localhost:30000/v1/chat/completions"
headers = {"Content-Type": "application/json"}
data = {
"model": "meta-llama/Llama-3-8b-instruct",
"messages": [
{"role": "user", "content": "Напиши короткое стихотворение про искусственный интеллект"}
],
"max_tokens": 128
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])Если вы видите ответ от модели, поздравляем! SGLang успешно запущен. Благодаря оптимизациям, повторные запросы с похожими префиксами будут обрабатываться значительно быстрее.
04Частые проблемы
- Ошибка Out of Memory (OOM): Если модель не помещается в VRAM, SGLang может попытаться использовать CPU-оффлоадинг, что критически замедлит работу. Решения: используйте квантованные модели (AWQ, GPTQ, INT4), уменьшите размер контекста (
--context-size) или запустите модель на нескольких GPU с флагом--tp-size(tensor parallelism). - Проблемы с загрузкой моделей из Hugging Face: В условиях санкций или плохой связи загрузка весов может зависать. Решение: Скачайте модель вручную через
Источник: SGLang (офиц. документация) ↗
