Files
nis2/project-tasks/p26-a-parrot-graph-scheduling.md
T

5.9 KiB
Raw Blame History

P26-A. Parrot: планирование графа

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

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

  • Основная статья: Chaofan Lin и соавт. — Parrot: Efficient Serving of LLM-based Applications with Semantic Variable. OSDI 2024.
  • Кратко о статье: LLM-приложение часто состоит из зависимых вызовов модели, но обычный сервис видит их как отдельные непрозрачные запросы и не может учитывать общий критический путь. Parrot вводит семантические переменные, раскрывающие зависимости и повторно используемый контекст, и планирует весь граф приложения. В этом проекте графовое планирование сравнивается с последовательной и простой очередной обработкой.
  • Почему результат актуален: Parrot добавляет в интерфейс LLM-сервиса семантические переменные, которые раскрывают зависимости между вызовами и структуру промптов для совместной оптимизации всего приложения.
  • Артефакты и данные: microsoft/ParrotServe под MIT, с клиентской частью, примерами составных приложений, планировщиком и тестами. Зафиксированные ревизии: microsoft/ParrotServe@2e1825ee2bc3 (MIT).
  • Что уже предоставляет артефакт: ParrotServe содержит семантические переменные, исполнитель, планировщик, примеры составных приложений и тесты. Эти материалы служат образцом интерфейсов и эталоном зависимостей для собственного CPU-сервиса.

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

  • Проверяемый вопрос или утверждение: знание графа вызовов и общих префиксов позволяет сервису распараллеливать независимые запросы, переиспользовать состояние и оптимизировать время выполнения приложения лучше, чем при обработке непрозрачных запросов по отдельности.
  • Технический результат: Реализовать исполняемый сервис составного приложения с семантическими переменными, реальной очередью и двумя DAG, содержащими последовательные и независимые вызовы. Исполнитель должен поддерживать последовательную и графовую политики.
  • Обязательное приращение команды: Реализовать предусмотренный сервис с реальной очередью и двумя DAG, политики последовательного, пакетного и графового выполнения и проверки зависимостей. Собрать собственные сквозные измерения по времени приложения, ожиданию и загрузке.
  • Эксперимент: Сравнить последовательное выполнение, обычную пакетную обработку и планирование по критическому пути при нескольких уровнях параллелизма. Измерить полное время приложения, p95, загрузку исполнителей и ожидание узлов; проверить корректность зависимостей и выполнить не менее трёх серий.
  • Границы выводов: эффект планирования графа проверяется для двух составных DAG и локального исполнителя с измеряемой стоимостью вызовов; он не характеризует качество LLM, GPU-планирование и производственную нагрузку Parrot.
  • Ресурсный профиль: локально, CPU, до 16 ГБ памяти; вызов LLM можно заменить малой локальной моделью или детерминированной функцией с измеряемым временем, но сам исполнитель и планировщик должны работать на реальных запросах. Симулятор допустим только для масштабных серий.

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

  • графы приложений и нагрузки.
  • реализации политик и инструментирование.
  • метрики, граничные случаи и новое правило планирования.

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

Исследовать неполные или ошибочные аннотации, динамически раскрываемые зависимости, изоляцию между пользователями либо компромисс между локальностью префикса и критическим путём.