Как запускать GGUF-модели локально: Ollama, llama.cpp и vLLM

Как запускать GGUF-модели локально: Ollama в одну команду, llama.cpp прямо с URL Hugging Face и как выбрать правильный квант под ваш объём VRAM.

HUMANавтор @mrsaynothing49d5 мин чтения

Скачали .gguf-файл и думаете, как его запустить? Самый быстрый путь: ollama run hf.co/<repo>:Q4_K_M — Ollama заберёт GGUF прямо с Hugging Face и поднимет его. GGUF — однофайловый формат моделей, который ввела llama.cpp и который теперь понимает каждый локальный инструмент: один и тот же файл работает в Ollama, llama.cpp, LM Studio, Jan и (с оговорками) vLLM. В руководстве — каждый рантайм с командами под копипаст, выбор квантизации под вашу VRAM и ошибки загрузки, которые вы действительно встретите. Если вы спрашиваете, can vLLM run GGUF — да: сторонний плагин, только GPU.

Что такое GGUF-файл?

GGUF (GGML Universal File) — контейнерный формат для квантованных языковых моделей. Один файл хранит веса, токенизатор и метаданные модели — ничего докачивать не нужно, никакой каши из конфигов. Веса внутри квантованы: сжаты с 16-битных float до 4-битных (и ниже) целых чисел, поэтому модель 9B, которой в полной точности нужно ~18 ГБ, занимает ~5.5 ГБ в виде Q4-файла и запускается на игровой видеокарте и даже на CPU.

В имени GGUF-файла важны две вещи:

  1. Базовая модель — gemma-3-4b-it-GGUF — это дообученная Gemma 3 4B, экспортированная в GGUF.
  2. Тег кванта — Q4_K_M, Q8_0, IQ4_XS и компания — говорит, насколько агрессивно сжаты веса. Подробнее о выборе ниже.

Умеет ли Ollama запускать GGUF-модели?

Да — GGUF родной формат Ollama, а с 2024 года она умеет тянуть модель прямо с Hugging Face, не заставляя вас трогать файлы:

# Скачать GGUF-квант прямо с Hugging Face и болтать с ним
ollama run hf.co/bartowski/gemma-2-9b-it-GGUF:Q4_K_M

# Тег кванта после двоеточия выбирает файл внутри репозитория
ollama run hf.co/ggml-org/gemma-3-4b-it-GGUF:Q8_0

Уже скачали .gguf сами? Наведите на него Modelfile:

# Modelfile — хватит одной строки
FROM ./gemma-2-9b-it-Q4_K_M.gguf
ollama create gemma9b -f Modelfile
ollama run gemma9b

Ollama сама решает, сколько выгружать на GPU, и отдаёт OpenAI-совместимый API на порту 11434 — любой клиент, говорящий на этом API, может пользоваться моделью. Плата — контроль: сколько слоёв уйдёт на GPU, вы не выбираете.

Как запустить GGUF-файл в llama.cpp?

llama.cpp — родина GGUF: формат появился ради него, поэтому поддержка здесь самая глубокая и свежая. Бинарник llama-server даёт сразу и чат-UI, и OpenAI-совместимый эндпоинт:

# Скачать прямо с Hugging Face (подберёт подходящий GGUF под вашу машину)
llama-server -hf ggml-org/gemma-3-4b-it-GGUF --port 8080

# Или запустить уже имеющийся файл с полной выгрузкой на GPU
llama-server -m ./gemma-2-9b-it-Q4_K_M.gguf -ngl 99 --port 8080

-ngl 99 отправляет 99 слоёв на GPU; поставьте меньше, чем позволяет ваша VRAM, и остаток останется на CPU. Этот регулятор частичной выгрузки — суперсила llama.cpp: модель 9B нормально работает на карте с 6 ГБ при 20 выгруженных из 48 слоёв, просто медленнее. Для разового промпта вместо сервера замените llama-server на llama-cli с тем же флагом -m.

LM Studio — тот же движок за настольным GUI: положите .gguf в папку моделей (или поищите по Hugging Face в самом приложении) и нажмите load. Что выбрать из инструментов — отдельная история: сравнение Ollama и LM Studio помогает решить, что ставить под модели.

Какую квантизацию GGUF скачивать?

Ответ по умолчанию: Q4_K_M. Это сладкая точка сообщества — в пределах одного-двух процентов от качества полной точности при примерно четверти размера. Лестница от больших к маленьким:

  • Q8_0 — почти без потерь; берите, если ваша VRAM 8.5 бит на вес даже не заметит.
  • Q6_K / Q5_K_M — ступень вниз по размеру, всё ещё отлично для моделей 30B+.
  • Q4_K_M — выбор по умолчанию. Для моделей 7–14B именно здесь пик качества на гигабайт.
  • IQ4_XS / Q3_K_M — чтобы впихнуть большую модель на маленькую карту; потеря качества уже заметна.
  • Q2_K и ниже — последний шанс; модель начинает распадаться в бред посреди предложения.

Правило вместимости: размер файла в ГБ плюс ~1–2 ГБ накладных расходов на контекст должны влезать в вашу VRAM. Q4_K_M модели 9B на 4.7 ГБ спокойно живёт на карте с 8 ГБ. Предпочитайте меньшую модель с лучшим квантом большей модели с ужасным — Q8 4B обычно обыгрывает Q2 9B.

GGUF против Safetensors: какой формат вам нужен?

Safetensors — неквантованный архивный формат: веса полной точности для обучения, файнтюнинга и инструментов вроде transformers и ComfyUI. GGUF — квантованный исполняемый формат для инференса на своём железе. Файнтюнить GGUF нельзя, а safetensors не запустить в Ollama или llama.cpp без конвертации (для этого в llama.cpp есть скрипт convert_hf_to_gguf.py). Правило: обучение или пайплайны картинок → safetensors; локальный чат и раздача → GGUF. Если ваш поиск начинался с «gguf vs safetensors», вот и весь ответ.

Какой рантайм GGUF выбрать?

Рантайм Лучше всего для Установка GPU offload OpenAI-совместимый API
Ollama Сервис «поставил и забыл» Одна строка curl Автоматически Да (:11434/v1)
llama.cpp Максимальный контроль, новейшие фичи Сборка или пакетный менеджер Ручной регулятор -ngl Да (llama-server)
LM Studio Настольный GUI, каталог моделей Скачать приложение Автоматически Да (локальный сервер)
vLLM Пакетный мультипользовательский инференс pip install vllm Автоматически Да (нативный)

Берите Ollama, если нужен сервис, стартующий при загрузке и не мозолящий глаза, — именно так я раздаю модели всей сети в своём homelab. Берите llama.cpp, когда нужна фича в день её выхода (новые архитектуры приземляются там первыми) или контроль памяти на уровне слоёв. Берите LM Studio ради GUI. Берите vLLM, только когда одна модель обязана обслуживать много одновременных пользователей — GGUF она поддерживает, но на вторых ролях после родных форматов.

Почему GGUF-модель не загружается?

Четыре ошибки, покрывающие большинство случаев:

  1. unknown model architecture — GGUF использует архитектуру, которой ещё не было в вашем рантайме (новые MoE- и vision-модели выходят постоянно). Обновите Ollama или пересоберите llama.cpp; другого лечения нет.
  2. Не хватило памяти при загрузке — квант слишком велик для вашей VRAM плюс контекст. Ступень вниз (Q4_K_M → Q3_K_M), ниже -ngl или меньше контекст через -c 4096.
  3. Загрузка оборвалась / файл битый — GGUF не грузится с ошибкой magic number или метаданных. Перекачайте и сверьте SHA256, показанный на странице Hugging Face.
  4. ollama run ./model.gguf отказывается — так и задумано: run у Ollama принимает имена моделей, а не пути к файлам. Используйте маршрут через Modelfile, показанный выше.

Напоследок угол, о котором стоит знать: локальный GGUF-эндпоинт отлично сочетается с агентными кодинг-инструментами — направьте туда OpenAI-совместимый клиент, и подсказки будут стоить только электричества. А лучшие локальные LLM для кодинга протестировали, какие модели заслуживают это место, когда обвязка из этого руководства уже работает.

Когда встанет вопрос выбора рантайма, читайте llama.cpp vs Ollama — по публичному следу проекта, и компромиссы там не те, что обещают README.

Если ваш путь — режим GGUF в vLLM, то разбор can vLLM run GGUF объясняет реальность «только GPU» и точные флаги запуска.