GPU-сети для ИИ: полное сравнение io.net, Aethir и Nosana 2025
16-11-2025, 22:17
Авторизуйтесь или зарегистрируйтесь, чтобы оценивать материалы, создавать записи и писать комментарии.
Авторизоваться© 2025 24k.ru. Все материалы носят исключительно информационный характер и не являются индивидуальной инвестиционной рекомендацией (ФЗ-39 «О рынке ценных бумаг»). Криптовалюты не являются законным средством платежа в РФ (ФЗ-259). Используя сайт, вы соглашаетесь с нашей Политикой конфиденциальности и использованием cookie.
Когда LLM переезжают из ноутбука в прод, внезапно выясняется, что «модель работает» и «модель отбивает счёт за GPU» — это разные вещи. Нужен движок, который умеет держать высокую нагрузку, не падать по памяти и не раздувать latency p95. Одно из де-факто решений на сегодня — vLLM с его PagedAttention, continuous batching и гибким управлением KV-кэшем.
В этом гайде разберём, как строить продовый сервинг на vLLM: что делает движок «особенным», как работать с KV-кэшем, как влияют настройки top-k / top-p / temperature на стоимость и скорость, и какие метрики по latency p95 действительно важно мониторить. За базовой теорией и экономикой LLM можно дополнительно посмотреть в наш вики-гайд «Оптимизация стоимости LLM-нагрузок».
vLLM — это open-source движок для высокопроизводительного сервинга LLM, построенный вокруг идеи PagedAttention и непрерывного батчинга запросов. Его цели:
Согласно оригинальной работе по PagedAttention и vLLM, такой подход позволяет:
Отдельную техническую статью по самому проекту vLLM мы разбираем в вики на странице vLLM: высокопроизводительный движок для LLM-инференса, здесь же смотрим на него глазами продового инженера.
В современном LLM-сервинге узким местом почти всегда оказывается KV-кэш — те самые key/value-тензоры для attention, которые нужно хранить для каждого токена в каждом запросе. Контекст растёт → KV-кэш раздувается → GPU-память забита, батчи нельзя увеличивать, latency p95 ползёт вверх.
Традиционный подход:
Результат — огромное количество «дыр» в GPU-памяти и необходимость либо ограничивать длину контекста, либо задушить batch size, чтобы всё помещалось.
PagedAttention в vLLM относит KV-кэш к GPU примерно так же, как ОС относится к оперативной памяти: через слои «виртуальных» и физических страниц.
Основные идеи:
Так удаётся почти полностью избавиться от внешней/внутренней фрагментации и высвободить память под более крупные батчи и длинный контекст — без переписывания attention-ядер с нуля.
Второй столп vLLM — continuous batching: вместо того чтобы формировать батч «по расписанию», движок постоянно подмешивает новые запросы к уже выполняющимся.
С точки зрения планировщика, запрос проходит несколько фаз:
Prefill загружает математику по максимуму, decode — чаще упирается в память KV-кэша. vLLM умеет различать эти фазы и за счёт этого:
Continuous batching даёт сильный прирост по throughput, но при неправильных настройках может ухудшать latency p95 для отдельных запросов: новые запросы будут ждать, пока батч «донаберётся» или пока GPU освободится от тяжёлого контекста.
Типичные настройки, которые приходится подбирать:
С ФинОпс-точки зрения задача простая: найти точку, где черезput высокий, а latency p95 остаётся в разумных пределах (например, < 2–3 секунд для первых токенов и < 5–7 секунд для полного ответа в чат-сценариях).
На первый взгляд параметры top-k, top-p, temperature про креативность, но у них есть и системный эффект: они влияют на скорость декодирования и иногда на стабильность latency.
top-k — ограничение числа токенов-кандидатов, среди которых выбирается следующий символ.
С точки зрения latency/стоимости разумные значения для продового сервинга — k в диапазоне 20–40 для креативных задач и 1–5 для аналитики и строго-форматных ответов.
top-p задаёт суммарную вероятность «ядра» распределения. Модель сортирует токены по вероятности и выбирает минимальный набор, сумма вероятностей которого ≥ p.
Системно top-p чуть менее критичен, чем top-k, но в проде часто используют top-p 0.8–0.95 в паре с разумным k, чтобы держать баланс.
Temperature размывает или заостряет распределение вероятностей:
Для latency и стоимости temperature критична меньше, чем top-k/top-p, но экстремальные значения могут приводить к длинным или «залипшим» ответам, что ухудшает p95.
Теперь соберём всё в «картинку»: как обычно выглядит продовый сервинг LLM на базе vLLM.
| Параметр | Типовое значение | Комментарий |
|---|---|---|
| model | llama-3-8b-instruct (пример) | Выбор конкретной модели зависит от задач и лицензий. |
| max_model_len | 8k–16k | Больше контекст — больше KV-кэш. Для многих задач 8k достаточно. |
| gpu_memory_utilization | 0.8–0.9 | На сколько процентов заполняем VRAM под модель + KV-кэш. |
| max_num_batched_tokens | 4k–8k | Ограничивает суммарное число токенов в батче. |
| tensor_parallel_size | 1–2 | Для больших моделей — распределённый inference по нескольким GPU. |
| enable_chunked_prefill | true | Делит длинный prefill на чанки, чтобы сгладить нагрузку. |
Для продового сервинга на vLLM минимальный набор метрик:
Ядро оптимизации — баланс между «хочу ответ быстрее» и «хочу обслужить больше запросов теми же GPU». Continuous batching позволяет сильно поднять throughput, но если агрессивно ждать наполнения батчей, пострадают пользователи, у которых latency уйдёт за разумные пределы.
Практичный подход:
Классический сервинг через Transformers или простые обёртки над PyTorch обычно:
vLLM решает эти проблемы за счёт PagedAttention и более умного планировщика: KV-кэш хранится в страничной модели, запросы постоянно подмешиваются к батчам, а throughput при тех же GPU ресурсах может вырасти в разы.
Напрямую vLLM «не ускоряет математику модели» — он делает более эффективным использование GPU:
В итоге при правильных настройках вы получаете более предсказуемую p95 и меньше «хвостов» в latency.
Универсальной магической пары нет, но типичные значения для продуктовых сценариев такие:
Важно не только качество текстов, но и стабильность длины ответов: слишком «расслабленные» настройки могут раздувать ответы и портить p95.
Прикидка делается в несколько шагов:
Отдельно стоит посчитать экономику: иногда выгоднее держать несколько «средних» моделей на менее мощных GPU, чем одну огромную на H100.
Если у вас небольшой продукт, десятки тысяч запросов в месяц и задача — быстро выйти в прод, чаще проще использовать готовый облачный API. vLLM имеет смысл, когда:
Материал носит исключительно информационный характер и не является индивидуальной инвестиционной рекомендацией (ФЗ-39). Криптовалюты не являются законным средством платежа в РФ (ФЗ-259).
16-11-2025, 22:17
16-11-2025, 21:50
17-11-2025, 21:03
18-11-2025, 17:30
17-11-2025, 22:43
Комментариев нет