
SGLang: как исполнять программы на языковых моделях
Как язык из семи примитивов и рантайм с деревом KV-кеша дали до 6,4× пропускной способности
Содержание слайдов
1. SGLang: как исполнять программы на языковых моделях
Как язык из семи примитивов и рантайм с деревом KV-кеша дали до 6,4× пропускной способности
2. SGLang вырос из повторяющихся вычислений
Zheng, Sheng и коллеги: программа знает больше сервера
3. Программы вместо чатов, рантайм вместо строк
Проблема → язык → рантайм → результат
4. Страницы хранят, дерево переиспользует
vLLM делит префикс, заданный заранее; SGLang сам находит и хранит любые общие префиксы
5. От чата к LM-программе
Много зависимых вызовов, поток управления, структурированный ввод-вывод
6. Писать тяжело, исполнять расточительно
Две проблемы и один ответ: фронтенд-язык плюс сопроектированный рантайм
7. Семь примитивов внутри Python
extend, gen, select, fork, join, image, video — остальное даёт сам Python
8. Интерпретатор как поток асинхронных операций
Примитивы уходят в фоновый стрим, как запуск ядер CUDA; чтение результата ждёт
9. Четыре узора общих префиксов
Few-shot, self-consistency, многоходовый чат, tree-of-thought
10. Кеш — это дерево, а не таблица
Радиксное дерево хранит KV-кеш всех запросов; рёбра — последовательности токенов
11. Вставка, совпадение, разрез, вытеснение
Как дерево живёт под потоком запросов: два чата, few-shot и self-consistency
12. Кеш никогда не спорит с батчем
Счётчик ссылок защищает работающие запросы; вытесняются листья с нулём
13. Самый длинный общий префикс — первым
Сортировка очереди по совпавшему префиксу равна обходу дерева в глубину
14. Подсказки с фронтенда и много GPU
fork сначала посылает общий префикс; tensor parallel без синхронизации; роутер с мета-деревом
15. Ограничение по символам, модель — по токенам
Regex превращается в конечный автомат, который маскирует недопустимые токены на каждом шаге
16. Сжатый автомат прыгает вперёд
Цепочка одиночных переходов схлопывается в одно ребро и декодируется за один проход
17. Спекуляция для закрытых API
Один вызов вместо двух: модель продолжает мимо stop, интерпретатор подбирает остаток
18. Сравниваем программы, а не токены
Максимальная пропускная способность и задержка одиночной программы — разные опыты
19. До 6,4× пропускной способности
Llama-2-7B на A10G против Guidance, vLLM и LMQL; задержка ниже до 3,7×
20. Каждая деталь окупается, дерево почти бесплатно
Попадания в кеш растят батч и режут задержку; накладные расходы дерева — 0,3 %
21. Большие модели, картинки, Chatbot Arena
Tensor parallel сохраняет тренд; мультимодальность — до 6×; в проде до 74 % попаданий
22. Где рецепт не дотягивает
Голодание в жадном планировщике, один уровень памяти, искажённые вероятности сжатого автомата
23. Что унести из статьи
Структура программы — ресурс; кеш — дерево; ограничения сжимаемы
24. SGLang научился обслуживать крупные MoE
DeepSeek: раздельные prefill и decode, параллелизм экспертов
25. HiCache вывел кеш за пределы GPU
План из заключения статьи стал многоуровневой памятью
26. Кеш префиксов стал общей задачей
Разные структуры данных обслуживают одну потребность