1. Главная
  2. Блог
  3. Модели и инфраструктура
  4. vLLM, Ollama, llama.cpp: чем запускать модель

vLLM, Ollama, llama.cpp: чем запускать модель

15 августа 2026
86

Скачать веса модели мало — нужно чем-то их запустить. Инструментов для этого несколько, и они не конкуренты друг другу: у каждого своя область, и путаница между ними — источник разочарований вида «локальная модель работает медленно».

Короткий ответ, который избавляет от чтения остального:

> Ollama — для прототипа и рабочего места. llama.cpp — для слабого железа и встраивания. vLLM — для продакшена под нагрузкой.

Дальше — почему так и где границы. Как разворачивать локально в целом — «Локальное развёртывание LLM».

Ollama

Что это. Обёртка, делающая запуск модели простым: одна команда — модель скачана и работает.

Сильные стороны. Минимальный порог входа. Управление моделями из коробки. Работает на любом железе. Совместимый интерфейс, к которому легко подключиться из кода.

Ограничения. Не рассчитана на много одновременных запросов: под параллельной нагрузкой пропускная способность заметно ниже специализированных решений. Меньше тонких настроек.

Когда брать. Прототип, проверка гипотезы, локальная работа разработчика, внутренний инструмент на несколько человек.

Когда не брать. Продакшен с потоком запросов.

llama.cpp

Что это. Библиотека вывода, изначально нацеленная на работу без мощного оборудования. Ollama во многом на ней и основана.

Сильные стороны. Работает на процессоре, на слабых видеокартах, на смешанной схеме «часть в видеопамять, часть в обычную». Богатый выбор форматов сжатия. Встраивается в приложения. Экономна по ресурсам.

Ограничения. Требует больше возни с настройкой. Пропускная способность под параллельной нагрузкой ниже, чем у серверных решений.

Когда брать. Нет мощной видеокарты. Нужно встроить модель в приложение. Работа на устройстве пользователя — «Малые языковые модели на смартфоне».

Когда не брать. Высокая нагрузка при наличии нормального железа.

vLLM

Что это. Сервер вывода, спроектированный под пропускную способность: одновременная обработка многих запросов с эффективным использованием памяти.

Сильные стороны. Кратно выше пропускная способность на параллельной нагрузке. Экономное управление памятью под контекст, что напрямую влияет на число одновременных пользователей — «Расчёт видеопамяти». Совместимый интерфейс. Распределение крупных моделей между картами.

Ограничения. Требует нормальной видеокарты — на процессоре смысла нет. Сложнее в настройке. Свежие архитектуры моделей появляются с некоторой задержкой.

Когда брать. Продакшен, десятки одновременных пользователей, важна пропускная способность.

Когда не брать. Прототип или пара пользователей — сложность не окупится.

Сравнение

Ollama llama.cpp vLLM
Порог входа минимальный средний выше
Работа на процессоре да да, основной сценарий нет смысла
Один пользователь отлично отлично избыточно
Десятки одновременных плохо плохо основной сценарий
Экономия памяти под контекст базовая базовая продвинутая
Выбор форматов сжатия ограниченный самый широкий ограниченный
Несколько карт ограниченно ограниченно да
Встраивание в приложение нет да нет

Строка про одновременность — определяющая. Именно она отделяет прототип от продакшена, и именно её игнорируют, когда переносят работающий прототип на боевую нагрузку и обнаруживают, что всё «стало медленно».

Разбор: почему «локальная модель тормозит»

Задача. Внутренний ассистент, около 25 сотрудников.

Что было. Прототип собрали на Ollama, всё работало. Открыли доступ отделу — начались жалобы на скорость.

Что показали замеры. При одном пользователе ответ шёл нормально. При пяти одновременных время ответа росло почти пропорционально: запросы обрабатывались практически по очереди.

Модель, оборудование и настройки не менялись. Изменилась только одновременность.

Причина. Инструмент, отлично работающий на одном запросе, не рассчитан на параллельную обработку: он не объединяет запросы в общую обработку и не переиспользует память эффективно.

Что сделали. Перешли на vLLM. Модель, сжатие и карта остались прежними.

Результат. При двадцати одновременных запросах время ответа выросло незначительно вместо кратного роста. Ни рубля на железо не потратили.

Дополнительный выигрыш, которого не ждали. Более экономное управление памятью под контекст позволило увеличить длину контекста в настройках, и качество ответов по документам выросло.

Чего не сделали. Не стали переносить на vLLM рабочие места разработчиков — там Ollama удобнее, а нагрузки нет. Разные инструменты для разных задач — нормальное состояние, а не непоследовательность.

Что стоит забрать. «Локальная модель медленная» почти всегда означает «выбрана среда, не рассчитанная на эту нагрузку». Прежде чем докупать железо, проверьте, чем запускаете.

Типичные ошибки

Переносить прототип в продакшен вместе со средой запуска. То, что удобно на одном пользователе, не работает на двадцати.

Судить о скорости модели по одиночным запросам. Единственный осмысленный замер — под реальной одновременностью, «Нагрузочное тестирование».

Не проверять поддержку формата сжатия. Не все среды понимают все форматы — «Квантизация».

Не проверять поддержку модели. Свежие архитектуры появляются в разных средах с разной задержкой.

Игнорировать шаблон диалога. Разные среды применяют его по-разному, и несоблюдение молча снижает качество — частая причина ложного вывода «модель плохая».

Прибивать код к конкретной среде. Все три дают совместимый интерфейс — используйте его, тогда смена среды не потребует переписывания. Общий принцип — «Шлюз моделей».

Как выбрать

Три вопроса.

Сколько одновременных запросов в пике? Единицы — подойдёт любой вариант. Десятки — vLLM.

Какое железо? Нет нормальной видеокарты — llama.cpp. Есть — открыты все варианты.

Что это: проверка или эксплуатация? Проверка — берите самое простое. Эксплуатация — считайте нагрузку.

Разумная последовательность: прототип на Ollama, замер нагрузки, переход на vLLM при необходимости. Переход недорог, если код не привязан к конкретной среде.

Частые вопросы

Что выбрать для запуска локальной модели?

Для прототипа и работы нескольких человек — Ollama: минимальный порог входа. Для слабого железа или встраивания в приложение — llama.cpp. Для продакшена с десятками одновременных пользователей — vLLM: он на порядок лучше держит параллельную нагрузку.

Почему локальная модель работает медленно?

Чаще всего потому, что среда запуска не рассчитана на параллельную обработку: при нескольких одновременных запросах они фактически выполняются по очереди. Модель и железо при этом ни при чём — смена среды нередко решает проблему без затрат на оборудование.

Можно ли использовать Ollama в продакшене?

Если пользователей единицы и нагрузка не растёт — вполне. При десятках одновременных запросов пропускная способность становится узким местом, и выигрыш от перехода на серверное решение обычно кратный.

Нужна ли видеокарта?

Для vLLM — да, без неё смысла нет. llama.cpp работает на процессоре и на смешанной схеме, но медленнее: это вариант для слабого железа или встраивания, а не для нагрузки. Ollama работает и так, и так.

Сложно ли перейти с одной среды на другую?

Несложно, если код обращается к модели через совместимый интерфейс, а не через особенности конкретной среды. Все три предоставляют такой интерфейс. Если же в коде прописаны специфические вызовы, переход превращается в переписывание.

Влияет ли среда запуска на качество ответов?

Напрямую — нет, отвечает модель. Косвенно — да: через применение шаблона диалога, параметры генерации по умолчанию и поддерживаемый формат сжатия. Несоблюдение шаблона диалога снижает качество молча и часто принимается за недостаток модели.

Что дальше

Сколько памяти потребуется — «Расчёт видеопамяти». Как уменьшить требования — «Квантизация». Как замерить под реальной нагрузкой — «Нагрузочное тестирование». Стоит ли вообще разворачивать у себя — «Облако или свой сервер».

Развёртывание моделей в закрытом контуре с расчётом под нагрузку — часть работы по разработке и внедрению ИИ.