В эпоху, когда искусственный интеллект перестает быть просто генератором текста и начинает «видеть» и «понимать» изображения, видео и сложные документы, архитектура систем инференса сталкивается с новыми вызовами. Классические подходы к обслуживанию больших языковых моделей (LLM), оптимизированные под текстовые потоки, часто оказываются неэффективными при работе с мультимодальными данными. Проблема кроется в неравномерности вычислительной нагрузки: обработка визуальной информации требует совершенно иных ресурсов и временных затрат, чем генерация текста. Если не учитывать эту специфику, производительность всей системы может упасть из-за так называемого «блокирования в голове очереди» (head-of-line blocking), когда быстрый текстовый запрос простаивает, ожидая завершения тяжелой обработки изображения.
NVIDIA Dynamo, открытый фреймворк для обслуживания AI-моделей, предлагает элегантное решение этой проблемы через технологию диссоциации этапов Encode-Prefill-Decode (EPD). Эта методология разделяет жизненный цикл запроса на независимые стадии, позволяя масштабировать их отдельно друг от друга. В результате мы получаем возможность изолировать ресурсоемкое кодирование изображений от процессов префилла и декодирования LLM. В этой статье мы подробно разберем, как работает эта архитектура, какие топологии размещения доступны, и в каких сценариях она дает прирост производительности до 5 раз, а в каких — может даже навредить.
01Почему стандартная архитектура не справляется с мультимодальностью?
Чтобы понять ценность диссоциации, нужно сначала взглянуть на традиционный подход, известный как Aggregated Serving (агрегированное обслуживание). В этой модели каждый GPU-узел запускает единого «агрегированного рабочего» (worker). Этот worker отвечает за весь жизненный цикл запроса: от предобработки медиаданных и запуска визуального трансформера (ViT) до префилла (prefill) и декодирования (decode) языковой модели. Все эти этапы находятся в одном планировщике и используют одни и те же ресурсы GPU.
Такой подход работает отлично, когда обработка медиа составляет малую долю от общей вычислительной нагрузки. Однако, как только запросы начинают содержать несколько изображений высокого разрешения или видео, баланс нарушается. Визуальное кодирование может занимать сотни миллисекунд или даже больше. Поскольку эта задача выполняется на том же GPU, что и LLM, тяжелый мультимодальный запрос начинает «зажимать» другие запросы. Более того, в смешанном трафике текстовые запросы вынуждены ждать завершения обработки изображений у других пользователей, хотя сами они не требуют визуального кодирования. Это приводит к резкому росту времени до первого токена (TTFT) для текстовых запросов и снижению общей пропускной способности системы.

02Суть EPD-диссоциации в NVIDIA Dynamo
NVIDIA Dynamo реализует EPD-диссоциацию, разделяя роли кодировщика (encoder) и рабочих префилла/декодирования (PD workers). Теперь у нас есть два независимых пула:
- Encoder Workers: Их единственная задача — принимать медиаданные (изображения, видео), выполнять предобработку и запускать визуальный трансформер для получения эмбеддингов (векторных представлений).
- PD Workers: Эти узлы получают готовые эмбеддинги от кодировщиков и занимаются исключительно работой с LLM: префиллом (инициализацией контекста) и декодированием (генерацией токенов).
Ключевое преимущество здесь — независимое масштабирование. Если у вас много изображений, вы можете добавить больше GPU для кодировщиков, не трогая ресурсы для LLM. Если же нагрузка на генерацию текста высока, вы масштабируете только PD-воркеры. Передача эмбеддингов между этими этапами происходит через NVIDIA Inference Transfer Library (NIXL), что обеспечивает высокоскоростную и эффективную передачу данных между узлами.

03Три топологии размещения кодировщика
Диссоциация сама по себе не гарантирует успеха; важно то, как именно вы размещаете кодировщики относительно PD-воркеров. NVIDIA Dynamo поддерживает три основные топологии, каждая из которых подходит для своих сценариев.
1. Агрегированное обслуживание (Aggregated)
Это базовый уровень, о котором говорилось выше. Один GPU выполняет все задачи. Простота управления компенсируется низкой эффективностью при мультимодальных нагрузках. Эта топология не рассматривается как решение для оптимизации, но служит точкой отсчета для сравнения.
2. Кодировщик, размещенный совместно (Colocated Encoder)
В этой топологии на каждом GPU запускаются как PD-воркеры, так и один или несколько воркеров кодировщика. Они разделяют вычислительные ресурсы одного GPU, но имеют отдельные очереди запросов и механизмы батчинга. Это решение часто является лучшим выбором для однородных кластеров, где все GPU одинаковы. Поскольку визуальный кодировщик обычно легче, чем LLM, выделение целого GPU только под кодирование было бы неэффективным (большая часть мощности простаивала бы). Colocated подход позволяет использовать свободные циклы GPU для кодирования, не мешая при этом основной работе LLM.
3. Диссоциированный кодировщик (Disaggregated Encoder)
Этот вариант становится привлекательным, когда в вашем кластере есть GPU разных поколений или классов. Например, у вас могут быть мощные GPU (например, NVIDIA GB200) для работы с LLM и более дешевые или старые GPU (например, NVIDIA RTX 6000D) для кодирования. В этой топологии кодировщики работают на отдельном «бюджетном» уровне GPU, а результаты передаются на основной уровень через NIXL. Это позволяет сохранить дорогие ресурсы для самых требовательных задач, а рутинную работу по кодированию переложить на более доступное железо.

04Факторы, определяющие эффективность EPD
Не все сценарии выигрывают от диссоциации. Эффективность EPD зависит от баланса между временем, затрачиваемым на кодирование, префилл и декодирование. Давайте разберем ключевые факторы.
Нагрузка на медиа (Input Media Load)
Чем больше изображений или видео в запросе, тем больше визуальных токенов нужно обработать. В агрегированной модели это создает узкое горлышко. EPD позволяет масштабировать пул кодировщиков, устраняя этот bottleneck. Если ваш запрос содержит 10 изображений или видео высокой четкости, диссоциация даст максимальный прирост.
Длина выходной последовательности (Output Sequence Length, OSL)
Это критический параметр. EPD значительно снижает время до первого токена (TTFT), так как кодирование происходит параллельно или заранее. Однако, если длина генерируемого текста (OSL) очень велика, основное время уходит на этап декодирования. Поскольку диссоциация не ускоряет сам процесс декодирования, общий выигрыш во времени ответа (End-to-End latency) может быть незначительным. EPD наиболее полезна для коротких и средних ответов.
Размер и точность модели
Вычислительная нагрузка визуального кодирователя (ViT) относительно фиксирована. Однако нагрузка на LLM зависит от его размера и точности. В больших плотных моделях (например, 27B+ параметров) вычислительная мощность LLM настолько велика, что доля времени, затрачиваемого на кодирование, становится пренебрежимо малой. В таких случаях затраты на координацию между этапами могут перевесить пользу от разделения. Напротив, в моделях типа Mixture-of-Experts (MoE) или квантованных моделях (например, NVFP4) вычислительная нагрузка на LLM снижается, и доля кодирования визуальному трансформеру становится более значимой, что делает EPD очень эффективной.
Смешанный трафик (Mixed Traffic)
В реальных продакшен-средах всегда смешиваются текстовые и мультимодальные запросы. Без EPD текстовые запросы ждут, пока кодировщик обработает изображения других пользователей. EPD устраняет эту зависимость: текстовые запросы сразу попадают в очередь префилла, минуя этап кодирования. Это радикально снижает TTFT для текстовых запросов.

05Практические результаты бенчмарков
Давайте посмотрим на конкретные цифры, полученные в тестах с моделью Qwen3.5 122B A10B NVFP4. Тестирование проводилось на кластере с GPU NVIDIA GB200 и RTX 6000D.
Сценарий: Тяжелая визуальная нагрузка
Запрос содержал 10 изображений (по 256 токенов на изображение) с длиной вывода 1024 токена. В этом сценарии:
- Colocated EPD: Снизила TTFT на 58% по сравнению с агрегированной моделью.
- Disaggregated EPD: Снизила TTFT на 50%.
Прирост в общем времени ответа (End-to-End) был modest (умеренным), так как 1024 токена генерации все еще занимали много времени. Однако главный выигрыш был в goodput (полезной пропускной способности). Гетерогенная конфигурация (Disaggregated) смогла обслуживать на 70% больше трафика при том же уровне задержки (ITL < 100 мс), так как мы добавили мощность кодирования, не затрагивая бюджет на GPU для LLM.
Влияние количества изображений
При увеличении числа изображений с 5 до 50 (при фиксированной длине вывода 512 токенов), задержка в агрегированной модели росла экспоненциально. В то же время, обе топологии EPD демонстрировали практически плоскую кривую задержки. Это доказывает, что EPD масштабируется линейно с ростом визуальной нагрузки, в то время как классический подход ломается.

Влияние длины вывода (OSL)
Когда мы увеличили длину вывода с 128 до 2048 токенов при фиксированном количестве изображений (5), разница в End-to-End latency между EPD и агрегированной моделью сократилась. Для Disaggregated EPD выигрыш упал с 20.3% до 5.2%. Для Colocated EPD при очень длинных выводах (OSL 2048) мы даже увидели небольшую регрессию (-2.5%), так как накладные расходы на передачу эмбеддингов и конкуренцию за ресурсы GPU стали перевешивать пользу от изоляции кодирования.
Влияние квантования
Интересный результат показал использование квантования. При использовании BF16 для всей модели, Colocated EPD давала прирост goodput в 1.78x. Однако, когда мы квантовали активные веса LLM до NVFP4 (оставив ViT в BF16), прирост вырос до 2.64x. Это происходит потому, что квантование ускоряет LLM, делая этап кодирования относительно более «тяжелым» и значимым в общем времени обработки, что позволяет EPD эффективнее распределять нагрузку.
06Как EPD помогает смешанному трафику
В продакшене редко бывают только мультимодальные запросы. Обычно это смесь текста и изображений. В агрегированной модели, если в батче есть запрос с изображением, все текстовые запросы в этом батче ждут завершения ViT. EPD решает эту проблему «блокировки в голове очереди» (head-of-line blocking). Фронтенд Dynamo маршрутизирует текстовые запросы напрямую к PD-воркерам, которые готовы начать префилл немедленно. Мультимодальные запросы отправляются в пул кодировщиков, а их эмбеддинги подтягиваются к PD-воркерам асинхронно. Это позволяет текстовым запросам обрабатываться с минимальной задержкой, независимо от того, что другие пользователи загружают тяжелые изображения.
В тестах со смешанным трафиком EPD снизила средний TTFT для текстовых запросов на 42.2%, а для запросов с изображениями — на 30.8%. Это делает систему предсказуемой и отзывчивой для всех типов пользователей.
07Что это значит на практике
Для инженеров и архитекторов, внедряющих мультимодальные AI-решения, выводы из этого исследования четкие:
- Оценивайте соотношение нагрузки. Если визуальное кодирование занимает более 10-15% времени обработки запроса, EPD стоит рассмотреть. Если LLM доминирует (например, в больших плотных моделях с длинным выводом), классическая архитектура может быть проще и эффективнее.
- Используйте гетерогенные кластеры. Если у вас есть доступ к более дешевым GPU, выделите их под кодировщики. Это позволит использовать мощные GPU (как GB200) только для самых требовательных вычислений LLM, экономя бюджет.
- Применяйте квантование. Использование NVFP4 для LLM в сочетании с EPD дает синергетический эффект, значительно увеличивая полезную пропускную способность (goodput).
- Настройте Dynamo правильно. Убедитесь, что включен parallel media decoding для выгрузки загрузки и декодирования медиа из воркеров во фронтенд. Используйте embedding cache для повторного использования эмбеддингов одинаковых медиа и multimodal KV routing для маршрутизации запросов с похожими медиа на одни и те же воркеры, минимизируя передачу данных.
EPD-диссоциация в NVIDIA Dynamo — это не просто оптимизация, а смена парадигмы обслуживания мультимодальных моделей. Она позволяет строить системы, которые масштабируются независимо по каждому этапу обработки, обеспечивая высокую скорость отклика даже под тяжелой визуальной нагрузкой. Для тех, кто хочет воспроизвести эти результаты, NVIDIA предоставляет открытые руководства на GitHub, а документация Dynamo содержит все необходимые настройки для развертывания.
08Заключение
Мультимодальный AI требует гибкой архитектуры. Жесткие, монолитные подходы уступают место модульным системам, где каждый компонент может масштабироваться автономно. EPD-диссоциация в NVIDIA Dynamo демонстрирует, как правильное разделение ответственности между этапами инференса может привести к кратному ускорению обработки запросов. Понимание того, когда применять эту технологию, и как настраивать топологию размещения, станет ключевым навыком для построения высокопроизводительных AI-сервисов будущего.
Источник: NVIDIA Developer ↗
