Локальный запуск

GGUF: что это за формат моделей и какой квант выбрать

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

Дальше по порядку: что именно лежит внутри файла, как читаются метки квантования, сколько весит одна и та же модель в разных вариантах, почему сжатая версия отвечает быстрее несжатой, какой файл брать под свою видеокарту и что означают приписки IQ, i1 и mmproj.

Цифры в таблицах — из документации llama.cpp и Hugging Face, сверены 24 августа 2026 года. Измерения сделаны разработчиками на одной модели и одной машине, поэтому их стоит читать как соотношения, а не как обещание скорости на вашем железе.

Что такое GGUF

GGUF — двоичный формат файла, рассчитанный на быструю загрузку модели в память. Его сделал автор llama.cpp, и сделан он под запуск моделей движком, а не под обучение. Отсюда все его свойства.

Главное отличие от других форматов весов документация Hugging Face формулирует так: в отличие от форматов, которые хранят только тензоры — а именно так устроен safetensors, — GGUF хранит и тензоры, и стандартизованный набор метаданных. То есть внутри файла лежат не только числа модели, но и описание: какая это архитектура, какой у неё словарь, какой шаблон диалога.

Практических следствий два, и оба вы почувствуете сразу.

  • Ничего не нужно доустанавливать. Программе хватает одного файла: описание модели она берёт оттуда же, откуда веса.
  • Файл самодостаточен. Его можно перенести на флешке на другой компьютер, и он заработает без конфигов и без интернета.

Формат понимают llama.cpp и всё, что на нём построено: LM Studio, Ollama, GPT4All и десятки надстроек. Как выглядит работа с ними, разобрано отдельно — в статьях про LM Studio и про llama.cpp.

Почему модель лежит одним файлом

В исходном виде модель — это папка: несколько файлов весов, конфиг, словарь, описание токенизатора. Такой набор рассчитан на библиотеки Python, которые соберут всё это в рабочую модель.

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

Что значат метки Q4_K_M и IQ3_S

Имя файла обычно выглядит как Model-Name-Q4_K_M.gguf. Разбирается оно по частям.

Часть меткиЧто означает
Q и цифрасколько бит приходится на один вес. Q4 — примерно четыре, Q8 — примерно восемь. Чем меньше цифра, тем меньше файл и тем сильнее модель теряет в точности
Kсемейство методов, где веса сжимаются супер-блоками, у каждого блока свой масштаб. Это нынешний основной набор
IQ вместо Qметоды, где при сжатии учитывается матрица важности: какие веса модели трогать нельзя. На малых битностях дают заметно лучше результат
Последняя букваразличает варианты внутри одной битности по размеру. У Llama-3.1-8B Q3_K_S весит 3,41 ГиБ, Q3_K_M — 3,74, Q3_K_L — 4,02
F16 и BF16несжатая модель, шестнадцать бит на вес. BF16 — укороченная версия обычного тридцатидвухбитного числа: тот же диапазон значений, меньше точность

Отдельная группа — метки без буквы K: Q4_0, Q4_1, Q5_0, Q5_1, Q8_0. В таблице типов Hugging Face они помечены как устаревший способ квантования, который сегодня широко не используется. Встречаются они в старых сборках, и брать их поверх K-варианта той же битности смысла нет.

Сколько весит модель в разных квантах

Разработчики llama.cpp опубликовали замеры по одной и той же модели — Llama-3.1-8B. Это самая полезная таблица во всей теме: она показывает, что именно вы покупаете, выбирая метку.

МеткаРазмер файлаБит на вес
F16 — без сжатия14,96 ГиБ16,00
Q8_07,95 ГиБ8,50
Q6_K6,14 ГиБ6,56
Q5_K_M5,33 ГиБ5,70
Q4_K_M4,58 ГиБ4,89
Q4_K_S4,36 ГиБ4,67
IQ4_XS4,17 ГиБ4,46
Q3_K_M3,74 ГиБ4,00
Q2_K2,95 ГиБ3,16
IQ2_XXS2,23 ГиБ2,38
IQ1_S1,87 ГиБ2,00

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

Для крупных моделей выигрыш тот же по пропорции, но в других масштабах. Документация приводит три примера: Llama 3.1 на 8 миллиардов параметров — 32,1 ГБ в исходном виде и 4,9 ГБ в Q4_K_M; на 70 миллиардов — 280,9 и 43,1 ГБ; на 405 миллиардов — 1625,1 и 249,1 ГБ.

Какие открытые модели сейчас имеет смысл качать, а какие уже устарели, разбираем в канале.Открыть канал

Меньше квант — быстрее ответ

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

МеткаСкорость генерации, токенов в секунду
F16 — без сжатия29,17
Q8_050,93
Q6_K58,67
Q5_K_M67,23
Q4_K_M71,93
Q2_K79,85

Разница между несжатой моделью и Q4_K_M — примерно в два с половиной раза. Причина в том, что на выдаче каждого следующего слова компьютер заново прогоняет через себя веса модели, и упирается он не в вычисления, а в скорость чтения памяти. Меньше файл — меньше читать.

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

Какой файл брать под свою память

Правило одно и оно простое: смотрите на размер файла, а не на число миллиардов параметров в названии. Документация llama.cpp прямо говорит, что модель загружается в память целиком, поэтому требования к памяти и к диску совпадают.

Дальше три практических следствия.

  1. Файл должен влезать с запасом. Сверх весов нужно место под контекст диалога и под то, что уже занято системой. Файл на 7,9 ГиБ на видеокарте с восемью гигабайтами не поедет.
  2. Большая модель в сильном сжатии обычно лучше маленькой в слабом. При одинаковом размере файла выигрывает та, у которой больше параметров.
  3. Ниже трёх бит спускаются от безысходности. Экономия там уже небольшая, а падение качества резкое — это видно и по подписям, которыми сами авторы сборок помечают такие варианты.

Если видеокарты нет вообще

GGUF работает и на процессоре, просто медленнее: часть слоёв модели можно оставить в обычной оперативной памяти. Что реально запускается на слабой машине и с чего начать, разобрано в статье про локальные нейросети.

Что такое imatrix, IQ и приписка i1

Сжатие всегда что-то ломает. Насколько именно — измеряют двумя величинами: перплексией и расхождением с исходной моделью. Документация llama.cpp говорит, что эти потери можно уменьшить, если при сжатии использовать подходящий файл матрицы важности.

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

  • Метки IQ. В описании типов у них прямо сказано, что вес восстанавливается через масштаб супер-блока и матрицу важности. Это отдельное семейство, и на низких битностях оно сильнее обычных K-вариантов.
  • Приписка i1 в имени файла. Так помечает свои сборки один из самых плодовитых загрузчиков на Hugging Face: у него репозиторий с матрицей важности и отдельный репозиторий с обычными сборками. Общего стандарта на эту приписку нет, это конвенция конкретного автора.

Тот же автор подписывает варианты словами, и подписи полезнее любой таблицы: у Q4_K_M стоит пометка «быстрый, рекомендуется», у Q4_K_S — «оптимальный по размеру, скорости и качеству», у однобитного IQ1_S — «для отчаявшихся».

Файл mmproj и другие спутники

Иногда рядом с моделью лежит второй GGUF с именем, начинающимся на mmproj. Это не дубль и не ошибка: сокращение расшифровывается как мультимедийный проектор, и внутри лежит часть, которая превращает картинку или звук в понятные модели данные.

  • Нужен только для картинок и звука. Для обычного текстового диалога хватает основного файла.
  • Он маленький и его не сжимают. Документация советует держать эту часть в высоком качестве — bf16 или восьмибитном варианте: на скорость и память это почти не влияет, а на качество распознавания влияет напрямую.
  • Подключается отдельно. В llama.cpp — отдельным параметром запуска, в готовых оболочках обычно автоматически, если файл лежит рядом.

Второй частый случай — модель, разрезанная на несколько частей вида 00001-of-00003. Так делают, когда файл слишком большой. Качать нужно все части, а собирать их современные версии программ умеют сами.

Чем открыть GGUF

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

Что нужноЧем открывать
Просто поговорить с модельюLM Studio: окно чата, встроенный поиск моделей, ничего настраивать не нужно
Свой сервер и полный контрольllama.cpp: командная строка и локальный сервер, к которому подключаются другие программы
Посмотреть, что внутри файластраница файла на Hugging Face: там встроен просмотрщик метаданных и списка тензоров, скачивать ради этого ничего не нужно

Отдельно про запуск моделей одной командой из терминала — на портале ИИ-офиса есть разбор Ollama: там тот же GGUF внутри, но модели прячутся в собственное хранилище программы.

Что идёт не так

Четыре сценария, которые дают почти все жалобы.

  • Файл скачан не целиком. Крупные модели рвутся на середине, и программа сообщает о повреждённом файле. Лечится докачкой, а не сменой модели.
  • Скачан один кусок из нескольких. Если в имени есть 00001-of-00003, нужны все три файла.
  • Модель не помещается. Программа либо падает, либо уходит считать на процессор и выдаёт слово в несколько секунд. Берите файл на ступень меньше.
  • Старая версия программы. Новые архитектуры моделей появляются каждый месяц, и запускалка о них просто не знает. Сначала обновление, потом поиск причины.

И общий ориентир: если модель запустилась, но отвечает бессвязно, дело почти всегда в слишком сильном сжатии, а не в самой модели. Тот же файл в Q4_K_M ведёт себя иначе, чем в Q2_K.

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

Что такое формат GGUF простыми словами?

Это один файл, в котором лежит вся языковая модель целиком: и числа-веса, и описание самой модели. Формат сделал автор llama.cpp, чтобы модель можно было запустить на обычном компьютере без установки Python и библиотек. Программа открывает файл и сразу работает.

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

Q4_K_M — рабочий выбор по умолчанию, если файл помещается в память с запасом. У Llama-3.1-8B он весит 4,58 ГиБ против 14,96 у неквантованной версии. Q5_K_M и Q6_K берут, когда памяти много, а Q2 и Q3 — только когда иначе модель вообще не запускается.

Что значит Q4_K_M в названии файла?

Цифра после Q — сколько бит приходится на один вес модели: чем меньше, тем сильнее сжатие и меньше файл. K — семейство методов, где числа сжимаются блоками с отдельным масштабом. Последняя буква различает варианты одного и того же семейства по размеру: Q4_K_S меньше, чем Q4_K_M.

Сколько нужно памяти под GGUF-модель?

Ориентир — размер самого файла. Модель загружается в память целиком, поэтому требования к памяти и к диску в документации llama.cpp названы одинаковыми. Сверх размера файла нужно место под контекст и под систему, поэтому файл берут заметно меньше объёма видеопамяти.

Что означает i1 в имени файла GGUF?

Это пометка одного из крупных загрузчиков моделей на Hugging Face: так он помечает сборки, посчитанные с матрицей важности. У того же автора рядом лежит второй репозиторий с обычными сборками без такой пометки. Общего стандарта у приписки i1 нет, это конвенция конкретного человека.

Чем GGUF отличается от safetensors?

GGUF хранит и веса, и метаданные модели в одном файле и рассчитан на запуск чат-моделей на процессоре и видеокарте через llama.cpp и его надстройки. Safetensors хранит только веса и используется библиотеками на Python и программами для генерации картинок.

ИИ-офисПроект про работу с нейросетями: разборы инструментов, рабочие связки и практика, проверенная на своих задачах.