Проблема дисбаланса фаз
Архитектура Prefill-Decode Disaggregation разделяет генерацию LLM на две фазы: prefill (обработка входного промпта) и decode (построчная генерация). В реальных нагрузках (например, на Azure) соотношение этих задач постоянно меняется: то всплески запросов, то длительные периоды генерации. Статические системы, закрепляющие фиксированное число GPU за каждой фазой, не справляются с такими колебаниями, что приводит к нарушению SLA (SLO) даже при наличии свободных ресурсов.
Решение: In-Place Elasticity
Команда разработчиков (Kartik Ramesh, Kaidi Fu и др.) создала FluidPD — систему, которая меняет роли GPU «на лету» без перезагрузки моделей. В основе лежат два механизма:
- FluidToken: решает кратковременные пики. Если у фазы decode есть свободные ресурсы, она временно забирает часть вычислений prefill.
- FluidRole: решает долгосрочные сдвиги. Система переназначает работающие GPU с роли prefill на decode (и наоборот) без перезапуска движка и перезагрузки весов модели.
Ключевые метрики эффективности
Тестирование проводилось на реальных продакшн-трассах Azure. Результаты показывают радикальное улучшение качества обслуживания по сравнению со статическим планировщиком SGLang:
| Метрика | FluidPD | SGLang (Static) |
|---|---|---|
| Улучшение SLO Attainment | +94.6 п.п. | Базовый уровень |
| Дополнительные GPU | 0 (In-Place) | Требуются для масштабирования |
| Задержка реакции | Мгновенная (на уровне тензоров) | Медленная (автоскейлинг) |
Почему это важно
FluidPD доказывает, что оптимизация существующих ресурсов эффективнее их покупки. Использование «легковесных индексов давления» позволяет системе предвидеть узкие места до того, как они нарушат таймауты запросов. Это критически важно для коммерческого развертывания LLM, где стоимость GPU и стабильность сервиса являются ключевыми факторами.
Источник: arXiv cs.AI ↗
