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