DPD на SageMaker HyperPod: ускорение LLM инференса | 2026 | AiManual
AiManual Logo Ai / Manual.
10 Июл 2026 Новости

Разделяем prefill и decode на HyperPod: как DPD выжимает максимум из вашего кластера LLM

Как Disaggregated Prefill Decode (DPD) на SageMaker HyperPod устраняет interference между prefill и decode, снижает tail latency и TTFT. Практика с vLLM и EFA.

Когда универсальность GPU становится проклятием

В прошлом материале мы разобрали, почему смешивание prefill и decode на одних и тех же GPU — это финансовое самоубийство. Если пропустили, вот коротко: prefill жрет FLOPS, decode жрет память. Заставлять H100 делать и то, и другое — всё равно что гонять Ferrari в час пик по МКАДу. Мы уже обсуждали, как Perplexity и Meta экономят миллионы, разводя эти фазы на разные кластеры. Но тогда речь шла о кастомных решениях. Сегодня AWS официально внедрила Disaggregated Prefill Decode (DPD) в SageMaker HyperPod. И это меняет правила игры.

DPD — это не просто патч к vLLM. Это архитектурный сдвиг, вшитый в управляемый кластер. Вы нажимаете кнопку — HyperPod сам размечает ноды на prefill и decode, прокладывает EFA-каналы и балансирует нагрузку.

Что под капотом DPD на HyperPod

DPD расшифровывается как Disaggregated Prefill Decode. В контексте HyperPod это значит: один кластер физически делится на две группы инстансов — prefill-ноды и decode-ноды. Первые работают с длинными контекстами, генерируют KV-cache и гонят его по EFA RDMA вторым. Вторые только декодируют токены, используя готовый кэш. Никакого переключения контекста внутри GPU — каждая карта занята строго своей фазой.

Звучит логично, но дьявол в деталях. На практике DPD требует совместимости с рантаймом. На июль 2026 года HyperPod поддерживает vLLM 0.8.3 (последняя стабильная версия) и NVIDIA Triton Inference Server 24.12. При старте кластера вы указываете конфигурацию с тегами node-type: prefill / decode, а HyperPod сам настраивает discovery и обмен KV-cache через EFA. Никаких ручных ansible-плейбуков.

💡
Без EFA RDMA DPD бесполезен. Если у вас кластер на Elastic Fabric Adapter (как на HyperPod), задержка обмена KV-cache между нодами — единицы микросекунд. Если вы пытаетесь сделать то же самое через TCP — latency растит TTFT больше, чем interference.

Забыть про tail latency и TTFT

Самая грязная проблема обычного инференса — interference. Когда один запрос в фазе prefill выжигает тензорные ядра, а другой в decode ждет память, оба проседают. Tail latency превращается в катастрофу: 99-й перцентиль может быть в 10 раз выше медианы. DPD решает это радикально: prefill-ноды никогда не конкурируют за память, decode — за FLOPS.

В бенчмарках AWS на Llama 4 70B с 8×H100 выигрыш выглядит так:

МетрикаБез DPDС DPD
Time to First Token (P50)320 мс210 мс
Tail latency decode (P99)2.4 с0.9 с
Утилизация GPU (decode-ноды)35%82%

Цифры говорят сами за себя. Но есть нюанс: чтобы получить такой профит, нужно правильно подобрать соотношение prefill:decode. Для Llama 4 70B с промптом до 8K токенов оптимальным оказалось 1:2. Если промпты длиннее — ratio уходит в 1:3. Это перекликается с идеей гетерогенной кластеризации, которую мы разбирали на примере DGX Spark и Mac Studio.

Административный ад или подарок?

Настройка DPD в HyperPod не требует написания кастомных контроллеров. Но и простой её не назовёшь. В CLI SageMaker HyperPod вы указываете DPDConfiguration в спецификации кластера. Как и всё в HyperPod, интерфейс для управления через SDK — суровый, но честный. Никакой магии: вы задаёте список instance groups, метку node-type: prefill или node-type: decode, и AWS сам разворачивает vLLM с флагами --partition prefill и --partition decode.

Главный подводный камень — горячее перераспределение. Если ваша нагрузка резко меняется (утром — короткие чаты, вечером — обработка документов), статическое деление кластера приводит к простоям. HyperPod пока не умеет динамически переключать ноды между ролями без сброса инстансов. Придётся либо держать запас, либо использовать автомасштабирование по разным группам.

А что с другими подходами?

Можно возразить: зачем DPD, если можно просто выделить разные GPU в одном сервере? Упирается в физику. Внутри одного инстанса p5.48xlarge (8×H100) вы можете назначить части GPU prefill, части decode, но общая шина NVLink всё равно создаёт коллизии по памяти при параллельном доступе. HyperPod с EFA и раздельными нодами — это буквально разные стойки. В сетапах с KServe на Kubernetes такой подход тоже реализуем, но там всё придётся делать руками. DPD — боевое, интегрированное решение под капотом HyperPod.

Отдельно стоит вспомнить про сжатие KV-cache. FastDMS ужимает кэш в 6 раз — это уменьшает объём передаваемых данных между prefill и decode нодами. DPD и FastDMS можно комбинировать: на prefill-стороне вы сжимаете KV-cache, на decode — распаковываете. AWS уже подтвердила совместимость в roadmap на Q3 2026.

Взгляд в завтра: DPD как must-have

Если вы планируете кластер для LLM инференса в 2027 году, DPD — не опция, а базовая гигиена. Без разделения фаз вы либо платите за простой GPU (decode), либо за перекос latency (prefill). HyperPod сделал первый шаг к автоматизации этого процесса. Следующий — динамическое адаптивное разделение, где кластер сам решает, сколько нод отдать под prefill в текущий момент. AWS обещает эту фичу к концу 2026.

Совет тем, кто уже экспериментирует: не пытайтесь сэкономить на EFA. Без RDMA latency обмена KV-cache превращает DPD в тыкву. Закажите HyperPod с EFA — разница в цене окупится снижением TTFT и ростом throughput. И да, vLLM 0.8.3 — must have. Старые версии не умеют партицирование.

Подписаться на канал