Files
nis2/project-tasks/p28-distserve.md
T
2026-09-06 19:26:12 +03:00

4.8 KiB
Raw Blame History

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

  • Версия и дата проверки: 1.0, 05.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).

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

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

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

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

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

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