vLLM или Ollama: что выбрать для своей LLM
Ollama подходит для первого запуска личной модели или небольшого внутреннего инструмента. vLLM стоит проверять, когда основная задача — параллельные запросы и пропускная способность API. Выбор зависит от модели, GPU и нагрузки, а не только от названия движка.
Что меняется при переходе
| Область | Ollama | vLLM |
|---|---|---|
| Первый запуск | Загрузить тег и запустить модель | Установить совместимый движок и загрузить поддерживаемый checkpoint |
| Веса в примерах раздела | Квантованный тег Qwen из библиотеки Ollama | Исходный checkpoint Qwen из Hugging Face |
| Интерфейс | Собственный API и совместимые endpoints | OpenAI-совместимый сервер |
| Ограничения памяти | Контекст, параллельные запросы, загруженные модели | Контекст, число последовательностей, бюджет GPU-памяти |
| Причина выбора | Простое управление моделью и локальный API | Планирование и объединение параллельных запросов |
| Инструкция | Запуск Ollama | Запуск vLLM |
В наших стартовых конфигурациях используется разная точность весов. Сравнивать их времена как чистую разницу движков некорректно: в результат попадёт и эффект квантования. Для такого сравнения сначала выровняйте представление модели.
Начните с характера нагрузки
Для одного человека, который пишет нерегулярно, качество ответа и простота запуска могут быть важнее суммарных токенов в секунду. Для нескольких активных пользователей значительную часть ожидания создают очередь и длинные запросы.
Запишите обычную длину входа и ответа, пиковое число одновременных запросов и допустимое ожидание. Включите длинный документ. Успешный короткий запрос не подтверждает, что та же конфигурация выдержит большой контекст или несколько пользователей.
Повторяемое сравнение
- Возьмите архитектуру, которую поддерживают оба движка, и зафиксируйте веса и квантование.
- Используйте одинаковый GPU без посторонних задач.
- Явно ограничьте контекст и ответ. Сохраните промпты.
- Прогрейте модель, затем отдельно измерьте одиночные запросы и целевую параллельную нагрузку.
- Запишите ошибки, ожидание в очереди, время до первого токена, полное время и качество ответа.
- Сопоставьте стоимость сеанса с успешно выполненной полезной работой. Для постоянного API учтите простой.
Скрипт для Ollama измеряет только последовательные запросы. Он помогает проверить стартовую конфигурацию, но не заменяет нагрузочный тест или сравнительный benchmark vLLM/Ollama.
Перенос клиента
Сначала добейтесь ответа нового сервера на той машине, где он запущен. Затем меняйте base URL, имя модели и ключ в клиенте. Отдельно проверьте streaming, структурированный вывод и вызов инструментов, если приложение от них зависит. Совместимость API не означает одинаковую поддержку всех функций.
Не отправляйте тег qwen2.5:7b-instruct-q4_K_M на сервер vLLM, которому задан другой alias. Получите список через /v1/models и используйте его идентификатор. Сохраните старую конфигурацию до прохождения прежнего набора проверок.
Когда менять движок не требуется
Если рабочая конфигурация уже выдерживает нужное время ответа и нагрузку, второй движок добавит ещё один пакет, кеш и набор настроек. Основанием для переноса должно быть измеренное ограничение: очередь, ресурсы, формат модели или нужная возможность API.
Далее: расчёт памяти, развёртывание vLLM, примеры API.
Источники: vLLM quickstart, управление памятью, совместимость API Ollama.
Готовы запустить?
Запустить GPU-сервер