Пределы возможностей больших моделей определяются самими моделями; однако главная задача для систем инференса (выполнения моделей) заключается в том, чтобы сделать эти возможности доступными для огромного числа пользователей при разумных затратах.
Чтобы удовлетворить потребности в масштабном инференсе ИИ, такие системы прошли путь от простых сервисов, работающих на одной машине, до сложных, распределенных между кластерами комплексов. Такие аспекты, как выполнение операторов, передача данных, планирование задач и управление кэшем, тесно взаимосвязаны и в совокупности определяют общую производительность системы. В случае масштабных онлайн-сервисов оптимизация производительности должна учитывать конкретные условия развертывания: выбор чипов, аппаратную архитектуру, распределение вычислительных ресурсов и возможность повторного использования уже вычисленных результатов.
С самого начала разработка системы инференса DeepSeek V4.1 Flash опиралась на три ключевые цели:
Совместимость с различными вычислительными чипами: обеспечение возможности развертывания системы на разнообразных аппаратных платформах при максимальном использовании потенциала каждой из них. Оптимизация использования оборудования для этапов предварительного заполнения (Prefill) и генерации (Decode): использование стандартных узлов с 8 графическими процессорами (GPU) для этапа Prefill и более крупных «суперузлов» (64–128 GPU) для этапа Decode, с применением стратегий вычислений, передачи данных и планирования, адаптированных к специфическим нагрузкам каждого этапа. Длительное хранение KV-кэша (более 72 часов): создание расширенных возможностей для повторного использования контекста, что позволяет избежать избыточных вычислений на этапе Prefill при наличии данных в кэше, с учетом требований к объему памяти и накладных расходов на управление таким длительным хранением.
Сосредоточившись на этих целях, мы непрерывно оптимизировали процессы вычислений, передачи данных, планирования и хранения. Это позволило нам увеличить эффективную пропускную способность системы, строго соблюдая при этом требования к задержкам (latency). В результате мы можем обрабатывать больше запросов, используя меньше вычислительных мощностей и энергии, что делает интеллектуальные сервисы более доступными для широкого круга пользователей.
Ранее мы открыли исходный код TileLang — инструмента для разработки высокопроизводительных операторов — а также предоставили набор библиотек операторов для инференса. Сегодня мы официально открываем исходный код DeepInfer — нашей платформы для масштабного облачного инференса. Именно на базе этой платформы работают высокопроизводительные сервисы DeepSeek V4.1 Flash с минимальными задержками.
В настоящее время один кластер обеспечивает пропускную способность 155 триллионов токенов в сутки, при этом доходность составляет 38 долларов в час в расчете на один графический процессор (GPU) — по тарифам для периодов низкой нагрузки.
Система DeepInfer объединяет высокопроизводительные операторы и глубоко оптимизированный механизм инференса (вывода). Она поддерживает такие функции, как распределенный инференс, спекулятивное декодирование (speculative decoding), механизм SWA (Sliding Window Attention) с ограниченным повторным вычислением (Bounded Replay) и структурированный вывод данных; кроме того, система совместима как с платформами NVIDIA, так и с Huawei Ascend. Дополнительно мы открыли исходный код компонента `deepseek-recipe`, предназначенного для кодирования и декодирования токенов в промышленных масштабах. Он обеспечивает эффективное и точное преобразование между протоколами API популярных больших языковых моделей и токенами самих моделей.
Логика работы полностью соответствует официальному API DeepSeek, что гарантирует сторонним разработчикам такой же опыт использования API, как и при работе с официальной версией. В дальнейшем код для инференса и последующие оптимизации производительности для новых моделей DeepSeek также будут публиковаться в рамках проекта DeepInfer.
Некоторые компоненты системы инференса — в частности, отвечающие за управление кэшем ключей и значений (KV Cache) и балансировку нагрузки — тесно интегрированы с нашей внутренней инфраструктурой и пока не представлены в открытом доступе. В данной статье описываются общая архитектура и ключевые технические решения системы инференса DeepSeek V4.1 Flash, разработанной с учетом поставленных целей, а также подробно рассматривается устройство упомянутых компонентов.
Обзор архитектуры системы инференса
Основные цели оптимизации системы инференса DeepSeek V4.1 Flash — увеличение пропускной способности и снижение задержек. Для достижения этих целей мы применяем следующие стратегии:
Параллелизм экспертов (Expert Parallelism, EP) для компонентов архитектуры «смесь экспертов» (MoE) — как внутри узлов, так и между ними. Это позволяет увеличить размер пакета (batch size) и повысить эффективность матричных вычислений на GPU, что ведет к росту пропускной способности.
Раздельное развертывание этапов визуального кодирования (Vision Encoder), предварительного заполнения (Prefill) и декодирования (Decode). Такой подход позволяет независимо распределять ресурсы для каждой фазы, обеспечивая возможность точечной оптимизации таких показателей, как TTFT (время до получения первого токена) и TBT (время между токенами).
Используя наработки системы инференса DeepSeek-V3/R1, мы применяем параллелизм по данным (Data Parallelism, DP) для компонентов механизма внимания (ATTN), при этом количество групп параллелизма по данным равно количеству групп параллелизма экспертов (#DP = #EP). Для управления распределением нагрузки между различными группами DP (параллелизм по данным) и EP (параллелизм по экспертам) мы разработали специализированные балансировщики нагрузки для этапов предварительного заполнения (Prefill), декодирования (Decode), работы визуального кодировщика (Vision Encoder) и параллелизма по экспертам (Expert-Parallel).
Кроме того, чтобы избежать вычислительных затрат, связанных с избыточными операциями предварительного заполнения, мы внедрили систему хранения кэша ключей и значений (KV Cache Storage).
При поступлении пользовательского запроса на этап инференса (и до его завершения) необходимо выполнять преобразование между протоколом API и последовательностью токенов. DeepSeek Recipe обеспечивает эффективное и точное кодирование/декодирование данных при переходе от API-протоколов популярных больших языковых моделей (LLM) к последовательностям токенов, используемым в моделях.
Благодаря таким методам, как сегментация специальных токенов и параллельная обработка, удается избежать рисков, связанных с внедрением специальных токенов, и одновременно сократить задержки при токенизации длинных текстов.
Фактические статистические данные из рабочей системы DeepSeek-V4.1-Flash: пропускная способность на карту GPU без учёта попаданий в кэш - 60 тысяч токенов в секунду, а с учётом попаданий - 1,5 миллиона. Это разница в 25 раз! При этом среднее попадание в кэш - 96%.
No comments:
Post a Comment