# GGUF и квантизация: как выбрать Q4_K_M, Q5_K_M или Q8_0

Источник: https://modelium.tech/zhurnal/gguf-i-kvantovanie/

GGUF — формат файла модели для совместимых локальных runtimes, а Q4_K_M, Q5_K_M и Q8_0 обозначают варианты квантизации весов. Начните с доступного Q4_K_M, затем сравните ответ и расход ресурсов с более крупным квантом той же модели, если он опубликован. Размер GGUF-файла не определяет минимальную RAM или VRAM: загрузку и качество нужно проверить на собственном устройстве.

**Источники проверены 24 сентября 2026 года.** Команды ниже составлены по документации llama.cpp на указанной ревизии. Modelium не загружал модель и не измерял качество, память или скорость на своём оборудовании.

## Что означают GGUF и Q4_K_M?

**GGUF** — формат хранения весов модели и метаданных; для запуска через llama.cpp нужен совместимый GGUF-файл, а не просто любое имя модели на Hugging Face [s1](#src-s1) [s6](#src-s6). **Квантизация** уменьшает точность представления весов и размер файла по сравнению с исходным высокоточным вариантом, но может повлиять на качество; документация не обещает одинаковую скорость или ответы на всяком железе [s2](#src-s2).

`Q4_K_M`, `Q5_K_M` и `Q8_0` — конкретные типы в списке llama.cpp [s3](#src-s3). Число в имени помогает понять вариант хранения весов, но не заменяет сведения о конкретной модели и файле. Для сравнения берите **разные кванты одного и того же исходного варианта**, а не Q4 одной модели и Q8 другой. Если у репозитория нет Q5_K_M, отсутствие нельзя исправить переименованием файла.

## Как выбрать квант, если память ограничена?

- **Начните с задачи.** Для пробы коротких текстовых ответов годится небольшой instruct-вариант; для документов, русского языка или кода проверяйте качество именно на своих вопросах. Образец ниже — учебный текстовый запрос к Gemma 3 1B IT, не рекомендация для критичных решений. Карточка называет базовую модель `google/gemma-3-1b-it` и указывает условия Gemma; проверьте их отдельно до коммерческого применения [s7](#src-s7).

- **Проверьте файлы выбранного репозитория.** На закреплённой ревизии `ggml-org/gemma-3-1b-it-GGUF` есть `gemma-3-1b-it-Q4_K_M.gguf` (806 058 240 байт), `gemma-3-1b-it-Q8_0.gguf` (1 069 306 368 байт) и `f16`, но **нет Q5_K_M** [s8](#src-s8). Это размеры файлов на диске, не минимальная RAM/VRAM: при инференсе добавляются контекст/KV-кеш, служебные буферы и потребление runtime; фактическое размещение зависит от настроек [s4](#src-s4).

- **Выберите контрольную точку.** Q4_K_M можно попробовать первым ради меньшего файла, Q8_0 — затем на *той же* модели и запросе, если хватает ресурсов. Q5_K_M рассматривайте только там, где он действительно опубликован или получен из высокоточного исходника; документация llama.cpp показывает квантизацию GGUF из BF16/F32 и предупреждает, что повторная квантизация готового низкобитного файла может существенно снизить качество [s2](#src-s2). Не обещайте себе, что Q8_0 всегда «лучше»: сравнение качества и скорости требует одинаковых данных и условий.

На разных репозиториях `Q4_K_M` может означать и разные исходные веса, и разные настройки квантизации. Таблица в коде `llama.cpp` приводит примерные размеры и изменения perplexity для **другой** модели, а не измерение Gemma на вашем устройстве [s3](#src-s3). Поэтому выбирайте не по универсальной таблице «память в ГБ», а по опубликованному списку файлов и собственной проверке.

## Как запустить конкретный Q4_K_M?

Ниже путь для Linux/macOS с установленными Git и CMake; CPU-сборка документирована командой `cmake -B build` и `cmake --build build --config Release`. Для ускорения на GPU нужен соответствующий backend и его отдельная инструкция; обычная CPU-сборка не доказывает использование видеокарты [s5](#src-s5). Репозиторий и ревизия фиксируют документацию, но команда `-hf` при запуске обращается к текущему состоянию HF и не закрепляет файлы автоматически [s4](#src-s4) [s6](#src-s6).

git clone https://github.com/ggml-org/llama.cpp.gitcd llama.cppgit checkout 9710a32175b3b8f04636aaac4aa3cc28651b505dcmake -B buildcmake --build build --config Release./build/bin/llama-cli -hf ggml-org/gemma-3-1b-it-GGUF:Q4_K_M \  -p "Ответь одним предложением: что такое GGUF?" -n 80 -c 2048 --device none

В этой версии CLI `-hf <repo>:<quant>` выбирает квант из репозитория и скачивает его при необходимости; `-p` задаёт запрос, `-n` ограничивает длину генерации, `-c` задаёт контекст, а `--device none` запрещает offload на обнаруженные GPU [s4](#src-s4). **Ожидаемый результат:** программа загрузит файл, выведет сведения о модели и ответ на запрос. Сверьте в логе фактическое имя GGUF, загрузку и осмысленность ответа; это критерий для читателя, не заявление об успешном прогоне Modelium.

Для повторения **строго той же ревизии весов** откройте список файлов на SHA `f9c28bcd85737ffc5aef028638d3341d49869c27` [s8](#src-s8), получите GGUF из URL вида `https://huggingface.co/ggml-org/gemma-3-1b-it-GGUF/resolve/f9c28bcd85737ffc5aef028638d3341d49869c27/gemma-3-1b-it-Q4_K_M.gguf`, а затем подайте сохранённый локальный файл через `-m /путь/к/gemma-3-1b-it-Q4_K_M.gguf` [s4](#src-s4). Не заменяйте SHA словами `main` или `latest`, если вам нужна воспроизводимость.

## Как сравнить Q4 и Q8 без ложных выводов?

Смените только суффикс выбора в той же команде на `:Q8_0`; снимок репозитория подтверждает такой файл [s8](#src-s8). Дайте обоим вариантам один и тот же набор коротких вопросов с эталонами, запишите версии `llama.cpp` и HF-файлов, устройство, настройки контекста, загрузку CPU/GPU, ошибки и фактическое время ответа. Если один вариант не загрузился, это результат совместимости **этой** конфигурации, а не доказательство универсального предела памяти. Для выбора следующего шага откройте [гайд по видеокарте и памяти](/zhurnal/videokarta-dlya-llm/), затем повторите тест на целевой задаче.

Если нужен полностью локальный повторный запрос, `--offline` заставляет CLI использовать кеш и не обращаться в сеть **за моделью** [s4](#src-s4). Это не проверка отсутствия трафика всей операционной системы: сетевую изоляцию и зависимости вашего контура проверяйте отдельно. Если закончился диск или память, сначала проверьте список файлов и выбранный контекст; не уменьшайте качество готового Q4 повторной квантизацией. Если `-hf` не нашёл требуемый файл, сравните имена на карточке и попробуйте локальный `-m` для точно скачанного файла [s2](#src-s2) [s4](#src-s4) [s8](#src-s8).

**Следующий шаг:** [проверьте свою конфигурацию и размещение модели](/zhurnal/videokarta-dlya-llm/), а затем сравните ответ Q4_K_M и Q8_0 на одинаковых вопросах. Если нужен подробный runtime, откройте [инструкцию llama.cpp](/zhurnal/llama-cpp/).

## Источники

1. [Hugging Face Hub — GGUF](https://huggingface.co/docs/hub/gguf) — получено 2026-09-24
2. [llama.cpp — quantize README](https://github.com/ggml-org/llama.cpp/blob/9710a32175b3b8f04636aaac4aa3cc28651b505d/tools/quantize/README.md) — получено 2026-09-24
3. [llama.cpp — определения типов quantize.cpp](https://github.com/ggml-org/llama.cpp/blob/9710a32175b3b8f04636aaac4aa3cc28651b505d/tools/quantize/quantize.cpp) — получено 2026-09-24
4. [llama.cpp — CLI options](https://github.com/ggml-org/llama.cpp/blob/9710a32175b3b8f04636aaac4aa3cc28651b505d/tools/cli/README.md) — получено 2026-09-24
5. [llama.cpp — build from source](https://github.com/ggml-org/llama.cpp/blob/9710a32175b3b8f04636aaac4aa3cc28651b505d/docs/build.md) — получено 2026-09-24
6. [llama.cpp — obtaining and quantizing models](https://github.com/ggml-org/llama.cpp/blob/9710a32175b3b8f04636aaac4aa3cc28651b505d/docs/models.md) — получено 2026-09-24
7. [ggml-org — Gemma 3 1B IT GGUF, карточка модели](https://huggingface.co/ggml-org/gemma-3-1b-it-GGUF/blob/f9c28bcd85737ffc5aef028638d3341d49869c27/README.md) — получено 2026-09-24
8. [Hugging Face API — файлы Gemma 3 1B IT GGUF на закреплённой ревизии](https://huggingface.co/api/models/ggml-org/gemma-3-1b-it-GGUF/tree/f9c28bcd85737ffc5aef028638d3341d49869c27) — получено 2026-09-24
