Продажи токенов ICO Налоги и криптовалюта

Эффективное масштабирование обслуживания больших языковых моделей: жизненный цикл запроса на вывод в vLLM V1

Продажи токенов ICO Налоги и криптовалюта
Life of an inference request (vLLM V1): How LLMs are served efficiently at scale

Подробный разбор архитектуры и процессов обработки запросов на вывод в системе vLLM V1, позволяющей эффективно и масштабируемо обслуживать крупные языковые модели с использованием современных технологий и оптимизаций GPU.

С развитием искусственного интеллекта и ростом популярности больших языковых моделей (LLM) возникает необходимость их эффективного и масштабируемого обслуживания. Одним из передовых решений в этой области является open-source движок для инференса vLLM V1, разработанный Ubicloud. Эта система отличается высокой производительностью и уникальной архитектурой, которая позволяет быстро обрабатывать огромное количество запросов с максимальным использованием ресурсов GPU. В данной статье подробно рассматривается жизненный цикл запроса на вывод (инференс) в vLLM V1, что поможет понять, какие технологии и методы лежат в основе современного сервера для масштабного обслуживания LLM. Ubicloud, позиционируемый как открытая альтернатива AWS, реализует управляемые облачные сервисы, основанные на PostgreSQL, Kubernetes и vLLM.

Ключевая задача vLLM — эффективно обслуживать крупные языковые модели, такие как Llama 4, распределяя нагрузку по нескольким GPU-инстансам и обеспечивая балансировку трафика и устойчивость системы. Пользователи взаимодействуют с системой через OpenAI-совместимые API, которые принимают запросы, определяют, какой из инстансов vLLM обработает запрос, и возвращают результаты. Жизненный цикл запроса начинается с момента поступления HTTP-запроса в API-сервер vLLM. Обычно это POST-запрос на endpoint /v1/chat/completions, который содержит набор сообщений клиента, оформленных в формате, совместимом с OpenAI. Сервер обрабатывает аутентификацию, проверяет корректность данных и передает управление движку AsyncLLM, асинхронному обертке поверх EngineCore — центрального компонента, отвечающего за вычисления.

AsyncLLM занимается токенизацией входного текста, преобразуя его в числовые идентификаторы токенов через токенизатор Hugging Face и отправляет запрос в EngineCore с помощью высокопроизводительной межпроцессной коммуникации (IPC) по протоколу AsyncMPClient. Разделение AsyncLLM и EngineCore на различные процессы — важная архитектурная особенность. Это позволяет обойти глобальную блокировку интерпретатора Python (GIL) и эффективно распараллелить CPU-интенсивные задачи, такие как обработка HTTP и токенизация, и GPU-вычисления для инференса модели. Внутри EngineCore запросы попадают в внутреннюю очередь, откуда их забирает планировщик (Scheduler). Scheduler — сердце системы для управления одновременной обработкой множества запросов.

Он поддерживает очередь запросов, готовых к обработке, и список текущих в работе. В каждом цикле работы системы Scheduler решает, сколько токенов вычислить для каждого запроса, используя концепцию непрерывного бэтчинга (continuous batching). Эта технология позволяет максимально эффективно загружать GPU, объединяя запросы в батчи, при этом учитывая заданный лимит на максимальное количество токенов в одном бэтче. Такой подход отличается от классического обработки запросов по очереди и позволяет обеспечить справедливость и высокую производительность. Для иллюстрации: если есть три запроса с длиной промпта в 3, 5 и 12 токенов и существует ограничение в 10 токенов за бэтч, Scheduler может сформировать батч из 3 токенов первого запроса, 5 второго и 2 токенов третьего.

В следующем цикле он продолжит с оставшимися 10 токенами третьего запроса и начнет генерацию ответных токенов для первых двух запросов. Это повышает параллелизм и снижает задержки. Обработка запроса разделяется на две фазы: prefill и decode. В фазе prefill модель обрабатывает токены входящего промпта, вычисляя ключи и значения (KV-тензоры) механизма внимания трансформера и сохраняя их в KV-кэше, который представляет собой эффективное хранилище на GPU, оптимизированное для быстрого чтения и записи. После завершения обработки промпта начинается фаза decode, когда модель по одному генерирует новые токены ответа, повторно используя сохраненные KV-тензоры и вычисляя новые запросы (Query).

Такой поэтапный подход обеспечивает эффективность при работе с длинными последовательностями. KV-кэш реализован в виде блоков фиксированного размера — KV-блоков. Это позволяет эффективно управлять GPU-памятью, динамически выделяя и переиспользуя места под ключи и значения без необходимости резервации больших непрерывных блоков памяти. Управление этим кэшем принадлежит модулю KVCacheManager, который вместе с Scheduler определяет, какие блоки выделять для очередных токенов каждого запроса и передает идентификаторы блоков следующему звену — ModelRunner. Реализация загрузки и исполнения модели на GPU распределена между компонентами ModelExecutor и ModelRunner.

Каждый GPU выделяется отдельный worker-процесс под управлением ray — распределенной compute-библиотеки, которая оптимизирует параллельную обработку и распределение нагрузки на устройства. ModelRunner непосредственно загружает весовые коэффициенты модели, формирует батчи запросов, запускает вычисления вперед проходят в рамках трансформера. Послойная обработка входных данных происходит через 64 слоя трансформера (например, в модели DeepSeek R1 Distilled Qwen 32B), на каждом из которых вычисляются тензоры ключей (K), значений (V) и запросов (Q) с использованием высокоэффективной реализации FlashAttention-3. GPU прекрасно справляется с такими массовыми матричными операциями благодаря поддержке технологии SIMD(T), позволяющей одновременно обработать данные всех токенов в батче по разным ядрам CUDA. После формирования логитов (вероятностных распределений по следующим токенам) для каждого запроса применяется выбранная стратегия сэмплинга — например, жадный выбор наиболее вероятного токена или стохастическая выборка с учетом параметров температуры и топ-k.

Полученные токены направляются в внутреннюю очередь для дальнейшей передачи клиенту. Завершающий этап обработки происходит в AsyncLLM, который получает эти токены из EngineCore по IPC, выполняет детокенизацию — преобразование численных идентификаторов обратно в текст — и передает результаты API-серверу. В режиме потоковой передачи (streaming) клиенту отправляются частичные результаты по мере генерации каждого токена, что уменьшает задержки восприятия вывода и улучшает качество взаимодействия. В обычном режиме сервер накапливает все токены и возвращает ответ целиком после завершения генерации. Архитектура vLLM V1 выгодно отличается от предыдущих версий и других решений тем, что использует продвинутую модель распределения задач и управления памятью, позволяет выполнять непрерывное объединение запросов без значительного перепланирования, а также минимизирует накладные расходы на межпроцессное взаимодействие.

Автоматическая торговля на криптовалютных биржах Покупайте и продавайте криптовалюты по лучшим курсам Privatejetfinder.com (RU)

Далее
Ask HN: What's a RSS feed you would recommend?
Воскресенье, 28 Сентябрь 2025 Лучшие RSS-ленты: рекомендации и советы для эффективного использования в 2024 году

Обзор популярных и полезных RSS-лент, которые помогут оставаться в курсе новостей и интересных материалов в сфере технологий, науки и блогосферы, а также рекомендации по выбору и использованию RSS-ридеров для максимальной эффективности.

I vibecoded an ASCII generator called niceascii.com
Воскресенье, 28 Сентябрь 2025 NiceASCII.com: Инновационный генератор ASCII-арта для творчества и вдохновения

NiceASCII. com представляет собой современный онлайн-сервис для создания уникального ASCII-арта, который помогает пользователям легко генерировать визуально привлекательные текстовые изображения.

Vitalik Buterin Proposes Pluralistic IDs to Safeguard Privacy in Digital Systems
Воскресенье, 28 Сентябрь 2025 Виталик Бутерин: Плюралистические Идентификаторы как Новый Уровень Конфиденциальности в Цифровых Системах

Обсуждение инновационной концепции плюралистических идентификаторов, предложенной Виталиком Бутериным, которая направлена на защиту приватности пользователей в цифровой среде и борьбу с рисками, связанными с традиционными моделями цифровой идентификации.

Vitalik Buterin proposes partially stateless nodes for Ethereum scaling - Cointelegraph
Воскресенье, 28 Сентябрь 2025 Виталик Бутерин предлагает частично статeless узлы для масштабирования Ethereum

Виталик Бутерин, сооснователь Ethereum, представил инновационное решение для повышения масштабируемости сети — частично stateless узлы. Они обеспечивают более надежный, приватный и доступный доступ к блокчейну, избегая централизации и сохраняя удобство использования для локальных нод.

Analyse suspicious files, domains, IPs and URLs to detect malware and breaches
Воскресенье, 28 Сентябрь 2025 Эффективные методы анализа подозрительных файлов, доменов, IP-адресов и URL для выявления вредоносных программ и нарушений безопасности

Исследование современных подходов к анализу сомнительных цифровых объектов, таких как файлы, домены, IP-адреса и URL, с целью своевременного обнаружения вредоносного ПО и предотвращения киберугроз.

Western States 2025 Live Stream [video]
Воскресенье, 28 Сентябрь 2025 Прямой эфир Western States 2025: все что нужно знать о главном забеге на длинные дистанции

Подробный обзор и руководство к просмотру прямой трансляции Western States 2025 — главного ультрамарафона в мире беговых соревнований на длинные дистанции, с описанием особенностей забега, истории и советов для зрителей.

When to Hire and When to Wait in Your Trucking Business
Воскресенье, 28 Сентябрь 2025 Когда стоит нанимать водителей в вашем грузовом бизнесе и когда лучше подождать

Разбор ключевых факторов, которые помогут владельцам транспортных компаний принять правильное решение о времени расширения штата и оптимизации бизнеса, чтобы избежать финансовых ошибок и повысить эффективность работы.