Как запускать GGUF-модели локально: Ollama, llama.cpp и vLLM
Как запускать GGUF-модели локально: Ollama в одну команду, llama.cpp прямо с URL Hugging Face и как выбрать правильный квант под ваш объём VRAM.
Скачали .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-файла важны две вещи:
- Базовая модель —
gemma-3-4b-it-GGUF— это дообученная Gemma 3 4B, экспортированная в GGUF. - Тег кванта —
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-модель не загружается?
Четыре ошибки, покрывающие большинство случаев:
unknown model architecture— GGUF использует архитектуру, которой ещё не было в вашем рантайме (новые MoE- и vision-модели выходят постоянно). Обновите Ollama или пересоберите llama.cpp; другого лечения нет.- Не хватило памяти при загрузке — квант слишком велик для вашей VRAM плюс контекст. Ступень вниз (
Q4_K_M→Q3_K_M), ниже-nglили меньше контекст через-c 4096. - Загрузка оборвалась / файл битый — GGUF не грузится с ошибкой magic number или метаданных. Перекачайте и сверьте SHA256, показанный на странице Hugging Face.
ollama run ./model.ggufотказывается — так и задумано:runу Ollama принимает имена моделей, а не пути к файлам. Используйте маршрут через Modelfile, показанный выше.
Напоследок угол, о котором стоит знать: локальный GGUF-эндпоинт отлично сочетается с агентными кодинг-инструментами — направьте туда OpenAI-совместимый клиент, и подсказки будут стоить только электричества. А лучшие локальные LLM для кодинга протестировали, какие модели заслуживают это место, когда обвязка из этого руководства уже работает.
Когда встанет вопрос выбора рантайма, читайте llama.cpp vs Ollama — по публичному следу проекта, и компромиссы там не те, что обещают README.
Если ваш путь — режим GGUF в vLLM, то разбор can vLLM run GGUF объясняет реальность «только GPU» и точные флаги запуска.