GGUF

gguf — единый файл квантизованной модели для запуска на CPU/GPU

Раздел
Инструменты
Сокращ.
GPT-Generated Unified Format
Обновлено
19.06.26

GGUF (GPT-Generated Unified Format) — формат файла для запуска квантизованных нейросетей на обычном железе. Один файл хранит и веса, и метаданные, и токенизатор; веса внутри ужаты до 2–8 бит, поэтому модель на 8 млрд параметров помещается в 4–5 ГБ и работает даже без видеокарты. Стандарт для локальных LLM (llama.cpp, Ollama, LM Studio), а с 2024-го — и для FLUX в ComfyUI.

Коротко

Коротко. GGUF — это «коробка», в которой языковая модель приезжает к вам целиком: веса, токенизатор, настройки — в одном файле. Веса внутри ужаты квантизацией до 4–8 бит, поэтому Llama 3 8B вместо 16 ГБ весит 4–5 ГБ и запускается на ноутбуке даже без видеокарты. Формат придумали в проекте llama.cpp; читают его Ollama, LM Studio, Jan, а с 2024-го — и ComfyUI для FLUX.

Что это такое

Человек хочет запустить языковую модель локально — на ноутбуке с 16 ГБ оперативной памяти и без дискретной видеокарты. Скачивает модель с Hugging Face: несколько файлов .safetensors общим весом 16 ГБ. Запускает — не помещается. Видеокарты нет, в RAM не лезет.

Потом он находит ту же модель в виде одного файла .gguf на 4,7 ГБ. Открывает в LM Studio. Через десять секунд модель отвечает. Разница — не в самой модели, а в формате, в котором её упаковали.

GGUF — это и есть тот формат. Он появился в августе 2023-го как наследник GGML — бинарного формата из проекта llama.cpp Георгия Герганова (отсюда «GG» в названии). GGML был жёстким: добавить новый параметр в файл значило сломать совместимость. GGUF сделали расширяемым и самодостаточным: в один файл укладываются и квантизованные веса, и метаданные об архитектуре, и токенизатор, и даже шаблон чата. Скачал файл — и больше ничего не нужно.

Ключевое слово — квантизация. Внутри GGUF веса хранятся не в обычных 16 битах на число, а в 2–8 битах. Модель становится в 3–4 раза легче, а качество падает совсем немного.

Как это работает

Файл GGUF состоит из двух частей: заголовка с метаданными и блока тензоров — самих весов.

  1. Заголовок описывает модель: какая архитектура, какой тип квантизации, длина контекста, словарь токенизатора, шаблон промпта. Программе не нужно гадать — всё записано рядом с весами.
  2. Тензоры — это веса, сжатые квантизацией. Числа группируются в блоки, и для каждого блока хранится свой масштаб. Так 16-битное число ужимается, скажем, до 4 бит почти без потери смысла.

Уровни квантизации обозначаются как Q2_K, Q4_K_M, Q5_K_M, Q8_0 — цифра это число бит на вес, буквы после K означают «K-quants»: разные слои модели жмутся с разной силой, чтобы важные веса пострадали меньше. Q4_K_M к 2026-му — негласный стандарт: лучший баланс размера и качества.

GGUF умеет грузиться и на процессор, и на видеокарту, и на оба сразу. Параметр n_gpu_layers говорит, сколько слоёв отдать на GPU, а остальное считать на CPU. Это и делает формат таким удобным для слабого железа: не помещается всё в видеопамять — часть уходит в обычную RAM.

Пример на практике

Видеомонтажёру нужна локальная модель, чтобы писать описания к роликам и черновики субтитров — без оплаты API и без отправки текстов в облако.

Он берёт Llama-3.1-8B-Instruct-Q4_K_M.gguf — 4,9 ГБ. Запускает через Ollama одной командой или мышкой в LM Studio. На RTX 3060 модель выдаёт 30–40 токенов в секунду; на чистом процессоре без видеокарты — медленнее, 4–6 токенов, но работает. Для фоновой генерации описаний этого хватает.

Тот же формат пробрался и в генерацию картинок. FLUX в полной точности требует около 24 ГБ видеопамяти — недостижимо для большинства домашних карт. Версия flux1-dev-Q4_K_M.gguf через GGUF-ноды в ComfyUI (пакет от city96) запускает FLUX на видеокарте с 8 ГБ. Медленнее, чем на топовом железе, но картинка та же.

С чем часто путают

  • GGUF и Safetensors — safetensors хранит веса в полной точности и нужен для тренировки и дообучения; GGUF хранит их квантизованными и нужен для запуска. Один формат — для разработки, другой — для эксплуатации.
  • GGUF и GGML — GGML это предшественник, который GGUF полностью заменил с 2023 года. Если встретили .ggml или .bin старого образца — это устаревший формат.
  • GGUF и квантизация — квантизация это сам приём сжатия чисел; GGUF — формат файла, который этот приём применяет и упаковывает результат. Можно квантизовать и в других форматах (AWQ, EXL2).
  • GGUF и AWQ/EXL2 — AWQ и EXL2 заточены под чистый GPU и выжимают максимум скорости на видеокарте; GGUF универсальнее (CPU + GPU + смешанный режим), потому и стал народным форматом.

Частые ошибки и заблуждения

  • «GGUF работает только на процессоре». Не так. Формат вырос из CPU-инференса, но прекрасно использует видеокарту через n_gpu_layers, в том числе частично.
  • «Чем выше квантизация, тем всегда лучше». До предела. Разница между Q8_0 и Q6_K на глаз почти не видна, а файл крупнее в полтора раза. Платить памятью за неразличимое улучшение смысла нет.
  • «GGUF сильно режет качество». Q4_K_M сохраняет около 97–98% качества исходной модели. Заметная просадка начинается на Q3 и ниже.
  • «Файл .gguf можно дообучить». Нельзя. Это формат для запуска. Дообучают исходную модель, потом конвертируют заново.
  • «GGUF — это только про языковые модели». Уже нет. С 2024-го в нём раздают и диффузионные модели вроде FLUX для запуска на слабых картах.

Связанные термины

  • Safetensors — формат для хранения и обучения, из которого модель конвертируют в GGUF.
  • Quantization — приём сжатия весов, лежащий в основе GGUF.
  • FP16/BF16/FP8 — форматы полной и пониженной точности, с которых начинается путь к квантизации.
  • VRAMвидеопамять, дефицит которой GGUF и помогает обойти.
  • LLM — главный тип моделей, которые раздают в GGUF.
  • ComfyUI — здесь GGUF-ноды запускают FLUX на слабом железе.

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

Чем открыть файл GGUF? Программами на базе llama.cpp: Ollama, LM Studio, Jan, KoboldCpp, text-generation-webui. Для картиночных GGUF (FLUX) — ComfyUI с GGUF-нодами.

Нужна ли видеокарта? Нет. GGUF задумывался ради запуска без GPU. С видеокартой просто быстрее, а часть слоёв можно держать на ней, часть — в обычной памяти.

Какой квант скачивать? Q4_K_M для большинства задач. Если памяти много — Q5_K_M или Q6_K. Если мало — Q3_K_M, понимая, что качество просядет.

Где брать готовые GGUF? На Hugging Face: репозитории bartowski, TheBloke (исторический), официальные карточки моделей. Многие модели выкладывают GGUF в день релиза.

Можно ли сделать GGUF самому? Да, скриптом convert_hf_to_gguf.py из llama.cpp: берёт модель в safetensors и конвертирует с выбранным уровнем квантизации.

Главное

GGUF — это формат, благодаря которому серьёзные модели запускаются дома: вся модель в одном файле, веса ужаты квантизацией, железо — почти любое. Он не для обучения, а для запуска: тренируют в полной точности, раздают и крутят в GGUF. Запомнить стоит одно практическое правило — Q4_K_M как точку отсчёта, от которой двигаешься вверх по качеству или вниз по размеру в зависимости от того, чего не хватает: памяти или точности.