Files
nis2/project-tasks/p26-b-parrot-prefix-locality.md
T

5.8 KiB
Raw Blame History

P26-B. 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 предоставляет семантические переменные, планирование и примеры приложений. Код и описание используются как эталон взаимодействия запросов и общего префикса.

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

  • Проверяемый вопрос или утверждение: Знание общих частей промптов позволяет уменьшать повторные вычисления, но политика локальности может конфликтовать с балансировкой очередей и критическим путём приложения.
  • Технический результат: Реализовать исполнитель составных запросов с явными семантическими переменными, блочным кэшем префиксов и двумя политиками маршрутизации: least-loaded и prefix-aware. Допустима малая локальная модель или детерминированная функция с измеряемой стоимостью.
  • Обязательное приращение команды: Реализовать предусмотренные CPU-исполнитель, блочный кэш и маршрутизацию least-loaded и prefix-aware. Подготовить собственную параметризованную нагрузку, проверку изоляции результатов и измерения попаданий, повторной работы и времени приложения.
  • Эксперимент: Варьировать долю общих префиксов, размер кэша, интенсивность и перекос запросов. Сравнить least-loaded baseline и prefix-aware-политику по hit rate, объёму повторной работы, полному времени приложения, p95 и загрузке исполнителей минимум в трёх сериях; проверить правильность изоляции результатов разных запросов.
  • Границы выводов: компромисс локальности и балансировки проверяется для выбранной модели стоимости, кэша и распределения префиксов; результат не подтверждает совместимость реального KV-кэша модели и производительность GPU-сервера.
  • Ресурсный профиль: локально, CPU, до 16 ГБ памяти; вызов LLM можно заменить малой локальной моделью или детерминированной функцией с измеряемым временем, но сам исполнитель и планировщик должны работать на реальных запросах. Симулятор допустим только для масштабных серий.

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

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

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

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