vllm.cpp: C++-движок для работы с LLM без Python
vllm.cpp — это C++-движок, который является упрощённой альтернативой vLLM и предлагает функционал для работы с LLM без зависимости от Python.
Проект решает задачу оптимальной обработки токенов с использованием технологии непрерывной пакетной обработки и хранения данных в виде страниц. В отличие от некоторых аналогов, vllm.cpp ориентирован на различные архитектуры, включая CUDA, CPU, Metal и Vulkan, делая его более универсальным и доступным для разработчиков без GPU. Так же он предлагает меньшее время установки и потребление ресурсов, при этом сохраняя высокую производительность.
Запускается проект достаточно просто: нужно лишь установить зависимости и использовать CMake. Однако стоит учесть, что vllm.cpp всё еще находится на ранних стадиях разработки, что значит возможные изменения в API и COM интерфейсе. Если тебе нужны стабильные решения с надежной поддержкой, этот проект может не подойти.
Проект vllm.cpp — это C++20 движок для инференса, который создается с целью предоставить высокую производительность и компактный размер. Его вес всего 66 МБ в сравнении с 9,1 ГБ у vLLM, а также он обеспечивает аналогичную скорость обработки токенов. В проекте отсутствует Python, что делает его более легковесным и подходящим для работы на аппаратном обеспечении, которое уже есть у пользователей.
Зачем это нужно: vllm.cpp стремится объединить лучшие черты различных платформ для работы с языковыми моделями, обеспечивая производительность и удобство в использовании. Он реализует непрерывную обработку, управление блоками KV (ключ-значение), автоматическое кеширование префиксов и спекулятивное декодирование. Это делает его мощным инструментом для разработчиков, которые хотят использовать языковые модели без необходимости в установке сложных сред.
Установка и запуск
Для установки vllm.cpp потребуется CMake (версии не ниже 3.24) и компилятор C++20. Процесс сборки осуществляется с использованием следующих команд:
cmake -S . -B build && cmake --build build -j # Базовая сборка для CPU
ctest --test-dir build
Чтобы собрать проект для NVIDIA GB10, используй команду:
cmake -S . -B build-cuda -DVLLM_CPP_CUDA=ON
Запустить инференс можно с помощью следующей команды:
build/examples/vllm-cli --model /path/to/Qwen3.6-27B --prompt "The capital of France is" --max-tokens 64
Возможности
Проект нацелен на поддержку нескольких архитектур и достоинств, среди которых:
- Поддержка более 44 архитектур.
- Сравнительно низкий размер бинарного файла (66 МБ).
- Отсутствие зависимостей от Python или PyTorch.
- Поддержка различных back-end, таких как CUDA, Metal и Vulkan.
- Спекулятивное декодирование и продвинутое управление кэшем.
Ограничения
Несмотря на впечатляющие характеристики, проект находится на ранних стадиях разработки, что может привести к изменениям в его функционале и API. Поэтому при использовании последней версии из ветки `main` важно ожидать возможные ошибки и изменения. Важно также отметить, что функциональность на некоторых архитектурах и устройствах может быть еще не завершена.
Заключение
vllm.cpp предлагает мощное решение для разработчиков, ищущих легковесный и быстрый движок для работы с языковыми моделями. Он сочетает в себе лучшие качества существующих технологий, избегая при этом сложных зависимостей, что делает его удобным для использования в различных средах. Если ты ищешь оптимальный инструмент для инференса с LLM без больших накладных расходов, vllm.cpp может быть отличным выбором.
Открыть на GitHub: mudler/vllm.cpp →
RepoRadar