Об этом проекте

# Обзор llm-d Router llm-d Router — это интеллектуальная точка входа для трафика инференса в средах Kubernetes, предназначенная для оптимизации обслуживания LLM за счёт маршрутизации с учётом нагрузки и префикс-кэша, приоритизации запросов и расширенного управления потоками. Он поддерживает различные форматы запросов и сложные цели обслуживания, что делает его пригодным для AI-развёртываний промышленного уровня. ## Основные компоненты Репозиторий содержит несколько ключевых компонентов: 1. **Endpoint Picker (EPP)**: интеллектуальный механизм маршрутизации, выполняющий роль «мозга» роутера. Он оценивает входящие запросы относительно текущего состояния InferencePool, учитывая такие факторы, как локальность KV-кэша, текущая нагрузка и приоритет, чтобы принимать оптимальные решения о размещении. Он интегрируется с L7-прокси через протокол ext-proc. 2. **API управления запросами**: ресурсы, влияющие на поведение EPP: - **InferenceObjective**: настраивает цели планирования для конкретных запросов, включая уровни приоритета и целевые показатели производительности. - **InferenceModelRewrite**: обеспечивает переименование модели для гибкого управления трафиком, поддерживая A/B-тестирование и канареечные развёртывания. 3. **Disaggregation Sidecar**: координационный компонент, развёртываемый вместе с серверами моделей (обычно как sidecar для decode-воркеров). Он оркестрирует сложные многоэтапные жизненные циклы инференса, такие как P/D (Prefill/Decode) и E/P/D (Encode/Prefill/Decode), взаимодействуя со специализированными воркерами для управления передачей KV-кэша и эмбеддингов. ## Режимы работы llm-d Router поддерживает два основных режима развёртывания: ### 1. Standalone Mode Этот режим использует самостоятельно управляемый прокси Envoy без необходимости инфраструктуры Gateway API. Standalone Helm-чарт поддерживает две топологии: - **Sidecar mode** (по умолчанию): прокси работает в поде EPP, подходит для базового тестирования и локальных оценок. - **Service mode**: прокси работает как отдельный горизонтально масштабируемый Deployment и Service, достигая EPP через его Service. Установите `router.proxy.mode=service`, чтобы масштабировать прокси независимо. ### 2. Gateway Mode (Inference Gateway) Рекомендуемый производственный режим использует официальный Kubernetes Gateway API. EPP выступает в качестве бэкенда для InferencePool, на который ссылается HTTPRoute на общем Gateway. Это обеспечивает расширенное управление трафиком, межкластерную балансировку нагрузки и общую инфраструктуру как для инференса, так и для традиционных рабочих нагрузок. ## Архитектура и документация Проект предоставляет исчерпывающую документацию, включая: - Детали архитектуры, логику маршрутизации и плагины (фильтры и скореры) - Рекомендации по размеру контейнеров для тяжёлых рабочих нагрузок или нагрузок с длинным контекстом - Спецификации формата логов OpenTelemetry JSON stdout - Руководства по настройке disaggregation - Инструкции по проверке артефактов для безопасности ## Технические требования Для автоматической установки Envoy проект предоставляет инструменты, но ручная установка требует поддержки режимов тела запроса/ответа `FULL_DUPLEX_STREAMED` в фильтре ext-proc. ## Сообщество и вклад Проект поощряет участие сообщества: проводятся встречи раз в две недели, есть выделенный канал Slack (#sig-router) и руководство по внесению вклада. Он следует руководству по внесению вклада организации llm-d, а крупные изменения следует сначала обсуждать через issues. ## Безопасность Публикуемые образы контейнеров имеют подписанную аттестацию происхождения и SBOM (software bill of materials). Руководящие указания по сообщению о проблемах безопасности описаны в SECURITY.md, а также приведены инструкции по проверке выпущенных артефактов. В целом, llm-d Router — это надёжное решение для организаций, стремящихся к интеллектуальной, масштабируемой маршрутизации инференса в Kubernetes, особенно для современных рабочих нагрузок LLM с требованиями disaggregated serving.