Inference

SGLang

Фреймворк для структурированной генерации и эффективного инференса LLM с RadixAttention.

Что такое SGLang

SGLang (Structured Generation Language) — фреймворк инференса и сервинга LLM от команды LMSYS. Ключевое отличие от vLLM — RadixAttention: KV-кеш организован как radix-дерево, что обеспечивает автоматическое переиспользование общих префиксов между запросами без явной настройки. Это особенно выгодно для сценариев с длинными системными промптами или RAG, где большой префикс повторяется у множества запросов.

На задачах с длинными общими префиксами SGLang демонстрирует TPS выше, чем vLLM, при той же VRAM. На моделях типа Llama 3 70B на H100 SXM SGLang достигает 1500–2000 токенов/с суммарного throughput.

Ключевые возможности

  • RadixAttention — автоматическое переиспользование KV-кеша по общим префиксам
  • Structured outputs — принудительная генерация JSON, regex, grammar без потери скорости
  • Speculative decoding — поддержка черновой модели для ускорения декодирования
  • OpenAI-совместимый API — drop-in замена для vLLM/TGI
  • Multi-modal — поддержка vision моделей (LLaVA, InternVL и др.)

Быстрый старт

pip install sglang[all]

# Запуск сервера
python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-8B-Instruct \
  --host 0.0.0.0 \
  --port 30000

# Docker
docker run --gpus all -p 30000:30000 \
  lmsysorg/sglang:latest \
  python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-70B-Instruct \
  --tp 4

Запрос с принудительным JSON-форматом:

import sglang as sgl

@sgl.function
def extract_info(s, text):
    s += sgl.system("Отвечай только JSON.")
    s += sgl.user(text)
    s += sgl.assistant(sgl.gen("result", max_tokens=200))

state = extract_info.run(text="Имя: Иван, возраст: 30")
print(state["result"])

Когда выбирать SGLang

SGLang особенно выгоден при:

  • Длинных одинаковых системных промптах (RAG, агенты)
  • Структурированной генерации (JSON, код)
  • Multi-modal задачах
  • Максимальном TPS на A100/H100

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер