Prefix-aware routing в SageMaker: когда кластер убивает prefix cache

При случайной балансировке между инстансами одно и то же начало промпта попадает то на одну машину, то на другую , prefix caching в vLLM не успевает накопить KV-пары, и модель снова считает тысячи токенов с нуля. SageMaker Inference добавил стратегию PREFIX_AWARE: запросы с одинаковым началом стабильно идут на один инстанс. Классический кейс , бот с инструкциями на 3 000 токенов и коротким вопросом пользователя на 50. При сотнях запросов фиксированное начало крутится снова и снова, а при случайной балансировке hit rate KV-кэша на кластере держится около 25%, хотя prefix caching уже включён. Что меняется Endpoint смотрит на начало payload и направляет одинаковые префиксы на одну машину. На бенчмарках Llama 3.1 70B Instruct на семи ml.p5.48xlarge с vLLM P50 времени до первого токена сократился на 71, 77%. Hit rate KV-кэша вырос с примерно 25% до более 80%, пропускная способность , на 15, 16%. Роутер добавляет 1,3, 1,9 мс на запрос при TTFT модели 63, 280 мс , на фоне генерации это почти незаметно. Предохранители Если целевой инстанс перегружен, запрос уходит на менее занятую машину , порог задаётся через ConcurrencyThreshold . При масштабировании fleet большая часть трафика остаётся на тех же инстансах, кэши не сбрасываются целиком. Три стратегии маршрутизации RANDOM , равномерно по инстансам; по умолчанию, когда общих префиксов нет. LEAST_OUTSTANDING_REQUESTS , на машину с меньшим числом запросов в обработке; когда время ответа сильно плавает. PREFIX_AWARE , один префикс на один инстанс; для LLM с prefix caching и повторяющимся началом промпта. Где это заметно в AI-кодинге RAG , один документ в начале промпта у разных пользователей. Мультитуровые чаты , история диалога растёт и становится общим префиксом. Дополнение кода , содержимое файла в контексте, пока правишь один файл. Шаблонные ассистенты , длинные правила и persona в каждом запросе. Включение , в RoutingConfig при создании endpoint: PrefixLength (1024, 65536) задаёт, сколько начала учитывать; ConcurrencyThreshold (1, 1024) , порог переполнения. Стратегию можно сменить обновлением конфигурации без передеплоя модели. Для изоляции тенантов , заголовок X-Amzn-SageMaker-Prefix-Aware-Id или поле prompt_cache_key в OpenAI-compatible API. Источник: Reduce LLM latency with prefix-aware routing on Amazon SageMaker Inference .