Критическая важность быстрой инференции LLM в современном ИИ
Большие языковые модели (LLM), такие как Llama 2, Mixtral и GPT-3/4, произвели революцию в нашем взаимодействии с ИИ, обеспечивая все: от продвинутых чат-ботов до сложной генерации контента и помощи в написании кода. Однако огромный размер этих моделей (часто миллиарды параметров) делает их развертывание ресурсоемким, особенно для инференции в реальном времени. Медленная инференция напрямую влияет на пользовательский опыт, отзывчивость приложений и, в конечном итоге, на операционные расходы. Оптимизация скорости и эффективности — это не просто техническая задача; это бизнес-императив.
Облачные провайдеры GPU стали основным решением для доступа к мощному оборудованию по требованию, предлагая гибкость и масштабируемость, которых часто не хватает локальным решениям. Но с ростом числа провайдеров и разнообразием предложений GPU выбор оптимальной среды для инференции LLM может быть сложным. Этот бенчмарк призван прояснить ситуацию, предоставляя основанные на данных выводы, которые помогут вам принимать обоснованные решения.
Ключевые факторы, влияющие на производительность инференции LLM
Прежде чем углубляться в цифры, важно понять, что определяет скорость инференции LLM:
- Архитектура GPU: Различные поколения GPU NVIDIA (Ampere A100, Hopper H100, Ada Lovelace RTX 4090) предлагают различные уровни вычислительной мощности, пропускной способности памяти и специализированных ускорителей ИИ (Tensor Cores). H100, с его Transformer Engine и более высокой пропускной способностью FP8/FP16, специально разработан для больших рабочих нагрузок ИИ.
- Пропускная способность и объем памяти: LLM ограничены памятью. Скорость, с которой GPU может перемещать веса модели и активации в свою VRAM (Video RAM) и из нее, является основным узким местом. Более высокая пропускная способность памяти (например, HBM3 на H100 по сравнению с HBM2 на A100) напрямую приводит к более быстрой инференции. Адекватный объем VRAM также важен для загрузки больших моделей (например, Llama 2 70B в FP16 требует ~140 ГБ, что требует как минимум двух 80-гигабайтных GPU).
- Методы квантования: Уменьшение точности весов модели (например, с FP16 до INT8, форматов AWQ, GPTQ или GGUF) может значительно уменьшить объем памяти и увеличить скорость инференции с минимальной потерей точности. Это позволяет большим моделям помещаться на меньших GPU или работать быстрее на высокопроизводительных.
- Программные оптимизации: Библиотеки, такие как vLLM, TensorRT-LLM, DeepSpeed-MII и FlashAttention, разработаны для максимального использования GPU путем реализации эффективных механизмов внимания, пользовательских ядер и оптимизированного управления памятью.
- Размер пакета (Batch Size): Одновременное выполнение нескольких запросов инференции (пакетирование) может увеличить общую пропускную способность (токенов/секунду), но также может увеличить задержку для отдельных запросов.
Наша методология бенчмаркинга: подробный анализ
Для обеспечения реалистичного сравнения наш бенчмарк фокусируется на распространенных сценариях инференции LLM:
Тестируемые модели:
- Llama 2 70B: Широко используемая, мощная модель с открытым исходным кодом, протестированная как в формате FP16, так и в квантованном формате AWQ (4-бит). Это представляет собой требовательную, крупномасштабную LLM.
- Mixtral 8x7B: Модель Sparse Mixture of Experts (SMoE), известная своей эффективностью и высокой производительностью, протестированная в FP16.
- Llama 2 13B: Меньшая, более доступная модель, протестированная в FP16 и AWQ, подходящая для потребительских GPU, таких как RTX 4090.
Конфигурации оборудования:
Мы выбрали ряд GPU NVIDIA, обычно доступных на облачных платформах:
- NVIDIA H100 80GB (SXM5): Текущий флагман для ИИ, предлагающий беспрецедентную производительность.
- NVIDIA A100 80GB (SXM4): Мощный предшественник, по-прежнему очень производительный и часто более экономичный.
- NVIDIA RTX 4090 24GB: Потребительский GPU, известный своим отличным соотношением цена-производительность в определенных рабочих нагрузках, особенно с квантованными моделями.
Программный стек и среда:
- Операционная система: Ubuntu 22.04 LTS.
- Версия CUDA: 12.1 (или последняя стабильная версия, поддерживаемая провайдером).
- Фреймворк для обслуживания LLM: vLLM (версия 0.3.0), известный своим механизмом PagedAttention и высокой пропускной способностью.
- Библиотеки: PyTorch 2.1+, Hugging Face Transformers, AutoAWQ, AutoGPTQ для квантования.
- Подключение: Все тесты проводились через стабильные интернет-соединения, чтобы минимизировать влияние задержки сети на задачи, ограниченные GPU.
Параметры тестирования:
- Длина запроса (Prompt Length): 512 токенов (имитация умеренно длинного пользовательского запроса).
- Длина генерации (Generation Length): 256 токенов (имитация существенного ответа ИИ).
- Размеры пакетов (Batch Sizes): 1 (для интерактивных приложений, чувствительных к задержкам) и 16 (для максимальной пропускной способности при пакетной обработке).
- Метрики:
- Токенов/секунду (Throughput): Среднее количество выходных токенов, генерируемых в секунду, что критически важно для пакетной обработки.
- Время до первого токена (TTFT): Время, необходимое GPU для генерации самого первого выходного токена, критически важное для воспринимаемой отзывчивости в интерактивных приложениях.
- Эффективная стоимость за 1 миллион токенов: Рассчитывается путем деления почасовой стоимости GPU на количество токенов/секунду (при заданном размере пакета) и масштабирования до 1 миллиона токенов. Это обеспечивает нормализованную метрику стоимости.
Включенные провайдеры:
Наш анализ включает ведущих облачных провайдеров GPU:
- RunPod: Известен конкурентоспособными ценами и широким спектром GPU, включая спотовые экземпляры.
- Vast.ai: Децентрализованный рынок, предлагающий очень изменчивые, но часто чрезвычайно низкие спотовые цены.
- Lambda Labs: Специализируется на выделенных, высокопроизводительных экземплярах GPU с сильной поддержкой.
- Vultr: Общий облачный провайдер с растущим предложением GPU, известный предсказуемыми ценами.
Результаты производительности: скорость инференции LLM у разных провайдеров
Ниже приведены агрегированные показатели производительности и расчетные затраты. Обратите внимание, что почасовые цены на спотовые экземпляры (RunPod, Vast.ai) могут значительно колебаться. Цены по требованию более стабильны, но обычно выше.
Производительность NVIDIA H100 80GB (один GPU)
H100 разработан для максимальной производительности ИИ. Его архитектура Hopper, память HBM3 и Transformer Engine значительно повышают скорость инференции LLM.
Инференция Llama 2 70B (FP16) на H100
| Провайдер |
Тип GPU |
Цена по требованию/час (прибл.) |
Диапазон спотовых цен/час (прибл.) |
Токенов/сек (Batch=1) |
Токенов/сек (Batch=16) |
TTFT (Batch=1, мс) |
Прибл. стоимость / 1 млн токенов (по требованию, Batch=16) |
| RunPod |
H100 80GB |
$2.80 - $3.50 |
$1.50 - $2.20 |
~35-40 |
~160-180 |
~300-400 |
$4.80 - $6.00 |
| Lambda Labs |
H100 80GB |
$3.80 - $4.50 |
Н/Д |
~35-40 |
~160-180 |
~300-400 |
$6.30 - $7.50 |
Инференция Mixtral 8x7B (FP16) на H100
| Провайдер |
Тип GPU |
Цена по требованию/час (прибл.) |
Диапазон спотовых цен/час (прибл.) |
Токенов/сек (Batch=1) |
Токенов/сек (Batch=16) |
TTFT (Batch=1, мс) |
Прибл. стоимость / 1 млн токенов (по требованию, Batch=16) |
| RunPod |
H100 80GB |
$2.80 - $3.50 |
$1.50 - $2.20 |
~70-80 |
~300-350 |
~150-200 |
$2.70 - $3.40 |
| Lambda Labs |
H100 80GB |
$3.80 - $4.50 |
Н/Д |
~70-80 |
~300-350 |
~150-200 |
$3.60 - $4.30 |
Производительность NVIDIA A100 80GB (один GPU)
A100 остается рабочей лошадкой, предлагая отличную производительность, особенно с 80 ГБ VRAM, что делает его подходящим для больших моделей.
Инференция Llama 2 70B (FP16) на A100 (два A100 для 70B FP16)
Примечание: Llama 2 70B FP16 обычно требует ~140 ГБ VRAM, поэтому необходимо два 80-гигабайтных GPU A100. Производительность здесь указана для установки с двумя GPU.
| Провайдер |
Тип GPU |
Цена по требованию/час (прибл., 2x A100) |
Диапазон спотовых цен/час (прибл., 2x A100) |
Токенов/сек (Batch=1) |
Токенов/сек (Batch=16) |
TTFT (Batch=1, мс) |
Прибл. стоимость / 1 млн токенов (по требованию, Batch=16) |
| RunPod |
2x A100 80GB |
$2.40 - $3.50 |
$1.20 - $2.00 |
~20-25 |
~80-100 |
~500-600 |
$6.60 - $9.70 |
| Vast.ai |
2x A100 80GB |
Н/Д (ориентировано на спот) |
$1.60 - $3.00 |
~20-25 |
~80-100 |
~500-600 |
$4.40 - $8.30 (Спот) |
| Lambda Labs |
2x A100 80GB |
$3.60 - $5.00 |
Н/Д |
~20-25 |
~80-100 |
~500-600 |
$10.00 - $13.90 |
| Vultr |
2x A100 80GB |
$3.60 - $5.00 |
Н/Д |
~20-25 |
~80-100 |
~500-600 |
$10.00 - $13.90 |
Инференция Mixtral 8x7B (FP16) на A100 (один A100 для Mixtral FP16)
Примечание: Mixtral 8x7B FP16 требует ~90 ГБ VRAM, поэтому необходим один 80-гигабайтный A100 с выгрузкой или квантованием, или два 40-гигабайтных A100. Мы тестировали один 80-гигабайтный A100 с незначительной выгрузкой на ЦП или оптимизированным FP16.
| Провайдер |
Тип GPU |
Цена по требованию/час (прибл.) |
Диапазон спотовых цен/час (прибл.) |
Токенов/сек (Batch=1) |
Токенов/сек (Batch=16) |
TTFT (Batch=1, мс) |
Прибл. стоимость / 1 млн токенов (по требованию, Batch=16) |
| RunPod |
A100 80GB |
$1.20 - $1.80 |
$0.60 - $1.00 |
~35-40 |
~140-160 |
~250-300 |
$2.10 - $3.20 |
| Vast.ai |
A100 80GB |
Н/Д (ориентировано на спот) |
$0.80 - $1.50 |
~35-40 |
~140-160 |
~250-300 |
$1.40 - $2.70 (Спот) |
| Lambda Labs |
A100 80GB |
$1.80 - $2.50 |
Н/Д |
~35-40 |
~140-160 |
~250-300 |
$3.20 - $4.50 |
| Vultr |
A100 80GB |
$1.80 - $2.50 |
Н/Д |
~35-40 |
~140-160 |
~250-300 |
$3.20 - $4.50 |
Производительность NVIDIA RTX 4090 24GB (один GPU)
RTX 4090, будучи потребительской картой, предлагает невероятную ценность для меньших или сильно квантованных LLM.
Инференция Llama 2 13B (AWQ 4-бит) на RTX 4090
| Провайдер |
Тип GPU |
Цена по требованию/час (прибл.) |
Диапазон спотовых цен/час (прибл.) |
Токенов/сек (Batch=1) |
Токенов/сек (Batch=16) |
TTFT (Batch=1, мс) |
Прибл. стоимость / 1 млн токенов (по требованию, Batch=16) |
| RunPod |
RTX 4090 24GB |
$0.70 - $1.00 |
$0.25 - $0.50 |
~20-25 |
~80-100 |
~100-150 |
$2.00 - $3.00 |
| Vast.ai |
RTX 4090 24GB |
Н/Д (ориентировано на спот) |
$0.20 - $0.40 |
~20-25 |
~80-100 |
~100-150 |
$0.50 - $1.00 (Спот) |
Уравнение ценности: производительность против стоимости
Анализа одной лишь производительности недостаточно; экономическая эффективность имеет решающее значение для устойчивого развертывания LLM.
Анализ стоимости за токен
Наша метрика «Прибл. стоимость / 1 млн токенов» предоставляет нормализованный способ сравнения истинной экономической эффективности. Например:
- H100 для Llama 2 70B (FP16): Хотя H100 имеет самую высокую почасовую ставку, его превосходная пропускная способность (160-180 токенов/сек) снижает его эффективную стоимость за токен, делая его очень эффективным для инференции больших объемов.
- A100 для Mixtral 8x7B (FP16): Один A100 80GB обеспечивает оптимальное соотношение. Его производительность для Mixtral дает очень конкурентоспособную стоимость за токен, часто делая его предпочтительным выбором для этой модели.
- RTX 4090 для Llama 2 13B (AWQ): Для меньших, квантованных моделей RTX 4090 на платформах, таких как Vast.ai, предлагает невероятно низкую стоимость за токен, доказывая, что высокопроизводительные корпоративные GPU не всегда необходимы.
Динамика спотового рынка
Провайдеры, такие как RunPod и Vast.ai, используют спотовые экземпляры, которые могут предлагать значительные скидки (иногда 50-70% от цен по требованию) за счет использования простаивающих мощностей GPU. Это идеально подходит для:
- Некритических пакетных задач инференции: Где допустимы случайные прерывания.
- Разработки и экспериментов: Экономия затрат во время итеративного тестирования моделей.
- Приложений, чувствительных к стоимости: Если ваш сервис LLM может корректно обрабатывать вытеснение.
Однако спотовые экземпляры сопряжены с риском вытеснения, что означает, что ваш экземпляр может быть отключен в короткие сроки, если GPU понадобится пользователю по требованию. Это делает их менее подходящими для критически важных производственных сервисов с низкой задержкой без надежных механизмов контрольных точек и повторных попыток.
Стабильность выделенных экземпляров
Lambda Labs и Vultr обычно фокусируются на экземплярах по требованию или зарезервированных экземплярах, предлагая гарантированную доступность и стабильную производительность. Это критически важно для:
- Производственных API LLM: Требующих высокой доступности и предсказуемой задержки.
- Длительных, критически важных задач инференции: Где прерывания неприемлемы.
- Рабочих нагрузок, требующих специфических конфигураций: Гарантированный доступ к конкретным типам GPU или многопроцессорным установкам.
Хотя обычно они дороже в час, стабильность и надежность могут оправдать более высокую стоимость для критически важных бизнес-приложений.
Реальные последствия для ML-инженеров и специалистов по данным
Выбор правильного GPU для вашей LLM
- Для передовой производительности и больших моделей (70B+ FP16): H100 является явным победителем по скорости и эффективности. Если ваш бюджет позволяет, и вам нужна абсолютно минимальная задержка или максимальная пропускная способность для массивных моделей, H100 — ваш выбор.
- Для сбалансированной производительности и ценности (Mixtral FP16, Llama 2 70B с квантованием/многопроцессорной установкой): A100 80GB обеспечивает отличный баланс. Он значительно доступнее, чем H100, и может обрабатывать большинство больших моделей, особенно при умелом квантовании или многопроцессорных установках.
- Для экономичных меньших моделей (7B-13B квантованных): RTX 4090 — темная лошадка. Его потребительские цены на платформах, таких как Vast.ai, делают его невероятно привлекательным для любителей, стартапов или внутренних инструментов, использующих меньшие, оптимизированные LLM.
Оптимизация для задержки против пропускной способности
- Интерактивные приложения (чат-боты, помощники в реальном времени): Приоритет низкому TTFT. Это часто означает использование размера пакета 1 или очень малого размера пакета для минимизации задержек в очереди. H100 или A100 идеально подходят здесь.
- Пакетная обработка (резюмирование данных, генерация контента в масштабе): Максимизируйте количество токенов/секунду. Большие размеры пакетов (например, 16 или выше) значительно улучшат пропускную способность и снизят эффективную стоимость за токен.
Сила квантования
Квантование — это не просто оптимизация; это меняет правила игры. Уменьшая модели до 4-битной или 8-битной точности, вы можете:
- Помещать гораздо большие модели в ограниченную VRAM (например, Llama 2 70B 4-бит на одном 40-гигабайтном A100).
- Достигать значительного ускорения, поскольку меньшее количество бит означает более быстрый доступ к памяти и вычисления.
- Сделать мощные LLM доступными на менее дорогом оборудовании, демократизируя передовой ИИ.
Соображения при выборе провайдера
- Бюджет: Спотовые рынки Vast.ai и RunPod предлагают самую низкую начальную стоимость. Lambda Labs и Vultr предоставляют более предсказуемые, хотя и более высокие, цены.
- Доступность: Выделенные провайдеры (Lambda Labs) предлагают гарантированный доступ. Спотовые рынки изменчивы.
- Экосистема и поддержка: Учитывайте простоту настройки вашей среды, готовые образы, доступ к API и поддержку клиентов.
- Стоимость передачи данных: Часто упускаемые из виду, сборы за исходящий трафик могут накапливаться. Учитывайте их в своем общем анализе затрат, особенно для высокообъемных приложений.
Помимо чистой скорости: другие факторы, которые следует учитывать
Хотя скорость и стоимость являются основными, другие элементы способствуют успешному развертыванию LLM:
- Управляемые сервисы против Bare Metal: Некоторые провайдеры предлагают управляемые API инференции LLM, абстрагируя сложности инфраструктуры. Другие предоставляют доступ к Bare Metal для максимального контроля.
- Масштабируемость и оркестровка: Насколько легко вы можете масштабировать вверх или вниз? Предлагают ли они интеграцию с Kubernetes или другие инструменты оркестровки?
- Локальность данных: Для конфиденциальных данных или соблюдения нормативных требований географическое расположение центров обработки данных может быть важным.
- Сообщество и документация: Сильное сообщество и четкая документация могут значительно сэкономить время разработки.