Files

7.5 KiB
Raw Permalink Blame History

P28. DistServe: раздельное выполнение prefill и decode

  • Версия и дата проверки: 1.1, 07.09.2026.
  • Статус: готово к назначению.

Статья и исходные материалы

  • Основная статья: Yinmin Zhong и соавт. — DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving. OSDI 2024.
  • Кратко о статье: Обработка LLM-запроса состоит из вычислительно насыщенного prefill и последовательного decode с другим профилем нагрузки, поэтому совместное выполнение мешает независимо масштабировать стадии. DistServe размещает их на разных наборах устройств и передаёт между ними KV-кэш, оптимизируя полезную пропускную способность при ограничениях на TTFT и TPOT. Проект воспроизводит этот компромисс на CPU-модели.
  • Почему результат актуален: исходная реализация остаётся исследовательским артефактом, однако раздельные prefill и decode вошли в современные системы инференса, включая экспериментальный режим vLLM. Поэтому проект проверяет уже применяемое архитектурное решение и его границу выгодности.
  • Артефакты и данные: LLMServe/DistServe под Apache-2.0; включает код системы, профилировщик, сценарии оценки и simdistserve. Зафиксированные ревизии: LLMServe/DistServe@82831f1604cc (Apache-2.0).
  • Что уже предоставляет артефакт: Готовый simdistserve содержит очереди, workers, профили, генерацию запросов, варианты DistServe и vLLM, goodput и сценарии оценки. Он используется только как эталон и источник профилей; центральную событийную модель команда пишет независимо. Проверенные исходные материалы: simdistserve, модель worker.

Обязательный результат

  • Проверяемый вопрос или утверждение: разделение prefill и decode увеличивает goodput при одновременных ограничениях на TTFT и TPOT, если выигрыш от независимого масштабирования превышает стоимость передачи KV-кэша.
  • Технический результат: Независимо реализовать уменьшенный CPU-симулятор фаз prefill и decode с очередями, профилями и моделью сети. Добавить совместное и раздельное размещение, общий генератор запросов, журнал событий и проверки сохранения запросов, пропускной способности и разложения задержки. Разрешены библиотеки событийной симуляции; готовые модель очередей, workers и планировщик simdistserve используются только как эталон.
  • Обязательное приращение команды: Создать независимый уменьшенный CPU-симулятор фаз и сети с совместным и раздельным размещением, журналом событий и проверками сохранения запросов и времени. На контрольных сценариях сопоставить его с авторским симулятором при согласованных профилях и допущениях и разобрать расхождения.
  • Эксперимент: Сначала сопоставить собственный и авторский симуляторы на контрольных сценариях при одинаковых профилях и согласованных допущениях, объяснив расхождения. Затем сравнить совместное и раздельное размещение для нескольких распределений длин входа и выхода, варьируя пропускную способность сети и проверяя TTFT, TPOT и goodput.
  • Границы выводов: выигрыш раздельного выполнения определяется профилями и сетевой моделью симулятора; без GPU-стенда он не подтверждает фактические TTFT, TPOT, goodput и цену передачи KV-кэша в DistServe.
  • Ресурсный профиль: Локально, CPU, 8–16 ГБ памяти для собственного и авторского симуляторов; полная система с как минимум двумя GPU остаётся необязательной. Использовать опубликованные профили; для контрольного сравнения согласовать учитываемые задержки и ограничения, а дополнительные сетевые режимы исследовать отдельно в собственной модели.

Содержательные направления

  • независимая модель фаз и проверка по авторскому симулятору.
  • политики размещения, маршрутизации и корректность событий.
  • SLO, сетевые ограничения и анализ чувствительности.

Возможное продолжение

Динамически переключать совместный и раздельный режим, учитывать неоднородные ускорители, искать неблагоприятные режимы либо предложить новую политику выбора числа экземпляров каждой фазы.

История уточнений

Дата Версия Основание Изменение обязательного результата
07.09.2026 1.1 Статический просмотр закреплённого артефакта: готовые сценарии частично покрывают задание. Закреплены независимый CPU-симулятор и контрольное сопоставление; simdistserve служит эталоном и источником профилей.