vllm.cpp: C++ движок для эффективного запуска языковых моделей
vllm.cpp — это C++ движок, ориентированный на сообщество, аналогичный vLLM, предлагающий улучшенные функции, такие как GGUF и Cache-aware scheduling. Он решает задачу эффективного запуска языковых моделей без зависимости от Python и с меньшими затратами на установку.
Проект поддерживает множество архитектур и работает на CPU, CUDA, Metal и Vulkan, что делает его универсальным решением для разработчиков, работающих с различными аппаратными конфигурациями. Основное отличие от vLLM заключается в упрощении установки и отсутствии лишних зависимостей, что будет полезно для команд, которые хотят быстро запускать свои модели.
Имей в виду, что проект активно развивается, интерфейсы и поведение могут меняться, так что следи за обновлениями. Кроме того, это неофициальный порт, и он не поддерживается оригинальной командой vLLM. Запуск осуществляется через стандартные командные инструменты C++, но детальная информация о процессе может варьироваться из-за частых изменений.
Проект vllm.cpp представляет собой C++20 движок для инференса, который предлагает высокую производительность и компактность. Он обеспечивает возможность запуска моделей без необходимости использования Python или PyTorch, что делает его идеальным для локального использования.
Основная цель vllm.cpp заключается в обеспечении высокой производительности при минимальном размере установки. Бинарный файл весит всего 66 МБ, в то время как его основной конкурент vLLM требует 9,1 ГБ при установке. Это позволяет существенно экономить место и ресурсы на локальных серверах. Проект поддерживает 44 зарегистрированные архитектуры и может работать как на CPU, так и на GPU с использованием CUDA, Metal и Vulkan.
Установка и запуск
Для установки проекта необходима система с CMake версии 3.24 или выше и компилятор C++20. Основные команды для сборки:
cmake -S . -B build && cmake --build build -j # CPU: эталонная сборка
ctest --test-dir build
cmake -S . -B build-cuda -DVLLM_CPP_CUDA=ON # Для GPU NVIDIA
cmake --build build-cuda -j
После успешной сборки ты можешь запустить инференс следующей командой:
build/examples/vllm-cli --model /path/to/Qwen3.6-27B --prompt "Столица Франции —" --max-tokens 64
Также доступен сервер, совместимый с API OpenAI, который можно запустить командой:
build/examples/vllm-server --model /path/to/Qwen3.6-27B --port 8000 --max-num-seqs 32
Особенности и возможности
Проект vllm.cpp поддерживает:
- Спектральное декодирование и непрерывную пакетную обработку.
- Разнообразные архитектуры и модели, такие как Qwen3.6, Llama и другие.
- Мультимодальные возможности: обработка текста, аудио и видео.
- Поддержку GGUF как нативного формата для загрузки и работы.
- Отсутствие зависимости от Python или других тяжелых стеков.
Ограничения
Несмотря на многообещающие характеристики, проект находится на стадии активной разработки. Это значит, что интерфейсы, флаги командной строки и поведение сервера могут изменяться между коммитами, что может повлечь за собой нестабильную работу. Поэтому рекомендуется внимательно следить за обновлениями и тестировать изменения перед использованием в производственной среде.
Некоторые модели пока не имеют задокументированной скорости или корректности, и текущая установка может не полностью поддерживать все известные архитектуры. Об этом стоит помнить при планировании использования vllm.cpp в проектах.
Открыть на GitHub: localai-org/vllm.cpp →
RepoRadar